{
  "documentationLink": "https://developers.google.com/google-ads/api/",
  "canonicalName": "GoogleAds",
  "schemas": {
    "GoogleAdsGoogleadsV23Common__BusinessProfileLocationGroup": {
      "id": "GoogleAdsGoogleadsV23Common__BusinessProfileLocationGroup",
      "properties": {
        "dynamicBusinessProfileLocationGroupFilter": {
          "$ref": "GoogleAdsGoogleadsV23Common__DynamicBusinessProfileLocationGroupFilter",
          "description": "Filter for dynamic Business Profile location sets."
        }
      },
      "description": "Information about a Business Profile dynamic location group. Only applicable if the sync level AssetSet's type is LOCATION_SYNC and sync source is Business Profile.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateAdGroupAdsResponse": {
      "type": "object",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateAdGroupAdResult"
          },
          "description": "All results for the mutate.",
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateAdGroupAdsResponse",
      "description": "Response message for an ad group ad mutate."
    },
    "GoogleAdsGoogleadsV23Common__VerticalAdsItemGroupRuleInfo": {
      "properties": {
        "cityCriterionId": {
          "type": "string",
          "description": "The resource name of the Geo Target Constant for the city."
        },
        "itemCode": {
          "description": "The id specifying a particular Vertical Ad listing.",
          "type": "string"
        },
        "regionCriterionId": {
          "type": "string",
          "description": "The resource name of the Geo Target Constant for the region."
        },
        "hotelClass": {
          "format": "int64",
          "type": "string",
          "description": "Integer value specifying the class rating for a hotel. Ranges from 1 to 5 stars."
        },
        "countryCriterionId": {
          "type": "string",
          "description": "The resource name of the Geo Target Constant for the country."
        }
      },
      "type": "object",
      "description": "A criterion to represent a single item group rule in Vertical Ads.",
      "id": "GoogleAdsGoogleadsV23Common__VerticalAdsItemGroupRuleInfo"
    },
    "GoogleAdsGoogleadsV23Services__MutateKeywordPlanAdGroupsResponse": {
      "properties": {
        "results": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateKeywordPlanAdGroupResult"
          },
          "description": "All results for the mutate. The order of the results is determined by the order of the keywords in the original request.",
          "type": "array"
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      },
      "type": "object",
      "description": "Response message for a Keyword Plan ad group mutate.",
      "id": "GoogleAdsGoogleadsV23Services__MutateKeywordPlanAdGroupsResponse"
    },
    "GoogleAdsGoogleadsV23Resources__KeywordView": {
      "type": "object",
      "properties": {
        "resourceName": {
          "readOnly": true,
          "description": "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}`",
          "type": "string"
        }
      },
      "description": "A keyword view.",
      "id": "GoogleAdsGoogleadsV23Resources__KeywordView"
    },
    "GoogleAdsGoogleadsV23Resources__CustomInterest": {
      "properties": {
        "members": {
          "description": "List of custom interest members that this custom interest is composed of. Members can be added during CustomInterest creation. If members are presented in UPDATE operation, existing members will be overridden.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Resources__CustomInterestMember"
          }
        },
        "status": {
          "description": "Status of this custom interest. Indicates whether the custom interest is enabled or removed.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Enabled status - custom interest is enabled and can be targeted to.",
            "Removed status - custom interest is removed and cannot be used for targeting."
          ],
          "type": "string"
        },
        "name": {
          "description": "Name of the custom interest. It should be unique across the same custom affinity audience. This field is required for create operations.",
          "type": "string"
        },
        "type": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CUSTOM_AFFINITY",
            "CUSTOM_INTENT"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Allows brand advertisers to define custom affinity audience lists.",
            "Allows advertisers to define custom intent audience lists."
          ],
          "type": "string",
          "description": "Type of the custom interest, CUSTOM_AFFINITY or CUSTOM_INTENT. By default the type is set to CUSTOM_AFFINITY."
        },
        "id": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Id of the custom interest.",
          "format": "int64"
        },
        "resourceName": {
          "description": "Immutable. The resource name of the custom interest. Custom interest resource names have the form: `customers/{customer_id}/customInterests/{custom_interest_id}`",
          "type": "string"
        },
        "description": {
          "description": "Description of this custom interest audience.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__CustomInterest",
      "description": "A custom interest. This is a list of users by interest."
    },
    "GoogleAdsGoogleadsV23Services__MutateBiddingDataExclusionsRequest": {
      "type": "object",
      "description": "Request message for BiddingDataExclusionService.MutateBiddingDataExclusions.",
      "id": "GoogleAdsGoogleadsV23Services__MutateBiddingDataExclusionsRequest",
      "properties": {
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "responseContentType": {
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation."
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "operations": {
          "description": "Required. The list of operations to perform on individual data exclusions.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__BiddingDataExclusionOperation"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__BusinessMessageAsset": {
      "id": "GoogleAdsGoogleadsV23Common__BusinessMessageAsset",
      "properties": {
        "starterMessage": {
          "type": "string",
          "description": "Required. A welcome message to prompt the user to initiate a conversation."
        },
        "whatsappInfo": {
          "$ref": "GoogleAdsGoogleadsV23Common__WhatsappBusinessMessageInfo",
          "description": "Whatsapp."
        },
        "facebookMessengerInfo": {
          "$ref": "GoogleAdsGoogleadsV23Common__FacebookMessengerBusinessMessageInfo",
          "description": "Facebook Messenger."
        },
        "messageProvider": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "WHATSAPP",
            "FACEBOOK_MESSENGER",
            "ZALO"
          ],
          "description": "Required. Message provider of the business message asset.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "WhatsApp message provider",
            "Facebook Messenger message provider",
            "Zalo message provider"
          ]
        },
        "zaloInfo": {
          "description": "Zalo.",
          "$ref": "GoogleAdsGoogleadsV23Common__ZaloBusinessMessageInfo"
        },
        "callToAction": {
          "$ref": "GoogleAdsGoogleadsV23Common__BusinessMessageCallToActionInfo",
          "description": "A call to action for the business message asset."
        }
      },
      "description": "A business message asset.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__KeywordForecastMetrics": {
      "type": "object",
      "description": "The forecast metrics for the planless keyword campaign.",
      "properties": {
        "conversionRate": {
          "type": "number",
          "format": "double",
          "description": "Forecasted conversion rate."
        },
        "costMicros": {
          "description": "The total cost.",
          "format": "int64",
          "type": "string"
        },
        "averageCpaMicros": {
          "format": "int64",
          "type": "string",
          "description": "Average cost per acquisition calculated as cost_micros / conversions."
        },
        "clicks": {
          "type": "number",
          "description": "The total number of clicks.",
          "format": "double"
        },
        "impressions": {
          "format": "double",
          "description": "The total number of impressions.",
          "type": "number"
        },
        "conversions": {
          "format": "double",
          "type": "number",
          "description": "Forecasted number of conversions: clicks * conversion_rate."
        },
        "averageCpcMicros": {
          "description": "The average cpc. Available only if clicks > 0.",
          "type": "string",
          "format": "int64"
        },
        "clickThroughRate": {
          "type": "number",
          "description": "The average click through rate. Available only if impressions > 0.",
          "format": "double"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__KeywordForecastMetrics"
    },
    "GoogleAdsGoogleadsV23Services__SuggestTravelAssetsRequest": {
      "id": "GoogleAdsGoogleadsV23Services__SuggestTravelAssetsRequest",
      "description": "Request message for TravelAssetSuggestionService.SuggestTravelAssets.",
      "type": "object",
      "properties": {
        "placeIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The Google Maps Place IDs of hotels for which assets are requested. See https://developers.google.com/places/web-service/place-id for more information."
        },
        "languageOption": {
          "description": "Required. The language specifications in BCP 47 format (for example, en-US, zh-CN, etc.) for the asset suggestions. Text will be in this language. Usually matches one of the campaign target languages.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__AdGroupLabel": {
      "properties": {
        "resourceName": {
          "description": "Immutable. The resource name of the ad group label. Ad group label resource names have the form: `customers/{customer_id}/adGroupLabels/{ad_group_id}~{label_id}`",
          "type": "string"
        },
        "label": {
          "description": "Immutable. The label assigned to the ad group.",
          "type": "string"
        },
        "adGroup": {
          "type": "string",
          "description": "Immutable. The ad group to which the label is attached."
        }
      },
      "description": "A relationship between an ad group and a label.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__AdGroupLabel"
    },
    "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_SitelinkExtensionParameters": {
      "description": "Parameters to use when applying sitelink recommendation.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_SitelinkExtensionParameters",
      "properties": {
        "sitelinkExtensions": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__SitelinkFeedItem"
          },
          "description": "Sitelinks to be added. This is a required field."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateLabelResult": {
      "type": "object",
      "description": "The result for a label mutate.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        },
        "label": {
          "description": "The mutated label with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV23Resources__Label"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateLabelResult"
    },
    "GoogleAdsGoogleadsV23Services__GenerateShareablePreviewsResponse": {
      "properties": {
        "responses": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__ShareablePreviewOrError"
          },
          "description": "List of generate shareable preview results.",
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__GenerateShareablePreviewsResponse",
      "type": "object",
      "description": "Response message for ShareablePreviewService.GenerateShareablePreviews."
    },
    "GoogleAdsGoogleadsV23Services__GenerateTextResponse": {
      "id": "GoogleAdsGoogleadsV23Services__GenerateTextResponse",
      "description": "Response message for AssetGenerationService.GenerateText",
      "type": "object",
      "properties": {
        "generatedText": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__GeneratedText"
          },
          "description": "List of text that was generated and the field type to use it as."
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__BudgetSimulationPointList": {
      "type": "object",
      "properties": {
        "points": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__BudgetSimulationPoint"
          },
          "type": "array",
          "description": "Projected metrics for a series of budget amounts."
        }
      },
      "description": "A container for simulation points for simulations of type BUDGET.",
      "id": "GoogleAdsGoogleadsV23Common__BudgetSimulationPointList"
    },
    "GoogleAdsGoogleadsV23Common__HotelDateSelectionTypeInfo": {
      "id": "GoogleAdsGoogleadsV23Common__HotelDateSelectionTypeInfo",
      "properties": {
        "type": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Dates selected by default.",
            "Dates selected by the user."
          ],
          "description": "Type of the hotel date selection",
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DEFAULT_SELECTION",
            "USER_SELECTED"
          ]
        }
      },
      "description": "Criterion for hotel date selection (default dates versus user selected).",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common_PolicyTopicConstraint_ResellerConstraint": {
      "id": "GoogleAdsGoogleadsV23Common_PolicyTopicConstraint_ResellerConstraint",
      "type": "object",
      "properties": {},
      "description": "Indicates that a policy topic was constrained due to disapproval of the website for reseller purposes."
    },
    "GoogleAdsGoogleadsV23Common__ActivityStateInfo": {
      "description": "The state where the travel activity is available.",
      "properties": {
        "value": {
          "type": "string",
          "description": "String value of the activity state. The Geo Target Constant resource name."
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__ActivityStateInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__DynamicSearchAdsSearchTermView": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__DynamicSearchAdsSearchTermView",
      "properties": {
        "resourceName": {
          "description": "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}~{search_term_fingerprint}~{headline_fingerprint}~{landing_page_fingerprint}~{page_url_fingerprint}`",
          "readOnly": true,
          "type": "string"
        },
        "headline": {
          "description": "Output only. The dynamically generated headline of the Dynamic Search Ad. This field is read-only.",
          "readOnly": true,
          "type": "string"
        },
        "pageUrl": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The URL of page feed item served for the impression. This field is read-only."
        },
        "hasMatchingKeyword": {
          "type": "boolean",
          "readOnly": true,
          "description": "Output only. True if query is added to targeted keywords. This field is read-only."
        },
        "searchTerm": {
          "readOnly": true,
          "description": "Output only. Search term This field is read-only.",
          "type": "string"
        },
        "hasNegativeUrl": {
          "description": "Output only. True if query matches a negative url. This field is read-only.",
          "type": "boolean",
          "readOnly": true
        },
        "landingPage": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The dynamically selected landing page URL of the impression. This field is read-only."
        },
        "hasNegativeKeyword": {
          "type": "boolean",
          "description": "Output only. True if query matches a negative keyword. This field is read-only.",
          "readOnly": true
        }
      },
      "description": "A dynamic search ads search term view."
    },
    "GoogleAdsGoogleadsV23Services__RemoveDataLinkRequest": {
      "id": "GoogleAdsGoogleadsV23Services__RemoveDataLinkRequest",
      "properties": {
        "resourceName": {
          "description": "Required. The data link is expected to have a valid resource name.",
          "type": "string"
        }
      },
      "description": "Request message for DataLinkService.RemoveDataLink.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__YouTubeChannelAttributeMetadata": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__YouTubeChannelAttributeMetadata",
      "description": "Metadata associated with a YouTube channel attribute.",
      "properties": {
        "subscriberCount": {
          "type": "string",
          "format": "int64",
          "description": "The approximate number of subscribers to the YouTube channel."
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources_Recommendation_ImproveDemandGenAdStrengthRecommendation": {
      "properties": {
        "ad": {
          "type": "string",
          "description": "Output only. The resource name of the ad that can be improved.",
          "readOnly": true
        },
        "demandGenAssetActionItems": {
          "description": "Output only. A list of recommendations to improve the ad strength.",
          "type": "array",
          "readOnly": true,
          "items": {
            "type": "string"
          }
        },
        "adStrength": {
          "description": "Output only. The current ad strength.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PENDING",
            "NO_ADS",
            "POOR",
            "AVERAGE",
            "GOOD",
            "EXCELLENT"
          ],
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The ad strength is currently pending.",
            "No ads could be generated.",
            "Poor strength.",
            "Average strength.",
            "Good strength.",
            "Excellent strength."
          ],
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources_Recommendation_ImproveDemandGenAdStrengthRecommendation",
      "type": "object",
      "description": "The improve Demand Gen ad strength recommendation."
    },
    "GoogleAdsGoogleadsV23Services__MutateCampaignLabelResult": {
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateCampaignLabelResult",
      "description": "The result for a campaign label mutate.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources_ConversionValueRule_ValueRuleItineraryTravelLength": {
      "properties": {
        "maxNights": {
          "format": "int32",
          "type": "integer",
          "description": "Maximum number of days between the start date and the end date."
        },
        "minNights": {
          "description": "Minimum number of nights between the start date and the end date.",
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources_ConversionValueRule_ValueRuleItineraryTravelLength",
      "description": "Range for the itinerary length in number of nights."
    },
    "GoogleAdsGoogleadsV23Common__ContentLabelInfo": {
      "properties": {
        "type": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SEXUALLY_SUGGESTIVE",
            "BELOW_THE_FOLD",
            "PARKED_DOMAIN",
            "JUVENILE",
            "PROFANITY",
            "TRAGEDY",
            "VIDEO",
            "VIDEO_RATING_DV_G",
            "VIDEO_RATING_DV_PG",
            "VIDEO_RATING_DV_T",
            "VIDEO_RATING_DV_MA",
            "VIDEO_NOT_YET_RATED",
            "EMBEDDED_VIDEO",
            "LIVE_STREAMING_VIDEO",
            "SOCIAL_ISSUES",
            "BRAND_SUITABILITY_CONTENT_FOR_FAMILIES",
            "BRAND_SUITABILITY_GAMES_FIGHTING",
            "BRAND_SUITABILITY_GAMES_MATURE",
            "BRAND_SUITABILITY_HEALTH_SENSITIVE",
            "BRAND_SUITABILITY_HEALTH_SOURCE_UNDETERMINED",
            "BRAND_SUITABILITY_NEWS_RECENT",
            "BRAND_SUITABILITY_NEWS_SENSITIVE",
            "BRAND_SUITABILITY_NEWS_SOURCE_NOT_FEATURED",
            "BRAND_SUITABILITY_POLITICS",
            "BRAND_SUITABILITY_RELIGION"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Sexually suggestive content.",
            "Below the fold placement.",
            "Parked domain.",
            "Juvenile, gross & bizarre content.",
            "Profanity & rough language.",
            "Death & tragedy.",
            "Video.",
            "Content rating: G.",
            "Content rating: PG.",
            "Content rating: T.",
            "Content rating: MA.",
            "Content rating: not yet rated.",
            "Embedded video.",
            "Live streaming video.",
            "Sensitive social issues.",
            "Content that's suitable for families to view together, including Made for Kids videos on YouTube.",
            "Video games that simulate hand-to-hand fighting or combat with the use of modern or medieval weapons.",
            "Video games that feature mature content, such as violence, inappropriate language, or sexual suggestiveness.",
            "Health content that people might find sensitive or upsetting, such as medical procedures or images and descriptions of various medical conditions.",
            "Health content from sources that may provide accurate information but aren't as commonly cited as other, more well-known sources.",
            "News content that's been recently announced, regardless of the themes or people being reported on.",
            "News content that people might find sensitive or upsetting, such as crimes, accidents, and natural incidents, or commentary on potentially controversial social and political issues.",
            "News content from sources that aren't featured on Google News or YouTube News.",
            "Political content, such as political statements made by well-known politicians, political elections, or events widely perceived to be political in nature.",
            "Content with religious themes, such as religious teachings or customs, holy sites or places of worship, well-known religious figures or people dressed in religious attire, or religious opinions on social and political issues."
          ],
          "type": "string",
          "description": "Content label type, required for CREATE operations."
        }
      },
      "type": "object",
      "description": "Content Label for category exclusion.",
      "id": "GoogleAdsGoogleadsV23Common__ContentLabelInfo"
    },
    "GoogleAdsGoogleadsV23Common__UserInterestInfo": {
      "properties": {
        "userInterestCategory": {
          "description": "The UserInterest resource name.",
          "type": "string"
        }
      },
      "type": "object",
      "description": "Represents a particular interest-based topic to be targeted.",
      "id": "GoogleAdsGoogleadsV23Common__UserInterestInfo"
    },
    "GoogleAdsGoogleadsV23Services__ScheduleExperimentRequest": {
      "properties": {
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        }
      },
      "type": "object",
      "description": "Request message for ExperimentService.ScheduleExperiment.",
      "id": "GoogleAdsGoogleadsV23Services__ScheduleExperimentRequest"
    },
    "GoogleAdsGoogleadsV23Resources_ConversionAction_AttributionModelSettings": {
      "description": "Settings related to this conversion action's attribution model.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources_ConversionAction_AttributionModelSettings",
      "properties": {
        "dataDrivenModelStatus": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AVAILABLE",
            "STALE",
            "EXPIRED",
            "NEVER_GENERATED"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The data driven model is available.",
            "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.",
            "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.",
            "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."
          ],
          "type": "string",
          "description": "Output only. The status of the data-driven attribution model for the conversion action.",
          "readOnly": true
        },
        "attributionModel": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Uses external attribution.",
            "Attributes all credit for a conversion to its last click.",
            "Attributes all credit for a conversion to its first click using Google Search attribution.",
            "Attributes credit for a conversion equally across all of its clicks using Google Search attribution.",
            "Attributes exponentially more credit for a conversion to its more recent clicks using Google Search attribution (half-life is 1 week).",
            "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.",
            "Flexible model that uses machine learning to determine the appropriate distribution of credit among clicks using Google Search attribution."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EXTERNAL",
            "GOOGLE_ADS_LAST_CLICK",
            "GOOGLE_SEARCH_ATTRIBUTION_FIRST_CLICK",
            "GOOGLE_SEARCH_ATTRIBUTION_LINEAR",
            "GOOGLE_SEARCH_ATTRIBUTION_TIME_DECAY",
            "GOOGLE_SEARCH_ATTRIBUTION_POSITION_BASED",
            "GOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN"
          ],
          "description": "The attribution model type of this conversion action."
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__HotelCheckInDayInfo": {
      "id": "GoogleAdsGoogleadsV23Common__HotelCheckInDayInfo",
      "properties": {
        "dayOfWeek": {
          "description": "The day of the week.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Monday.",
            "Tuesday.",
            "Wednesday.",
            "Thursday.",
            "Friday.",
            "Saturday.",
            "Sunday."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MONDAY",
            "TUESDAY",
            "WEDNESDAY",
            "THURSDAY",
            "FRIDAY",
            "SATURDAY",
            "SUNDAY"
          ]
        }
      },
      "description": "Criterion for day of the week the booking is for.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__PercentCpcBidSimulationPointList": {
      "id": "GoogleAdsGoogleadsV23Common__PercentCpcBidSimulationPointList",
      "description": "A container for simulation points for simulations of type PERCENT_CPC_BID.",
      "type": "object",
      "properties": {
        "points": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__PercentCpcBidSimulationPoint"
          },
          "description": "Projected metrics for a series of percent CPC bid amounts."
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__MerchantCenterLinkInvitationIdentifier": {
      "description": "The identifier for Merchant Center Account.",
      "type": "object",
      "properties": {
        "merchantCenterId": {
          "description": "Output only. The Merchant Center id of the Merchant account. This field is read only",
          "type": "string",
          "readOnly": true,
          "format": "int64"
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__MerchantCenterLinkInvitationIdentifier"
    },
    "GoogleAdsGoogleadsV23Services__MutateAssetGroupSignalResult": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateAssetGroupSignalResult",
      "description": "The result for the asset group signal mutate.",
      "properties": {
        "assetGroupSignal": {
          "$ref": "GoogleAdsGoogleadsV23Resources__AssetGroupSignal",
          "description": "The mutated AssetGroupSignal with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\"."
        },
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateAssetSetAssetsResponse": {
      "id": "GoogleAdsGoogleadsV23Services__MutateAssetSetAssetsResponse",
      "type": "object",
      "description": "Response message for an asset set asset mutate.",
      "properties": {
        "partialFailureError": {
          "$ref": "GoogleRpc__Status",
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error."
        },
        "results": {
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateAssetSetAssetResult"
          },
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__Recommendation": {
      "properties": {
        "maximizeConversionValueOptInRecommendation": {
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_MaximizeConversionValueOptInRecommendation",
          "readOnly": true,
          "description": "Output only. The Maximize Conversion Value opt-in recommendation."
        },
        "performanceMaxOptInRecommendation": {
          "readOnly": true,
          "description": "Output only. The Performance Max Opt In recommendation.",
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_PerformanceMaxOptInRecommendation"
        },
        "type": {
          "description": "Output only. The type of recommendation.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Provides optimized budget recommendations for campaigns.",
            "Keyword recommendation.",
            "Recommendation to add a new text ad.",
            "Recommendation to update a campaign to use a Target CPA bidding strategy.",
            "Recommendation to update a campaign to use the Maximize Conversions bidding strategy.",
            "Recommendation to enable Enhanced Cost Per Click for a campaign.",
            "Recommendation to start showing your campaign's ads on Google Search Partners Websites.",
            "Recommendation to update a campaign to use a Maximize Clicks bidding strategy.",
            "Recommendation to start using the \"Optimize\" ad rotation setting for the given ad group.",
            "Recommendation to change an existing keyword from one match type to a broader match type.",
            "Recommendation to move unused budget from one budget to a constrained budget.",
            "Budget recommendation for campaigns that are expected to become budget-constrained in the future (as opposed to the CAMPAIGN_BUDGET recommendation, which applies to campaigns that are currently budget-constrained).",
            "Recommendation to update a campaign to use a Target ROAS bidding strategy.",
            "Recommendation to add a new responsive search ad.",
            "Budget recommendation for campaigns whose ROI is predicted to increase with a budget adjustment.",
            "Recommendation to add broad match versions of keywords for fully automated conversion-based bidding campaigns.",
            "Recommendation to add new responsive search ad assets.",
            "Recommendation to upgrade a Smart Shopping campaign to a Performance Max campaign.",
            "Recommendation to improve strength of responsive search ad.",
            "Recommendation to update a campaign to use Display Expansion.",
            "Recommendation to upgrade a Local campaign to a Performance Max campaign.",
            "Recommendation to raise target CPA when it is too low and there are very few or no conversions. It is applied asynchronously and can take minutes depending on the number of ad groups there are in the related campaign.",
            "Recommendation to raise the budget in advance of a seasonal event that is forecasted to increase traffic, and change bidding strategy from maximize conversion value to target ROAS.",
            "Recommendation to add callout assets to campaign or customer level.",
            "Recommendation to add sitelink assets to campaign or customer level.",
            "Recommendation to add call assets to campaign or customer level.",
            "Recommendation to add the age group attribute to offers that are demoted because of a missing age group.",
            "Recommendation to add a color to offers that are demoted because of a missing color.",
            "Recommendation to add a gender to offers that are demoted because of a missing gender.",
            "Recommendation to add a GTIN (Global Trade Item Number) to offers that are demoted because of a missing GTIN.",
            "Recommendation to add more identifiers to offers that are demoted because of missing identifiers.",
            "Recommendation to add the size to offers that are demoted because of a missing size.",
            "Recommendation informing a customer about a campaign that cannot serve because no products are being targeted.",
            "The shopping recommendation informing a customer about campaign with a high percentage of disapproved products.",
            "Recommendation to create a catch-all campaign that targets all offers.",
            "Recommendation to fix Merchant Center account suspension issues.",
            "Recommendation to fix Merchant Center account suspension warning issues.",
            "Recommendation to migrate offers targeted by Regular Shopping Campaigns to existing Performance Max campaigns.",
            "Recommendation to enable dynamic image extensions on the account, allowing Google to find the best images from ad landing pages and complement text ads.",
            "Recommendation to raise Target CPA based on Google predictions modeled from past conversions. It is applied asynchronously and can take minutes depending on the number of ad groups there are in the related campaign.",
            "Recommendation to lower Target ROAS.",
            "Recommendation to opt into Performance Max campaigns.",
            "Recommendation to improve the asset group strength of a Performance Max campaign to an \"Excellent\" rating.",
            "Recommendation to migrate Dynamic Search Ads to Performance Max campaigns.",
            "Recommendation to set a target CPA for campaigns that do not have one specified, in advance of a seasonal event that is forecasted to increase traffic.",
            "Recommendation to set a target CPA for campaigns that do not have one specified.",
            "Recommendation to set a target ROAS for campaigns that do not have one specified.",
            "Recommendation to update a campaign to use the Maximize Conversion Value bidding strategy.",
            "Recommendation to deploy Google Tag on more pages.",
            "Recommendation to turn on Final URL expansion for your Performance Max campaigns.",
            "Recommendation to update a customer list that hasn't been updated in the last 90 days.",
            "Recommendation to create a custom audience.",
            "Recommendation to add lead form assets to campaign or customer level.",
            "Recommendation to improve the strength of ads in Demand Gen campaigns."
          ],
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CAMPAIGN_BUDGET",
            "KEYWORD",
            "TEXT_AD",
            "TARGET_CPA_OPT_IN",
            "MAXIMIZE_CONVERSIONS_OPT_IN",
            "ENHANCED_CPC_OPT_IN",
            "SEARCH_PARTNERS_OPT_IN",
            "MAXIMIZE_CLICKS_OPT_IN",
            "OPTIMIZE_AD_ROTATION",
            "KEYWORD_MATCH_TYPE",
            "MOVE_UNUSED_BUDGET",
            "FORECASTING_CAMPAIGN_BUDGET",
            "TARGET_ROAS_OPT_IN",
            "RESPONSIVE_SEARCH_AD",
            "MARGINAL_ROI_CAMPAIGN_BUDGET",
            "USE_BROAD_MATCH_KEYWORD",
            "RESPONSIVE_SEARCH_AD_ASSET",
            "UPGRADE_SMART_SHOPPING_CAMPAIGN_TO_PERFORMANCE_MAX",
            "RESPONSIVE_SEARCH_AD_IMPROVE_AD_STRENGTH",
            "DISPLAY_EXPANSION_OPT_IN",
            "UPGRADE_LOCAL_CAMPAIGN_TO_PERFORMANCE_MAX",
            "RAISE_TARGET_CPA_BID_TOO_LOW",
            "FORECASTING_SET_TARGET_ROAS",
            "CALLOUT_ASSET",
            "SITELINK_ASSET",
            "CALL_ASSET",
            "SHOPPING_ADD_AGE_GROUP",
            "SHOPPING_ADD_COLOR",
            "SHOPPING_ADD_GENDER",
            "SHOPPING_ADD_GTIN",
            "SHOPPING_ADD_MORE_IDENTIFIERS",
            "SHOPPING_ADD_SIZE",
            "SHOPPING_ADD_PRODUCTS_TO_CAMPAIGN",
            "SHOPPING_FIX_DISAPPROVED_PRODUCTS",
            "SHOPPING_TARGET_ALL_OFFERS",
            "SHOPPING_FIX_SUSPENDED_MERCHANT_CENTER_ACCOUNT",
            "SHOPPING_FIX_MERCHANT_CENTER_ACCOUNT_SUSPENSION_WARNING",
            "SHOPPING_MIGRATE_REGULAR_SHOPPING_CAMPAIGN_OFFERS_TO_PERFORMANCE_MAX",
            "DYNAMIC_IMAGE_EXTENSION_OPT_IN",
            "RAISE_TARGET_CPA",
            "LOWER_TARGET_ROAS",
            "PERFORMANCE_MAX_OPT_IN",
            "IMPROVE_PERFORMANCE_MAX_AD_STRENGTH",
            "MIGRATE_DYNAMIC_SEARCH_ADS_CAMPAIGN_TO_PERFORMANCE_MAX",
            "FORECASTING_SET_TARGET_CPA",
            "SET_TARGET_CPA",
            "SET_TARGET_ROAS",
            "MAXIMIZE_CONVERSION_VALUE_OPT_IN",
            "IMPROVE_GOOGLE_TAG_COVERAGE",
            "PERFORMANCE_MAX_FINAL_URL_OPT_IN",
            "REFRESH_CUSTOMER_MATCH_LIST",
            "CUSTOM_AUDIENCE_OPT_IN",
            "LEAD_FORM_ASSET",
            "IMPROVE_DEMAND_GEN_AD_STRENGTH"
          ],
          "type": "string"
        },
        "shoppingAddColorRecommendation": {
          "description": "Output only. The shopping add color recommendation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_ShoppingOfferAttributeRecommendation"
        },
        "refreshCustomerMatchListRecommendation": {
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_RefreshCustomerMatchListRecommendation",
          "description": "Output only. The refresh customer list recommendation.",
          "readOnly": true
        },
        "shoppingFixMerchantCenterAccountSuspensionWarningRecommendation": {
          "readOnly": true,
          "description": "Output only. The shopping fix Merchant Center account suspension warning recommendation.",
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_ShoppingMerchantCenterAccountSuspensionRecommendation"
        },
        "shoppingAddSizeRecommendation": {
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_ShoppingOfferAttributeRecommendation",
          "description": "Output only. The shopping add size recommendation.",
          "readOnly": true
        },
        "shoppingTargetAllOffersRecommendation": {
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_ShoppingTargetAllOffersRecommendation",
          "description": "Output only. The shopping target all offers recommendation."
        },
        "textAdRecommendation": {
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_TextAdRecommendation",
          "readOnly": true,
          "description": "Output only. Add expanded text ad recommendation."
        },
        "improvePerformanceMaxAdStrengthRecommendation": {
          "readOnly": true,
          "description": "Output only. The improve Performance Max ad strength recommendation.",
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_ImprovePerformanceMaxAdStrengthRecommendation"
        },
        "shoppingMigrateRegularShoppingCampaignOffersToPerformanceMaxRecommendation": {
          "readOnly": true,
          "description": "Output only. The shopping migrate Regular Shopping Campaign offers to Performance Max recommendation.",
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_ShoppingMigrateRegularShoppingCampaignOffersToPerformanceMaxRecommendation"
        },
        "optimizeAdRotationRecommendation": {
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_OptimizeAdRotationRecommendation",
          "description": "Output only. The Optimize Ad Rotation recommendation.",
          "readOnly": true
        },
        "dismissed": {
          "readOnly": true,
          "type": "boolean",
          "description": "Output only. Whether the recommendation is dismissed or not."
        },
        "lowerTargetRoasRecommendation": {
          "description": "Output only. Recommendation to lower Target ROAS.",
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_LowerTargetRoasRecommendation",
          "readOnly": true
        },
        "callAssetRecommendation": {
          "readOnly": true,
          "description": "Output only. The call asset recommendation.",
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_CallAssetRecommendation"
        },
        "resourceName": {
          "description": "Immutable. The resource name of the recommendation. `customers/{customer_id}/recommendations/{recommendation_id}`",
          "type": "string"
        },
        "upgradeLocalCampaignToPerformanceMaxRecommendation": {
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_UpgradeLocalCampaignToPerformanceMaxRecommendation",
          "description": "Output only. The upgrade a Local campaign to a Performance Max campaign recommendation.",
          "readOnly": true
        },
        "calloutAssetRecommendation": {
          "readOnly": true,
          "description": "Output only. The callout asset recommendation.",
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_CalloutAssetRecommendation"
        },
        "shoppingAddAgeGroupRecommendation": {
          "readOnly": true,
          "description": "Output only. The shopping add age group recommendation.",
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_ShoppingOfferAttributeRecommendation"
        },
        "customAudienceOptInRecommendation": {
          "readOnly": true,
          "description": "Output only. The custom audience opt in recommendation.",
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_CustomAudienceOptInRecommendation"
        },
        "responsiveSearchAdAssetRecommendation": {
          "readOnly": true,
          "description": "Output only. The responsive search ad asset recommendation.",
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_ResponsiveSearchAdAssetRecommendation"
        },
        "campaignBudget": {
          "type": "string",
          "description": "Output only. The budget targeted by this recommendation. This will be set only when the recommendation affects a single campaign budget. This field will be set for the following recommendation types: CAMPAIGN_BUDGET, FORECASTING_CAMPAIGN_BUDGET, MARGINAL_ROI_CAMPAIGN_BUDGET, MOVE_UNUSED_BUDGET",
          "readOnly": true
        },
        "leadFormAssetRecommendation": {
          "readOnly": true,
          "description": "Output only. The lead form asset recommendation.",
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_LeadFormAssetRecommendation"
        },
        "dynamicImageExtensionOptInRecommendation": {
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_DynamicImageExtensionOptInRecommendation",
          "readOnly": true,
          "description": "Output only. Recommendation to enable dynamic image extensions on the account, allowing Google to find the best images from ad landing pages and complement text ads."
        },
        "campaignBudgetRecommendation": {
          "readOnly": true,
          "description": "Output only. The campaign budget recommendation.",
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_CampaignBudgetRecommendation"
        },
        "shoppingAddGenderRecommendation": {
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_ShoppingOfferAttributeRecommendation",
          "description": "Output only. The shopping add gender recommendation.",
          "readOnly": true
        },
        "keywordMatchTypeRecommendation": {
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_KeywordMatchTypeRecommendation",
          "description": "Output only. The keyword match type recommendation."
        },
        "campaigns": {
          "description": "Output only. The campaigns targeted by this recommendation. This field will be set for the following recommendation types: CAMPAIGN_BUDGET, FORECASTING_CAMPAIGN_BUDGET, MARGINAL_ROI_CAMPAIGN_BUDGET and MOVE_UNUSED_BUDGET",
          "readOnly": true,
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "shoppingFixSuspendedMerchantCenterAccountRecommendation": {
          "description": "Output only. The shopping fix suspended Merchant Center account recommendation.",
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_ShoppingMerchantCenterAccountSuspensionRecommendation",
          "readOnly": true
        },
        "shoppingFixDisapprovedProductsRecommendation": {
          "readOnly": true,
          "description": "Output only. The shopping fix disapproved products recommendation.",
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_ShoppingFixDisapprovedProductsRecommendation"
        },
        "displayExpansionOptInRecommendation": {
          "description": "Output only. The Display Expansion opt-in recommendation.",
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_DisplayExpansionOptInRecommendation",
          "readOnly": true
        },
        "setTargetRoasRecommendation": {
          "readOnly": true,
          "description": "Output only. The set target ROAS recommendation.",
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_ForecastingSetTargetRoasRecommendation"
        },
        "shoppingAddProductsToCampaignRecommendation": {
          "readOnly": true,
          "description": "Output only. The shopping add products to campaign recommendation.",
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_ShoppingAddProductsToCampaignRecommendation"
        },
        "upgradeSmartShoppingCampaignToPerformanceMaxRecommendation": {
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_UpgradeSmartShoppingCampaignToPerformanceMaxRecommendation",
          "description": "Output only. The upgrade a Smart Shopping campaign to a Performance Max campaign recommendation.",
          "readOnly": true
        },
        "forecastingCampaignBudgetRecommendation": {
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_CampaignBudgetRecommendation",
          "description": "Output only. The forecasting campaign budget recommendation."
        },
        "improveDemandGenAdStrengthRecommendation": {
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_ImproveDemandGenAdStrengthRecommendation",
          "readOnly": true,
          "description": "Output only. The improve Demand Gen ad strength recommendation."
        },
        "raiseTargetCpaBidTooLowRecommendation": {
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_RaiseTargetCpaBidTooLowRecommendation",
          "description": "Output only. The raise target CPA bid too low recommendation."
        },
        "raiseTargetCpaRecommendation": {
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_RaiseTargetCpaRecommendation",
          "readOnly": true,
          "description": "Output only. Recommendation to raise Target CPA."
        },
        "moveUnusedBudgetRecommendation": {
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_MoveUnusedBudgetRecommendation",
          "description": "Output only. The move unused budget recommendation."
        },
        "useBroadMatchKeywordRecommendation": {
          "readOnly": true,
          "description": "Output only. The use broad match keyword recommendation.",
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_UseBroadMatchKeywordRecommendation"
        },
        "shoppingAddGtinRecommendation": {
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_ShoppingOfferAttributeRecommendation",
          "description": "Output only. The shopping add GTIN recommendation."
        },
        "responsiveSearchAdRecommendation": {
          "readOnly": true,
          "description": "Output only. The add responsive search ad recommendation.",
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_ResponsiveSearchAdRecommendation"
        },
        "targetRoasOptInRecommendation": {
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_TargetRoasOptInRecommendation",
          "description": "Output only. The Target ROAS opt-in recommendation.",
          "readOnly": true
        },
        "targetCpaOptInRecommendation": {
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_TargetCpaOptInRecommendation",
          "description": "Output only. The TargetCPA opt-in recommendation."
        },
        "performanceMaxFinalUrlOptInRecommendation": {
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_PerformanceMaxFinalUrlOptInRecommendation",
          "readOnly": true,
          "description": "Output only. Recommendation to turn on Final URL expansion for your Performance Max campaigns."
        },
        "maximizeClicksOptInRecommendation": {
          "description": "Output only. The MaximizeClicks Opt-In recommendation.",
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_MaximizeClicksOptInRecommendation",
          "readOnly": true
        },
        "keywordRecommendation": {
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_KeywordRecommendation",
          "description": "Output only. The keyword recommendation.",
          "readOnly": true
        },
        "shoppingAddMoreIdentifiersRecommendation": {
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_ShoppingOfferAttributeRecommendation",
          "description": "Output only. The shopping add more identifiers recommendation.",
          "readOnly": true
        },
        "enhancedCpcOptInRecommendation": {
          "description": "Output only. The Enhanced Cost-Per-Click Opt-In recommendation.",
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_EnhancedCpcOptInRecommendation",
          "readOnly": true
        },
        "impact": {
          "readOnly": true,
          "description": "Output only. The impact on account performance as a result of applying the recommendation.",
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_RecommendationImpact"
        },
        "migrateDynamicSearchAdsCampaignToPerformanceMaxRecommendation": {
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_MigrateDynamicSearchAdsCampaignToPerformanceMaxRecommendation",
          "description": "Output only. The Dynamic Search Ads to Performance Max migration recommendation.",
          "readOnly": true
        },
        "marginalRoiCampaignBudgetRecommendation": {
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_CampaignBudgetRecommendation",
          "description": "Output only. The marginal ROI campaign budget recommendation."
        },
        "sitelinkAssetRecommendation": {
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_SitelinkAssetRecommendation",
          "description": "Output only. The sitelink asset recommendation."
        },
        "forecastingSetTargetCpaRecommendation": {
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_ForecastingSetTargetCpaRecommendation",
          "readOnly": true,
          "description": "Output only. The forecasting set target CPA recommendation."
        },
        "adGroup": {
          "description": "Output only. The ad group targeted by this recommendation. This will be set only when the recommendation affects a single ad group. This field will be set for the following recommendation types: KEYWORD, OPTIMIZE_AD_ROTATION, RESPONSIVE_SEARCH_AD, RESPONSIVE_SEARCH_AD_ASSET, TEXT_AD",
          "readOnly": true,
          "type": "string"
        },
        "improveGoogleTagCoverageRecommendation": {
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_ImproveGoogleTagCoverageRecommendation",
          "readOnly": true,
          "description": "Output only. Recommendation to deploy Google Tag on more pages."
        },
        "forecastingSetTargetRoasRecommendation": {
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_ForecastingSetTargetRoasRecommendation",
          "description": "Output only. The forecasting set target ROAS recommendation."
        },
        "maximizeConversionsOptInRecommendation": {
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_MaximizeConversionsOptInRecommendation",
          "description": "Output only. The MaximizeConversions Opt-In recommendation.",
          "readOnly": true
        },
        "campaign": {
          "type": "string",
          "description": "Output only. The campaign targeted by this recommendation. This field will be set for the following recommendation types: CALL_EXTENSION, CALLOUT_EXTENSION, ENHANCED_CPC_OPT_IN, USE_BROAD_MATCH_KEYWORD, KEYWORD, KEYWORD_MATCH_TYPE, UPGRADE_LOCAL_CAMPAIGN_TO_PERFORMANCE_MAX, MAXIMIZE_CLICKS_OPT_IN, MAXIMIZE_CONVERSIONS_OPT_IN, OPTIMIZE_AD_ROTATION, RESPONSIVE_SEARCH_AD, RESPONSIVE_SEARCH_AD_ASSET, SEARCH_PARTNERS_OPT_IN, DISPLAY_EXPANSION_OPT_IN, SITELINK_EXTENSION, TARGET_CPA_OPT_IN, TARGET_ROAS_OPT_IN, TEXT_AD, UPGRADE_SMART_SHOPPING_CAMPAIGN_TO_PERFORMANCE_MAX, RAISE_TARGET_CPA_BID_TOO_LOW, FORECASTING_SET_TARGET_ROAS, SHOPPING_ADD_AGE_GROUP, SHOPPING_ADD_COLOR, SHOPPING_ADD_GENDER, SHOPPING_ADD_SIZE, SHOPPING_ADD_GTIN, SHOPPING_ADD_MORE_IDENTIFIERS, SHOPPING_ADD_PRODUCTS_TO_CAMPAIGN, SHOPPING_FIX_DISAPPROVED_PRODUCTS, SHOPPING_MIGRATE_REGULAR_SHOPPING_CAMPAIGN_OFFERS_TO_PERFORMANCE_MAX, DYNAMIC_IMAGE_EXTENSION_OPT_IN, RAISE_TARGET_CPA, LOWER_TARGET_ROAS, FORECASTING_SET_TARGET_CPA, SET_TARGET_CPA, SET_TARGET_ROAS, MAXIMIZE_CONVERSION_VALUE_OPT_IN, IMPROVE_GOOGLE_TAG_COVERAGE, PERFORMANCE_MAX_FINAL_URL_OPT_IN",
          "readOnly": true
        },
        "searchPartnersOptInRecommendation": {
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_SearchPartnersOptInRecommendation",
          "description": "Output only. The Search Partners Opt-In recommendation."
        },
        "responsiveSearchAdImproveAdStrengthRecommendation": {
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_ResponsiveSearchAdImproveAdStrengthRecommendation",
          "description": "Output only. The responsive search ad improve ad strength recommendation.",
          "readOnly": true
        },
        "setTargetCpaRecommendation": {
          "readOnly": true,
          "description": "Output only. The set target CPA recommendation.",
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_ForecastingSetTargetCpaRecommendation"
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__Recommendation",
      "type": "object",
      "description": "A recommendation."
    },
    "GoogleAdsGoogleadsV23Common__Value": {
      "properties": {
        "stringValue": {
          "type": "string",
          "description": "A string."
        },
        "doubleValue": {
          "description": "A double.",
          "type": "number",
          "format": "double"
        },
        "int64Value": {
          "type": "string",
          "format": "int64",
          "description": "An int64."
        },
        "floatValue": {
          "format": "float",
          "description": "A float.",
          "type": "number"
        },
        "booleanValue": {
          "description": "A boolean.",
          "type": "boolean"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__Value",
      "description": "A generic data container.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__GoogleAdsField": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__GoogleAdsField",
      "description": "A field or resource (artifact) used by GoogleAdsService.",
      "properties": {
        "filterable": {
          "description": "Output only. Whether the artifact can be used in a WHERE clause in search queries.",
          "readOnly": true,
          "type": "boolean"
        },
        "resourceName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the artifact. Artifact resource names have the form: `googleAdsFields/{name}`"
        },
        "selectable": {
          "readOnly": true,
          "type": "boolean",
          "description": "Output only. Whether the artifact can be used in a SELECT clause in search queries."
        },
        "dataType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BOOLEAN",
            "DATE",
            "DOUBLE",
            "ENUM",
            "FLOAT",
            "INT32",
            "INT64",
            "MESSAGE",
            "RESOURCE_NAME",
            "STRING",
            "UINT64"
          ],
          "enumDescriptions": [
            "Unspecified",
            "Unknown",
            "Maps to google.protobuf.BoolValue Applicable operators: =, !=",
            "Maps to google.protobuf.StringValue. It can be compared using the set of operators specific to dates however. Applicable operators: =, <, >, <=, >=, BETWEEN, DURING, and IN",
            "Maps to google.protobuf.DoubleValue Applicable operators: =, !=, <, >, IN, NOT IN",
            "Maps to an enum. It's specific definition can be found at type_url. Applicable operators: =, !=, IN, NOT IN",
            "Maps to google.protobuf.FloatValue Applicable operators: =, !=, <, >, IN, NOT IN",
            "Maps to google.protobuf.Int32Value Applicable operators: =, !=, <, >, <=, >=, BETWEEN, IN, NOT IN",
            "Maps to google.protobuf.Int64Value Applicable operators: =, !=, <, >, <=, >=, BETWEEN, IN, NOT IN",
            "Maps to a protocol buffer message type. The data type's details can be found in type_url. No operators work with MESSAGE fields.",
            "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.",
            "Maps to google.protobuf.StringValue. Applicable operators: =, !=, LIKE, NOT LIKE, IN, NOT IN",
            "Maps to google.protobuf.UInt64Value Applicable operators: =, !=, <, >, <=, >=, BETWEEN, IN, NOT IN"
          ],
          "type": "string",
          "readOnly": true,
          "description": "Output only. This field determines the operators that can be used with the artifact in WHERE clauses."
        },
        "typeUrl": {
          "description": "Output only. The URL of proto describing the artifact's data type.",
          "readOnly": true,
          "type": "string"
        },
        "attributeResources": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "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.",
          "readOnly": true
        },
        "sortable": {
          "readOnly": true,
          "type": "boolean",
          "description": "Output only. Whether the artifact can be used in a ORDER BY clause in search queries."
        },
        "isRepeated": {
          "description": "Output only. Whether the field artifact is repeated.",
          "type": "boolean",
          "readOnly": true
        },
        "enumValues": {
          "readOnly": true,
          "items": {
            "type": "string"
          },
          "description": "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.",
          "type": "array"
        },
        "metrics": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "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.",
          "readOnly": true
        },
        "selectableWith": {
          "description": "Output only. The names of all resources, segments, and metrics that are selectable with the described artifact.",
          "readOnly": true,
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "name": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The name of the artifact."
        },
        "category": {
          "readOnly": true,
          "description": "Output only. The category of the artifact.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "RESOURCE",
            "ATTRIBUTE",
            "SEGMENT",
            "METRIC"
          ],
          "enumDescriptions": [
            "Unspecified",
            "Unknown",
            "The described artifact is a resource.",
            "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.",
            "The described artifact is a field and always segments search queries.",
            "The described artifact is a field and is a metric. It never segments search queries."
          ],
          "type": "string"
        },
        "segments": {
          "description": "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.",
          "readOnly": true,
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources_AdGroup_AudienceSetting": {
      "type": "object",
      "description": "Settings for the audience targeting.",
      "properties": {
        "useAudienceGrouped": {
          "description": "Immutable. If true, this ad group uses an Audience resource for audience targeting. If false, this ad group may use audience segment criteria instead.",
          "type": "boolean"
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources_AdGroup_AudienceSetting"
    },
    "GoogleAdsGoogleadsV23Resources_Campaign_AssetAutomationSetting": {
      "properties": {
        "assetAutomationType": {
          "enumDescriptions": [
            "Not specified.",
            "Used as a return value only. Represents value unknown in this version.",
            "Text asset automation includes headlines and descriptions. By default, advertisers are opted-in for Performance Max and opted-out for Search.",
            "Converts horizontal video assets to vertical orientation using content-aware technology. By default, advertisers are opted in for DemandGenVideoResponsiveAd.",
            "Shortens video assets to better capture user attention using content-aware technology. By default, advertisers are opted in for DemandGenVideoResponsiveAd.",
            "Generates a preview of the landing page shown in the engagement panel. By using this feature, you confirm that you own all legal rights to the images on the landing page used by this account (or you have permission to share the images with Google). You hereby instruct Google to publish these images on your behalf for advertising or other commercial purposes.",
            "Generates video enhancements (vertical and shorter videos) for PMax campaigns. Opted in by default.",
            "Generates image enhancements (AutoCrop and AutoEnhance). Opted in by default for pmax.",
            "Generates image extraction. It defaults to account level Dynamic Image Extension control value.",
            "Adds design elements and embeds text assets into image assets to create images with different aspect ratios. By default, advertisers are opted in for DemandGenMultiAssetAd.",
            "Controls automation for text assets related to Final URL expansion. This includes automatically creating dynamic landing pages from the final URL and generating text assets from the content of those landing pages. This setting is turned OFF by default for Search campaigns, but it is turned ON by default for Performance Max campaigns.",
            "Generates videos using other Assets as input, such as images and text. By default, advertisers are opted in for DemandGenMultiAssetAd."
          ],
          "description": "The asset automation type advertiser would like to opt-in/out.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "TEXT_ASSET_AUTOMATION",
            "GENERATE_VERTICAL_YOUTUBE_VIDEOS",
            "GENERATE_SHORTER_YOUTUBE_VIDEOS",
            "GENERATE_LANDING_PAGE_PREVIEW",
            "GENERATE_ENHANCED_YOUTUBE_VIDEOS",
            "GENERATE_IMAGE_ENHANCEMENT",
            "GENERATE_IMAGE_EXTRACTION",
            "GENERATE_DESIGN_VERSIONS_FOR_IMAGES",
            "FINAL_URL_EXPANSION_TEXT_ASSET_AUTOMATION",
            "GENERATE_VIDEOS_FROM_OTHER_ASSETS"
          ],
          "type": "string"
        },
        "assetAutomationStatus": {
          "description": "The opt-in/out status of asset automation type.",
          "enumDescriptions": [
            "Not specified.",
            "Used as a return value only. Represents value unknown in this version.",
            "Opted-in will enable generating and serving an asset automation type.",
            "Opted-out will stop generating and serving an asset automation type."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "OPTED_IN",
            "OPTED_OUT"
          ],
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources_Campaign_AssetAutomationSetting",
      "type": "object",
      "description": "Asset automation setting contains pair of AssetAutomationType and the asset automation opt-in/out status"
    },
    "GoogleLongrunning__WaitOperationRequest": {
      "id": "GoogleLongrunning__WaitOperationRequest",
      "properties": {
        "timeout": {
          "description": "The maximum duration to wait before timing out. If left blank, the wait will be at most the time permitted by the underlying HTTP/RPC protocol. If RPC context deadline is also specified, the shorter one will be used.",
          "type": "string",
          "format": "google-duration"
        }
      },
      "type": "object",
      "description": "The request message for Operations.WaitOperation."
    },
    "GoogleAdsGoogleadsV23Resources__PaidOrganicSearchTermView": {
      "properties": {
        "searchTerm": {
          "readOnly": true,
          "description": "Output only. The search term.",
          "type": "string"
        },
        "resourceName": {
          "description": "Output only. The resource name of the search term view. Search term view resource names have the form: `customers/{customer_id}/paidOrganicSearchTermViews/{campaign_id}~ {ad_group_id}~{URL-base64 search term}`",
          "type": "string",
          "readOnly": true
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__PaidOrganicSearchTermView",
      "type": "object",
      "description": "A paid organic search term view providing a view of search stats across ads and organic listings aggregated by search term at the ad group level."
    },
    "GoogleAdsGoogleadsV23Services__RunBatchJobRequest": {
      "properties": {},
      "description": "Request message for BatchJobService.RunBatchJob.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__RunBatchJobRequest"
    },
    "GoogleAdsGoogleadsV23Common__WebhookDelivery": {
      "description": "Google notifies the advertiser of leads by making HTTP calls to an endpoint they specify. The requests contain JSON matching a schema that Google publishes as part of form ads documentation.",
      "properties": {
        "advertiserWebhookUrl": {
          "type": "string",
          "description": "Webhook url specified by advertiser to send the lead."
        },
        "payloadSchemaVersion": {
          "description": "The schema version that this delivery instance will use.",
          "type": "string",
          "format": "int64"
        },
        "googleSecret": {
          "description": "Anti-spoofing secret set by the advertiser as part of the webhook payload.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__WebhookDelivery"
    },
    "GoogleAdsGoogleadsV23Services__MutateKeywordPlanCampaignsResponse": {
      "description": "Response message for a Keyword Plan campaign mutate.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "type": "array",
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateKeywordPlanCampaignResult"
          }
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateKeywordPlanCampaignsResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__CampaignThirdPartyBrandSafetyIntegrationPartner": {
      "description": "Container for third party brand safety integration data for Campaign.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__CampaignThirdPartyBrandSafetyIntegrationPartner",
      "properties": {
        "brandSafetyIntegrationPartner": {
          "description": "Allowed third party integration partners for brand safety verification.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DOUBLE_VERIFY",
            "INTEGRAL_AD_SCIENCE",
            "ZEFR"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "DoubleVerify.",
            "Integral Ad Science.",
            "Zefr."
          ]
        },
        "brandSafetyIntegrationPartnerData": {
          "$ref": "GoogleAdsGoogleadsV23Common__ThirdPartyIntegrationPartnerData",
          "description": "Third party partner data for YouTube brand safety verification. This is optional metadata for partners to join or attach data to Ads campaigns."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__RemoveProductLinkInvitationRequest": {
      "id": "GoogleAdsGoogleadsV23Services__RemoveProductLinkInvitationRequest",
      "type": "object",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Required. The resource name of the product link invitation being removed. expected, in this format: `customers/{customer_id}/productLinkInvitations/{product_link_invitation_id} `"
        }
      },
      "description": "Request message for ProductLinkInvitationService.RemoveProductLinkInvitation."
    },
    "GoogleAdsGoogleadsV23Services__EnablementResult": {
      "id": "GoogleAdsGoogleadsV23Services__EnablementResult",
      "type": "object",
      "description": "A single enablement result of a campaign.",
      "properties": {
        "enablementError": {
          "$ref": "GoogleRpc__Status",
          "description": "Details of the error when enablement fails."
        },
        "campaign": {
          "type": "string",
          "description": "This indicates the campaign for which enablement was tried, regardless of the outcome."
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__AppPreRegistrationAdInfo": {
      "properties": {
        "images": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdImageAsset"
          },
          "type": "array",
          "description": "List of image asset IDs whose images may be displayed with the ad."
        },
        "headlines": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdTextAsset"
          },
          "description": "List of text assets for headlines. When the ad serves the headlines will be selected from this list.",
          "type": "array"
        },
        "descriptions": {
          "description": "List of text assets for descriptions. When the ad serves the descriptions will be selected from this list.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdTextAsset"
          },
          "type": "array"
        },
        "youtubeVideos": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdVideoAsset"
          },
          "description": "List of YouTube video asset IDs whose videos may be displayed with the ad.",
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__AppPreRegistrationAdInfo",
      "description": "App pre-registration ads link to your app or game listing on Google Play, and can run on Google Play, on YouTube (in-stream only), and within other apps and mobile websites on the Display Network. It will help capture people's interest in your app or game and generate an early install base for your app or game before a launch.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__CreateAccountLinkRequest": {
      "properties": {
        "accountLink": {
          "description": "Required. The account link to be created.",
          "$ref": "GoogleAdsGoogleadsV23Resources__AccountLink"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__CreateAccountLinkRequest",
      "description": "Request message for AccountLinkService.CreateAccountLink."
    },
    "GoogleAdsGoogleadsV23Resources__ContentCriterionView": {
      "type": "object",
      "description": "A content criterion view.",
      "properties": {
        "resourceName": {
          "description": "Output only. The resource name of the content criterion view. Content criterion view resource names have the form: `customers/{customer_id}/contentCriterionViews/{ad_group_id}~{criterion_id}`",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__ContentCriterionView"
    },
    "GoogleAdsGoogleadsV23Services__MutateBillingSetupResponse": {
      "type": "object",
      "properties": {
        "result": {
          "$ref": "GoogleAdsGoogleadsV23Services__MutateBillingSetupResult",
          "description": "A result that identifies the resource affected by the mutate request."
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateBillingSetupResponse",
      "description": "Response message for a billing setup operation."
    },
    "GoogleAdsGoogleadsV23Resources__TravelActivityGroupView": {
      "properties": {
        "resourceName": {
          "readOnly": true,
          "description": "Output only. The resource name of the travel activity group view. Travel Activity Group view resource names have the form: `customers/{customer_id}/travelActivityGroupViews/{ad_group_id}~{criterion_id}`",
          "type": "string"
        }
      },
      "description": "A travel activity group view.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__TravelActivityGroupView"
    },
    "GoogleAdsGoogleadsV23Services__MutateCampaignGoalConfigResult": {
      "description": "The result for the campaign goal config mutate.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateCampaignGoalConfigResult",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateCampaignCriteriaResponse": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateCampaignCriteriaResponse",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateCampaignCriterionResult"
          },
          "description": "All results for the mutate."
        }
      },
      "description": "Response message for campaign criterion mutate."
    },
    "GoogleAdsGoogleadsV23Common__DemandGenMultiAssetAdInfo": {
      "description": "A Demand Gen multi asset ad.",
      "id": "GoogleAdsGoogleadsV23Common__DemandGenMultiAssetAdInfo",
      "properties": {
        "headlines": {
          "description": "Headline text asset of the ad. Maximum display width is 30. At least 1 and max 5 headlines can be specified.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdTextAsset"
          },
          "type": "array"
        },
        "marketingImages": {
          "description": "Marketing image assets to be used in the ad. Valid image types are GIF, JPEG, and PNG. The minimum size is 600x314 and the aspect ratio must be 1.91:1 (+-1%). Required if square_marketing_images is not present. Combined with `square_marketing_images`, `portrait_marketing_images`, and `tall_portrait_marketing_images` the maximum is 20.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdImageAsset"
          },
          "type": "array"
        },
        "descriptions": {
          "type": "array",
          "description": "The descriptive text of the ad. Maximum display width is 90. At least 1 and max 5 descriptions can be specified.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdTextAsset"
          }
        },
        "logoImages": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdImageAsset"
          },
          "type": "array",
          "description": "Logo image assets to be used in the ad. Valid image types are GIF, JPEG, and PNG. The minimum size is 128x128 and the aspect ratio must be 1:1 (+-1%). At least 1 and max 5 logo images can be specified."
        },
        "callToActionText": {
          "type": "string",
          "description": "Call to action text."
        },
        "tallPortraitMarketingImages": {
          "type": "array",
          "description": "Tall portrait marketing image assets to be used in the ad. Valid image types are GIF, JPEG, and PNG. The minimum size is 600x1067 and the aspect ratio must be 9:16 (+-1%). Combined with `marketing_images`, `square_marketing_images`, and `portrait_marketing_images`, the maximum is 20.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdImageAsset"
          }
        },
        "portraitMarketingImages": {
          "description": "Portrait marketing image assets to be used in the ad. Valid image types are GIF, JPEG, and PNG. The minimum size is 480x600 and the aspect ratio must be 4:5 (+-1%). Combined with `marketing_images`, `square_marketing_images`, and `tall_portrait_marketing_images` the maximum is 20.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdImageAsset"
          },
          "type": "array"
        },
        "businessName": {
          "type": "string",
          "description": "The Advertiser/brand name. Maximum display width is 25. Required."
        },
        "squareMarketingImages": {
          "description": "Square marketing image assets to be used in the ad. Valid image types are GIF, JPEG, and PNG. The minimum size is 300x300 and the aspect ratio must be 1:1 (+-1%). Required if marketing_images is not present. Combined with `marketing_images`, `portrait_marketing_images`, and `tall_portrait_marketing_images` the maximum is 20.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdImageAsset"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__KeywordPlan": {
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of the keyword plan. This field is required and should not be empty when creating new keyword plans."
        },
        "id": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The ID of the keyword plan.",
          "format": "int64"
        },
        "resourceName": {
          "description": "Immutable. The resource name of the Keyword Planner plan. KeywordPlan resource names have the form: `customers/{customer_id}/keywordPlans/{kp_plan_id}`",
          "type": "string"
        },
        "forecastPeriod": {
          "$ref": "GoogleAdsGoogleadsV23Resources__KeywordPlanForecastPeriod",
          "description": "The date period used for forecasting the plan."
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__KeywordPlan",
      "description": "A Keyword Planner plan. Max number of saved keyword plans: 10000. It's possible to remove plans if limit is reached."
    },
    "GoogleAdsGoogleadsV23Services__MutateCustomInterestsRequest": {
      "description": "Request message for CustomInterestService.MutateCustomInterests.",
      "properties": {
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "operations": {
          "description": "Required. The list of operations to perform on individual custom interests.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__CustomInterestOperation"
          }
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateCustomInterestsRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__LeadFormSubmissionField": {
      "description": "Fields in the submitted lead form.",
      "id": "GoogleAdsGoogleadsV23Resources__LeadFormSubmissionField",
      "properties": {
        "fieldValue": {
          "description": "Output only. Field value for lead form fields.",
          "readOnly": true,
          "type": "string"
        },
        "fieldType": {
          "type": "string",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "FULL_NAME",
            "EMAIL",
            "PHONE_NUMBER",
            "POSTAL_CODE",
            "STREET_ADDRESS",
            "CITY",
            "REGION",
            "COUNTRY",
            "WORK_EMAIL",
            "COMPANY_NAME",
            "WORK_PHONE",
            "JOB_TITLE",
            "GOVERNMENT_ISSUED_ID_CPF_BR",
            "GOVERNMENT_ISSUED_ID_DNI_AR",
            "GOVERNMENT_ISSUED_ID_DNI_PE",
            "GOVERNMENT_ISSUED_ID_RUT_CL",
            "GOVERNMENT_ISSUED_ID_CC_CO",
            "GOVERNMENT_ISSUED_ID_CI_EC",
            "GOVERNMENT_ISSUED_ID_RFC_MX",
            "FIRST_NAME",
            "LAST_NAME",
            "VEHICLE_MODEL",
            "VEHICLE_TYPE",
            "PREFERRED_DEALERSHIP",
            "VEHICLE_PURCHASE_TIMELINE",
            "VEHICLE_OWNERSHIP",
            "VEHICLE_PAYMENT_TYPE",
            "VEHICLE_CONDITION",
            "COMPANY_SIZE",
            "ANNUAL_SALES",
            "YEARS_IN_BUSINESS",
            "JOB_DEPARTMENT",
            "JOB_ROLE",
            "OVER_18_AGE",
            "OVER_19_AGE",
            "OVER_20_AGE",
            "OVER_21_AGE",
            "OVER_22_AGE",
            "OVER_23_AGE",
            "OVER_24_AGE",
            "OVER_25_AGE",
            "OVER_26_AGE",
            "OVER_27_AGE",
            "OVER_28_AGE",
            "OVER_29_AGE",
            "OVER_30_AGE",
            "OVER_31_AGE",
            "OVER_32_AGE",
            "OVER_33_AGE",
            "OVER_34_AGE",
            "OVER_35_AGE",
            "OVER_36_AGE",
            "OVER_37_AGE",
            "OVER_38_AGE",
            "OVER_39_AGE",
            "OVER_40_AGE",
            "OVER_41_AGE",
            "OVER_42_AGE",
            "OVER_43_AGE",
            "OVER_44_AGE",
            "OVER_45_AGE",
            "OVER_46_AGE",
            "OVER_47_AGE",
            "OVER_48_AGE",
            "OVER_49_AGE",
            "OVER_50_AGE",
            "OVER_51_AGE",
            "OVER_52_AGE",
            "OVER_53_AGE",
            "OVER_54_AGE",
            "OVER_55_AGE",
            "OVER_56_AGE",
            "OVER_57_AGE",
            "OVER_58_AGE",
            "OVER_59_AGE",
            "OVER_60_AGE",
            "OVER_61_AGE",
            "OVER_62_AGE",
            "OVER_63_AGE",
            "OVER_64_AGE",
            "OVER_65_AGE",
            "EDUCATION_PROGRAM",
            "EDUCATION_COURSE",
            "PRODUCT",
            "SERVICE",
            "OFFER",
            "CATEGORY",
            "PREFERRED_CONTACT_METHOD",
            "PREFERRED_LOCATION",
            "PREFERRED_CONTACT_TIME",
            "PURCHASE_TIMELINE",
            "YEARS_OF_EXPERIENCE",
            "JOB_INDUSTRY",
            "LEVEL_OF_EDUCATION",
            "PROPERTY_TYPE",
            "REALTOR_HELP_GOAL",
            "PROPERTY_COMMUNITY",
            "PRICE_RANGE",
            "NUMBER_OF_BEDROOMS",
            "FURNISHED_PROPERTY",
            "PETS_ALLOWED_PROPERTY",
            "NEXT_PLANNED_PURCHASE",
            "EVENT_SIGNUP_INTEREST",
            "PREFERRED_SHOPPING_PLACES",
            "FAVORITE_BRAND",
            "TRANSPORTATION_COMMERCIAL_LICENSE_TYPE",
            "EVENT_BOOKING_INTEREST",
            "DESTINATION_COUNTRY",
            "DESTINATION_CITY",
            "DEPARTURE_COUNTRY",
            "DEPARTURE_CITY",
            "DEPARTURE_DATE",
            "RETURN_DATE",
            "NUMBER_OF_TRAVELERS",
            "TRAVEL_BUDGET",
            "TRAVEL_ACCOMMODATION"
          ],
          "description": "Output only. Field type for lead form fields.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The user will be asked to fill in their given and family name. This field cannot be set at the same time as GIVEN_NAME or FAMILY_NAME.",
            "The user will be asked to fill in their email address.",
            "The user will be asked to fill in their phone number.",
            "The user will be asked to fill in their zip code.",
            "The user will be asked to fill in their street address.",
            "The user will be asked to fill in their city.",
            "The user will be asked to fill in their region part of the address (for example, state for US, province for Canada).",
            "The user will be asked to fill in their country.",
            "The user will be asked to fill in their work email address.",
            "The user will be asked to fill in their company name.",
            "The user will be asked to fill in their work phone.",
            "The user will be asked to fill in their job title.",
            "The user will be asked to fill in their CPF for Brazil users.",
            "The user will be asked to fill in their DNI for Argentina users.",
            "The user will be asked to fill in their DNI for Peru users.",
            "The user will be asked to fill in their RUT for Chile users.",
            "The user will be asked to fill in their CC for Colombia users.",
            "The user will be asked to fill in their CI for Ecuador users.",
            "The user will be asked to fill in their RFC for Mexico users.",
            "The user will be asked to fill in their first name. This field can not be set at the same time as FULL_NAME.",
            "The user will be asked to fill in their last name. This field can not be set at the same time as FULL_NAME.",
            "Question: \"Which model are you interested in?\" Category: \"Auto\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Which type of vehicle are you interested in?\" Category: \"Auto\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your preferred dealership?\" Category: \"Auto\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"When do you plan on purchasing a vehicle?\" Category: \"Auto\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Do you own a vehicle?\" Category: \"Auto\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What vehicle ownership option are you interested in?\" Category: \"Auto\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What type of vehicle condition are you interested in?\" Category: \"Auto\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What size is your company?\" Category: \"Business\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your annual sales volume?\" Category: \"Business\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"How many years have you been in business?\" Category: \"Business\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your job department?\" Category: \"Business\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your job role?\" Category: \"Business\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 18 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 19 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 20 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 21 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 22 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 23 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 24 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 25 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 26 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 27 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 28 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 29 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 30 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 31 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 32 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 33 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 34 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 35 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 36 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 37 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 38 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 39 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 40 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 41 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 42 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 43 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 44 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 45 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 46 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 47 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 48 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 49 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 50 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 51 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 52 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 53 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 54 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 55 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 56 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 57 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 58 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 59 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 60 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 61 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 62 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 63 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 64 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 65 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Which program are you interested in?\" Category: \"Education\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Which course are you interested in?\" Category: \"Education\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Which product are you interested in?\" Category: \"General\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Which service are you interested in?\" Category: \"General\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Which offer are you interested in?\" Category: \"General\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Which category are you interested in?\" Category: \"General\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your preferred method of contact?\" Category: \"General\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your preferred location?\" Category: \"General\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is the best time to contact you?\" Category: \"General\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"When are you looking to make a purchase?\" Category: \"General\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"How many years of work experience do you have?\" Category: \"Jobs\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What industry do you work in?\" Category: \"Jobs\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your highest level of education?\" Category: \"Jobs\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What type of property are you looking for?\" Category: \"Real Estate\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What do you need a realtor's help with?\" Category: \"Real Estate\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What neighborhood are you interested in?\" Category: \"Real Estate\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What price range are you looking for?\" Category: \"Real Estate\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"How many bedrooms are you looking for?\" Category: \"Real Estate\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you looking for a fully furnished property?\" Category: \"Real Estate\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you looking for properties that allow pets?\" Category: \"Real Estate\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is the next product you plan to purchase?\" Category: \"Retail\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Would you like to sign up for an event?\" Category: \"Retail\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Where are you interested in shopping?\" Category: \"Retail\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your favorite brand?\" Category: \"Retail\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Which type of valid commercial license do you have?\" Category: \"Transportation\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Interested in booking an event?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your destination country?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your destination city?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your departure country?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your departure city?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your departure date?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your return date?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"How many people are you traveling with?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your travel budget?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Where do you want to stay during your travel?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields."
          ]
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__AdDemandGenCarouselCardAsset": {
      "type": "object",
      "properties": {
        "asset": {
          "type": "string",
          "description": "The Asset resource name of this discovery carousel card."
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__AdDemandGenCarouselCardAsset",
      "description": "A Demand Gen carousel card asset used inside an ad."
    },
    "GoogleAdsGoogleadsV23Common__FixedCpmTargetFrequencyGoalInfo": {
      "type": "object",
      "properties": {
        "targetCount": {
          "type": "string",
          "format": "int64",
          "description": "Target frequency count represents the number of times an advertiser wants to show the ad to target a single user."
        },
        "timeUnit": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Optimize bidding to reach target frequency in 30 days."
          ],
          "description": "Time window expressing the period over which you want to reach the specified target_count.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MONTHLY"
          ]
        }
      },
      "description": "Target frequency bidding goal details for Fixed CPM bidding strategy. Only relevant if the goal of the bidding strategy is `TARGET_FREQUENCY`.",
      "id": "GoogleAdsGoogleadsV23Common__FixedCpmTargetFrequencyGoalInfo"
    },
    "GoogleAdsGoogleadsV23Services__RemarketingActionOperation": {
      "description": "A single operation (create, update) on a remarketing action.",
      "id": "GoogleAdsGoogleadsV23Services__RemarketingActionOperation",
      "properties": {
        "updateMask": {
          "type": "string",
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new remarketing action.",
          "$ref": "GoogleAdsGoogleadsV23Resources__RemarketingAction"
        },
        "update": {
          "description": "Update operation: The remarketing action is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV23Resources__RemarketingAction"
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources_Recommendation_OptimizeAdRotationRecommendation": {
      "description": "The Optimize Ad Rotation recommendation.",
      "type": "object",
      "properties": {},
      "id": "GoogleAdsGoogleadsV23Resources_Recommendation_OptimizeAdRotationRecommendation"
    },
    "GoogleAdsGoogleadsV23Services__MutateUserListCustomerTypesRequest": {
      "id": "GoogleAdsGoogleadsV23Services__MutateUserListCustomerTypesRequest",
      "properties": {
        "validateOnly": {
          "type": "boolean",
          "description": "Optional. If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "partialFailure": {
          "type": "boolean",
          "description": "Optional. If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "operations": {
          "description": "Required. The list of operations to perform on the user list customer types.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__UserListCustomerTypeOperation"
          },
          "type": "array"
        }
      },
      "type": "object",
      "description": "Request message for UserListCustomerTypeService.MutateUserListCustomerTypes."
    },
    "GoogleAdsGoogleadsV23Resources_Recommendation_EnhancedCpcOptInRecommendation": {
      "type": "object",
      "properties": {},
      "description": "The Enhanced Cost-Per-Click Opt-In recommendation.",
      "id": "GoogleAdsGoogleadsV23Resources_Recommendation_EnhancedCpcOptInRecommendation"
    },
    "GoogleAdsGoogleadsV23Services__MutateCustomerCustomizerResult": {
      "id": "GoogleAdsGoogleadsV23Services__MutateCustomerCustomizerResult",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        },
        "customerCustomizer": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CustomerCustomizer",
          "description": "The mutated CustomerCustomizer with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\"."
        }
      },
      "description": "The result for the customizer attribute mutate.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__AgeRangeView": {
      "properties": {
        "resourceName": {
          "readOnly": true,
          "type": "string",
          "description": "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}`"
        }
      },
      "type": "object",
      "description": "An age range view.",
      "id": "GoogleAdsGoogleadsV23Resources__AgeRangeView"
    },
    "GoogleAdsGoogleadsV23Services__GenerateAdGroupThemesResponse": {
      "description": "Response message for KeywordPlanIdeaService.GenerateAdGroupThemes.",
      "properties": {
        "unusableAdGroups": {
          "description": "A list of provided AdGroups that could not be used as suggestions.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__UnusableAdGroup"
          },
          "type": "array"
        },
        "adGroupKeywordSuggestions": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__AdGroupKeywordSuggestion"
          },
          "description": "A list of suggested AdGroup/keyword pairings.",
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__GenerateAdGroupThemesResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateAdGroupLabelResult": {
      "description": "The result for an ad group label mutate.",
      "id": "GoogleAdsGoogleadsV23Services__MutateAdGroupLabelResult",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources_Invoice_CampaignSummary": {
      "id": "GoogleAdsGoogleadsV23Resources_Invoice_CampaignSummary",
      "properties": {
        "campaignDescription": {
          "type": "string",
          "description": "Output only. The description of the campaign. This is generally the same as the campaign name, but may differ.",
          "readOnly": true
        },
        "quantity": {
          "type": "string",
          "description": "Output only. The quantity served for the given unit of measure.",
          "readOnly": true,
          "format": "int64"
        },
        "amountMicros": {
          "readOnly": true,
          "description": "Output only. The amount attributable to this campaign for the given unit of measure during the service period, in micros. The currency code for this amount is the same as the Invoice.currency_code.",
          "type": "string",
          "format": "int64"
        },
        "unitOfMeasure": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CLICKS",
            "IMPRESSIONS",
            "ACQUISITIONS",
            "PHONE_CALLS",
            "VIDEO_PLAYS",
            "DAYS",
            "AUDIO_PLAYS",
            "ENGAGEMENTS",
            "SECONDS",
            "LEADS",
            "GUEST_STAYS",
            "HOURS"
          ],
          "type": "string",
          "description": "Output only. The unit of measure for the quantity served.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Clicks as unit of measure.",
            "Impressions as unit of measure.",
            "Acquisitions as unit of measure.",
            "Phone calls as unit of measure.",
            "Video plays as unit of measure.",
            "Days as unit of measure.",
            "Audio plays as unit of measure.",
            "Engagements as unit of measure.",
            "Seconds as unit of measure.",
            "Leads as unit of measure.",
            "Guest stays as unit of measure.",
            "Hours as unit of measure."
          ]
        }
      },
      "type": "object",
      "description": "Represents campaign level billable cost information associated with an account budget."
    },
    "GoogleAdsGoogleadsV23Common__CustomerThirdPartyViewabilityIntegrationPartner": {
      "description": "Container for third party viewability integration data for Customer.",
      "id": "GoogleAdsGoogleadsV23Common__CustomerThirdPartyViewabilityIntegrationPartner",
      "properties": {
        "viewabilityIntegrationPartner": {
          "description": "Allowed third party integration partners for YouTube viewability verification.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DOUBLE_VERIFY",
            "INTEGRAL_AD_SCIENCE"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "DoubleVerify.",
            "Integral Ad Science."
          ],
          "type": "string"
        },
        "allowShareCost": {
          "type": "boolean",
          "description": "If true, cost data can be shared with this vendor."
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__SuggestKeywordThemeConstantsResponse": {
      "id": "GoogleAdsGoogleadsV23Services__SuggestKeywordThemeConstantsResponse",
      "description": "Response message for KeywordThemeConstantService.SuggestKeywordThemeConstants.",
      "type": "object",
      "properties": {
        "keywordThemeConstants": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Resources__KeywordThemeConstant"
          },
          "description": "Smart Campaign keyword theme suggestions.",
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__ProductCategoryConstant": {
      "type": "object",
      "properties": {
        "state": {
          "description": "Output only. State of the product category.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The category is enabled.",
            "The category is obsolete. Used only for reporting purposes."
          ],
          "type": "string",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "OBSOLETE"
          ]
        },
        "localizations": {
          "description": "Output only. List of all available localizations of the product category.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Resources_ProductCategoryConstant_ProductCategoryLocalization"
          },
          "readOnly": true,
          "type": "array"
        },
        "resourceName": {
          "description": "Output only. The resource name of the product category. Product category resource names have the form: `productCategoryConstants/{level}~{category_id}`",
          "readOnly": true,
          "type": "string"
        },
        "categoryId": {
          "format": "int64",
          "description": "Output only. The ID of the product category. This ID is equivalent to the google_product_category ID as described in this article: https://support.google.com/merchants/answer/6324436.",
          "readOnly": true,
          "type": "string"
        },
        "productCategoryConstantParent": {
          "description": "Output only. Resource name of the parent product category.",
          "readOnly": true,
          "type": "string"
        },
        "level": {
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Level 1.",
            "Level 2.",
            "Level 3.",
            "Level 4.",
            "Level 5."
          ],
          "description": "Output only. Level of the product category.",
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "LEVEL1",
            "LEVEL2",
            "LEVEL3",
            "LEVEL4",
            "LEVEL5"
          ]
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__ProductCategoryConstant",
      "description": "A Product Category."
    },
    "GoogleAdsGoogleadsV23Resources_Invoice_AccountBudgetSummary": {
      "properties": {
        "overdeliveryAmountMicros": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The pretax overdelivery amount attributable to this budget during the service period, in micros (negative value).",
          "format": "int64"
        },
        "purchaseOrderNumber": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The purchase order number of the account budget. It appears on the invoice PDF as \"Purchase order\"."
        },
        "taxAmountMicros": {
          "type": "string",
          "format": "int64",
          "description": "Output only. The tax amount attributable to this budget during the service period, in micros.",
          "readOnly": true
        },
        "totalAmountMicros": {
          "type": "string",
          "description": "Output only. The total amount attributable to this budget during the service period, in micros. This equals the sum of the account budget subtotal amount and the account budget tax amount.",
          "readOnly": true,
          "format": "int64"
        },
        "billedAmountMicros": {
          "type": "string",
          "format": "int64",
          "readOnly": true,
          "description": "Output only. The pretax billed amount attributable to this budget during the service period, in micros. This does not account for any adjustments."
        },
        "billableActivityDateRange": {
          "$ref": "GoogleAdsGoogleadsV23Common__DateRange",
          "description": "Output only. The billable activity date range of the account budget, within the service date range of this invoice. The end date is inclusive. This can be different from the account budget's start and end time.",
          "readOnly": true
        },
        "invalidActivitySummaries": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Resources_Invoice_InvalidActivitySummary"
          },
          "type": "array",
          "readOnly": true,
          "description": "Output only. The list of summarized invalid activity credits with original linkages."
        },
        "customer": {
          "type": "string",
          "description": "Output only. The resource name of the customer associated with this account budget. This contains the customer ID, which appears on the invoice PDF as \"Account ID\". Customer resource names have the form: `customers/{customer_id}`",
          "readOnly": true
        },
        "campaignSummaries": {
          "readOnly": true,
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Resources_Invoice_CampaignSummary"
          },
          "type": "array",
          "description": "Output only. The list of summarized campaign level information associated with this account budget."
        },
        "invalidActivityAmountMicros": {
          "readOnly": true,
          "description": "Output only. The pretax invalid activity amount attributable to this budget in previous months, in micros (negative value).",
          "type": "string",
          "format": "int64"
        },
        "accountBudgetName": {
          "type": "string",
          "description": "Output only. The name of the account budget. It appears on the invoice PDF as \"Account budget\".",
          "readOnly": true
        },
        "customerDescriptiveName": {
          "description": "Output only. The descriptive name of the account budget's customer. It appears on the invoice PDF as \"Account\".",
          "readOnly": true,
          "type": "string"
        },
        "accountBudget": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The resource name of the account budget associated with this summarized billable cost. AccountBudget resource names have the form: `customers/{customer_id}/accountBudgets/{account_budget_id}`"
        },
        "servedAmountMicros": {
          "type": "string",
          "readOnly": true,
          "format": "int64",
          "description": "Output only. The pretax served amount attributable to this budget during the service period, in micros. This is only useful to reconcile invoice and delivery data."
        },
        "subtotalAmountMicros": {
          "readOnly": true,
          "description": "Output only. The pretax subtotal amount attributable to this budget during the service period, in micros.",
          "type": "string",
          "format": "int64"
        }
      },
      "description": "Represents a summarized account budget billable cost.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources_Invoice_AccountBudgetSummary"
    },
    "GoogleAdsGoogleadsV23Resources__ContactDetails": {
      "type": "object",
      "description": "Fields containing consumer contact details.",
      "id": "GoogleAdsGoogleadsV23Resources__ContactDetails",
      "properties": {
        "phoneNumber": {
          "description": "Output only. Consumer phone number in E164 format.",
          "type": "string",
          "readOnly": true
        },
        "consumerName": {
          "description": "Output only. Consumer name if consumer provided name from Message or Booking form on google.com",
          "type": "string",
          "readOnly": true
        },
        "email": {
          "description": "Output only. Consumer email address.",
          "type": "string",
          "readOnly": true
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateCustomerAssetsResponse": {
      "description": "Response message for a customer asset mutate.",
      "id": "GoogleAdsGoogleadsV23Services__MutateCustomerAssetsResponse",
      "type": "object",
      "properties": {
        "results": {
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomerAssetResult"
          },
          "type": "array"
        },
        "partialFailureError": {
          "$ref": "GoogleRpc__Status",
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error."
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__LocationGroupInfo": {
      "properties": {
        "radiusUnits": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "METERS",
            "MILES",
            "MILLI_MILES"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Meters",
            "Miles",
            "Milli Miles"
          ],
          "description": "Unit of the radius. Miles and meters are supported for geo target constants. Milli miles and meters are supported for feed item sets and asset sets. This is required and must be set in CREATE operations.",
          "type": "string"
        },
        "feedItemSets": {
          "type": "array",
          "description": "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. Cannot be set with AssetSet fields.",
          "items": {
            "type": "string"
          }
        },
        "radius": {
          "format": "int64",
          "type": "string",
          "description": "Distance in units specifying the radius around targeted locations. This is required and must be set in CREATE operations."
        },
        "geoTargetConstants": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "Geo target constant(s) restricting the scope of the geographic area within the feed. Currently only one geo target constant is allowed. Cannot be set with AssetSet fields."
        },
        "enableCustomerLevelLocationAssetSet": {
          "type": "boolean",
          "description": "Denotes that the latest customer level asset set is used for targeting. Used with radius and radius_units. Cannot be used with feed, geo target constants or feed item sets. When using asset sets, either this field or location_group_asset_sets should be specified. Both cannot be used at the same time. This can only be set in CREATE operations."
        },
        "locationGroupAssetSets": {
          "description": "AssetSets whose Assets 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 feed, geo target constants or feed item sets. When using asset sets, either this field or enable_customer_level_location_asset_set should be specified. Both cannot be used at the same time. This can only be set in CREATE operations.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__LocationGroupInfo",
      "description": "A radius around a list of locations specified through a feed or assetSet."
    },
    "GoogleAdsGoogleadsV23Common__MapsLocationSet": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__MapsLocationSet",
      "description": "Wrapper for multiple maps location sync data",
      "properties": {
        "mapsLocations": {
          "type": "array",
          "description": "Required. A list of maps location info that user manually synced in.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__MapsLocationInfo"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__CampaignToForecast": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__CampaignToForecast",
      "properties": {
        "languageConstants": {
          "description": "The list of resource names of languages to be targeted. The resource name is of the format \"languageConstants/{criterion_id}\". See https://developers.google.com/google-ads/api/data/codes-formats#languages for the list of language criterion codes.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "adGroups": {
          "type": "array",
          "description": "The ad groups in the new campaign to forecast.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__ForecastAdGroup"
          }
        },
        "biddingStrategy": {
          "$ref": "GoogleAdsGoogleadsV23Services_CampaignToForecast_CampaignBiddingStrategy",
          "description": "Required. The bidding strategy for the campaign."
        },
        "conversionRate": {
          "format": "double",
          "description": "The expected conversion rate (number of conversions divided by number of total clicks) as defined by the user. This value is expressed as a decimal value, so an expected conversion rate of 2% should be entered as 0.02. If left empty, an estimated conversion rate will be used.",
          "type": "number"
        },
        "negativeKeywords": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__KeywordInfo"
          },
          "type": "array",
          "description": "The list of negative keywords to be used in the campaign when doing the forecast."
        },
        "keywordPlanNetwork": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "GOOGLE_SEARCH",
            "GOOGLE_SEARCH_AND_PARTNERS"
          ],
          "description": "Required. The network used for targeting.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Google Search.",
            "Google Search + Search partners."
          ],
          "type": "string"
        },
        "geoModifiers": {
          "description": "Locations to be targeted. Locations must be unique.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__CriterionBidModifier"
          },
          "type": "array"
        }
      },
      "description": "A campaign to do a keyword campaign forecast."
    },
    "GoogleAdsGoogleadsV23Common__ProximityInfo": {
      "description": "A Proximity criterion. The geo point and radius determine what geographical area is included. The address is a description of the geo point that does not affect ad serving. There are two ways to create a proximity. First, by setting an address and radius. The geo point will be automatically computed. Second, by setting a geo point and radius. The address is an optional label that won't be validated.",
      "type": "object",
      "properties": {
        "radius": {
          "format": "double",
          "description": "The radius of the proximity.",
          "type": "number"
        },
        "radiusUnits": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MILES",
            "KILOMETERS"
          ],
          "description": "The unit of measurement of the radius. Default is KILOMETERS.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Miles",
            "Kilometers"
          ],
          "type": "string"
        },
        "address": {
          "description": "Full address.",
          "$ref": "GoogleAdsGoogleadsV23Common__AddressInfo"
        },
        "geoPoint": {
          "$ref": "GoogleAdsGoogleadsV23Common__GeoPointInfo",
          "description": "Latitude and longitude."
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__ProximityInfo"
    },
    "GoogleAdsGoogleadsV23Common__EventAttribute": {
      "id": "GoogleAdsGoogleadsV23Common__EventAttribute",
      "properties": {
        "itemAttribute": {
          "description": "Required. Item attributes of the event.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__EventItemAttribute"
          }
        },
        "eventDateTime": {
          "type": "string",
          "description": "Required. Timestamp at which the event happened. The format is YYYY-MM-DD HH:MM:SS[+/-HH:MM], where [+/-HH:MM] is an optional timezone offset from UTC. If the offset is absent, the API will use the account's timezone as default."
        },
        "event": {
          "description": "Required. Advertiser defined event to be used for remarketing. The accepted values are \"Viewed\", \"Cart\", \"Purchased\" and \"Recommended\".",
          "type": "string"
        }
      },
      "description": "Advertiser defined events and their attributes. All the values in the nested fields are required.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__VideoCustomer": {
      "type": "object",
      "properties": {
        "thirdPartyIntegrationPartners": {
          "description": "Third Party integration partners.",
          "$ref": "GoogleAdsGoogleadsV23Common__CustomerThirdPartyIntegrationPartners"
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__VideoCustomer",
      "description": "Video specific information about a Customer."
    },
    "GoogleAdsGoogleadsV23Services__MutateAssetGroupsResponse": {
      "type": "object",
      "description": "Response message for an asset group mutate.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "type": "array",
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateAssetGroupResult"
          }
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateAssetGroupsResponse"
    },
    "GoogleAdsGoogleadsV23Resources__BusinessRegistrationNumber": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__BusinessRegistrationNumber",
      "properties": {
        "number": {
          "description": "Output only. Government-issued number for the business.",
          "type": "string",
          "readOnly": true
        }
      },
      "description": "A proto holding information specific to a local services business registration number."
    },
    "GoogleAdsGoogleadsV23Common__LifeEventSegment": {
      "description": "Live event segment.",
      "id": "GoogleAdsGoogleadsV23Common__LifeEventSegment",
      "properties": {
        "lifeEvent": {
          "description": "The life event resource.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__RunOfflineUserDataJobRequest": {
      "properties": {
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__RunOfflineUserDataJobRequest",
      "description": "Request message for OfflineUserDataJobService.RunOfflineUserDataJob."
    },
    "GoogleAdsGoogleadsV23Common__AgeDimension": {
      "properties": {
        "includeUndetermined": {
          "type": "boolean",
          "description": "Include users whose age is not determined."
        },
        "ageRanges": {
          "description": "Contiguous age range to be included in the dimension.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AgeSegment"
          },
          "type": "array"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__AgeDimension",
      "description": "Dimension specifying users by their age."
    },
    "GoogleAdsGoogleadsV23Resources_Campaign_OptimizationGoalSetting": {
      "type": "object",
      "description": "Optimization goal setting for this campaign, which includes a set of optimization goal types.",
      "id": "GoogleAdsGoogleadsV23Resources_Campaign_OptimizationGoalSetting",
      "properties": {
        "optimizationGoalTypes": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "CALL_CLICKS",
              "DRIVING_DIRECTIONS",
              "APP_PRE_REGISTRATION"
            ],
            "enumDescriptions": [
              "Not specified.",
              "Used as a return value only. Represents value unknown in this version.",
              "Optimize for call clicks. Call click conversions are times people selected 'Call' to contact a store after viewing an ad.",
              "Optimize for driving directions. Driving directions conversions are times people selected 'Get directions' to navigate to a store after viewing an ad.",
              "Optimize for pre-registration. Pre-registration conversions are the number of pre-registration signups to receive a notification when the app is released."
            ]
          },
          "description": "The list of optimization goal types."
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__CustomParameter": {
      "id": "GoogleAdsGoogleadsV23Common__CustomParameter",
      "type": "object",
      "description": "A mapping that can be used by custom parameter tags in a `tracking_url_template`, `final_urls`, or `mobile_final_urls`.",
      "properties": {
        "key": {
          "type": "string",
          "description": "The key matching the parameter tag name."
        },
        "value": {
          "description": "The value to be substituted.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__IncentiveOffer": {
      "id": "GoogleAdsGoogleadsV23Services__IncentiveOffer",
      "description": "An acquisition incentive offer for a user. An offer means how the user is treated. An offer can have no incentive or multiple incentives.",
      "type": "object",
      "properties": {
        "consolidatedTermsAndConditionsUrl": {
          "type": "string",
          "description": "Optional. The URL of the terms and conditions for the incentive offer."
        },
        "cyoIncentives": {
          "$ref": "GoogleAdsGoogleadsV23Services__CyoIncentives",
          "description": "CYO incentives. Set when type is CYO_INCENTIVE."
        },
        "type": {
          "type": "string",
          "description": "Required. The type of this acquisition incentive offer.",
          "enumDescriptions": [
            "Unknown offer type. Should not be used as a value explicitly.",
            "Unknown offer type.",
            "An offer with no incentive.",
            "A CYO (Choose-Your-Own) offer with multiple incentives to choose from."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NO_INCENTIVE",
            "CYO_INCENTIVE"
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__AdGroupAdAssetPolicySummary": {
      "id": "GoogleAdsGoogleadsV23Resources__AdGroupAdAssetPolicySummary",
      "type": "object",
      "description": "Contains policy information for an ad group ad asset.",
      "properties": {
        "approvalStatus": {
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "Will not serve.",
            "Serves with restrictions.",
            "Serves without restrictions.",
            "Will not serve in targeted countries, but may serve for users who are searching for information about the targeted countries."
          ],
          "type": "string",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DISAPPROVED",
            "APPROVED_LIMITED",
            "APPROVED",
            "AREA_OF_INTEREST_ONLY"
          ],
          "description": "Output only. The overall approval status of this ad group ad asset, calculated based on the status of its individual policy topic entries."
        },
        "reviewStatus": {
          "description": "Output only. Where in the review process this ad group ad asset is.",
          "readOnly": true,
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "Currently under review.",
            "Primary review complete. Other reviews may be continuing.",
            "The resource has been resubmitted for approval or its policy decision has been appealed.",
            "The resource is eligible and may be serving but could still undergo further review."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "REVIEW_IN_PROGRESS",
            "REVIEWED",
            "UNDER_APPEAL",
            "ELIGIBLE_MAY_SERVE"
          ]
        },
        "policyTopicEntries": {
          "type": "array",
          "description": "Output only. The list of policy findings for the ad group ad asset.",
          "readOnly": true,
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__PolicyTopicEntry"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateAssetGroupSignalsRequest": {
      "type": "object",
      "properties": {
        "responseContentType": {
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "type": "string",
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation."
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "operations": {
          "description": "Required. The list of operations to perform on individual asset group signals.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__AssetGroupSignalOperation"
          },
          "type": "array"
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateAssetGroupSignalsRequest",
      "description": "Request message for AssetGroupSignalService.MutateAssetGroupSignals."
    },
    "GoogleAdsGoogleadsV23Resources__ParentalStatusView": {
      "properties": {
        "resourceName": {
          "description": "Output only. The resource name of the parental status view. Parental Status view resource names have the form: `customers/{customer_id}/parentalStatusViews/{ad_group_id}~{criterion_id}`",
          "readOnly": true,
          "type": "string"
        }
      },
      "description": "A parental status view.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__ParentalStatusView"
    },
    "GoogleAdsGoogleadsV23Services__CustomAudienceOperation": {
      "description": "A single operation (create, update) on a custom audience.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__CustomAudienceOperation",
      "properties": {
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask",
          "type": "string"
        },
        "update": {
          "description": "Update operation: The custom audience is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV23Resources__CustomAudience"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new custom audience.",
          "$ref": "GoogleAdsGoogleadsV23Resources__CustomAudience"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed custom audience is expected, in this format: `customers/{customer_id}/customAudiences/{custom_audience_id}`"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateCampaignBudgetResult": {
      "id": "GoogleAdsGoogleadsV23Services__MutateCampaignBudgetResult",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        },
        "campaignBudget": {
          "description": "The mutated campaign budget with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV23Resources__CampaignBudget"
        }
      },
      "type": "object",
      "description": "The result for the campaign budget mutate."
    },
    "GoogleAdsGoogleadsV23Services__ListBenchmarksLocationsResponse": {
      "properties": {
        "benchmarksLocations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__BenchmarksLocation"
          },
          "type": "array",
          "description": "The list of locations supported for benchmarks data."
        }
      },
      "description": "Response message for BenchmarksService.ListBenchmarksLocations.",
      "id": "GoogleAdsGoogleadsV23Services__ListBenchmarksLocationsResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__HotelAdvanceBookingWindowInfo": {
      "type": "object",
      "properties": {
        "minDays": {
          "type": "string",
          "format": "int64",
          "description": "Low end of the number of days prior to the stay."
        },
        "maxDays": {
          "type": "string",
          "description": "High end of the number of days prior to the stay.",
          "format": "int64"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__HotelAdvanceBookingWindowInfo",
      "description": "Criterion for number of days prior to the stay the booking is being made."
    },
    "GoogleAdsGoogleadsV23Resources_Recommendation_SearchPartnersOptInRecommendation": {
      "properties": {},
      "description": "The Search Partners Opt-In recommendation.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources_Recommendation_SearchPartnersOptInRecommendation"
    },
    "GoogleAdsGoogleadsV23Resources__LocalServicesLeadConversation": {
      "description": "Data from Local Services Lead Conversation. Contains details of Lead Conversation which is generated when user calls, messages or books service from advertiser. These are appended to a Lead. More info: https://ads.google.com/local-services-ads",
      "id": "GoogleAdsGoogleadsV23Resources__LocalServicesLeadConversation",
      "type": "object",
      "properties": {
        "phoneCallDetails": {
          "description": "Output only. Details of phone call conversation in case of PHONE_CALL.",
          "$ref": "GoogleAdsGoogleadsV23Resources__PhoneCallDetails",
          "readOnly": true
        },
        "eventDateTime": {
          "description": "Output only. The date time at which lead conversation was created by Local Services Ads. The format is \"YYYY-MM-DD HH:MM:SS\" in the Google Ads account's timezone. Examples: \"2018-03-05 09:15:00\" or \"2018-02-01 14:34:30\"",
          "readOnly": true,
          "type": "string"
        },
        "conversationChannel": {
          "readOnly": true,
          "description": "Output only. Type of GLS lead conversation, EMAIL, MESSAGE, PHONE_CALL, SMS, etc.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Email lead conversation.",
            "Message lead conversation.",
            "Phone call lead conversation.",
            "SMS lead conversation.",
            "Booking lead conversation.",
            "WhatsApp lead conversation.",
            "Lead conversation created through Google Ads API."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EMAIL",
            "MESSAGE",
            "PHONE_CALL",
            "SMS",
            "BOOKING",
            "WHATSAPP",
            "ADS_API"
          ],
          "type": "string"
        },
        "id": {
          "readOnly": true,
          "description": "Output only. ID of this Lead Conversation.",
          "format": "int64",
          "type": "string"
        },
        "resourceName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the local services lead conversation data. Local Services Lead Conversation resource name have the form `customers/{customer_id}/localServicesLeadConversation/{local_services_lead_conversation_id}`"
        },
        "participantType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADVERTISER",
            "CONSUMER"
          ],
          "readOnly": true,
          "description": "Output only. Type of participant in the lead conversation, ADVERTISER or CONSUMER.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Local Services Ads Provider participant.",
            "Local Services Ads Consumer participant."
          ]
        },
        "messageDetails": {
          "$ref": "GoogleAdsGoogleadsV23Resources__MessageDetails",
          "readOnly": true,
          "description": "Output only. Details of message conversation in case of EMAIL, MESSAGE or SMS."
        },
        "lead": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Resource name of Lead associated to the Lead Conversation."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateCustomerNegativeCriteriaRequest": {
      "description": "Request message for CustomerNegativeCriterionService.MutateCustomerNegativeCriteria.",
      "type": "object",
      "properties": {
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "operations": {
          "description": "Required. The list of operations to perform on individual criteria.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__CustomerNegativeCriterionOperation"
          }
        },
        "responseContentType": {
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ]
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateCustomerNegativeCriteriaRequest"
    },
    "GoogleAdsGoogleadsV23Resources__ClickView": {
      "properties": {
        "keywordInfo": {
          "$ref": "GoogleAdsGoogleadsV23Common__KeywordInfo",
          "readOnly": true,
          "description": "Output only. Basic information about the associated keyword, if it exists."
        },
        "resourceName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the click view. Click view resource names have the form: `customers/{customer_id}/clickViews/{date (yyyy-MM-dd)}~{gclid}`"
        },
        "keyword": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The associated keyword, if one exists and the click corresponds to the SEARCH channel."
        },
        "areaOfInterest": {
          "description": "Output only. The location criteria matching the area of interest associated with the impression.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV23Common__ClickLocation"
        },
        "userList": {
          "readOnly": true,
          "description": "Output only. The associated user list, if one exists.",
          "type": "string"
        },
        "adGroupAd": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The associated ad."
        },
        "gclid": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The Google Click ID."
        },
        "pageNumber": {
          "type": "string",
          "description": "Output only. Page number in search results where the ad was shown.",
          "readOnly": true,
          "format": "int64"
        },
        "campaignLocationTarget": {
          "type": "string",
          "description": "Output only. The associated campaign location target, if one exists.",
          "readOnly": true
        },
        "locationOfPresence": {
          "readOnly": true,
          "description": "Output only. The location criteria matching the location of presence associated with the impression.",
          "$ref": "GoogleAdsGoogleadsV23Common__ClickLocation"
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__ClickView",
      "type": "object",
      "description": "A click view with metrics aggregated at each click level, including both valid and invalid clicks. For non-Search campaigns, metrics.clicks represents the number of valid and invalid interactions. Queries including ClickView must have a filter limiting the results to one day and can be requested for dates back to 90 days before the time of the request. GCLIDs are not available in this report for App Campaigns for Installs (ACi) and App Campaigns for Pre-registration (ACpre)."
    },
    "GoogleAdsGoogleadsV23Services__AdGroupAssetOperation": {
      "description": "A single operation (create, update, remove) on an ad group asset.",
      "id": "GoogleAdsGoogleadsV23Services__AdGroupAssetOperation",
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new ad group asset.",
          "$ref": "GoogleAdsGoogleadsV23Resources__AdGroupAsset"
        },
        "remove": {
          "description": "Remove operation: A resource name for the removed ad group asset is expected, in this format: `customers/{customer_id}/adGroupAssets/{ad_group_id}~{asset_id}~{field_type}`",
          "type": "string"
        },
        "update": {
          "$ref": "GoogleAdsGoogleadsV23Resources__AdGroupAsset",
          "description": "Update operation: The ad group asset is expected to have a valid resource name."
        },
        "updateMask": {
          "format": "google-fieldmask",
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__AudienceCompositionAttribute": {
      "id": "GoogleAdsGoogleadsV23Services__AudienceCompositionAttribute",
      "description": "An audience attribute with metadata and metrics.",
      "type": "object",
      "properties": {
        "metrics": {
          "description": "Share and index metrics for the attribute.",
          "$ref": "GoogleAdsGoogleadsV23Services__AudienceCompositionMetrics"
        },
        "attributeMetadata": {
          "$ref": "GoogleAdsGoogleadsV23Common__AudienceInsightsAttributeMetadata",
          "description": "The attribute with its metadata."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__CampaignDraftOperation": {
      "properties": {
        "remove": {
          "description": "Remove operation: The campaign draft is expected to have a valid resource name, in this format: `customers/{customer_id}/campaignDrafts/{base_campaign_id}~{draft_id}`",
          "type": "string"
        },
        "update": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CampaignDraft",
          "description": "Update operation: The campaign draft is expected to have a valid resource name."
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new campaign draft.",
          "$ref": "GoogleAdsGoogleadsV23Resources__CampaignDraft"
        },
        "updateMask": {
          "format": "google-fieldmask",
          "type": "string",
          "description": "FieldMask that determines which resource fields are modified in an update."
        }
      },
      "description": "A single operation (create, update, remove) on a campaign draft.",
      "id": "GoogleAdsGoogleadsV23Services__CampaignDraftOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateCampaignDraftsResponse": {
      "properties": {
        "partialFailureError": {
          "$ref": "GoogleRpc__Status",
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error."
        },
        "results": {
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateCampaignDraftResult"
          },
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateCampaignDraftsResponse",
      "description": "Response message for campaign draft mutate.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__LogicalUserListOperandInfo": {
      "type": "object",
      "properties": {
        "userList": {
          "type": "string",
          "description": "Resource name of a user list as an operand."
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__LogicalUserListOperandInfo",
      "description": "Operand of logical user list that consists of a user list."
    },
    "GoogleAdsGoogleadsV23Common__LanguageInfo": {
      "id": "GoogleAdsGoogleadsV23Common__LanguageInfo",
      "type": "object",
      "properties": {
        "languageConstant": {
          "description": "The language constant resource name.",
          "type": "string"
        }
      },
      "description": "A language criterion."
    },
    "GoogleAdsGoogleadsV23Common__PromotionBarcodeInfo": {
      "properties": {
        "barcodeContent": {
          "description": "Promotion message to be encoded in the barcode.",
          "type": "string"
        },
        "type": {
          "type": "string",
          "description": "Barcode type used to generate barcode with the correct format.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AZTEC",
            "CODABAR",
            "CODE39",
            "CODE128",
            "DATA_MATRIX",
            "EAN8",
            "EAN13",
            "ITF",
            "PDF417",
            "UPC_A"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Aztec 2D barcode format. Max 350 characters and no links",
            "CODABAR 1D format. Max 12 characters and no links. Supported characters include 0123456789-$:/.+ and optional start and end guards from ABCD.",
            "Code 39 1D format. Max 8 characters and no links. Supported characters include 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. *$/+%.",
            "Code 128 1D format. Max 18 ASCII characters only and no links",
            "Data Matrix 2D barcode format. Max 525 ISO-8859-1 characters only and no links",
            "EAN-8 1D format. The barcode value should be 7 digits (the check digit will be computed automatically) or 8 digits (if you are providing your own check digit).",
            "EAN-13 1D format. The barcode value should be 12 digits (the check digit will be computed automatically) or 13 digits (if you are providing your own check digit).",
            "ITF (Interleaved Two of Five) 1D format. Must be 14 digits long",
            "PDF417 format. Max 140 characters and no links",
            "UPC-A 1D format. The barcode value should be 11 digits (the check digit will be computed automatically) or 12 digits (if you are providing your own check digit)."
          ]
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__PromotionBarcodeInfo",
      "type": "object",
      "description": "Barcode info to generate promotion barcode."
    },
    "GoogleAdsGoogleadsV23Common__DynamicHotelsAndRentalsAsset": {
      "id": "GoogleAdsGoogleadsV23Common__DynamicHotelsAndRentalsAsset",
      "type": "object",
      "description": "A dynamic hotels and rentals asset.",
      "properties": {
        "address": {
          "description": "Address which can be specified in one of the following formats. (1) City, state, code, country, for example, Mountain View, CA, USA. (2) Full address, for example, 123 Boulevard St, Mountain View, CA 94043. (3) Latitude-longitude in the DDD format, for example, 41.40338, 2.17403",
          "type": "string"
        },
        "iosAppStoreId": {
          "description": "iOS app store ID. This is used to check if the user has the app installed on their device before deep linking. If this field is set, then the ios_app_link field must also be present.",
          "format": "int64",
          "type": "string"
        },
        "imageUrl": {
          "description": "Image URL, for example, http://www.example.com/image.png. The image will not be uploaded as image asset.",
          "type": "string"
        },
        "formattedPrice": {
          "description": "Formatted price which can be any characters. If set, this attribute will be used instead of 'price', for example, Starting at $100.00.",
          "type": "string"
        },
        "price": {
          "description": "Price which can be number followed by the alphabetic currency code, ISO 4217 standard. Use '.' as the decimal mark, for example, 100.00 USD.",
          "type": "string"
        },
        "destinationName": {
          "description": "Destination name, for example, Downtown Mountain View.",
          "type": "string"
        },
        "iosAppLink": {
          "description": "iOS deep link, for example, exampleApp://content/page.",
          "type": "string"
        },
        "propertyName": {
          "description": "Required. Property name, for example, Mountain View Hotel. Required.",
          "type": "string"
        },
        "salePrice": {
          "description": "ISO 4217 standard. Use '.' as the decimal mark, for example, 80.00 USD. Must be less than the 'price' field.",
          "type": "string"
        },
        "contextualKeywords": {
          "description": "Contextual keywords, for example, Mountain View \"Hotels\", South Bay hotels.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "description": {
          "description": "Description, for example, Close to SJC Airport.",
          "type": "string"
        },
        "starRating": {
          "format": "int64",
          "type": "string",
          "description": "Star rating. Must be a number between 1 to 5, inclusive."
        },
        "propertyId": {
          "type": "string",
          "description": "Required. Property ID which can be any sequence of letters and digits, and must be unique and match the values of remarketing tag. Required."
        },
        "formattedSalePrice": {
          "type": "string",
          "description": "Formatted sale price which can be any characters. If set, this attribute will be used instead of 'sale price', for example, On sale for $80.00."
        },
        "category": {
          "description": "Category, for example, Hotel suite.",
          "type": "string"
        },
        "androidAppLink": {
          "type": "string",
          "description": "Android deep link, for example, android-app://com.example.android/http/example.com/gizmos?1234."
        },
        "similarPropertyIds": {
          "description": "Similar property IDs.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__GenerateAudienceOverlapInsightsResponse": {
      "type": "object",
      "description": "Response message for AudienceInsightsService.GenerateAudienceOverlapInsights.",
      "id": "GoogleAdsGoogleadsV23Services__GenerateAudienceOverlapInsightsResponse",
      "properties": {
        "dimensionResults": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__DimensionOverlapResult"
          },
          "description": "Lists of attributes and their overlap with the primary attribute, one list per requested dimension."
        },
        "primaryAttributeMetadata": {
          "$ref": "GoogleAdsGoogleadsV23Common__AudienceInsightsAttributeMetadata",
          "description": "Metadata for the primary attribute, including potential YouTube reach."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateAccountBudgetProposalRequest": {
      "properties": {
        "operation": {
          "description": "Required. The operation to perform on an individual account-level budget proposal.",
          "$ref": "GoogleAdsGoogleadsV23Services__AccountBudgetProposalOperation"
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        }
      },
      "description": "Request message for AccountBudgetProposalService.MutateAccountBudgetProposal.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateAccountBudgetProposalRequest"
    },
    "GoogleAdsGoogleadsV23Resources__ProductGroupView": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__ProductGroupView",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "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}`",
          "readOnly": true
        }
      },
      "description": "A product group view."
    },
    "GoogleAdsGoogleadsV23Services__AssetGroupIdentifier": {
      "type": "object",
      "description": "Asset group of the shareable preview.",
      "properties": {
        "assetGroupId": {
          "type": "string",
          "description": "Required. The asset group identifier.",
          "format": "int64"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__AssetGroupIdentifier"
    },
    "GoogleAdsGoogleadsV23Services__GenerateBenchmarksMetricsResponse": {
      "type": "object",
      "properties": {
        "customerMetrics": {
          "$ref": "GoogleAdsGoogleadsV23Services__Metrics",
          "description": "Metrics belonging to the customer."
        },
        "averageBenchmarksMetrics": {
          "$ref": "GoogleAdsGoogleadsV23Services__Metrics",
          "description": "Metrics for the selected benchmarks source."
        }
      },
      "description": "Response message for BenchmarksService.GenerateBenchmarksMetrics.",
      "id": "GoogleAdsGoogleadsV23Services__GenerateBenchmarksMetricsResponse"
    },
    "GoogleAdsGoogleadsV23Services__MutateCustomConversionGoalsRequest": {
      "properties": {
        "responseContentType": {
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "type": "string"
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "operations": {
          "description": "Required. The list of operations to perform on individual custom conversion goal.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__CustomConversionGoalOperation"
          },
          "type": "array"
        }
      },
      "description": "Request message for CustomConversionGoalService.MutateCustomConversionGoals.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateCustomConversionGoalsRequest"
    },
    "GoogleAdsGoogleadsV23Services__GenerateConversionRatesResponse": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__GenerateConversionRatesResponse",
      "properties": {
        "conversionRateSuggestions": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__ConversionRateSuggestion"
          },
          "description": "A list containing conversion rate suggestions. Each repeated element will have an associated product code. Multiple suggestions may share the same product code.",
          "type": "array"
        }
      },
      "description": "Response message for ReachPlanService.GenerateConversionRates, containing conversion rate suggestions for supported plannable products."
    },
    "GoogleAdsGoogleadsV23Services__MutateCampaignLabelsRequest": {
      "description": "Request message for CampaignLabelService.MutateCampaignLabels.",
      "properties": {
        "operations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__CampaignLabelOperation"
          },
          "description": "Required. The list of operations to perform on campaign-label relationships.",
          "type": "array"
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateCampaignLabelsRequest"
    },
    "GoogleAdsGoogleadsV23Common__BrandInfo": {
      "description": "Represents a Brand Criterion used for targeting based on commercial knowledge graph.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__BrandInfo",
      "properties": {
        "entityId": {
          "description": "The Commercial KG MID for the brand.",
          "type": "string"
        },
        "displayName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. A text representation of a brand."
        },
        "status": {
          "readOnly": true,
          "description": "Output only. The status of a brand.",
          "type": "string",
          "enumDescriptions": [
            "No value has been specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Brand is verified and globally available for selection",
            "Brand was globally available in past but is no longer a valid brand (based on business criteria)",
            "Brand is unverified and customer scoped, but can be selected by customer (only who requested for same) for targeting",
            "Was a customer-scoped (unverified) brand, which got approved by business and added to the global list. Its assigned CKG MID should be used instead of this",
            "Was a customer-scoped (unverified) brand, but the request was canceled by customer and this brand id is no longer valid",
            "Was a customer-scoped (unverified) brand, but the request was rejected by internal business team and this brand id is no longer valid"
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "DEPRECATED",
            "UNVERIFIED",
            "APPROVED",
            "CANCELLED",
            "REJECTED"
          ]
        },
        "rejectionReason": {
          "enumDescriptions": [
            "No value has been specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Brand is already present in the commercial brand set.",
            "Brand is already present in the commercial brand set, but is a variant.",
            "Brand information is not correct (eg: URL and name don't match).",
            "Not a valid brand as per Google policy."
          ],
          "description": "Output only. The rejection reason when a brand status is REJECTED.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EXISTING_BRAND",
            "EXISTING_BRAND_VARIANT",
            "INCORRECT_INFORMATION",
            "NOT_A_BRAND"
          ],
          "readOnly": true,
          "type": "string"
        },
        "primaryUrl": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The primary url of a brand."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__CreateProductLinkResponse": {
      "description": "Response message for ProductLinkService.CreateProductLink.",
      "type": "object",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations. Resource name of the product link."
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__CreateProductLinkResponse"
    },
    "GoogleAdsGoogleadsV23Services__MutateCustomerUserAccessInvitationResponse": {
      "properties": {
        "result": {
          "description": "Result for the mutate.",
          "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomerUserAccessInvitationResult"
        }
      },
      "description": "Response message for access invitation mutate.",
      "id": "GoogleAdsGoogleadsV23Services__MutateCustomerUserAccessInvitationResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__ApplyIncentiveResponse": {
      "description": "Response for applying an incentive.",
      "properties": {
        "creationTime": {
          "description": "The timestamp when this incentive was applied. The timestamp is in UTC timezone and in \"yyyy-MM-dd HH:mm:ss\" format.",
          "type": "string"
        },
        "couponCode": {
          "description": "The coupon code of the applied incentive. A globally unique identifier of the applied incentive. This code is separate and distinct from the selected_incentive_id in the request.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__ApplyIncentiveResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateAdGroupCriterionCustomizersRequest": {
      "properties": {
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "responseContentType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ]
        },
        "operations": {
          "type": "array",
          "description": "Required. The list of operations to perform on individual ad group criterion customizers.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__AdGroupCriterionCustomizerOperation"
          }
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        }
      },
      "description": "Request message for AdGroupCriterionCustomizerService.MutateAdGroupCriterionCustomizers.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateAdGroupCriterionCustomizersRequest"
    },
    "GoogleAdsGoogleadsV23Common__StoreAttribute": {
      "id": "GoogleAdsGoogleadsV23Common__StoreAttribute",
      "properties": {
        "storeCode": {
          "description": "Store code from https://support.google.com/business/answer/3370250#storecode",
          "type": "string"
        }
      },
      "type": "object",
      "description": "Store attributes of the transaction."
    },
    "GoogleAdsGoogleadsV23Common__CustomAudienceInfo": {
      "description": "A custom audience criterion.",
      "id": "GoogleAdsGoogleadsV23Common__CustomAudienceInfo",
      "properties": {
        "customAudience": {
          "description": "The CustomAudience resource name.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services_SuggestKeywordThemesResponse_KeywordTheme": {
      "description": "A Smart campaign keyword theme suggestion.",
      "type": "object",
      "properties": {
        "keywordThemeConstant": {
          "$ref": "GoogleAdsGoogleadsV23Resources__KeywordThemeConstant",
          "description": "A Smart campaign keyword theme constant."
        },
        "freeFormKeywordTheme": {
          "description": "A free-form text keyword theme.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services_SuggestKeywordThemesResponse_KeywordTheme"
    },
    "GoogleAdsGoogleadsV23Services__MutateCustomAudiencesRequest": {
      "id": "GoogleAdsGoogleadsV23Services__MutateCustomAudiencesRequest",
      "type": "object",
      "properties": {
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "operations": {
          "description": "Required. The list of operations to perform on individual custom audiences.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__CustomAudienceOperation"
          },
          "type": "array"
        }
      },
      "description": "Request message for CustomAudienceService.MutateCustomAudiences."
    },
    "GoogleAdsGoogleadsV23Services__RateMetrics": {
      "id": "GoogleAdsGoogleadsV23Services__RateMetrics",
      "description": "Average rate metrics. Metrics that represent monetary values are returned in USD by default, if unspecified in the request.",
      "properties": {
        "clickThroughRate": {
          "type": "number",
          "description": "The number of clicks your ad receives (Clicks) divided by the number of times your ad is shown (Impressions).",
          "format": "double"
        },
        "averageCpm": {
          "description": "Average cost-per-thousand impressions (CPM).",
          "type": "number",
          "format": "double"
        },
        "videoCompletionP100Rate": {
          "format": "double",
          "description": "Percentage of impressions where the viewer watched all of your video.",
          "type": "number"
        },
        "trueviewAverageCpv": {
          "description": "The average TrueView cost-per-view (CPV) is defined by the total cost of all ad TrueView views divided by the number of TrueView views.",
          "type": "number",
          "format": "double"
        },
        "interactionRate": {
          "description": "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.",
          "type": "number",
          "format": "double"
        },
        "averageCpi": {
          "description": "The average cost-per-interaction (CPI) is defined by the total cost of all interactions divided by the total number of interactions.",
          "format": "double",
          "type": "number"
        },
        "trueviewViewRate": {
          "description": "Number of completed TrueView views divided by the number of impressions.",
          "type": "number",
          "format": "double"
        },
        "videoCompletionP25Rate": {
          "type": "number",
          "description": "Percentage of impressions where the viewer watched 25% of your video.",
          "format": "double"
        },
        "averageCpe": {
          "format": "double",
          "type": "number",
          "description": "The average cost-per-engagement (CPE) is defined by the total cost of all ad engagements divided by the total number of ad engagements."
        },
        "videoCompletionP75Rate": {
          "description": "Percentage of impressions where the viewer watched 75% of your video.",
          "format": "double",
          "type": "number"
        },
        "videoCompletionP50Rate": {
          "format": "double",
          "description": "Percentage of impressions where the viewer watched 50% of your video.",
          "type": "number"
        },
        "engagementRate": {
          "description": "How often people engage with your ad after it's shown to them. This is the number of ad expansions divided by the number of times your ad is shown.",
          "format": "double",
          "type": "number"
        },
        "averageActiveViewCpm": {
          "format": "double",
          "description": "Average cost-per-thousand viewable impressions.",
          "type": "number"
        },
        "averageCpc": {
          "format": "double",
          "type": "number",
          "description": "The average cost-per-click (CPC) is defined by the total cost of all clicks divided by the total number of clicks received."
        },
        "activeViewViewability": {
          "type": "number",
          "description": "The percentage of time when your ad appeared on an Active View enabled site (measurable impressions) and was viewable (viewable impressions).",
          "format": "double"
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__HotelIdInfo": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__HotelIdInfo",
      "properties": {
        "value": {
          "type": "string",
          "description": "String value of the hotel ID."
        }
      },
      "description": "Advertiser-specific hotel ID."
    },
    "GoogleAdsGoogleadsV23Resources__CampaignBidModifier": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__CampaignBidModifier",
      "description": "Represents a bid-modifiable only criterion at the campaign level.",
      "properties": {
        "criterionId": {
          "format": "int64",
          "type": "string",
          "description": "Output only. The ID of the criterion to bid modify. This field is ignored for mutates.",
          "readOnly": true
        },
        "campaign": {
          "description": "Output only. The campaign to which this criterion belongs.",
          "readOnly": true,
          "type": "string"
        },
        "bidModifier": {
          "type": "number",
          "description": "The modifier for the bid when the criterion matches.",
          "format": "double"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the campaign bid modifier. Campaign bid modifier resource names have the form: `customers/{customer_id}/campaignBidModifiers/{campaign_id}~{criterion_id}`"
        },
        "interactionType": {
          "$ref": "GoogleAdsGoogleadsV23Common__InteractionTypeInfo",
          "description": "Immutable. Criterion for interaction type. Only supported for search campaigns."
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__SmartCampaignSearchTermView": {
      "description": "A Smart campaign search term view.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__SmartCampaignSearchTermView",
      "properties": {
        "campaign": {
          "readOnly": true,
          "description": "Output only. The Smart campaign the search term served in.",
          "type": "string"
        },
        "searchTerm": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The search term."
        },
        "resourceName": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The resource name of the Smart campaign search term view. Smart campaign search term view resource names have the form: `customers/{customer_id}/smartCampaignSearchTermViews/{campaign_id}~{URL-base64_search_term}`"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__CreateDataLinkRequest": {
      "properties": {
        "dataLink": {
          "description": "Required. The data link to be created.",
          "$ref": "GoogleAdsGoogleadsV23Resources__DataLink"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__CreateDataLinkRequest",
      "type": "object",
      "description": "Request message for DataLinkService.CreateDataLink."
    },
    "GoogleAdsGoogleadsV23Services__MutateCustomerNegativeCriteriaResponse": {
      "id": "GoogleAdsGoogleadsV23Services__MutateCustomerNegativeCriteriaResponse",
      "description": "Response message for customer negative criterion mutate.",
      "type": "object",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomerNegativeCriteriaResult"
          },
          "description": "All results for the mutate."
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources_SmartCampaignSetting_PhoneNumber": {
      "type": "object",
      "properties": {
        "phoneNumber": {
          "type": "string",
          "description": "Phone number of the smart campaign."
        },
        "countryCode": {
          "type": "string",
          "description": "Upper-case, two-letter country code as defined by ISO-3166."
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources_SmartCampaignSetting_PhoneNumber",
      "description": "Phone number and country code in smart campaign settings."
    },
    "GoogleAdsGoogleadsV23Common__AudienceSegmentDimension": {
      "id": "GoogleAdsGoogleadsV23Common__AudienceSegmentDimension",
      "properties": {
        "segments": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AudienceSegment"
          },
          "description": "Included audience segments. Users are included if they belong to at least one segment."
        }
      },
      "type": "object",
      "description": "Dimension specifying users by their membership in other audience segments."
    },
    "GoogleAdsGoogleadsV23Common__WebpageConditionInfo": {
      "description": "Logical expression for targeting webpages of an advertiser's website.",
      "properties": {
        "argument": {
          "description": "Argument of webpage targeting condition.",
          "type": "string"
        },
        "operator": {
          "description": "Operator of webpage targeting condition.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EQUALS",
            "CONTAINS"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The argument web condition is equal to the compared web condition.",
            "The argument web condition is part of the compared web condition."
          ]
        },
        "operand": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Operand denoting a webpage URL targeting condition.",
            "Operand denoting a webpage category targeting condition.",
            "Operand denoting a webpage title targeting condition.",
            "Operand denoting a webpage content targeting condition.",
            "Operand denoting a webpage custom label targeting condition."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "URL",
            "CATEGORY",
            "PAGE_TITLE",
            "PAGE_CONTENT",
            "CUSTOM_LABEL"
          ],
          "description": "Operand of webpage targeting condition."
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__WebpageConditionInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__DynamicRealEstateAsset": {
      "type": "object",
      "properties": {
        "listingName": {
          "type": "string",
          "description": "Required. Listing name, for example, Boulevard Bungalow. Required."
        },
        "listingType": {
          "type": "string",
          "description": "Listing type, for example, For sale."
        },
        "price": {
          "type": "string",
          "description": "Price which can be number followed by the alphabetic currency code, ISO 4217 standard. Use '.' as the decimal mark, for example, 200,000.00 USD."
        },
        "cityName": {
          "description": "City name, for example, Mountain View, California.",
          "type": "string"
        },
        "iosAppStoreId": {
          "format": "int64",
          "type": "string",
          "description": "iOS app store ID. This is used to check if the user has the app installed on their device before deep linking. If this field is set, then the ios_app_link field must also be present."
        },
        "formattedPrice": {
          "description": "Formatted price which can be any characters. If set, this attribute will be used instead of 'price', for example, Starting at $200,000.00.",
          "type": "string"
        },
        "address": {
          "description": "Address which can be specified in one of the following formats. (1) City, state, code, country, for example, Mountain View, CA, USA. (2) Full address, for example, 123 Boulevard St, Mountain View, CA 94043. (3) Latitude-longitude in the DDD format, for example, 41.40338, 2.17403",
          "type": "string"
        },
        "description": {
          "type": "string",
          "description": "Description, for example, 3 beds, 2 baths, 1568 sq. ft."
        },
        "imageUrl": {
          "description": "Image URL, for example, http://www.example.com/image.png. The image will not be uploaded as image asset.",
          "type": "string"
        },
        "listingId": {
          "type": "string",
          "description": "Required. Listing ID which can be any sequence of letters and digits, and must be unique and match the values of remarketing tag. Required."
        },
        "iosAppLink": {
          "description": "iOS deep link, for example, exampleApp://content/page.",
          "type": "string"
        },
        "androidAppLink": {
          "type": "string",
          "description": "Android deep link, for example, android-app://com.example.android/http/example.com/gizmos?1234."
        },
        "similarListingIds": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "Similar listing IDs."
        },
        "contextualKeywords": {
          "type": "array",
          "description": "Contextual keywords, for example, For sale; Houses for sale.",
          "items": {
            "type": "string"
          }
        },
        "propertyType": {
          "type": "string",
          "description": "Property type, for example, House."
        }
      },
      "description": "A dynamic real estate asset.",
      "id": "GoogleAdsGoogleadsV23Common__DynamicRealEstateAsset"
    },
    "GoogleAdsGoogleadsV23Services__FetchIncentiveResponse": {
      "id": "GoogleAdsGoogleadsV23Services__FetchIncentiveResponse",
      "type": "object",
      "properties": {
        "incentiveOffer": {
          "$ref": "GoogleAdsGoogleadsV23Services__IncentiveOffer",
          "description": "Required. The acquisition incentive offer for the user."
        }
      },
      "description": "Response from getting the acquisition incentive for a user when they visit a specific marketing page."
    },
    "GoogleAdsGoogleadsV23Resources__Invoice": {
      "id": "GoogleAdsGoogleadsV23Resources__Invoice",
      "properties": {
        "type": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "An invoice with a negative amount. The account receives a credit.",
            "An invoice with a positive amount. The account owes a balance."
          ],
          "description": "Output only. The type of invoice.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CREDIT_MEMO",
            "INVOICE"
          ],
          "readOnly": true,
          "type": "string"
        },
        "accountBudgetSummaries": {
          "readOnly": true,
          "description": "Output only. The list of summarized account budget information associated with this invoice.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Resources_Invoice_AccountBudgetSummary"
          },
          "type": "array"
        },
        "subtotalAmountMicros": {
          "format": "int64",
          "readOnly": true,
          "type": "string",
          "description": "Output only. The pretax subtotal amount, in micros. This is equal to the sum of the AccountBudgetSummary subtotal amounts and Invoice.adjustments_subtotal_amount_micros."
        },
        "regulatoryCostsTotalAmountMicros": {
          "readOnly": true,
          "description": "Output only. The total amount of invoice level regulatory costs, in micros.",
          "format": "int64",
          "type": "string"
        },
        "serviceDateRange": {
          "$ref": "GoogleAdsGoogleadsV23Common__DateRange",
          "readOnly": true,
          "description": "Output only. The service period date range of this invoice. The end date is inclusive."
        },
        "resourceName": {
          "readOnly": true,
          "description": "Output only. The resource name of the invoice. Multiple customers can share a given invoice, so multiple resource names may point to the same invoice. Invoice resource names have the form: `customers/{customer_id}/invoices/{invoice_id}`",
          "type": "string"
        },
        "id": {
          "description": "Output only. The ID of the invoice. It appears on the invoice PDF as \"Invoice number\".",
          "type": "string",
          "readOnly": true
        },
        "regulatoryCostsSubtotalAmountMicros": {
          "format": "int64",
          "type": "string",
          "readOnly": true,
          "description": "Output only. The pretax subtotal amount of invoice level regulatory costs, in micros."
        },
        "billingSetup": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of this invoice's billing setup. `customers/{customer_id}/billingSetups/{billing_setup_id}`"
        },
        "taxAmountMicros": {
          "format": "int64",
          "description": "Output only. The sum of all taxes on the invoice, in micros. This equals the sum of the AccountBudgetSummary tax amounts, plus taxes not associated with a specific account budget.",
          "type": "string",
          "readOnly": true
        },
        "regulatoryCostsTaxAmountMicros": {
          "readOnly": true,
          "description": "Output only. The sum of taxes on the invoice level regulatory costs, in micros.",
          "type": "string",
          "format": "int64"
        },
        "replacedInvoices": {
          "type": "array",
          "readOnly": true,
          "description": "Output only. The resource name of the original invoice(s) being rebilled or replaced by this invoice, if applicable. There might be multiple replaced invoices due to invoice consolidation. The replaced invoices may not belong to the same payments account. If `replaced_invoices` is set, `corrected_invoice` will not be set. Invoice resource names have the form: `customers/{customer_id}/invoices/{invoice_id}`",
          "items": {
            "type": "string"
          }
        },
        "adjustmentsTaxAmountMicros": {
          "format": "int64",
          "description": "Output only. The sum of taxes on the invoice level adjustments, in micros.",
          "readOnly": true,
          "type": "string"
        },
        "issueDate": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The issue date in yyyy-mm-dd format. It appears on the invoice PDF as either \"Issue date\" or \"Invoice date\"."
        },
        "paymentsProfileId": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. A 12 digit ID used to identify the payments profile associated with the billing setup, for example, \"1234-5678-9012\". It appears on the invoice PDF as \"Billing ID\"."
        },
        "accountSummaries": {
          "type": "array",
          "readOnly": true,
          "description": "Output only. The list of summarized account information associated with this invoice.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Resources_Invoice_AccountSummary"
          }
        },
        "correctedInvoice": {
          "description": "Output only. The resource name of the original invoice corrected, wrote off, or canceled by this invoice, if applicable. If `corrected_invoice` is set, `replaced_invoices` will not be set. Invoice resource names have the form: `customers/{customer_id}/invoices/{invoice_id}`",
          "readOnly": true,
          "type": "string"
        },
        "paymentsAccountId": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. A 16 digit ID used to identify the payments account associated with the billing setup, for example, \"1234-5678-9012-3456\". It appears on the invoice PDF as \"Billing Account Number\"."
        },
        "dueDate": {
          "type": "string",
          "description": "Output only. The due date in yyyy-mm-dd format.",
          "readOnly": true
        },
        "adjustmentsTotalAmountMicros": {
          "format": "int64",
          "description": "Output only. The total amount of invoice level adjustments, in micros.",
          "type": "string",
          "readOnly": true
        },
        "pdfUrl": {
          "type": "string",
          "description": "Output only. The URL to a PDF copy of the invoice. Users need to pass in their OAuth token to request the PDF with this URL.",
          "readOnly": true
        },
        "adjustmentsSubtotalAmountMicros": {
          "description": "Output only. The pretax subtotal amount of invoice level adjustments, in micros.",
          "type": "string",
          "readOnly": true,
          "format": "int64"
        },
        "exportChargeSubtotalAmountMicros": {
          "format": "int64",
          "type": "string",
          "description": "Output only. The pretax subtotal amount of invoice level export charges, in micros.",
          "readOnly": true
        },
        "totalAmountMicros": {
          "type": "string",
          "format": "int64",
          "readOnly": true,
          "description": "Output only. The total amount, in micros. This equals the sum of Invoice.subtotal_amount_micros, Invoice.tax_amount_micros, Invoice.regulatory_costs_subtotal_amount_micros, and Invoice.export_charge_subtotal_amount_micros (which is separated into a separate line item starting with V14.1)."
        },
        "currencyCode": {
          "description": "Output only. The currency code. All costs are returned in this currency. A subset of the currency codes derived from the ISO 4217 standard is supported.",
          "type": "string",
          "readOnly": true
        },
        "exportChargeTotalAmountMicros": {
          "type": "string",
          "description": "Output only. The total amount of invoice level export charges, in micros.",
          "format": "int64",
          "readOnly": true
        },
        "exportChargeTaxAmountMicros": {
          "description": "Output only. The sum of taxes on the invoice level export charges, in micros.",
          "format": "int64",
          "type": "string",
          "readOnly": true
        }
      },
      "description": "An invoice. All invoice information is snapshotted to match the PDF invoice. For invoices older than the launch of InvoiceService, the snapshotted information may not match the PDF invoice.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateGoogleAdsResponse": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateGoogleAdsResponse",
      "description": "Response message for GoogleAdsService.Mutate.",
      "properties": {
        "mutateOperationResponses": {
          "description": "All responses for the mutate.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateOperationResponse"
          }
        },
        "partialFailureError": {
          "$ref": "GoogleRpc__Status",
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error."
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__DateRange": {
      "properties": {
        "startDate": {
          "description": "The start date, in yyyy-mm-dd format. This date is inclusive.",
          "type": "string"
        },
        "endDate": {
          "type": "string",
          "description": "The end date, in yyyy-mm-dd format. This date is inclusive."
        }
      },
      "description": "A date range.",
      "id": "GoogleAdsGoogleadsV23Common__DateRange",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__AccountBudgetProposal": {
      "type": "object",
      "description": "An account-level budget proposal. All fields prefixed with 'proposed' may not necessarily be applied directly. For example, proposed spending limits may be adjusted before their application. This is true if the 'proposed' field has an 'approved' counterpart, for example, spending limits. Note that the proposal type (proposal_type) changes which fields are required and which must remain empty.",
      "properties": {
        "proposedName": {
          "description": "Immutable. The name to assign to the account-level budget.",
          "type": "string"
        },
        "approvedSpendingLimitType": {
          "type": "string",
          "description": "Output only. The approved spending limit as a well-defined type, for example, INFINITE.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INFINITE"
          ],
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Infinite, indicates unlimited spending power."
          ]
        },
        "billingSetup": {
          "description": "Immutable. The resource name of the billing setup associated with this proposal.",
          "type": "string"
        },
        "proposedSpendingLimitMicros": {
          "format": "int64",
          "type": "string",
          "description": "Immutable. The proposed spending limit in micros. One million is equivalent to one unit."
        },
        "proposedEndDateTime": {
          "type": "string",
          "description": "Immutable. The proposed end date time in yyyy-mm-dd hh:mm:ss format."
        },
        "status": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PENDING",
            "APPROVED_HELD",
            "APPROVED",
            "CANCELLED",
            "REJECTED"
          ],
          "readOnly": true,
          "description": "Output only. The status of this proposal. When a new proposal is created, the status defaults to PENDING.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The proposal is pending approval.",
            "The proposal has been approved but the corresponding billing setup has not. This can occur for proposals that set up the first budget when signing up for billing or when performing a change of bill-to operation.",
            "The proposal has been approved.",
            "The proposal has been cancelled by the user.",
            "The proposal has been rejected by the user, for example, by rejecting an acceptance email."
          ],
          "type": "string"
        },
        "approvedEndDateTime": {
          "readOnly": true,
          "description": "Output only. The approved end date time in yyyy-mm-dd hh:mm:ss format.",
          "type": "string"
        },
        "approvalDateTime": {
          "readOnly": true,
          "description": "Output only. The date time when this account-level budget was approved, if applicable.",
          "type": "string"
        },
        "proposedPurchaseOrderNumber": {
          "description": "Immutable. A purchase order number is a value that enables the user to help them reference this budget in their monthly invoices.",
          "type": "string"
        },
        "proposedStartTimeType": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "As soon as possible.",
            "An infinite point in the future."
          ],
          "description": "Immutable. The proposed start date time as a well-defined type, for example, NOW.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NOW",
            "FOREVER"
          ],
          "type": "string"
        },
        "approvedSpendingLimitMicros": {
          "description": "Output only. The approved spending limit in micros. One million is equivalent to one unit.",
          "format": "int64",
          "readOnly": true,
          "type": "string"
        },
        "accountBudget": {
          "description": "Immutable. The resource name of the account-level budget associated with this proposal.",
          "type": "string"
        },
        "proposedEndTimeType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NOW",
            "FOREVER"
          ],
          "description": "Immutable. The proposed end date time as a well-defined type, for example, FOREVER.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "As soon as possible.",
            "An infinite point in the future."
          ]
        },
        "proposalType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CREATE",
            "UPDATE",
            "END",
            "REMOVE"
          ],
          "type": "string",
          "description": "Immutable. The type of this proposal, for example, END to end the budget associated with this proposal.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Identifies a request to create a new budget.",
            "Identifies a request to edit an existing budget.",
            "Identifies a request to end a budget that has already started.",
            "Identifies a request to remove a budget that hasn't started yet."
          ]
        },
        "proposedStartDateTime": {
          "description": "Immutable. The proposed start date time in yyyy-mm-dd hh:mm:ss format.",
          "type": "string"
        },
        "approvedStartDateTime": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The approved start date time in yyyy-mm-dd hh:mm:ss format."
        },
        "proposedSpendingLimitType": {
          "description": "Immutable. The proposed spending limit as a well-defined type, for example, INFINITE.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Infinite, indicates unlimited spending power."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INFINITE"
          ]
        },
        "resourceName": {
          "description": "Immutable. The resource name of the proposal. AccountBudgetProposal resource names have the form: `customers/{customer_id}/accountBudgetProposals/{account_budget_proposal_id}`",
          "type": "string"
        },
        "creationDateTime": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The date time when this account-level budget proposal was created, which is not the same as its approval date time, if applicable."
        },
        "proposedNotes": {
          "type": "string",
          "description": "Immutable. Notes associated with this budget."
        },
        "approvedEndTimeType": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "As soon as possible.",
            "An infinite point in the future."
          ],
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NOW",
            "FOREVER"
          ],
          "description": "Output only. The approved end date time as a well-defined type, for example, FOREVER.",
          "type": "string"
        },
        "id": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The ID of the proposal.",
          "format": "int64"
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__AccountBudgetProposal"
    },
    "GoogleAdsGoogleadsV23Services__ClickConversionResult": {
      "description": "Identifying information for a successfully processed ClickConversion.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__ClickConversionResult",
      "properties": {
        "gclid": {
          "type": "string",
          "description": "The Google Click ID (gclid) associated with this conversion."
        },
        "conversionDateTime": {
          "type": "string",
          "description": "The date time at which the conversion occurred. The format is \"yyyy-mm-dd hh:mm:ss+|-hh:mm\", for example, \"2019-01-01 12:32:45-08:00\"."
        },
        "wbraid": {
          "description": "The URL parameter for clicks associated with web conversions.",
          "type": "string"
        },
        "gbraid": {
          "description": "The URL parameter for clicks associated with app conversions.",
          "type": "string"
        },
        "conversionAction": {
          "type": "string",
          "description": "Resource name of the conversion action associated with this conversion."
        },
        "userIdentifiers": {
          "type": "array",
          "description": "The user identifiers associated with this conversion. Only hashed_email and hashed_phone_number are supported for conversion uploads. The maximum number of user identifiers for each conversion is 5.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__UserIdentifier"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__RealTimeBiddingSetting": {
      "properties": {
        "optIn": {
          "type": "boolean",
          "description": "Whether the campaign is opted in to real-time bidding."
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__RealTimeBiddingSetting",
      "description": "Settings for Real-Time Bidding, a feature only available for campaigns targeting the Ad Exchange network.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__WebpageInfo": {
      "id": "GoogleAdsGoogleadsV23Common__WebpageInfo",
      "type": "object",
      "properties": {
        "conditions": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__WebpageConditionInfo"
          },
          "type": "array",
          "description": "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."
        },
        "criterionName": {
          "description": "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.",
          "type": "string"
        },
        "sample": {
          "description": "List of sample urls that match the website target. This field is read-only.",
          "$ref": "GoogleAdsGoogleadsV23Common__WebpageSampleInfo"
        },
        "coveragePercentage": {
          "format": "double",
          "type": "number",
          "description": "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."
        }
      },
      "description": "Represents a criterion for targeting webpages of an advertiser's website."
    },
    "GoogleAdsGoogleadsV23Resources__CampaignSimulation": {
      "id": "GoogleAdsGoogleadsV23Resources__CampaignSimulation",
      "properties": {
        "cpcBidPointList": {
          "$ref": "GoogleAdsGoogleadsV23Common__CpcBidSimulationPointList",
          "readOnly": true,
          "description": "Output only. Simulation points if the simulation type is CPC_BID."
        },
        "campaignId": {
          "description": "Output only. Campaign id of the simulation.",
          "format": "int64",
          "type": "string",
          "readOnly": true
        },
        "budgetPointList": {
          "description": "Output only. Simulation points if the simulation type is BUDGET.",
          "$ref": "GoogleAdsGoogleadsV23Common__BudgetSimulationPointList",
          "readOnly": true
        },
        "targetRoasPointList": {
          "description": "Output only. Simulation points if the simulation type is TARGET_ROAS.",
          "$ref": "GoogleAdsGoogleadsV23Common__TargetRoasSimulationPointList",
          "readOnly": true
        },
        "targetImpressionSharePointList": {
          "$ref": "GoogleAdsGoogleadsV23Common__TargetImpressionShareSimulationPointList",
          "readOnly": true,
          "description": "Output only. Simulation points if the simulation type is TARGET_IMPRESSION_SHARE."
        },
        "targetCpaPointList": {
          "$ref": "GoogleAdsGoogleadsV23Common__TargetCpaSimulationPointList",
          "description": "Output only. Simulation points if the simulation type is TARGET_CPA.",
          "readOnly": true
        },
        "modificationMethod": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "UNIFORM",
            "DEFAULT",
            "SCALING"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The values in a simulation were applied to all children of a given resource uniformly. Overrides on child resources were not respected.",
            "The values in a simulation were applied to the given resource. Overrides on child resources were respected, and traffic estimates do not include these resources.",
            "The values in a simulation were all scaled by the same factor. For example, in a simulated TargetCpa campaign, the campaign target and all ad group targets were scaled by a factor of X."
          ],
          "readOnly": true,
          "type": "string",
          "description": "Output only. How the simulation modifies the field."
        },
        "endDate": {
          "description": "Output only. Last day on which the simulation is based, in YYYY-MM-DD format",
          "type": "string",
          "readOnly": true
        },
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the campaign simulation. Campaign simulation resource names have the form: `customers/{customer_id}/campaignSimulations/{campaign_id}~{type}~{modification_method}~{start_date}~{end_date}`",
          "readOnly": true
        },
        "type": {
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The simulation is for a CPC bid.",
            "The simulation is for a CPV bid.",
            "The simulation is for a CPA target.",
            "The simulation is for a bid modifier.",
            "The simulation is for a ROAS target.",
            "The simulation is for a percent CPC bid.",
            "The simulation is for an impression share target.",
            "The simulation is for a budget."
          ],
          "type": "string",
          "description": "Output only. The field that the simulation modifies.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CPC_BID",
            "CPV_BID",
            "TARGET_CPA",
            "BID_MODIFIER",
            "TARGET_ROAS",
            "PERCENT_CPC_BID",
            "TARGET_IMPRESSION_SHARE",
            "BUDGET"
          ]
        },
        "startDate": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. First day on which the simulation is based, in YYYY-MM-DD format."
        }
      },
      "type": "object",
      "description": "A campaign simulation. Supported combinations of advertising channel type, simulation type and simulation modification method is detailed below respectively. * SEARCH - CPC_BID - UNIFORM * SEARCH - CPC_BID - SCALING * SEARCH - TARGET_CPA - UNIFORM * SEARCH - TARGET_CPA - SCALING * SEARCH - TARGET_ROAS - UNIFORM * SEARCH - TARGET_IMPRESSION_SHARE - UNIFORM * SEARCH - BUDGET - UNIFORM * SHOPPING - BUDGET - UNIFORM * SHOPPING - TARGET_ROAS - UNIFORM * MULTI_CHANNEL - TARGET_CPA - UNIFORM * MULTI_CHANNEL - TARGET_ROAS - UNIFORM * DEMAND_GEN - TARGET_CPA - DEFAULT * DISPLAY - TARGET_CPA - UNIFORM * PERFORMANCE_MAX - TARGET_CPA - UNIFORM * PERFORMANCE_MAX - TARGET_ROAS - UNIFORM * PERFORMANCE_MAX - BUDGET - UNIFORM"
    },
    "GoogleAdsGoogleadsV23Resources_Campaign_SelectiveOptimization": {
      "description": "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.",
      "properties": {
        "conversionActions": {
          "description": "The selected set of resource names for conversion actions for optimizing this campaign.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources_Campaign_SelectiveOptimization"
    },
    "GoogleAdsGoogleadsV23Services_GenerateCreatorInsightsRequest_SearchAttributes": {
      "id": "GoogleAdsGoogleadsV23Services_GenerateCreatorInsightsRequest_SearchAttributes",
      "type": "object",
      "properties": {
        "audienceAttributes": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AudienceInsightsAttribute"
          },
          "description": "Optional. Audience attributes that describe an audience of viewers. This is used to search for creators whose own viewers match the input audience. Attributes age_range, gender, user_interest, entity, category, device, parental_status, and income_range are supported. Attribute location is not supported."
        },
        "creatorAttributes": {
          "description": "Optional. Creator attributes that describe a collection of types of content. This is used to search for creators whose content matches the input creator attributes. Only Knowledge Graph Entities tagged with CREATOR_ATTRIBUTE are supported. Use AudienceInsightsService.ListAudienceInsightsAttributes to get the list of supported entities. Other attributes including location are not supported.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AudienceInsightsAttribute"
          },
          "type": "array"
        }
      },
      "description": "The audience attributes (such as Age, Gender, Affinity, and In-Market) and creator attributes (such as creator's content topics) used to search for top creators."
    },
    "GoogleAdsGoogleadsV23Common__PageFeedAsset": {
      "id": "GoogleAdsGoogleadsV23Common__PageFeedAsset",
      "description": "A Page Feed asset.",
      "properties": {
        "pageUrl": {
          "type": "string",
          "description": "Required. The webpage that advertisers want to target."
        },
        "labels": {
          "description": "Labels used to group the page urls.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__AppAdInfo": {
      "properties": {
        "appDeepLink": {
          "description": "An app deep link asset that may be used with the ad.",
          "$ref": "GoogleAdsGoogleadsV23Common__AdAppDeepLinkAsset"
        },
        "youtubeVideos": {
          "description": "List of YouTube video assets that may be displayed with the ad.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdVideoAsset"
          }
        },
        "html5MediaBundles": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdMediaBundleAsset"
          },
          "description": "List of media bundle assets that may be used with the ad.",
          "type": "array"
        },
        "headlines": {
          "type": "array",
          "description": "List of text assets for headlines. When the ad serves the headlines will be selected from this list.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdTextAsset"
          }
        },
        "descriptions": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdTextAsset"
          },
          "description": "List of text assets for descriptions. When the ad serves the descriptions will be selected from this list."
        },
        "images": {
          "type": "array",
          "description": "List of image assets that may be displayed with the ad.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdImageAsset"
          }
        },
        "mandatoryAdText": {
          "description": "Mandatory ad text.",
          "$ref": "GoogleAdsGoogleadsV23Common__AdTextAsset"
        }
      },
      "description": "An app ad.",
      "id": "GoogleAdsGoogleadsV23Common__AppAdInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateConversionValueRuleSetsRequest": {
      "description": "Request message for ConversionValueRuleSetService.MutateConversionValueRuleSets.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateConversionValueRuleSetsRequest",
      "properties": {
        "responseContentType": {
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ]
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "operations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__ConversionValueRuleSetOperation"
          },
          "type": "array",
          "description": "Required. The list of operations to perform on individual conversion value rule sets."
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__CustomAudienceSegment": {
      "type": "object",
      "description": "Custom audience segment.",
      "id": "GoogleAdsGoogleadsV23Common__CustomAudienceSegment",
      "properties": {
        "customAudience": {
          "description": "The custom audience resource.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__InsightsAudienceDescription": {
      "id": "GoogleAdsGoogleadsV23Services__InsightsAudienceDescription",
      "type": "object",
      "description": "A text description of the audience of interest for which insights are being requested in AudienceInsightsService.",
      "properties": {
        "audienceDimensions": {
          "$ref": "GoogleAdsGoogleadsV23Services__AudienceInsightsDimensions",
          "description": "Optional. An optional list of audience dimensions to return."
        },
        "marketingObjective": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "The objective is to increase awareness of a brand or product among relevant audiences.",
            "The objective is to encourage potential customers to consider your brand or products when they're researching or shopping for product.",
            "The objective is for research, to gain further insights into your audience."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AWARENESS",
            "CONSIDERATION",
            "RESEARCH"
          ],
          "description": "Optional. An optional marketing objective which will influence the type of suggestions produced."
        },
        "audienceDescription": {
          "description": "Required. An English language text description of an audience to get suggestions for. Maximum length is 2000 characters. For example, \"Women in their 30s who love to travel\".",
          "type": "string"
        },
        "countryLocations": {
          "description": "Required. The countries for the audience.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__LocationInfo"
          },
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateBiddingSeasonalityAdjustmentsResponse": {
      "description": "Response message for seasonality adjustments mutate.",
      "properties": {
        "results": {
          "description": "All results for the mutate.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateBiddingSeasonalityAdjustmentsResult"
          }
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateBiddingSeasonalityAdjustmentsResponse"
    },
    "GoogleType__Money": {
      "description": "Represents an amount of money with its currency type.",
      "type": "object",
      "properties": {
        "nanos": {
          "type": "integer",
          "format": "int32",
          "description": "Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000."
        },
        "units": {
          "format": "int64",
          "description": "The whole units of the amount. For example if `currencyCode` is `\"USD\"`, then 1 unit is one US dollar.",
          "type": "string"
        },
        "currencyCode": {
          "type": "string",
          "description": "The three-letter currency code defined in ISO 4217."
        }
      },
      "id": "GoogleType__Money"
    },
    "GoogleAdsGoogleadsV23Common__DemandGenCarouselCardAsset": {
      "description": "A Demand Gen Carousel Card asset.",
      "properties": {
        "squareMarketingImageAsset": {
          "description": "Asset resource name of the associated square marketing image. This and/or a marketing image asset is required.",
          "type": "string"
        },
        "portraitMarketingImageAsset": {
          "description": "Asset resource name of the associated 4:5 portrait marketing image.",
          "type": "string"
        },
        "callToActionText": {
          "description": "Call to action text.",
          "type": "string"
        },
        "headline": {
          "description": "Required. Headline of the carousel card.",
          "type": "string"
        },
        "marketingImageAsset": {
          "description": "Asset resource name of the associated 1.91:1 marketing image. This and/or square marketing image asset is required.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__DemandGenCarouselCardAsset"
    },
    "GoogleAdsGoogleadsV23Resources_Recommendation_LowerTargetRoasRecommendation": {
      "type": "object",
      "description": "Recommendation to lower Target ROAS.",
      "id": "GoogleAdsGoogleadsV23Resources_Recommendation_LowerTargetRoasRecommendation",
      "properties": {
        "targetAdjustment": {
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_TargetAdjustmentInfo",
          "description": "Output only. The relevant information describing the recommended target adjustment.",
          "readOnly": true
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__CallFeedItem": {
      "type": "object",
      "properties": {
        "callConversionAction": {
          "description": "The conversion action to attribute a call conversion to. If not set a default conversion action is used. This field only has effect if call_tracking_enabled is set to true. Otherwise this field is ignored.",
          "type": "string"
        },
        "phoneNumber": {
          "type": "string",
          "description": "The advertiser's phone number to append to the ad. This string must not be empty."
        },
        "callConversionTrackingDisabled": {
          "type": "boolean",
          "description": "If true, disable call conversion tracking. call_conversion_action should not be set if this is true. Optional."
        },
        "callTrackingEnabled": {
          "type": "boolean",
          "description": "Indicates whether call tracking is enabled. By default, call tracking is not enabled."
        },
        "callConversionReportingState": {
          "description": "Enum value that indicates whether this call extension uses its own call conversion setting (or just have call conversion disabled), or following the account level setting.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Call conversion action is disabled.",
            "Call conversion action will use call conversion type set at the account level.",
            "Call conversion action will use call conversion type set at the resource (call only ads/call extensions) level."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DISABLED",
            "USE_ACCOUNT_LEVEL_CALL_CONVERSION_ACTION",
            "USE_RESOURCE_LEVEL_CALL_CONVERSION_ACTION"
          ]
        },
        "countryCode": {
          "description": "Uppercase two-letter country code of the advertiser's phone number. This string must not be empty.",
          "type": "string"
        }
      },
      "description": "Represents a Call extension.",
      "id": "GoogleAdsGoogleadsV23Common__CallFeedItem"
    },
    "GoogleAdsGoogleadsV23Common__MetricGoal": {
      "properties": {
        "metric": {
          "description": "The metric of the goal. For example, clicks, impressions, cost, conversions, etc.",
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CLICKS",
            "IMPRESSIONS",
            "COST",
            "CONVERSIONS_PER_INTERACTION_RATE",
            "COST_PER_CONVERSION",
            "CONVERSIONS_VALUE_PER_COST",
            "AVERAGE_CPC",
            "CTR",
            "INCREMENTAL_CONVERSIONS",
            "COMPLETED_VIDEO_VIEWS",
            "CUSTOM_ALGORITHMS",
            "CONVERSIONS",
            "CONVERSION_VALUE"
          ],
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "The goal of the experiment is clicks.",
            "The goal of the experiment is impressions.",
            "The goal of the experiment is cost.",
            "The goal of the experiment is conversion rate.",
            "The goal of the experiment is cost per conversion.",
            "The goal of the experiment is conversion value per cost.",
            "The goal of the experiment is avg cpc.",
            "The goal of the experiment is ctr.",
            "The goal of the experiment is incremental conversions.",
            "The goal of the experiment is completed video views.",
            "The goal of the experiment is custom algorithms.",
            "The goal of the experiment is conversions.",
            "The goal of the experiment is conversion value."
          ]
        },
        "direction": {
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "The goal of the experiment is to not change the metric.",
            "The goal of the experiment is to increate the metric.",
            "The goal of the experiment is to decrease the metric.",
            "The goal of the experiment is to either not change or increase the metric.",
            "The goal of the experiment is to either not change or decrease the metric."
          ],
          "description": "The metric direction of the goal. For example, increase, decrease, no change.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NO_CHANGE",
            "INCREASE",
            "DECREASE",
            "NO_CHANGE_OR_INCREASE",
            "NO_CHANGE_OR_DECREASE"
          ],
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__MetricGoal",
      "description": "A metric goal for an experiment."
    },
    "GoogleAdsGoogleadsV23Services__MutateAdParametersRequest": {
      "properties": {
        "responseContentType": {
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "type": "string"
        },
        "operations": {
          "type": "array",
          "description": "Required. The list of operations to perform on individual ad parameters.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__AdParameterOperation"
          }
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateAdParametersRequest",
      "type": "object",
      "description": "Request message for AdParameterService.MutateAdParameters"
    },
    "GoogleAdsGoogleadsV23Common__UserListLogicalRuleInfo": {
      "description": "A user list logical rule. A rule has a logical operator (and/or/not) and a list of user lists as operands.",
      "type": "object",
      "properties": {
        "ruleOperands": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__LogicalUserListOperandInfo"
          },
          "type": "array",
          "description": "The list of operands of the rule."
        },
        "operator": {
          "description": "The logical operator of the rule.",
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ALL",
            "ANY",
            "NONE"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "And - all of the operands.",
            "Or - at least one of the operands.",
            "Not - none of the operands."
          ]
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__UserListLogicalRuleInfo"
    },
    "GoogleAdsGoogleadsV23Services__ProvideLeadFeedbackRequest": {
      "properties": {
        "surveySatisfied": {
          "$ref": "GoogleAdsGoogleadsV23Services__SurveySatisfied",
          "description": "Details about various factors for being satisfied with the lead."
        },
        "surveyAnswer": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Very satisfied with the lead.",
            "Satisfied with the lead.",
            "Neutral with the lead.",
            "Dissatisfied with the lead.",
            "Very dissatisfied with the lead."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "VERY_SATISFIED",
            "SATISFIED",
            "NEUTRAL",
            "DISSATISFIED",
            "VERY_DISSATISFIED"
          ],
          "description": "Required. Survey answer for Local Services Ads Lead."
        },
        "surveyDissatisfied": {
          "$ref": "GoogleAdsGoogleadsV23Services__SurveyDissatisfied",
          "description": "Details about various factors for not being satisfied with the lead."
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__ProvideLeadFeedbackRequest",
      "description": "Request message for LocalServicesLeadService.ProvideLeadFeedback."
    },
    "GoogleAdsGoogleadsV23Services__GenerateKeywordForecastMetricsRequest": {
      "id": "GoogleAdsGoogleadsV23Services__GenerateKeywordForecastMetricsRequest",
      "properties": {
        "forecastPeriod": {
          "description": "The date range for the forecast. The start date must be in the future and end date must be within 1 year from today. The reference timezone used is the one of the Google Ads account belonging to the customer. If not set, a default date range from next Sunday to the following Saturday will be used.",
          "$ref": "GoogleAdsGoogleadsV23Common__DateRange"
        },
        "campaign": {
          "$ref": "GoogleAdsGoogleadsV23Services__CampaignToForecast",
          "description": "Required. The campaign used in the forecast."
        },
        "currencyCode": {
          "description": "The currency used for exchange rate conversion. By default, the account currency of the customer is used. Set this field only if the currency is different from the account currency. The list of valid currency codes can be found at https://developers.google.com/google-ads/api/data/codes-formats#currency-codes.",
          "type": "string"
        }
      },
      "description": "Request message for KeywordPlanIdeaService.GenerateKeywordForecastMetrics.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__CarrierConstant": {
      "id": "GoogleAdsGoogleadsV23Resources__CarrierConstant",
      "properties": {
        "id": {
          "description": "Output only. The ID of the carrier criterion.",
          "type": "string",
          "readOnly": true,
          "format": "int64"
        },
        "resourceName": {
          "description": "Output only. The resource name of the carrier criterion. Carrier criterion resource names have the form: `carrierConstants/{criterion_id}`",
          "readOnly": true,
          "type": "string"
        },
        "name": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The full name of the carrier in English."
        },
        "countryCode": {
          "type": "string",
          "description": "Output only. The country code of the country where the carrier is located, for example, \"AR\", \"FR\", etc.",
          "readOnly": true
        }
      },
      "type": "object",
      "description": "A carrier criterion that can be used in campaign targeting."
    },
    "GoogleAdsGoogleadsV23Resources_Campaign_CategoryBid": {
      "description": "Category bids in LocalServicesReportingCampaignSettings.",
      "properties": {
        "targetCpaBidMicros": {
          "description": "Target CPA bid for the category. Value is in micros and in the advertiser's currency.",
          "format": "int64",
          "type": "string"
        },
        "manualCpaBidMicros": {
          "type": "string",
          "format": "int64",
          "description": "Manual CPA bid for the category. Bid must be greater than the reserve price associated for that category. Value is in micros and in the advertiser's currency."
        },
        "categoryId": {
          "type": "string",
          "description": "Category for which the bid will be associated with. For example, xcat:service_area_business_plumber."
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources_Campaign_CategoryBid",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__HotelCityInfo": {
      "type": "object",
      "description": "City the hotel is located in.",
      "id": "GoogleAdsGoogleadsV23Common__HotelCityInfo",
      "properties": {
        "cityCriterion": {
          "type": "string",
          "description": "The Geo Target Constant resource name."
        }
      }
    },
    "GoogleAdsGoogleadsV23Errors__ErrorDetails": {
      "id": "GoogleAdsGoogleadsV23Errors__ErrorDetails",
      "type": "object",
      "description": "Additional error details.",
      "properties": {
        "resourceCountDetails": {
          "description": "Details for a resource count limit exceeded error.",
          "$ref": "GoogleAdsGoogleadsV23Errors__ResourceCountDetails"
        },
        "unpublishedErrorCode": {
          "type": "string",
          "description": "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."
        },
        "quotaErrorDetails": {
          "$ref": "GoogleAdsGoogleadsV23Errors__QuotaErrorDetails",
          "description": "Details on the quota error, including the scope (account or developer), the rate bucket name and the retry delay."
        },
        "policyFindingDetails": {
          "$ref": "GoogleAdsGoogleadsV23Errors__PolicyFindingDetails",
          "description": "Describes policy violation findings."
        },
        "policyViolationDetails": {
          "$ref": "GoogleAdsGoogleadsV23Errors__PolicyViolationDetails",
          "description": "Describes an ad policy violation."
        },
        "budgetPerDayMinimumErrorDetails": {
          "description": "Details for a budget below per-day minimum error.",
          "$ref": "GoogleAdsGoogleadsV23Errors__BudgetPerDayMinimumErrorDetails"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateConversionValueRulesResponse": {
      "description": "Response message for ConversionValueRuleService.MutateConversionValueRules.",
      "type": "object",
      "properties": {
        "results": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateConversionValueRuleResult"
          },
          "type": "array",
          "description": "All results for the mutate."
        },
        "partialFailureError": {
          "$ref": "GoogleRpc__Status",
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error."
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateConversionValueRulesResponse"
    },
    "GoogleAdsGoogleadsV23Services__MutateCampaignsResponse": {
      "id": "GoogleAdsGoogleadsV23Services__MutateCampaignsResponse",
      "type": "object",
      "description": "Response message for campaign mutate.",
      "properties": {
        "results": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateCampaignResult"
          },
          "type": "array",
          "description": "All results for the mutate."
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__UpdateDataLinkRequest": {
      "properties": {
        "dataLinkStatus": {
          "type": "string",
          "description": "Required. The data link status to be updated to.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Link has been requested by one party, but not confirmed by the other party.",
            "Link is waiting for the customer to approve.",
            "Link is established and can be used as needed.",
            "Link is no longer valid and should be ignored.",
            "Link request has been cancelled by the requester and further cleanup may be needed.",
            "Link request has been rejected by the approver."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "REQUESTED",
            "PENDING_APPROVAL",
            "ENABLED",
            "DISABLED",
            "REVOKED",
            "REJECTED"
          ]
        },
        "resourceName": {
          "description": "Required. The data link is expected to have a valid resource name.",
          "type": "string"
        }
      },
      "description": "Request message for DataLinkService.UpdateDataLink.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__UpdateDataLinkRequest"
    },
    "GoogleAdsGoogleadsV23Common__ThirdPartyIntegrationPartnerData": {
      "properties": {
        "clientId": {
          "description": "The client ID that allows the measurement partner to join multiple campaigns for a particular advertiser.",
          "type": "string"
        },
        "thirdPartyPlacementId": {
          "type": "string",
          "description": "The third party placement ID that maps the measurement partner data with a campaign (or a group of related campaigns) specific data."
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__ThirdPartyIntegrationPartnerData",
      "description": "Contains third party measurement partner related data for video campaigns.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_ResponsiveSearchAdImproveAdStrengthParameters": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_ResponsiveSearchAdImproveAdStrengthParameters",
      "description": "Parameters to use when applying a responsive search ad improve ad strength recommendation.",
      "properties": {
        "updatedAd": {
          "$ref": "GoogleAdsGoogleadsV23Resources__Ad",
          "description": "Updated ad. The current ad's content will be replaced."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateAssetResult": {
      "type": "object",
      "properties": {
        "asset": {
          "description": "The mutated asset with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV23Resources__Asset"
        },
        "resourceName": {
          "description": "The resource name returned for successful operations.",
          "type": "string"
        }
      },
      "description": "The result for the asset mutate.",
      "id": "GoogleAdsGoogleadsV23Services__MutateAssetResult"
    },
    "GoogleAdsGoogleadsV23Resources_Campaign_PerformanceMaxUpgrade": {
      "description": "Information about a campaign being upgraded to Performance Max.",
      "id": "GoogleAdsGoogleadsV23Resources_Campaign_PerformanceMaxUpgrade",
      "type": "object",
      "properties": {
        "performanceMaxCampaign": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The resource name of the Performance Max campaign the campaign is upgraded to."
        },
        "status": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The upgrade to a Performance Max campaign is in progress.",
            "The upgrade to a Performance Max campaign is complete.",
            "The upgrade to a Performance Max campaign failed. The campaign will still serve as it was before upgrade was attempted.",
            "The campaign is eligible for upgrade to a Performance Max campaign."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "UPGRADE_IN_PROGRESS",
            "UPGRADE_COMPLETE",
            "UPGRADE_FAILED",
            "UPGRADE_ELIGIBLE"
          ],
          "description": "Output only. The upgrade status of a campaign requested to be upgraded to Performance Max.",
          "readOnly": true
        },
        "preUpgradeCampaign": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the legacy campaign upgraded to Performance Max."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__RecommendationSubscriptionOperation": {
      "id": "GoogleAdsGoogleadsV23Services__RecommendationSubscriptionOperation",
      "description": "A single operation (create, update) on a recommendation subscription. RecommendationSubscriptionService.MutateRecommendationSubscription",
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new subscription.",
          "$ref": "GoogleAdsGoogleadsV23Resources__RecommendationSubscription"
        },
        "update": {
          "$ref": "GoogleAdsGoogleadsV23Resources__RecommendationSubscription",
          "description": "Update operation: The subscription is expected to have a valid resource name."
        },
        "updateMask": {
          "description": "Optional. FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__WhatsappBusinessMessageInfo": {
      "description": "Whatsapp information to use for messaging.",
      "properties": {
        "phoneNumber": {
          "type": "string",
          "description": "Required. Whatsapp phone number of the business. Examples: '1234567890', '(123)456-7890'."
        },
        "countryCode": {
          "description": "Required. Two-letter country code of the phone number. Examples: 'US', 'us'.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__WhatsappBusinessMessageInfo"
    },
    "GoogleAdsGoogleadsV23Common__TargetCpv": {
      "description": "Target CPV (cost per view) bidding strategy. An automated bidding strategy that sets bids to optimize performance given the target CPV you set.",
      "type": "object",
      "properties": {},
      "id": "GoogleAdsGoogleadsV23Common__TargetCpv"
    },
    "GoogleAdsGoogleadsV23Common__KeywordConcept": {
      "properties": {
        "name": {
          "type": "string",
          "description": "The concept name for the keyword in the concept_group."
        },
        "conceptGroup": {
          "$ref": "GoogleAdsGoogleadsV23Common__ConceptGroup",
          "description": "The concept group of the concept details."
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__KeywordConcept",
      "type": "object",
      "description": "The concept for the keyword."
    },
    "GoogleAdsGoogleadsV23Services__RemoveCampaignAutomaticallyCreatedAssetResponse": {
      "id": "GoogleAdsGoogleadsV23Services__RemoveCampaignAutomaticallyCreatedAssetResponse",
      "properties": {
        "partialFailureError": {
          "$ref": "GoogleRpc__Status",
          "description": "Errors that pertain to AutomaticallyCreatedAssetRemoval failures in the partial failure mode. Returned when all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), RPC level error will be returned. See https://developers.google.com/google-ads/api/docs/best-practices/partial-failures for more information about partial failure."
        }
      },
      "type": "object",
      "description": "Response message for AutomaticallyCreatedAssetRemovalService.RemoveCampaignAutomaticallyCreatedAsset."
    },
    "GoogleAdsGoogleadsV23Services__EffectiveFrequencyLimit": {
      "properties": {
        "effectiveFrequencyBreakdownLimit": {
          "description": "The highest effective frequency value to include in Forecast.effective_frequency_breakdowns. This field supports frequencies 1-10, inclusive.",
          "type": "integer",
          "format": "int32"
        }
      },
      "description": "Effective frequency limit.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__EffectiveFrequencyLimit"
    },
    "GoogleAdsGoogleadsV23Resources_ConversionValueRule_ValueRuleAction": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources_ConversionValueRule_ValueRuleAction",
      "properties": {
        "operation": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADD",
            "MULTIPLY",
            "SET"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Add provided value to conversion value.",
            "Multiply conversion value by provided value.",
            "Set conversion value to provided value."
          ],
          "description": "Specifies applied operation.",
          "type": "string"
        },
        "value": {
          "format": "double",
          "description": "Specifies applied value.",
          "type": "number"
        }
      },
      "description": "Action applied when rule is applied."
    },
    "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_RaiseTargetCpaParameters": {
      "id": "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_RaiseTargetCpaParameters",
      "type": "object",
      "properties": {
        "targetCpaMultiplier": {
          "type": "number",
          "format": "double",
          "description": "Required. Target to set CPA multiplier to. This is a required field."
        }
      },
      "description": "Parameters to use when applying raise Target CPA recommendations."
    },
    "GoogleAdsGoogleadsV23Services__MutateCustomerUserAccessResponse": {
      "id": "GoogleAdsGoogleadsV23Services__MutateCustomerUserAccessResponse",
      "description": "Response message for customer user access mutate.",
      "type": "object",
      "properties": {
        "result": {
          "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomerUserAccessResult",
          "description": "Result for the mutate."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateAdGroupCriterionLabelsRequest": {
      "properties": {
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "operations": {
          "type": "array",
          "description": "Required. The list of operations to perform on ad group criterion labels.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__AdGroupCriterionLabelOperation"
          }
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateAdGroupCriterionLabelsRequest",
      "description": "Request message for AdGroupCriterionLabelService.MutateAdGroupCriterionLabels."
    },
    "GoogleAdsGoogleadsV23Services__EnablePMaxBrandGuidelinesResponse": {
      "description": "Brand Guidelines campaign enablement response.",
      "id": "GoogleAdsGoogleadsV23Services__EnablePMaxBrandGuidelinesResponse",
      "properties": {
        "results": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__EnablementResult"
          },
          "description": "Campaign enablement results per campaign.",
          "type": "array"
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__Keyword": {
      "properties": {
        "adGroupCriterion": {
          "description": "The AdGroupCriterion resource name.",
          "type": "string"
        },
        "info": {
          "description": "Keyword info.",
          "$ref": "GoogleAdsGoogleadsV23Common__KeywordInfo"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__Keyword",
      "type": "object",
      "description": "A Keyword criterion segment."
    },
    "GoogleAdsGoogleadsV23Services__UpdateProductLinkInvitationResponse": {
      "id": "GoogleAdsGoogleadsV23Services__UpdateProductLinkInvitationResponse",
      "type": "object",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Result of the update."
        }
      },
      "description": "Response message for product link invitation update."
    },
    "GoogleAdsGoogleadsV23Resources__AssetPolicySummary": {
      "description": "Contains policy information for an asset.",
      "id": "GoogleAdsGoogleadsV23Resources__AssetPolicySummary",
      "type": "object",
      "properties": {
        "approvalStatus": {
          "readOnly": true,
          "description": "Output only. The overall approval status of this asset, calculated based on the status of its individual policy topic entries.",
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "Will not serve.",
            "Serves with restrictions.",
            "Serves without restrictions.",
            "Will not serve in targeted countries, but may serve for users who are searching for information about the targeted countries."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DISAPPROVED",
            "APPROVED_LIMITED",
            "APPROVED",
            "AREA_OF_INTEREST_ONLY"
          ],
          "type": "string"
        },
        "reviewStatus": {
          "description": "Output only. Where in the review process this asset is.",
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "Currently under review.",
            "Primary review complete. Other reviews may be continuing.",
            "The resource has been resubmitted for approval or its policy decision has been appealed.",
            "The resource is eligible and may be serving but could still undergo further review."
          ],
          "type": "string",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "REVIEW_IN_PROGRESS",
            "REVIEWED",
            "UNDER_APPEAL",
            "ELIGIBLE_MAY_SERVE"
          ]
        },
        "policyTopicEntries": {
          "readOnly": true,
          "description": "Output only. The list of policy findings for this asset.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__PolicyTopicEntry"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__UploadCallConversionsRequest": {
      "id": "GoogleAdsGoogleadsV23Services__UploadCallConversionsRequest",
      "properties": {
        "partialFailure": {
          "description": "Required. If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. This should always be set to true. See https://developers.google.com/google-ads/api/docs/best-practices/partial-failures for more information about partial failure.",
          "type": "boolean"
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "conversions": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__CallConversion"
          },
          "type": "array",
          "description": "Required. The conversions that are being uploaded."
        }
      },
      "type": "object",
      "description": "Request message for ConversionUploadService.UploadCallConversions."
    },
    "GoogleAdsGoogleadsV23Common__PromotionAsset": {
      "description": "A Promotion asset.",
      "properties": {
        "startDate": {
          "description": "Start date of when this asset is effective and can begin serving, in yyyy-MM-dd format.",
          "type": "string"
        },
        "promotionQrCodeInfo": {
          "description": "QR code info used to generate promotion QR code for user to be eligible for the promotion.",
          "$ref": "GoogleAdsGoogleadsV23Common__PromotionQrCodeInfo"
        },
        "ordersOverAmount": {
          "$ref": "GoogleAdsGoogleadsV23Common__Money",
          "description": "The amount the total order needs to be for the user to be eligible for the promotion."
        },
        "promotionTarget": {
          "type": "string",
          "description": "Required. A freeform description of what the promotion is targeting."
        },
        "promotionBarcodeInfo": {
          "$ref": "GoogleAdsGoogleadsV23Common__PromotionBarcodeInfo",
          "description": "Barcode info used to generate promotion barcode for user to be eligible for the promotion."
        },
        "discountModifier": {
          "type": "string",
          "description": "A modifier for qualification of the discount.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "UP_TO"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "'Up to'."
          ]
        },
        "languageCode": {
          "type": "string",
          "description": "The language of the promotion. Represented as BCP 47 language tag."
        },
        "termsAndConditionsUri": {
          "type": "string",
          "description": "URI to the terms and conditions of the promotion."
        },
        "promotionCode": {
          "description": "A code the user should use in order to be eligible for the promotion.",
          "type": "string"
        },
        "adScheduleTargets": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdScheduleInfo"
          },
          "description": "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.",
          "type": "array"
        },
        "redemptionStartDate": {
          "type": "string",
          "description": "Start date of when the promotion is eligible to be redeemed, in yyyy-MM-dd format."
        },
        "percentOff": {
          "description": "Percentage off discount in the promotion. 1,000,000 = 100%. Either this or money_amount_off is required.",
          "type": "string",
          "format": "int64"
        },
        "termsAndConditionsText": {
          "type": "string",
          "description": "Terms and conditions of the promotion."
        },
        "moneyAmountOff": {
          "description": "Money amount off for discount in the promotion. Either this or percent_off is required.",
          "$ref": "GoogleAdsGoogleadsV23Common__Money"
        },
        "redemptionEndDate": {
          "type": "string",
          "description": "Last date of when the promotion is eligible to be redeemed, in yyyy-MM-dd format."
        },
        "occasion": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "New Year's.",
            "Chinese New Year.",
            "Valentine's Day.",
            "Easter.",
            "Mother's Day.",
            "Father's Day.",
            "Labor Day.",
            "Back To School.",
            "Halloween.",
            "Black Friday.",
            "Cyber Monday.",
            "Christmas.",
            "Boxing Day.",
            "Independence Day in any country.",
            "National Day in any country.",
            "End of any season.",
            "Winter Sale.",
            "Summer sale.",
            "Fall Sale.",
            "Spring Sale.",
            "Ramadan.",
            "Eid al-Fitr.",
            "Eid al-Adha.",
            "Singles Day.",
            "Women's Day.",
            "Holi.",
            "Parent's Day.",
            "St. Nicholas Day.",
            "Carnival.",
            "Epiphany, also known as Three Kings' Day.",
            "Rosh Hashanah.",
            "Passover.",
            "Hanukkah.",
            "Diwali.",
            "Navratri.",
            "Available in Thai: Songkran.",
            "Available in Japanese: Year-end Gift."
          ],
          "description": "The occasion the promotion was intended for. If an occasion is set, the redemption window will need to fall within the date range associated with the occasion.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NEW_YEARS",
            "CHINESE_NEW_YEAR",
            "VALENTINES_DAY",
            "EASTER",
            "MOTHERS_DAY",
            "FATHERS_DAY",
            "LABOR_DAY",
            "BACK_TO_SCHOOL",
            "HALLOWEEN",
            "BLACK_FRIDAY",
            "CYBER_MONDAY",
            "CHRISTMAS",
            "BOXING_DAY",
            "INDEPENDENCE_DAY",
            "NATIONAL_DAY",
            "END_OF_SEASON",
            "WINTER_SALE",
            "SUMMER_SALE",
            "FALL_SALE",
            "SPRING_SALE",
            "RAMADAN",
            "EID_AL_FITR",
            "EID_AL_ADHA",
            "SINGLES_DAY",
            "WOMENS_DAY",
            "HOLI",
            "PARENTS_DAY",
            "ST_NICHOLAS_DAY",
            "CARNIVAL",
            "EPIPHANY",
            "ROSH_HASHANAH",
            "PASSOVER",
            "HANUKKAH",
            "DIWALI",
            "NAVRATRI",
            "SONGKRAN",
            "YEAR_END_GIFT"
          ],
          "type": "string"
        },
        "endDate": {
          "description": "Last date of when this asset is effective and still serving, in yyyy-MM-dd format.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__PromotionAsset",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__AdAssetPolicySummary": {
      "description": "Contains policy information for an asset inside an ad.",
      "properties": {
        "policyTopicEntries": {
          "description": "The list of policy findings for this asset.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__PolicyTopicEntry"
          },
          "type": "array"
        },
        "reviewStatus": {
          "type": "string",
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "Currently under review.",
            "Primary review complete. Other reviews may be continuing.",
            "The resource has been resubmitted for approval or its policy decision has been appealed.",
            "The resource is eligible and may be serving but could still undergo further review."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "REVIEW_IN_PROGRESS",
            "REVIEWED",
            "UNDER_APPEAL",
            "ELIGIBLE_MAY_SERVE"
          ],
          "description": "Where in the review process this asset."
        },
        "approvalStatus": {
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "Will not serve.",
            "Serves with restrictions.",
            "Serves without restrictions.",
            "Will not serve in targeted countries, but may serve for users who are searching for information about the targeted countries."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DISAPPROVED",
            "APPROVED_LIMITED",
            "APPROVED",
            "AREA_OF_INTEREST_ONLY"
          ],
          "description": "The overall approval status of this asset, which is calculated based on the status of its individual policy topic entries."
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__AdAssetPolicySummary"
    },
    "GoogleAdsGoogleadsV23Services__GoogleAdsRow": {
      "id": "GoogleAdsGoogleadsV23Services__GoogleAdsRow",
      "properties": {
        "groupPlacementView": {
          "description": "The group placement view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__GroupPlacementView"
        },
        "adGroupCriterionCustomizer": {
          "description": "The ad group criterion customizer referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__AdGroupCriterionCustomizer"
        },
        "biddingSeasonalityAdjustment": {
          "$ref": "GoogleAdsGoogleadsV23Resources__BiddingSeasonalityAdjustment",
          "description": "The bidding seasonality adjustment referenced in the query."
        },
        "paidOrganicSearchTermView": {
          "$ref": "GoogleAdsGoogleadsV23Resources__PaidOrganicSearchTermView",
          "description": "The paid organic search term view referenced in the query."
        },
        "androidPrivacySharedKeyGoogleCampaign": {
          "description": "The android privacy shared key google campaign referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__AndroidPrivacySharedKeyGoogleCampaign"
        },
        "accountBudgetProposal": {
          "description": "The account budget proposal referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__AccountBudgetProposal"
        },
        "contentCriterionView": {
          "$ref": "GoogleAdsGoogleadsV23Resources__ContentCriterionView",
          "description": "The content criterion view referenced in the query."
        },
        "localServicesLead": {
          "description": "The local services lead referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__LocalServicesLead"
        },
        "customer": {
          "$ref": "GoogleAdsGoogleadsV23Resources__Customer",
          "description": "The customer referenced in the query."
        },
        "video": {
          "description": "The video referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__Video"
        },
        "adGroupCriterionSimulation": {
          "description": "The ad group criterion simulation referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__AdGroupCriterionSimulation"
        },
        "customerClientLink": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CustomerClientLink",
          "description": "The CustomerClientLink referenced in the query."
        },
        "targetingExpansionView": {
          "description": "The Targeting expansion view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__TargetingExpansionView"
        },
        "managedPlacementView": {
          "description": "The managed placement view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__ManagedPlacementView"
        },
        "adGroupAdLabel": {
          "description": "The ad group ad label referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__AdGroupAdLabel"
        },
        "customizerAttribute": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CustomizerAttribute",
          "description": "The customizer attribute referenced in the query."
        },
        "campaignSharedSet": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CampaignSharedSet",
          "description": "Campaign Shared Set referenced in AWQL query."
        },
        "adGroupCriterionLabel": {
          "$ref": "GoogleAdsGoogleadsV23Resources__AdGroupCriterionLabel",
          "description": "The ad group criterion label referenced in the query."
        },
        "smartCampaignSearchTermView": {
          "$ref": "GoogleAdsGoogleadsV23Resources__SmartCampaignSearchTermView",
          "description": "The Smart campaign search term view referenced in the query."
        },
        "experiment": {
          "$ref": "GoogleAdsGoogleadsV23Resources__Experiment",
          "description": "The experiment referenced in the query."
        },
        "adGroupLabel": {
          "$ref": "GoogleAdsGoogleadsV23Resources__AdGroupLabel",
          "description": "The ad group label referenced in the query."
        },
        "genderView": {
          "description": "The gender view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__GenderView"
        },
        "campaignBudget": {
          "description": "The campaign budget referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__CampaignBudget"
        },
        "sharedCriterion": {
          "description": "The shared set referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__SharedCriterion"
        },
        "hotelReconciliation": {
          "description": "The hotel reconciliation referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__HotelReconciliation"
        },
        "biddingDataExclusion": {
          "description": "The bidding data exclusion referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__BiddingDataExclusion"
        },
        "campaignAggregateAssetView": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CampaignAggregateAssetView",
          "description": "The campaign aggregate asset view referenced in the query."
        },
        "remarketingAction": {
          "$ref": "GoogleAdsGoogleadsV23Resources__RemarketingAction",
          "description": "The remarketing action referenced in the query."
        },
        "accountBudget": {
          "$ref": "GoogleAdsGoogleadsV23Resources__AccountBudget",
          "description": "The account budget in the query."
        },
        "productGroupView": {
          "$ref": "GoogleAdsGoogleadsV23Resources__ProductGroupView",
          "description": "The product group view referenced in the query."
        },
        "keywordPlanAdGroup": {
          "$ref": "GoogleAdsGoogleadsV23Resources__KeywordPlanAdGroup",
          "description": "The keyword plan ad group referenced in the query."
        },
        "finalUrlExpansionAssetView": {
          "description": "The final url expansion asset view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__FinalUrlExpansionAssetView"
        },
        "userList": {
          "$ref": "GoogleAdsGoogleadsV23Resources__UserList",
          "description": "The user list referenced in the query."
        },
        "mobileDeviceConstant": {
          "description": "The mobile device constant referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__MobileDeviceConstant"
        },
        "detailContentSuitabilityPlacementView": {
          "description": "The detail content suitability placement view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__DetailContentSuitabilityPlacementView"
        },
        "productCategoryConstant": {
          "description": "The product category referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__ProductCategoryConstant"
        },
        "clickView": {
          "$ref": "GoogleAdsGoogleadsV23Resources__ClickView",
          "description": "The ClickView referenced in the query."
        },
        "ageRangeView": {
          "description": "The age range view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__AgeRangeView"
        },
        "assetSetTypeView": {
          "$ref": "GoogleAdsGoogleadsV23Resources__AssetSetTypeView",
          "description": "The asset set type view referenced in the query."
        },
        "adParameter": {
          "description": "The ad parameter referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__AdParameter"
        },
        "adScheduleView": {
          "description": "The ad schedule view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__AdScheduleView"
        },
        "carrierConstant": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CarrierConstant",
          "description": "The carrier constant referenced in the query."
        },
        "audience": {
          "$ref": "GoogleAdsGoogleadsV23Resources__Audience",
          "description": "The Audience referenced in the query."
        },
        "adGroupCustomizer": {
          "$ref": "GoogleAdsGoogleadsV23Resources__AdGroupCustomizer",
          "description": "The ad group customizer referenced in the query."
        },
        "webpageView": {
          "description": "The webpage view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__WebpageView"
        },
        "adGroupAdAssetCombinationView": {
          "description": "The ad group ad asset combination view in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__AdGroupAdAssetCombinationView"
        },
        "changeEvent": {
          "$ref": "GoogleAdsGoogleadsV23Resources__ChangeEvent",
          "description": "The ChangeEvent referenced in the query."
        },
        "currencyConstant": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CurrencyConstant",
          "description": "The currency constant referenced in the query."
        },
        "thirdPartyAppAnalyticsLink": {
          "description": "The AccountLink referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__ThirdPartyAppAnalyticsLink"
        },
        "campaignCustomizer": {
          "description": "The campaign customizer referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__CampaignCustomizer"
        },
        "displayKeywordView": {
          "description": "The display keyword view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__DisplayKeywordView"
        },
        "campaign": {
          "$ref": "GoogleAdsGoogleadsV23Resources__Campaign",
          "description": "The campaign referenced in the query."
        },
        "recommendationSubscription": {
          "$ref": "GoogleAdsGoogleadsV23Resources__RecommendationSubscription",
          "description": "The recommendation subscription referenced in the query."
        },
        "customerManagerLink": {
          "description": "The CustomerManagerLink referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__CustomerManagerLink"
        },
        "campaignAssetSet": {
          "description": "The campaign asset set referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__CampaignAssetSet"
        },
        "billingSetup": {
          "$ref": "GoogleAdsGoogleadsV23Resources__BillingSetup",
          "description": "The billing setup referenced in the query."
        },
        "campaignLifecycleGoal": {
          "description": "The campaign lifecycle goal referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__CampaignLifecycleGoal"
        },
        "productLink": {
          "description": "The product link referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__ProductLink"
        },
        "travelActivityGroupView": {
          "description": "The travel activity group view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__TravelActivityGroupView"
        },
        "landingPageView": {
          "description": "The landing page view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__LandingPageView"
        },
        "adGroupAssetSet": {
          "$ref": "GoogleAdsGoogleadsV23Resources__AdGroupAssetSet",
          "description": "The ad group asset set referenced in the query."
        },
        "androidPrivacySharedKeyGoogleAdGroup": {
          "$ref": "GoogleAdsGoogleadsV23Resources__AndroidPrivacySharedKeyGoogleAdGroup",
          "description": "The android privacy shared key google ad group referenced in the query."
        },
        "offlineConversionUploadClientSummary": {
          "description": "Offline conversion upload summary at customer level.",
          "$ref": "GoogleAdsGoogleadsV23Resources__OfflineConversionUploadClientSummary"
        },
        "keywordView": {
          "description": "The keyword view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__KeywordView"
        },
        "userListCustomerType": {
          "description": "The user list customer type in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__UserListCustomerType"
        },
        "campaignSearchTermView": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CampaignSearchTermView",
          "description": "The campaign-level search term view referenced in the query."
        },
        "customerConversionGoal": {
          "description": "The CustomerConversionGoal referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__CustomerConversionGoal"
        },
        "changeStatus": {
          "$ref": "GoogleAdsGoogleadsV23Resources__ChangeStatus",
          "description": "The ChangeStatus referenced in the query."
        },
        "customerNegativeCriterion": {
          "description": "The customer negative criterion referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__CustomerNegativeCriterion"
        },
        "dataLink": {
          "description": "The data link referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__DataLink"
        },
        "matchedLocationInterestView": {
          "description": "The matched location interest view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__MatchedLocationInterestView"
        },
        "customerAssetSet": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CustomerAssetSet",
          "description": "The customer asset set referenced in the query."
        },
        "hotelGroupView": {
          "$ref": "GoogleAdsGoogleadsV23Resources__HotelGroupView",
          "description": "The hotel group view referenced in the query."
        },
        "customerLifecycleGoal": {
          "description": "The customer lifecycle goal referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__CustomerLifecycleGoal"
        },
        "offlineUserDataJob": {
          "$ref": "GoogleAdsGoogleadsV23Resources__OfflineUserDataJob",
          "description": "The offline user data job referenced in the query."
        },
        "operatingSystemVersionConstant": {
          "$ref": "GoogleAdsGoogleadsV23Resources__OperatingSystemVersionConstant",
          "description": "The operating system version constant referenced in the query."
        },
        "distanceView": {
          "description": "The distance view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__DistanceView"
        },
        "parentalStatusView": {
          "description": "The parental status view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__ParentalStatusView"
        },
        "experimentArm": {
          "description": "The experiment arm referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__ExperimentArm"
        },
        "conversionAction": {
          "$ref": "GoogleAdsGoogleadsV23Resources__ConversionAction",
          "description": "The conversion action referenced in the query."
        },
        "customInterest": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CustomInterest",
          "description": "The CustomInterest referenced in the query."
        },
        "androidPrivacySharedKeyGoogleNetworkType": {
          "$ref": "GoogleAdsGoogleadsV23Resources__AndroidPrivacySharedKeyGoogleNetworkType",
          "description": "The android privacy shared key google network type referenced in the query."
        },
        "topicConstant": {
          "description": "The topic constant referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__TopicConstant"
        },
        "adGroupAsset": {
          "description": "The ad group asset referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__AdGroupAsset"
        },
        "assetSetAsset": {
          "$ref": "GoogleAdsGoogleadsV23Resources__AssetSetAsset",
          "description": "The asset set asset referenced in the query."
        },
        "accountLink": {
          "description": "The AccountLink referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__AccountLink"
        },
        "adGroupCriterion": {
          "description": "The criterion referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__AdGroupCriterion"
        },
        "campaignCriterion": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CampaignCriterion",
          "description": "The campaign criterion referenced in the query."
        },
        "combinedAudience": {
          "description": "The CombinedAudience referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__CombinedAudience"
        },
        "campaignAsset": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CampaignAsset",
          "description": "The campaign asset referenced in the query."
        },
        "sharedSet": {
          "description": "The shared set referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__SharedSet"
        },
        "biddingStrategySimulation": {
          "$ref": "GoogleAdsGoogleadsV23Resources__BiddingStrategySimulation",
          "description": "The bidding strategy simulation referenced in the query."
        },
        "campaignSearchTermInsight": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CampaignSearchTermInsight",
          "description": "The campaign search term insight referenced in the query."
        },
        "adGroupAudienceView": {
          "description": "The ad group audience view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__AdGroupAudienceView"
        },
        "domainCategory": {
          "description": "The domain category referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__DomainCategory"
        },
        "customConversionGoal": {
          "description": "The CustomConversionGoal referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__CustomConversionGoal"
        },
        "detailPlacementView": {
          "$ref": "GoogleAdsGoogleadsV23Resources__DetailPlacementView",
          "description": "The detail placement view referenced in the query."
        },
        "topicView": {
          "$ref": "GoogleAdsGoogleadsV23Resources__TopicView",
          "description": "The topic view referenced in the query."
        },
        "conversionValueRule": {
          "$ref": "GoogleAdsGoogleadsV23Resources__ConversionValueRule",
          "description": "The conversion value rule referenced in the query."
        },
        "goal": {
          "description": "The goal in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__Goal"
        },
        "channelAggregateAssetView": {
          "$ref": "GoogleAdsGoogleadsV23Resources__ChannelAggregateAssetView",
          "description": "The channel aggregate asset view referenced in the query."
        },
        "keywordThemeConstant": {
          "description": "The keyword theme constant referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__KeywordThemeConstant"
        },
        "customAudience": {
          "description": "The CustomAudience referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__CustomAudience"
        },
        "conversionCustomVariable": {
          "description": "The conversion custom variable referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__ConversionCustomVariable"
        },
        "productLinkInvitation": {
          "description": "The product link invitation in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__ProductLinkInvitation"
        },
        "keywordPlanCampaign": {
          "description": "The keyword plan campaign referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__KeywordPlanCampaign"
        },
        "userLocationView": {
          "$ref": "GoogleAdsGoogleadsV23Resources__UserLocationView",
          "description": "The user location view referenced in the query."
        },
        "shoppingPerformanceView": {
          "$ref": "GoogleAdsGoogleadsV23Resources__ShoppingPerformanceView",
          "description": "The shopping performance view referenced in the query."
        },
        "qualifyingQuestion": {
          "$ref": "GoogleAdsGoogleadsV23Resources__QualifyingQuestion",
          "description": "The qualifying question referenced in the query."
        },
        "perStoreView": {
          "$ref": "GoogleAdsGoogleadsV23Resources__PerStoreView",
          "description": "The per store view referenced in the query."
        },
        "customerLabel": {
          "description": "The customer label referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__CustomerLabel"
        },
        "localServicesEmployee": {
          "$ref": "GoogleAdsGoogleadsV23Resources__LocalServicesEmployee",
          "description": "The local services employee referenced in the query."
        },
        "hotelPerformanceView": {
          "description": "The hotel performance view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__HotelPerformanceView"
        },
        "customerCustomizer": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CustomerCustomizer",
          "description": "The customer customizer referenced in the query."
        },
        "segments": {
          "$ref": "GoogleAdsGoogleadsV23Common__Segments",
          "description": "The segments."
        },
        "adGroupBidModifier": {
          "description": "The bid modifier referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__AdGroupBidModifier"
        },
        "mediaFile": {
          "description": "The media file referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__MediaFile"
        },
        "customerAsset": {
          "description": "The customer asset referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__CustomerAsset"
        },
        "languageConstant": {
          "description": "The language constant referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__LanguageConstant"
        },
        "mobileAppCategoryConstant": {
          "$ref": "GoogleAdsGoogleadsV23Resources__MobileAppCategoryConstant",
          "description": "The mobile app category constant referenced in the query."
        },
        "campaignConversionGoal": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CampaignConversionGoal",
          "description": "The CampaignConversionGoal referenced in the query."
        },
        "geoTargetConstant": {
          "$ref": "GoogleAdsGoogleadsV23Resources__GeoTargetConstant",
          "description": "The geo target constant referenced in the query."
        },
        "searchTermView": {
          "description": "The search term view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__SearchTermView"
        },
        "dynamicSearchAdsSearchTermView": {
          "$ref": "GoogleAdsGoogleadsV23Resources__DynamicSearchAdsSearchTermView",
          "description": "The dynamic search ads search term view referenced in the query."
        },
        "assetGroupProductGroupView": {
          "$ref": "GoogleAdsGoogleadsV23Resources__AssetGroupProductGroupView",
          "description": "The asset group product group view referenced in the query."
        },
        "assetGroupSignal": {
          "$ref": "GoogleAdsGoogleadsV23Resources__AssetGroupSignal",
          "description": "The asset group signal referenced in the query."
        },
        "asset": {
          "description": "The asset referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__Asset"
        },
        "adGroupAdAssetView": {
          "description": "The ad group ad asset view in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__AdGroupAdAssetView"
        },
        "groupContentSuitabilityPlacementView": {
          "description": "The group content suitability placement view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__GroupContentSuitabilityPlacementView"
        },
        "offlineConversionUploadConversionActionSummary": {
          "description": "Offline conversion upload summary at conversion type level.",
          "$ref": "GoogleAdsGoogleadsV23Resources__OfflineConversionUploadConversionActionSummary"
        },
        "locationView": {
          "description": "The location view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__LocationView"
        },
        "expandedLandingPageView": {
          "description": "The expanded landing page view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__ExpandedLandingPageView"
        },
        "localServicesVerificationArtifact": {
          "description": "The local services verification artifact referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__LocalServicesVerificationArtifact"
        },
        "campaignAudienceView": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CampaignAudienceView",
          "description": "The campaign audience view referenced in the query."
        },
        "accessibleBiddingStrategy": {
          "description": "The accessible bidding strategy referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__AccessibleBiddingStrategy"
        },
        "campaignGroup": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CampaignGroup",
          "description": "Campaign Group referenced in AWQL query."
        },
        "assetGroup": {
          "$ref": "GoogleAdsGoogleadsV23Resources__AssetGroup",
          "description": "The asset group referenced in the query."
        },
        "keywordPlan": {
          "description": "The keyword plan referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__KeywordPlan"
        },
        "performanceMaxPlacementView": {
          "description": "The performance max placement view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__PerformanceMaxPlacementView"
        },
        "campaignBidModifier": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CampaignBidModifier",
          "description": "The campaign bid modifier referenced in the query."
        },
        "batchJob": {
          "description": "The batch job referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__BatchJob"
        },
        "campaignGoalConfig": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CampaignGoalConfig",
          "description": "The campaign goal config referenced in the query."
        },
        "appliedIncentive": {
          "description": "The applied incentive referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__AppliedIncentive"
        },
        "customerUserAccess": {
          "description": "The CustomerUserAccess referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__CustomerUserAccess"
        },
        "metrics": {
          "$ref": "GoogleAdsGoogleadsV23Common__Metrics",
          "description": "The metrics."
        },
        "incomeRangeView": {
          "description": "The income range view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__IncomeRangeView"
        },
        "userInterest": {
          "description": "The user interest referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__UserInterest"
        },
        "assetFieldTypeView": {
          "$ref": "GoogleAdsGoogleadsV23Resources__AssetFieldTypeView",
          "description": "The asset field type view referenced in the query."
        },
        "conversionGoalCampaignConfig": {
          "description": "The ConversionGoalCampaignConfig referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__ConversionGoalCampaignConfig"
        },
        "adGroupAd": {
          "description": "The ad referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__AdGroupAd"
        },
        "callView": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CallView",
          "description": "The call view referenced in the query."
        },
        "aiMaxSearchTermAdCombinationView": {
          "$ref": "GoogleAdsGoogleadsV23Resources__AiMaxSearchTermAdCombinationView",
          "description": "The AI Max search term ad combination view referenced in the query."
        },
        "conversionValueRuleSet": {
          "$ref": "GoogleAdsGoogleadsV23Resources__ConversionValueRuleSet",
          "description": "The conversion value rule set referenced in the query."
        },
        "campaignDraft": {
          "description": "The campaign draft referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__CampaignDraft"
        },
        "biddingStrategy": {
          "$ref": "GoogleAdsGoogleadsV23Resources__BiddingStrategy",
          "description": "The bidding strategy referenced in the query."
        },
        "customerSearchTermInsight": {
          "description": "The customer search term insight referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__CustomerSearchTermInsight"
        },
        "recommendation": {
          "$ref": "GoogleAdsGoogleadsV23Resources__Recommendation",
          "description": "The recommendation referenced in the query."
        },
        "localServicesLeadConversation": {
          "description": "The local services lead conversationreferenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__LocalServicesLeadConversation"
        },
        "keywordPlanAdGroupKeyword": {
          "description": "The keyword plan ad group referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__KeywordPlanAdGroupKeyword"
        },
        "keywordPlanCampaignKeyword": {
          "description": "The keyword plan campaign keyword referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__KeywordPlanCampaignKeyword"
        },
        "geographicView": {
          "$ref": "GoogleAdsGoogleadsV23Resources__GeographicView",
          "description": "The geographic view referenced in the query."
        },
        "leadFormSubmissionData": {
          "description": "The lead form user submission referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__LeadFormSubmissionData"
        },
        "label": {
          "description": "The label referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__Label"
        },
        "campaignSimulation": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CampaignSimulation",
          "description": "The campaign simulation referenced in the query."
        },
        "lifeEvent": {
          "description": "The life event referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__LifeEvent"
        },
        "travelActivityPerformanceView": {
          "description": "The travel activity performance view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__TravelActivityPerformanceView"
        },
        "smartCampaignSetting": {
          "$ref": "GoogleAdsGoogleadsV23Resources__SmartCampaignSetting",
          "description": "The Smart campaign setting referenced in the query."
        },
        "assetSet": {
          "description": "The asset set referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__AssetSet"
        },
        "adGroup": {
          "$ref": "GoogleAdsGoogleadsV23Resources__AdGroup",
          "description": "The ad group referenced in the query."
        },
        "customerClient": {
          "description": "The CustomerClient referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__CustomerClient"
        },
        "campaignLabel": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CampaignLabel",
          "description": "The campaign label referenced in the query."
        },
        "adGroupSimulation": {
          "description": "The ad group simulation referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__AdGroupSimulation"
        },
        "detailedDemographic": {
          "description": "The detailed demographic referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__DetailedDemographic"
        },
        "locationInterestView": {
          "description": "The location interest view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__LocationInterestView"
        },
        "assetGroupTopCombinationView": {
          "description": "The asset group top combination view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__AssetGroupTopCombinationView"
        },
        "ad": {
          "$ref": "GoogleAdsGoogleadsV23Resources__Ad",
          "description": "The Ad referenced in the query."
        },
        "shoppingProduct": {
          "$ref": "GoogleAdsGoogleadsV23Resources__ShoppingProduct",
          "description": "The shopping product referenced in the query."
        },
        "assetGroupAsset": {
          "description": "The asset group asset referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__AssetGroupAsset"
        },
        "assetGroupListingGroupFilter": {
          "description": "The asset group listing group filter referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__AssetGroupListingGroupFilter"
        },
        "customerUserAccessInvitation": {
          "description": "The CustomerUserAccessInvitation referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV23Resources__CustomerUserAccessInvitation"
        }
      },
      "description": "A returned row from the query.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__GenerateImagesRequest": {
      "id": "GoogleAdsGoogleadsV23Services__GenerateImagesRequest",
      "description": "Request message for AssetGenerationService.GenerateImages",
      "type": "object",
      "properties": {
        "advertisingChannelType": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Search Network. Includes display bundled, and Search+ campaigns.",
            "Google Display Network only.",
            "Shopping campaigns serve on the shopping property and on google.com search results.",
            "Hotel Ads campaigns.",
            "Video campaigns.",
            "App Campaigns, and App Campaigns for Engagement, that run across multiple channels.",
            "Local ads campaigns.",
            "Smart campaigns.",
            "Performance Max campaigns.",
            "Local services campaigns.",
            "Travel campaigns.",
            "Demand Gen campaigns."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SEARCH",
            "DISPLAY",
            "SHOPPING",
            "HOTEL",
            "VIDEO",
            "MULTI_CHANNEL",
            "LOCAL",
            "SMART",
            "PERFORMANCE_MAX",
            "LOCAL_SERVICES",
            "TRAVEL",
            "DEMAND_GEN"
          ],
          "description": "Optional. The advertising channel type for which the images are being generated. This field is required if `existing_generation_context` is not provided. Supported channel types include SEARCH, PERFORMANCE_MAX, DISPLAY, and DEMAND_GEN."
        },
        "freeformGeneration": {
          "description": "Optional. Generate images from a freeform prompt.",
          "$ref": "GoogleAdsGoogleadsV23Services__FreeformImageGenerationInput"
        },
        "assetFieldTypes": {
          "type": "array",
          "items": {
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "HEADLINE",
              "DESCRIPTION",
              "MANDATORY_AD_TEXT",
              "MARKETING_IMAGE",
              "MEDIA_BUNDLE",
              "YOUTUBE_VIDEO",
              "BOOK_ON_GOOGLE",
              "LEAD_FORM",
              "PROMOTION",
              "CALLOUT",
              "STRUCTURED_SNIPPET",
              "SITELINK",
              "MOBILE_APP",
              "HOTEL_CALLOUT",
              "CALL",
              "PRICE",
              "LONG_HEADLINE",
              "BUSINESS_NAME",
              "SQUARE_MARKETING_IMAGE",
              "PORTRAIT_MARKETING_IMAGE",
              "LOGO",
              "LANDSCAPE_LOGO",
              "VIDEO",
              "CALL_TO_ACTION_SELECTION",
              "AD_IMAGE",
              "BUSINESS_LOGO",
              "HOTEL_PROPERTY",
              "DEMAND_GEN_CAROUSEL_CARD",
              "BUSINESS_MESSAGE",
              "TALL_PORTRAIT_MARKETING_IMAGE",
              "RELATED_YOUTUBE_VIDEOS",
              "LANDING_PAGE_PREVIEW",
              "LONG_DESCRIPTION",
              "CALL_TO_ACTION"
            ],
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "The asset is linked for use as a headline.",
              "The asset is linked for use as a description.",
              "The asset is linked for use as mandatory ad text.",
              "The asset is linked for use as a marketing image.",
              "The asset is linked for use as a media bundle.",
              "The asset is linked for use as a YouTube video.",
              "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
              "The asset is linked for use as a Lead Form extension.",
              "The asset is linked for use as a Promotion extension.",
              "The asset is linked for use as a Callout extension.",
              "The asset is linked for use as a Structured Snippet extension.",
              "The asset is linked for use as a Sitelink.",
              "The asset is linked for use as a Mobile App extension.",
              "The asset is linked for use as a Hotel Callout extension.",
              "The asset is linked for use as a Call extension.",
              "The asset is linked for use as a Price extension.",
              "The asset is linked for use as a long headline.",
              "The asset is linked for use as a business name.",
              "The asset is linked for use as a square marketing image.",
              "The asset is linked for use as a portrait marketing image.",
              "The asset is linked for use as a logo.",
              "The asset is linked for use as a landscape logo.",
              "The asset is linked for use as a non YouTube logo.",
              "The asset is linked for use to select a call-to-action.",
              "The asset is linked for use to select an ad image.",
              "The asset is linked for use as a business logo.",
              "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
              "The asset is linked for use as a Demand Gen carousel card.",
              "The asset is linked for use as a Business Message.",
              "The asset is linked for use as a tall portrait marketing image.",
              "The asset is linked for use as related YouTube videos.",
              "The asset is linked for use as a landing page preview image.",
              "The asset is linked for use as a long description.",
              "The asset is linked for use as a call-to-action."
            ]
          },
          "description": "Optional. Output field types for generated images. Supported values are MARKETING_IMAGE, SQUARE_MARKETING_IMAGE, PORTRAIT_MARKETING_IMAGE, and TALL_PORTRAIT_MARKETING_IMAGE. All specified field types must be compatible with the `advertising_channel_type` or `existing_generation_context` (whichever is set). If no field types are provided, images will be generated for all compatible field types."
        },
        "productRecontextGeneration": {
          "description": "Optional. Generate new images by recontextualizing existing product images.",
          "$ref": "GoogleAdsGoogleadsV23Services__ProductRecontextGenerationImageInput"
        },
        "finalUrlGeneration": {
          "$ref": "GoogleAdsGoogleadsV23Services__FinalUrlImageGenerationInput",
          "description": "Optional. Generate images from a final url."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__GraduateExperimentRequest": {
      "properties": {
        "campaignBudgetMappings": {
          "description": "Required. List of campaign budget mappings for graduation. Each campaign that appears here will graduate, and will be assigned a new budget that is paired with it in the mapping. The maximum size is one.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__CampaignBudgetMapping"
          },
          "type": "array"
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__GraduateExperimentRequest",
      "description": "Request message for ExperimentService.GraduateExperiment.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__KeywordPlanAdGroupKeywordOperation": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__KeywordPlanAdGroupKeywordOperation",
      "properties": {
        "updateMask": {
          "type": "string",
          "description": "The FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new Keyword Plan ad group keyword.",
          "$ref": "GoogleAdsGoogleadsV23Resources__KeywordPlanAdGroupKeyword"
        },
        "update": {
          "$ref": "GoogleAdsGoogleadsV23Resources__KeywordPlanAdGroupKeyword",
          "description": "Update operation: The Keyword Plan ad group keyword is expected to have a valid resource name."
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed Keyword Plan ad group keyword is expected, in this format: `customers/{customer_id}/keywordPlanAdGroupKeywords/{kp_ad_group_keyword_id}`"
        }
      },
      "description": "A single operation (create, update, remove) on a Keyword Plan ad group keyword."
    },
    "GoogleAdsGoogleadsV23Services__MutateCampaignSharedSetResult": {
      "type": "object",
      "description": "The result for the campaign shared set mutate.",
      "properties": {
        "campaignSharedSet": {
          "description": "The mutated campaign shared set with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV23Resources__CampaignSharedSet"
        },
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateCampaignSharedSetResult"
    },
    "GoogleAdsGoogleadsV23Services__MutateCampaignGroupsRequest": {
      "id": "GoogleAdsGoogleadsV23Services__MutateCampaignGroupsRequest",
      "type": "object",
      "properties": {
        "operations": {
          "type": "array",
          "description": "Required. The list of operations to perform on individual campaign groups.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__CampaignGroupOperation"
          }
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "responseContentType": {
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "type": "string",
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ]
        }
      },
      "description": "Request message for CampaignGroupService.MutateCampaignGroups."
    },
    "GoogleAdsGoogleadsV23Services__PromoteExperimentMetadata": {
      "type": "object",
      "properties": {
        "experiment": {
          "type": "string",
          "description": "Required. The promoted experiment."
        }
      },
      "description": "The metadata of the promoted experiment.",
      "id": "GoogleAdsGoogleadsV23Services__PromoteExperimentMetadata"
    },
    "GoogleAdsGoogleadsV23Services__ProductFilter": {
      "properties": {
        "marketingObjectiveList": {
          "description": "The list of marketing goals. Marketing objective is a broader product classification of products.",
          "$ref": "GoogleAdsGoogleadsV23Services_ProductFilter_MarketingObjectiveList"
        },
        "productList": {
          "description": "The list of products.",
          "$ref": "GoogleAdsGoogleadsV23Services_ProductFilter_ProductList"
        }
      },
      "description": "The type and list of products to aggregate benchmarks metrics over.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__ProductFilter"
    },
    "GoogleAdsGoogleadsV23Resources__AccessibleBiddingStrategy": {
      "id": "GoogleAdsGoogleadsV23Resources__AccessibleBiddingStrategy",
      "type": "object",
      "description": "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.",
      "properties": {
        "maximizeConversions": {
          "description": "Output only. An automated bidding strategy to help get the most conversions for your campaigns while spending your budget.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV23Resources_AccessibleBiddingStrategy_MaximizeConversions"
        },
        "id": {
          "type": "string",
          "format": "int64",
          "readOnly": true,
          "description": "Output only. The ID of the bidding strategy."
        },
        "ownerDescriptiveName": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. descriptive_name of the Customer which owns the bidding strategy."
        },
        "targetSpend": {
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV23Resources_AccessibleBiddingStrategy_TargetSpend",
          "description": "Output only. A bid strategy that sets your bids to help get as many clicks as possible within your budget."
        },
        "targetRoas": {
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV23Resources_AccessibleBiddingStrategy_TargetRoas",
          "description": "Output only. A bidding strategy that helps you maximize revenue while averaging a specific target Return On Ad Spend (ROAS)."
        },
        "type": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "COMMISSION",
            "ENHANCED_CPC",
            "FIXED_CPM",
            "FIXED_SHARE_OF_VOICE",
            "INVALID",
            "MANUAL_CPA",
            "MANUAL_CPC",
            "MANUAL_CPM",
            "MANUAL_CPV",
            "MAXIMIZE_CONVERSIONS",
            "MAXIMIZE_CONVERSION_VALUE",
            "PAGE_ONE_PROMOTED",
            "PERCENT_CPC",
            "TARGET_CPA",
            "TARGET_CPC",
            "TARGET_CPM",
            "TARGET_CPV",
            "TARGET_IMPRESSION_SHARE",
            "TARGET_OUTRANK_SHARE",
            "TARGET_ROAS",
            "TARGET_SPEND"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Commission is an automatic bidding strategy in which the advertiser pays a certain portion of the conversion value.",
            "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.",
            "Fixed CPM is a manual bidding strategy with a fixed CPM.",
            "Fixed share of voice is a manual bidding strategy for YouTube Sponsorships that bills either on CPM or a fixed cost per day.",
            "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 bidding strategy that allows advertiser to set the bid per advertiser-specified action.",
            "Manual click based bidding where user pays per click.",
            "Manual impression based bidding where user pays per thousand impressions.",
            "A bidding strategy that pays a configurable amount per video view.",
            "A bidding strategy that automatically maximizes number of conversions given a daily budget.",
            "An automated bidding strategy that automatically sets bids to maximize revenue while spending your budget.",
            "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 is bidding strategy where bids are a fraction of the advertised price for some good or service.",
            "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 CPC is an automated bid strategy that sets bids to help get as many clicks as possible at the target cost-per-click (CPC) you set.",
            "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 CPV is an automated bidding strategy that sets bids to optimize performance given the average target cost per view.",
            "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 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 is an automated bidding strategy that helps you maximize revenue while averaging a specific target Return On Average Spend (ROAS).",
            "Target Spend is an automated bid strategy that sets your bids to help get as many clicks as possible within your budget."
          ],
          "readOnly": true,
          "description": "Output only. The type of the bidding strategy."
        },
        "targetImpressionShare": {
          "description": "Output only. A bidding strategy that automatically optimizes towards a chosen percentage of impressions.",
          "$ref": "GoogleAdsGoogleadsV23Resources_AccessibleBiddingStrategy_TargetImpressionShare",
          "readOnly": true
        },
        "ownerCustomerId": {
          "format": "int64",
          "type": "string",
          "readOnly": true,
          "description": "Output only. The ID of the Customer which owns the bidding strategy."
        },
        "name": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The name of the bidding strategy."
        },
        "targetCpa": {
          "description": "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.",
          "$ref": "GoogleAdsGoogleadsV23Resources_AccessibleBiddingStrategy_TargetCpa",
          "readOnly": true
        },
        "resourceName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the accessible bidding strategy. AccessibleBiddingStrategy resource names have the form: `customers/{customer_id}/accessibleBiddingStrategies/{bidding_strategy_id}`"
        },
        "maximizeConversionValue": {
          "$ref": "GoogleAdsGoogleadsV23Resources_AccessibleBiddingStrategy_MaximizeConversionValue",
          "description": "Output only. An automated bidding strategy to help get the most conversion value for your campaigns while spending your budget.",
          "readOnly": true
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateExperimentArmsResponse": {
      "id": "GoogleAdsGoogleadsV23Services__MutateExperimentArmsResponse",
      "description": "Response message for experiment arm mutate.",
      "properties": {
        "results": {
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateExperimentArmResult"
          },
          "type": "array"
        },
        "partialFailureError": {
          "$ref": "GoogleRpc__Status",
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error."
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__PolicyViolationKey": {
      "properties": {
        "policyName": {
          "type": "string",
          "description": "Unique ID of the violated policy."
        },
        "violatingText": {
          "description": "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.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__PolicyViolationKey",
      "type": "object",
      "description": "Key of the violation. The key is used for referring to a violation when filing an exemption request."
    },
    "GoogleAdsGoogleadsV23Resources__CustomerAgreementSetting": {
      "description": "Customer Agreement Setting for a customer.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__CustomerAgreementSetting",
      "properties": {
        "acceptedLeadFormTerms": {
          "description": "Output only. Whether the customer has accepted lead form term of service.",
          "type": "boolean",
          "readOnly": true
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__UserListInfo": {
      "id": "GoogleAdsGoogleadsV23Common__UserListInfo",
      "type": "object",
      "description": "A User List criterion. Represents a user list that is defined by the advertiser to be targeted.",
      "properties": {
        "userList": {
          "description": "The User List resource name.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__HotelCheckInDateRangeInfo": {
      "properties": {
        "endDate": {
          "description": "End date in the YYYY-MM-DD format.",
          "type": "string"
        },
        "startDate": {
          "description": "Start date in the YYYY-MM-DD format.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__HotelCheckInDateRangeInfo",
      "description": "Criterion for a check-in date range.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__AssetDisapproved": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__AssetDisapproved",
      "properties": {
        "offlineEvaluationErrorReasons": {
          "type": "array",
          "description": "Provides the quality evaluation disapproval reason of an asset.",
          "items": {
            "type": "string",
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "PRICE_ASSET_DESCRIPTION_REPEATS_ROW_HEADER",
              "PRICE_ASSET_REPETITIVE_HEADERS",
              "PRICE_ASSET_HEADER_INCOMPATIBLE_WITH_PRICE_TYPE",
              "PRICE_ASSET_DESCRIPTION_INCOMPATIBLE_WITH_ITEM_HEADER",
              "PRICE_ASSET_DESCRIPTION_HAS_PRICE_QUALIFIER",
              "PRICE_ASSET_UNSUPPORTED_LANGUAGE",
              "PRICE_ASSET_OTHER_ERROR"
            ],
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "One or more descriptions repeats its corresponding row header.",
              "Price asset contains repetitive headers.",
              "Price item header is not relevant to the price type.",
              "Price item description is not relevant to the item header.",
              "Price asset has a price qualifier in a description.",
              "Unsupported language for price assets",
              "Human raters identified an issue with the price asset that isn't captured by other error reasons. The primary purpose of this value is to represent legacy FeedItem disapprovals that are no longer produced."
            ]
          }
        }
      },
      "description": "Details related to AssetLinkPrimaryStatusReasonPB.ASSET_DISAPPROVED"
    },
    "GoogleAdsGoogleadsV23Services__ListBenchmarksSourcesResponse": {
      "properties": {
        "benchmarksSources": {
          "description": "The list of available source used to generate benchmarks data for.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__BenchmarksSourceMetadata"
          }
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__ListBenchmarksSourcesResponse",
      "description": "Response message for BenchmarksService.ListBenchmarksSources."
    },
    "GoogleAdsGoogleadsV23Resources__AdStrengthActionItem": {
      "description": "An action item to improve the ad strength of an asset group.",
      "properties": {
        "actionItemType": {
          "description": "Output only. The action item type.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "This action item suggests adding an asset to the asset group."
          ],
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADD_ASSET"
          ],
          "type": "string"
        },
        "addAssetDetails": {
          "$ref": "GoogleAdsGoogleadsV23Resources_AdStrengthActionItem_AddAssetDetails",
          "readOnly": true,
          "description": "Output only. The action item details for action item type ADD_ASSET."
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__AdStrengthActionItem"
    },
    "GoogleAdsGoogleadsV23Services__AssetGroupSignalOperation": {
      "type": "object",
      "properties": {
        "create": {
          "$ref": "GoogleAdsGoogleadsV23Resources__AssetGroupSignal",
          "description": "Create operation: No resource name is expected for the new asset group signal."
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed asset group signal is expected, in this format: `customers/{customer_id}/assetGroupSignals/{asset_group_id}~{criterion_id}`"
        },
        "exemptPolicyViolationKeys": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__PolicyViolationKey"
          },
          "description": "Optional. The list of policy violation keys that should not cause a PolicyViolationError to be reported. Not all policy violations are exemptable, refer to the is_exemptible field in the returned PolicyViolationError. Resources violating these polices will be saved, but will not be eligible to serve. They may begin serving at a later time due to a change in policies, re-review of the resource, or a change in advertiser certificates.",
          "type": "array"
        }
      },
      "description": "A single operation (create, remove) on an asset group signal.",
      "id": "GoogleAdsGoogleadsV23Services__AssetGroupSignalOperation"
    },
    "GoogleAdsGoogleadsV23Services__MutateBillingSetupRequest": {
      "properties": {
        "operation": {
          "description": "Required. The operation to perform.",
          "$ref": "GoogleAdsGoogleadsV23Services__BillingSetupOperation"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateBillingSetupRequest",
      "type": "object",
      "description": "Request message for billing setup mutate operations."
    },
    "GoogleAdsGoogleadsV23Services__BiddableKeyword": {
      "description": "A biddable keyword part of an ad group.",
      "properties": {
        "maxCpcBidMicros": {
          "description": "A max cpc bid in micros that overrides the ad group level max cpc bid in forecast simulation. This value will override the max cpc value set in the bidding strategy and ad group. Only specify this field for bidding strategies that support max cpc values.",
          "format": "int64",
          "type": "string"
        },
        "keyword": {
          "$ref": "GoogleAdsGoogleadsV23Common__KeywordInfo",
          "description": "Required. Keyword. Must have text and match type."
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__BiddableKeyword",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__IndustryVerticalInfo": {
      "description": "The information associated with an Industry Vertical.",
      "id": "GoogleAdsGoogleadsV23Services__IndustryVerticalInfo",
      "type": "object",
      "properties": {
        "industryVerticalName": {
          "description": "The name of the Industry Vertical.",
          "type": "string"
        },
        "parentIndustryVerticalId": {
          "description": "The unique identifier of the parent Industry Vertical, if exists.",
          "type": "string",
          "format": "int64"
        },
        "industryVerticalId": {
          "type": "string",
          "format": "int64",
          "description": "The unique identifier of the Industry Vertical."
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__AssetGroupAssetCombinationData": {
      "id": "GoogleAdsGoogleadsV23Resources__AssetGroupAssetCombinationData",
      "type": "object",
      "properties": {
        "assetCombinationServedAssets": {
          "description": "Output only. Served assets.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AssetUsage"
          },
          "type": "array",
          "readOnly": true
        }
      },
      "description": "Asset group asset combination data"
    },
    "GoogleAdsGoogleadsV23Common__KeywordPlanAggregateMetrics": {
      "id": "GoogleAdsGoogleadsV23Common__KeywordPlanAggregateMetrics",
      "properties": {
        "aggregateMetricTypes": {
          "type": "array",
          "description": "The list of aggregate metrics to fetch data.",
          "items": {
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "DEVICE"
            ],
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "The value is unknown in this version.",
              "The device breakdown of aggregate search volume."
            ]
          }
        }
      },
      "type": "object",
      "description": "The aggregate metrics specification of the request."
    },
    "GoogleAdsGoogleadsV23Services__SuggestSmartCampaignAdResponse": {
      "description": "Response message for SmartCampaignSuggestService.SuggestSmartCampaignAd.",
      "id": "GoogleAdsGoogleadsV23Services__SuggestSmartCampaignAdResponse",
      "type": "object",
      "properties": {
        "adInfo": {
          "description": "Optional. Ad info includes 3 creative headlines and 2 creative descriptions.",
          "$ref": "GoogleAdsGoogleadsV23Common__SmartCampaignAdInfo"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateSmartCampaignSettingResult": {
      "type": "object",
      "description": "The result for the Smart campaign setting mutate.",
      "properties": {
        "smartCampaignSetting": {
          "$ref": "GoogleAdsGoogleadsV23Resources__SmartCampaignSetting",
          "description": "The mutated Smart campaign setting with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\"."
        },
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateSmartCampaignSettingResult"
    },
    "GoogleAdsGoogleadsV23Services__AddOfflineUserDataJobOperationsResponse": {
      "type": "object",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "warning": {
          "description": "Non blocking errors that pertain to operation failures in the warnings mode. Returned only when enable_warnings = true.",
          "$ref": "GoogleRpc__Status"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__AddOfflineUserDataJobOperationsResponse",
      "description": "Response message for OfflineUserDataJobService.AddOfflineUserDataJobOperations."
    },
    "GoogleAdsGoogleadsV23Resources__OfflineConversionSummary": {
      "type": "object",
      "description": "Historical upload summary, grouped by upload date or job.",
      "id": "GoogleAdsGoogleadsV23Resources__OfflineConversionSummary",
      "properties": {
        "jobId": {
          "readOnly": true,
          "description": "Output only. Dimension key for last N jobs.",
          "format": "int64",
          "type": "string"
        },
        "uploadDate": {
          "type": "string",
          "description": "Output only. Dimension key for last N days.",
          "readOnly": true
        },
        "successfulCount": {
          "type": "string",
          "readOnly": true,
          "format": "int64",
          "description": "Output only. Total count of successful event."
        },
        "failedCount": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Total count of failed event.",
          "format": "int64"
        },
        "pendingCount": {
          "type": "string",
          "format": "int64",
          "readOnly": true,
          "description": "Output only. Total count of pending uploaded event."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__SharedSetOperation": {
      "description": "A single operation (create, update, remove) on an shared set.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__SharedSetOperation",
      "properties": {
        "remove": {
          "description": "Remove operation: A resource name for the removed shared set is expected, in this format: `customers/{customer_id}/sharedSets/{shared_set_id}`",
          "type": "string"
        },
        "update": {
          "$ref": "GoogleAdsGoogleadsV23Resources__SharedSet",
          "description": "Update operation: The shared set is expected to have a valid resource name."
        },
        "create": {
          "$ref": "GoogleAdsGoogleadsV23Resources__SharedSet",
          "description": "Create operation: No resource name is expected for the new shared set."
        },
        "updateMask": {
          "format": "google-fieldmask",
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__BiddingSeasonalityAdjustmentOperation": {
      "properties": {
        "update": {
          "description": "Update operation: The seasonality adjustment is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV23Resources__BiddingSeasonalityAdjustment"
        },
        "create": {
          "$ref": "GoogleAdsGoogleadsV23Resources__BiddingSeasonalityAdjustment",
          "description": "Create operation: No resource name is expected for the new seasonality adjustment."
        },
        "remove": {
          "description": "Remove operation: A resource name for the removed seasonality adjustment is expected, in this format: `customers/{customer_id}/biddingSeasonalityAdjustments/{seasonality_adjustment_id}`",
          "type": "string"
        },
        "updateMask": {
          "type": "string",
          "format": "google-fieldmask",
          "description": "FieldMask that determines which resource fields are modified in an update."
        }
      },
      "description": "A single operation (create, remove, update) on a seasonality adjustment.",
      "id": "GoogleAdsGoogleadsV23Services__BiddingSeasonalityAdjustmentOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateCustomerConversionGoalsResponse": {
      "type": "object",
      "properties": {
        "results": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomerConversionGoalResult"
          },
          "description": "All results for the mutate.",
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateCustomerConversionGoalsResponse",
      "description": "Response message for a customer conversion goal mutate."
    },
    "GoogleAdsGoogleadsV23Common__DynamicFlightsAsset": {
      "type": "object",
      "properties": {
        "similarDestinationIds": {
          "description": "Similar destination IDs, for example, PAR,LON.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "destinationName": {
          "type": "string",
          "description": "Destination name, for example, Paris."
        },
        "originName": {
          "type": "string",
          "description": "Origin name, for example, London."
        },
        "iosAppLink": {
          "description": "iOS deep link, for example, exampleApp://content/page.",
          "type": "string"
        },
        "originId": {
          "description": "Origin ID which can be any sequence of letters and digits. The ID sequence (destination ID + origin ID) must be unique.",
          "type": "string"
        },
        "androidAppLink": {
          "type": "string",
          "description": "Android deep link, for example, android-app://com.example.android/http/example.com/gizmos?1234."
        },
        "imageUrl": {
          "description": "Image URL, for example, http://www.example.com/image.png. The image will not be uploaded as image asset.",
          "type": "string"
        },
        "formattedSalePrice": {
          "description": "Formatted sale price which can be any characters. If set, this attribute will be used instead of 'sale price', for example, On sale for $80.00.",
          "type": "string"
        },
        "flightPrice": {
          "description": "Flight price which can be number followed by the alphabetic currency code, ISO 4217 standard. Use '.' as the decimal mark, for example, 100.00 USD.",
          "type": "string"
        },
        "iosAppStoreId": {
          "type": "string",
          "description": "iOS app store ID. This is used to check if the user has the app installed on their device before deep linking. If this field is set, then the ios_app_link field must also be present.",
          "format": "int64"
        },
        "flightSalePrice": {
          "type": "string",
          "description": "Flight sale price which can be number followed by the alphabetic currency code, ISO 4217 standard. Use '.' as the decimal mark, for example, 80.00 USD. Must be less than the 'flight_price' field."
        },
        "destinationId": {
          "type": "string",
          "description": "Required. Destination ID which can be any sequence of letters and digits, and must be unique and match the values of remarketing tag. Required."
        },
        "flightDescription": {
          "description": "Required. Flight description, for example, Book your ticket. Required.",
          "type": "string"
        },
        "formattedPrice": {
          "description": "Formatted price which can be any characters. If set, this attribute will be used instead of 'price', for example, Starting at $100.00.",
          "type": "string"
        },
        "customMapping": {
          "description": "A custom field which can be multiple key to values mapping separated by delimiters (\",\", \"|\" and \":\"), in the forms of \": , , ... , | : , ... , | ... | : , ... ,\" for example, wifi: most | aircraft: 320, 77W | flights: 42 | legroom: 32\".",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__DynamicFlightsAsset",
      "description": "A dynamic flights asset."
    },
    "GoogleAdsGoogleadsV23Resources__ExpandedLandingPageView": {
      "id": "GoogleAdsGoogleadsV23Resources__ExpandedLandingPageView",
      "type": "object",
      "description": "A landing page view with metrics aggregated at the expanded final URL level.",
      "properties": {
        "resourceName": {
          "description": "Output only. The resource name of the expanded landing page view. Expanded landing page view resource names have the form: `customers/{customer_id}/expandedLandingPageViews/{expanded_final_url_fingerprint}`",
          "type": "string",
          "readOnly": true
        },
        "expandedFinalUrl": {
          "description": "Output only. The final URL that clicks are directed to.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__OfflineUserDataJobOperation": {
      "id": "GoogleAdsGoogleadsV23Services__OfflineUserDataJobOperation",
      "type": "object",
      "description": "Operation to be made for the AddOfflineUserDataJobOperationsRequest.",
      "properties": {
        "remove": {
          "description": "Remove the provided data from the transaction. Data cannot be retrieved after being uploaded.",
          "$ref": "GoogleAdsGoogleadsV23Common__UserData"
        },
        "removeAll": {
          "description": "Remove all previously provided data. This is only supported for Customer Match.",
          "type": "boolean"
        },
        "create": {
          "$ref": "GoogleAdsGoogleadsV23Common__UserData",
          "description": "Add the provided data to the transaction. Data cannot be retrieved after being uploaded."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__CustomerAssetSetOperation": {
      "id": "GoogleAdsGoogleadsV23Services__CustomerAssetSetOperation",
      "properties": {
        "remove": {
          "description": "Remove operation: A resource name for the removed customer asset set is expected, in this format: `customers/{customer_id}/customerAssetSets/{asset_set_id}`",
          "type": "string"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new customer asset set.",
          "$ref": "GoogleAdsGoogleadsV23Resources__CustomerAssetSet"
        }
      },
      "description": "A single operation (create, remove) on a customer asset set.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateAdGroupsResponse": {
      "description": "Response message for an ad group mutate.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateAdGroupsResponse",
      "properties": {
        "partialFailureError": {
          "$ref": "GoogleRpc__Status",
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error."
        },
        "results": {
          "type": "array",
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateAdGroupResult"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateCustomerConversionGoalsRequest": {
      "type": "object",
      "description": "Request message for CustomerConversionGoalService.MutateCustomerConversionGoals.",
      "id": "GoogleAdsGoogleadsV23Services__MutateCustomerConversionGoalsRequest",
      "properties": {
        "operations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__CustomerConversionGoalOperation"
          },
          "type": "array",
          "description": "Required. The list of operations to perform on individual customer conversion goal."
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__AdvertisingPartnerIdentifier": {
      "type": "object",
      "properties": {
        "customer": {
          "description": "Output only. The resource name of the advertising partner Google Ads account. This field is required and should not be empty when creating a new Advertising Partner link. It is unable to be modified after the creation of the link.",
          "readOnly": true,
          "type": "string"
        }
      },
      "description": "The identifier for the Advertising Partner Google Ads account.",
      "id": "GoogleAdsGoogleadsV23Resources__AdvertisingPartnerIdentifier"
    },
    "GoogleAdsGoogleadsV23Common__CampaignThirdPartyReachIntegrationPartner": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__CampaignThirdPartyReachIntegrationPartner",
      "description": "Container for third party reach integration data for Campaign.",
      "properties": {
        "reachIntegrationPartner": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Nielsen.",
            "Comscore.",
            "Kantar.",
            "Video Research.",
            "Gemius.",
            "MediaScope.",
            "AudienceProject",
            "VideoAmp",
            "iSpot.tv"
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NIELSEN",
            "COMSCORE",
            "KANTAR_MILLWARD_BROWN",
            "VIDEO_RESEARCH",
            "GEMIUS",
            "MEDIA_SCOPE",
            "AUDIENCE_PROJECT",
            "VIDEO_AMP",
            "ISPOT_TV"
          ],
          "description": "Allowed third party integration partners for reach verification.",
          "type": "string"
        },
        "shareCost": {
          "type": "boolean",
          "description": "If true, then cost data will be shared with this vendor."
        },
        "reachIntegrationPartnerData": {
          "$ref": "GoogleAdsGoogleadsV23Common__ThirdPartyIntegrationPartnerData",
          "description": "Third party partner data for YouTube Reach verification. This is optional metadata for partners to join or attach data to Ads campaigns."
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources_Recommendation_DynamicImageExtensionOptInRecommendation": {
      "properties": {},
      "id": "GoogleAdsGoogleadsV23Resources_Recommendation_DynamicImageExtensionOptInRecommendation",
      "description": "Recommendation to enable dynamic image extensions on the account, allowing Google to find the best images from ad landing pages and complement text ads.",
      "type": "object"
    },
    "GoogleLongrunning__CancelOperationRequest": {
      "type": "object",
      "properties": {},
      "id": "GoogleLongrunning__CancelOperationRequest",
      "description": "The request message for Operations.CancelOperation."
    },
    "GoogleAdsGoogleadsV23Common__TagSnippet": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__TagSnippet",
      "description": "The site tag and event snippet pair for a TrackingCodeType.",
      "properties": {
        "eventSnippet": {
          "type": "string",
          "description": "The event snippet that works with the site tag to track actions that should be counted as conversions."
        },
        "globalSiteTag": {
          "type": "string",
          "description": "The site tag that adds visitors to your basic remarketing lists and sets new cookies on your domain."
        },
        "type": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "WEBPAGE",
            "WEBPAGE_ONCLICK",
            "CLICK_TO_CALL",
            "WEBSITE_CALL"
          ],
          "description": "The type of the generated tag snippets for tracking conversions.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The snippet that is fired as a result of a website page loading.",
            "The snippet contains a JavaScript function which fires the tag. This function is typically called from an onClick handler added to a link or button element on the page.",
            "For embedding on a mobile webpage. The snippet contains a JavaScript function which fires the tag.",
            "The snippet that is used to replace the phone number on your website with a Google forwarding number for call tracking purposes."
          ],
          "type": "string"
        },
        "pageFormat": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Standard HTML page format.",
            "Google AMP page format."
          ],
          "description": "The format of the web page where the tracking tag and snippet will be installed, for example, HTML.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HTML",
            "AMP"
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__AdGroupAdLabel": {
      "properties": {
        "adGroupAd": {
          "description": "Immutable. The ad group ad to which the label is attached.",
          "type": "string"
        },
        "resourceName": {
          "description": "Immutable. The resource name of the ad group ad label. Ad group ad label resource names have the form: `customers/{customer_id}/adGroupAdLabels/{ad_group_id}~{ad_id}~{label_id}`",
          "type": "string"
        },
        "label": {
          "type": "string",
          "description": "Immutable. The label assigned to the ad group ad."
        }
      },
      "type": "object",
      "description": "A relationship between an ad group ad and a label.",
      "id": "GoogleAdsGoogleadsV23Resources__AdGroupAdLabel"
    },
    "GoogleAdsGoogleadsV23Common__ProductCategoryInfo": {
      "properties": {
        "level": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "LEVEL1",
            "LEVEL2",
            "LEVEL3",
            "LEVEL4",
            "LEVEL5"
          ],
          "description": "Level of the product category.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Level 1.",
            "Level 2.",
            "Level 3.",
            "Level 4.",
            "Level 5."
          ]
        },
        "categoryId": {
          "description": "ID of the product category. This ID is equivalent to the google_product_category ID as described in this article: https://support.google.com/merchants/answer/6324436",
          "format": "int64",
          "type": "string"
        }
      },
      "description": "Category of a product offer.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__ProductCategoryInfo"
    },
    "GoogleAdsGoogleadsV23Services__MutateAdGroupAssetSetsRequest": {
      "description": "Request message for AdGroupAssetSetService.MutateAdGroupAssetSets.",
      "id": "GoogleAdsGoogleadsV23Services__MutateAdGroupAssetSetsRequest",
      "type": "object",
      "properties": {
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "responseContentType": {
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ]
        },
        "operations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__AdGroupAssetSetOperation"
          },
          "description": "Required. The list of operations to perform on individual ad group asset sets.",
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__ProductLink": {
      "properties": {
        "dataPartner": {
          "description": "Immutable. Data partner link.",
          "$ref": "GoogleAdsGoogleadsV23Resources__DataPartnerIdentifier"
        },
        "merchantCenter": {
          "description": "Immutable. Google Merchant Center link.",
          "$ref": "GoogleAdsGoogleadsV23Resources__MerchantCenterIdentifier"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. Resource name of the product link. ProductLink resource names have the form: `customers/{customer_id}/productLinks/{product_link_id} `"
        },
        "productLinkId": {
          "type": "string",
          "description": "Output only. The ID of the link. This field is read only.",
          "readOnly": true,
          "format": "int64"
        },
        "googleAds": {
          "description": "Immutable. Google Ads link.",
          "$ref": "GoogleAdsGoogleadsV23Resources__GoogleAdsIdentifier"
        },
        "advertisingPartner": {
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV23Resources__AdvertisingPartnerIdentifier",
          "description": "Output only. Advertising Partner link."
        },
        "type": {
          "description": "Output only. The type of the linked product.",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DATA_PARTNER",
            "GOOGLE_ADS",
            "HOTEL_CENTER",
            "MERCHANT_CENTER",
            "ADVERTISING_PARTNER"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "A link to Data partner.",
            "A link to Google Ads.",
            "A link to Hotel Center.",
            "A link to Google Merchant Center.",
            "A link to the Google Ads account of the advertising partner."
          ],
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__ProductLink",
      "type": "object",
      "description": "Represents the data sharing connection between a Google Ads customer and another product."
    },
    "GoogleAdsGoogleadsV23Common__MobileDeviceInfo": {
      "description": "A mobile device criterion.",
      "id": "GoogleAdsGoogleadsV23Common__MobileDeviceInfo",
      "type": "object",
      "properties": {
        "mobileDeviceConstant": {
          "description": "The mobile device constant resource name.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources_AdGroupVideoAdGroupSettings_VideoAdSequenceStepSetting": {
      "id": "GoogleAdsGoogleadsV23Resources_AdGroupVideoAdGroupSettings_VideoAdSequenceStepSetting",
      "type": "object",
      "properties": {
        "stepId": {
          "description": "The ID of this sequence step from an existing `campaign.video_campaign_settings.video_ad_sequence` definition. Only one Ad Group can point to a given `step_id`.",
          "type": "string",
          "format": "int64"
        }
      },
      "description": "The video ads sequence step settings containing step ID."
    },
    "GoogleAdsGoogleadsV23Services__MutateKeywordPlanAdGroupResult": {
      "type": "object",
      "description": "The result for the Keyword Plan ad group mutate.",
      "id": "GoogleAdsGoogleadsV23Services__MutateKeywordPlanAdGroupResult",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__TargetingSuggestionMetrics": {
      "type": "object",
      "description": "A suggested targetable audience relevant to the requested audience.",
      "properties": {
        "gender": {
          "$ref": "GoogleAdsGoogleadsV23Common__GenderInfo",
          "description": "Suggested gender targeting. If present, this attribute has dimension GENDER."
        },
        "coverage": {
          "description": "The fraction (from 0 to 1 inclusive) of the requested audience that can be reached using the suggested targeting.",
          "format": "double",
          "type": "number"
        },
        "parentalStatus": {
          "description": "A Parental Status value (parent, or not a parent).",
          "$ref": "GoogleAdsGoogleadsV23Common__ParentalStatusInfo"
        },
        "ageRanges": {
          "type": "array",
          "description": "Suggested age targeting; may be empty indicating no age targeting.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AgeRangeInfo"
          }
        },
        "locations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AudienceInsightsAttributeMetadata"
          },
          "type": "array",
          "description": "Suggested location targeting. These attributes all have dimension GEO_TARGET_COUNTRY or SUB_COUNTRY_LOCATION"
        },
        "potentialYoutubeReach": {
          "format": "int64",
          "description": "The approximate estimated number of people that can be reached on YouTube using this targeting.",
          "type": "string"
        },
        "index": {
          "description": "The ratio of coverage to the coverage of the baseline audience or zero if this ratio is undefined or is not meaningful.",
          "type": "number",
          "format": "double"
        },
        "userInterests": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AudienceInsightsAttributeMetadataGroup"
          },
          "description": "List of user interest attributes with metadata defining the audience. The combination has a logical AND-of-ORs structure: The attributes within each AudienceInsightsAttributeMetadataGroup are ORed, and the groups themselves are ANDed."
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__TargetingSuggestionMetrics"
    },
    "GoogleAdsGoogleadsV23Services__MutateAssetGroupAssetResult": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateAssetGroupAssetResult",
      "description": "The result for the asset group asset mutate.",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__CustomerThirdPartyBrandLiftIntegrationPartner": {
      "description": "Container for third party Brand Lift integration data for Customer.",
      "properties": {
        "brandLiftIntegrationPartner": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "KANTAR_MILLWARD_BROWN",
            "DYNATA",
            "INTAGE",
            "MACROMILL"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Kantar",
            "Dynata",
            "Intage",
            "Macromill"
          ],
          "description": "Allowed Third Party integration partners for Brand Lift verification."
        },
        "allowShareCost": {
          "type": "boolean",
          "description": "If true, cost data can be shared with this vendor."
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__CustomerThirdPartyBrandLiftIntegrationPartner"
    },
    "GoogleAdsGoogleadsV23Resources_ConversionAction_ValueSettings": {
      "id": "GoogleAdsGoogleadsV23Resources_ConversionAction_ValueSettings",
      "properties": {
        "defaultCurrencyCode": {
          "type": "string",
          "description": "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."
        },
        "defaultValue": {
          "description": "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.",
          "format": "double",
          "type": "number"
        },
        "alwaysUseDefaultValue": {
          "type": "boolean",
          "description": "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."
        }
      },
      "type": "object",
      "description": "Settings related to the value for conversion events associated with this conversion action."
    },
    "GoogleAdsGoogleadsV23Resources__Residency": {
      "properties": {
        "completionYear": {
          "description": "Output only. Year of completion.",
          "type": "integer",
          "format": "int32",
          "readOnly": true
        },
        "institutionName": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. Name of the institution at which the residency was completed."
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__Residency",
      "description": "Details about the employee's medical residency. Residency is a stage of graduate medical education in which a qualified medical professional practices under the supervision of a senior clinician.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__ExtendedDemographicInfo": {
      "description": "Represents an extended demographic criterion.",
      "properties": {
        "extendedDemographicId": {
          "format": "int64",
          "description": "Taxonomy id of the extended demographic group.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__ExtendedDemographicInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__CalloutAsset": {
      "description": "A Callout asset.",
      "properties": {
        "adScheduleTargets": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdScheduleInfo"
          },
          "description": "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.",
          "type": "array"
        },
        "startDate": {
          "type": "string",
          "description": "Start date of when this asset is effective and can begin serving, in yyyy-MM-dd format."
        },
        "calloutText": {
          "description": "Required. The callout text. The length of this string should be between 1 and 25, inclusive.",
          "type": "string"
        },
        "endDate": {
          "description": "Last date of when this asset is effective and still serving, in yyyy-MM-dd format.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__CalloutAsset",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__ListPlannableProductsRequest": {
      "properties": {
        "plannableLocationId": {
          "description": "Required. The ID of the selected location for planning. To list the available plannable location IDs use ReachPlanService.ListPlannableLocations.",
          "type": "string"
        },
        "reachApplicationInfo": {
          "description": "Optional. Additional information on the application issuing the request.",
          "$ref": "GoogleAdsGoogleadsV23Common__AdditionalApplicationInfo"
        }
      },
      "type": "object",
      "description": "Request to list available products in a given location.",
      "id": "GoogleAdsGoogleadsV23Services__ListPlannableProductsRequest"
    },
    "GoogleAdsGoogleadsV23Resources__OfflineUserDataJob": {
      "description": "A job containing offline user data of store visitors, or user list members that will be processed asynchronously. The uploaded data isn't readable and the processing results of the job can only be read using GoogleAdsService.Search/SearchStream.",
      "id": "GoogleAdsGoogleadsV23Resources__OfflineUserDataJob",
      "type": "object",
      "properties": {
        "resourceName": {
          "description": "Immutable. The resource name of the offline user data job. Offline user data job resource names have the form: `customers/{customer_id}/offlineUserDataJobs/{offline_user_data_job_id}`",
          "type": "string"
        },
        "failureReason": {
          "description": "Output only. Reason for the processing failure, if status is FAILED.",
          "type": "string",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The matched transactions are insufficient.",
            "The uploaded transactions are insufficient.",
            "The average transaction value is unusually high for your account. If this is intended, contact support to request an exception. Learn more at https://support.google.com/google-ads/answer/10018944#transaction_value",
            "The average transaction value is unusually low for your account. If this is intended, contact support to request an exception. Learn more at https://support.google.com/google-ads/answer/10018944#transaction_value",
            "There's a currency code that you haven't used before in your uploads. If this is intended, contact support to request an exception. Learn more at https://support.google.com/google-ads/answer/10018944#Unrecognized_currency"
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INSUFFICIENT_MATCHED_TRANSACTIONS",
            "INSUFFICIENT_TRANSACTIONS",
            "HIGH_AVERAGE_TRANSACTION_VALUE",
            "LOW_AVERAGE_TRANSACTION_VALUE",
            "NEWLY_OBSERVED_CURRENCY_CODE"
          ]
        },
        "type": {
          "type": "string",
          "description": "Immutable. Type of the job.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "STORE_SALES_UPLOAD_FIRST_PARTY",
            "STORE_SALES_UPLOAD_THIRD_PARTY",
            "CUSTOMER_MATCH_USER_LIST",
            "CUSTOMER_MATCH_WITH_ATTRIBUTES"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Store Sales Direct data for self service.",
            "Store Sales Direct data for third party.",
            "Customer Match user list data.",
            "Customer Match with attribute data."
          ]
        },
        "id": {
          "description": "Output only. ID of this offline user data job.",
          "format": "int64",
          "type": "string",
          "readOnly": true
        },
        "storeSalesMetadata": {
          "$ref": "GoogleAdsGoogleadsV23Common__StoreSalesMetadata",
          "description": "Immutable. Metadata for store sales data update."
        },
        "operationMetadata": {
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV23Resources__OfflineUserDataJobMetadata",
          "description": "Output only. Metadata of offline user data job depicting match rate range."
        },
        "externalId": {
          "type": "string",
          "format": "int64",
          "description": "Immutable. User specified job ID."
        },
        "customerMatchUserListMetadata": {
          "description": "Immutable. Metadata for data updates to a CRM-based user list.",
          "$ref": "GoogleAdsGoogleadsV23Common__CustomerMatchUserListMetadata"
        },
        "status": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The job has been successfully created and pending for uploading.",
            "Upload(s) have been accepted and data is being processed.",
            "Uploaded data has been successfully processed. The job might have no operations, which can happen if the job was run without any operations added, or if all operations failed validation individually when attempting to add them to the job.",
            "Uploaded data has failed to be processed. Some operations may have been successfully processed."
          ],
          "description": "Output only. Status of the job.",
          "type": "string",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PENDING",
            "RUNNING",
            "SUCCESS",
            "FAILED"
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__BiddingDataExclusionOperation": {
      "id": "GoogleAdsGoogleadsV23Services__BiddingDataExclusionOperation",
      "type": "object",
      "description": "A single operation (create, remove, update) on a data exclusion.",
      "properties": {
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed data exclusion is expected, in this format: `customers/{customer_id}/biddingDataExclusions/{data_exclusion_id}`"
        },
        "updateMask": {
          "type": "string",
          "format": "google-fieldmask",
          "description": "FieldMask that determines which resource fields are modified in an update."
        },
        "update": {
          "$ref": "GoogleAdsGoogleadsV23Resources__BiddingDataExclusion",
          "description": "Update operation: The data exclusion is expected to have a valid resource name."
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new data exclusion.",
          "$ref": "GoogleAdsGoogleadsV23Resources__BiddingDataExclusion"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateAssetGroupsRequest": {
      "description": "Request message for AssetGroupService.MutateAssetGroups.",
      "id": "GoogleAdsGoogleadsV23Services__MutateAssetGroupsRequest",
      "properties": {
        "operations": {
          "type": "array",
          "description": "Required. The list of operations to perform on individual asset groups.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__AssetGroupOperation"
          }
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__BusinessRegistrationCheckVerificationArtifact": {
      "description": "A proto holding information specific to a local services business registration check.",
      "id": "GoogleAdsGoogleadsV23Resources__BusinessRegistrationCheckVerificationArtifact",
      "properties": {
        "checkId": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The id of the check, such as vat_tax_id, representing \"VAT Tax ID\" requirement."
        },
        "registrationDocument": {
          "$ref": "GoogleAdsGoogleadsV23Resources__BusinessRegistrationDocument",
          "readOnly": true,
          "description": "Output only. Message storing document info for the business."
        },
        "registrationType": {
          "description": "Output only. The type of business registration check (number, document).",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Registration number check type.",
            "Registration document check type."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NUMBER",
            "DOCUMENT"
          ],
          "type": "string",
          "readOnly": true
        },
        "registrationNumber": {
          "readOnly": true,
          "description": "Output only. Message storing government issued number for the business.",
          "$ref": "GoogleAdsGoogleadsV23Resources__BusinessRegistrationNumber"
        },
        "rejectionReason": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Business name doesn't match business name for the Local Services Ad.",
            "Business details mismatch.",
            "Business registration ID not found.",
            "Uploaded document not clear, blurry, etc.",
            "Uploaded document has expired.",
            "Document revoked or annuled.",
            "Document type mismatch.",
            "Uploaded document could not be verified as legitimate.",
            "The business registration process could not be completed due to an issue. Contact https://support.google.com/localservices to learn more."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BUSINESS_NAME_MISMATCH",
            "BUSINESS_DETAILS_MISMATCH",
            "ID_NOT_FOUND",
            "POOR_DOCUMENT_IMAGE_QUALITY",
            "DOCUMENT_EXPIRED",
            "DOCUMENT_INVALID",
            "DOCUMENT_TYPE_MISMATCH",
            "DOCUMENT_UNVERIFIABLE",
            "OTHER"
          ],
          "readOnly": true,
          "description": "Output only. Registration document rejection reason.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__ThirdPartyAppAnalyticsLink": {
      "description": "A data sharing connection, allowing the import of third party app analytics into a Google Ads Customer.",
      "properties": {
        "shareableLinkId": {
          "readOnly": true,
          "description": "Output only. The shareable link ID that should be provided to the third party when setting up app analytics. This is able to be regenerated using regenerate method in the ThirdPartyAppAnalyticsLinkService.",
          "type": "string"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the third party app analytics link. Third party app analytics link resource names have the form: `customers/{customer_id}/thirdPartyAppAnalyticsLinks/{account_link_id}`"
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__ThirdPartyAppAnalyticsLink",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__TargetRoas": {
      "type": "object",
      "properties": {
        "targetRoas": {
          "format": "double",
          "type": "number",
          "description": "Required. The chosen revenue (based on conversion data) per unit of spend. Value must be between 0.01 and 1000.0, inclusive."
        },
        "cpcBidFloorMicros": {
          "description": "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.",
          "type": "string",
          "format": "int64"
        },
        "cpcBidCeilingMicros": {
          "description": "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.",
          "format": "int64",
          "type": "string"
        },
        "targetRoasTolerancePercentMillis": {
          "description": "The percent of ROAS(return on advertising spend) degradation tolerance allowed to increase traffic diversity and conversion volume, specified in millis (for example, 10,000 = 10%). A value of 10,000 means that the advertiser can expect ROAS degradation of up to 10% of the specified target ROAS. This field is only mutable for portfolio bidding strategies.",
          "type": "string",
          "format": "int64"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__TargetRoas",
      "description": "An automated bidding strategy that helps you maximize revenue while averaging a specific target return on ad spend (ROAS)."
    },
    "GoogleAdsGoogleadsV23Services__MutateCustomizerAttributesRequest": {
      "description": "Request message for CustomizerAttributeService.MutateCustomizerAttributes.",
      "type": "object",
      "properties": {
        "operations": {
          "description": "Required. The list of operations to perform on individual customizer attributes.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__CustomizerAttributeOperation"
          },
          "type": "array"
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "responseContentType": {
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ]
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateCustomizerAttributesRequest"
    },
    "GoogleAdsGoogleadsV23Services__CallConversion": {
      "id": "GoogleAdsGoogleadsV23Services__CallConversion",
      "type": "object",
      "description": "A call conversion.",
      "properties": {
        "currencyCode": {
          "type": "string",
          "description": "Currency associated with the conversion value. This is the ISO 4217 3-character currency code. For example: USD, EUR."
        },
        "customVariables": {
          "type": "array",
          "description": "The custom variables associated with this conversion.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__CustomVariable"
          }
        },
        "callStartDateTime": {
          "description": "The date time at which the call occurred. The timezone must be specified. The format is \"yyyy-mm-dd hh:mm:ss+|-hh:mm\", for example, \"2019-01-01 12:32:45-08:00\".",
          "type": "string"
        },
        "conversionAction": {
          "description": "Resource name of the conversion action associated with this conversion. Note: Although this resource name consists of a customer id and a conversion action id, validation will ignore the customer id and use the conversion action id as the sole identifier of the conversion action.",
          "type": "string"
        },
        "conversionValue": {
          "format": "double",
          "type": "number",
          "description": "The value of the conversion for the advertiser."
        },
        "consent": {
          "description": "The consent setting for the event.",
          "$ref": "GoogleAdsGoogleadsV23Common__Consent"
        },
        "callerId": {
          "description": "The caller id from which this call was placed. Caller id is expected to be in E.164 format with preceding '+' sign, for example, \"+16502531234\".",
          "type": "string"
        },
        "conversionDateTime": {
          "type": "string",
          "description": "The date time at which the conversion occurred. Must be after the call time. The timezone must be specified. The format is \"yyyy-mm-dd hh:mm:ss+|-hh:mm\", for example, \"2019-01-01 12:32:45-08:00\"."
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__KeywordPlanAdGroupKeyword": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__KeywordPlanAdGroupKeyword",
      "properties": {
        "resourceName": {
          "description": "Immutable. The resource name of the Keyword Plan ad group keyword. KeywordPlanAdGroupKeyword resource names have the form: `customers/{customer_id}/keywordPlanAdGroupKeywords/{kp_ad_group_keyword_id}`",
          "type": "string"
        },
        "text": {
          "description": "The keyword text.",
          "type": "string"
        },
        "keywordPlanAdGroup": {
          "type": "string",
          "description": "The Keyword Plan ad group to which this keyword belongs."
        },
        "matchType": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Exact match.",
            "Phrase match.",
            "Broad match."
          ],
          "description": "The keyword match type.",
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EXACT",
            "PHRASE",
            "BROAD"
          ]
        },
        "negative": {
          "description": "Immutable. If true, the keyword is negative.",
          "type": "boolean"
        },
        "id": {
          "description": "Output only. The ID of the Keyword Plan keyword.",
          "format": "int64",
          "type": "string",
          "readOnly": true
        },
        "cpcBidMicros": {
          "type": "string",
          "format": "int64",
          "description": "A keyword level max cpc bid in micros (for example, $1 = 1mm). The currency is the same as the account currency code. This will override any CPC bid set at the keyword plan ad group level. Not applicable for negative keywords. (negative = true) This field is Optional."
        }
      },
      "description": "A Keyword Plan ad group keyword. Max number of keyword plan keywords per plan: 10000."
    },
    "GoogleAdsGoogleadsV23Resources_Recommendation_MaximizeConversionsOptInRecommendation": {
      "properties": {
        "recommendedBudgetAmountMicros": {
          "readOnly": true,
          "format": "int64",
          "description": "Output only. The recommended new budget amount.",
          "type": "string"
        }
      },
      "description": "The Maximize Conversions Opt-In recommendation.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources_Recommendation_MaximizeConversionsOptInRecommendation"
    },
    "GoogleAdsGoogleadsV23Services__TargetFrequencySettings": {
      "id": "GoogleAdsGoogleadsV23Services__TargetFrequencySettings",
      "type": "object",
      "properties": {
        "timeUnit": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "WEEKLY",
            "MONTHLY"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Optimize bidding to reach Target Frequency in a week.",
            "Optimize bidding to reach Target Frequency in a month."
          ],
          "description": "Required. The time unit used to describe the time frame for target_frequency."
        },
        "targetFrequency": {
          "description": "Required. The target frequency goal per selected time unit.",
          "type": "integer",
          "format": "int32"
        }
      },
      "description": "Target Frequency settings for a supported product."
    },
    "GoogleAdsGoogleadsV23Services__SmartCampaignEligibleDetails": {
      "description": "Details related to Smart campaigns that are eligible to serve.",
      "type": "object",
      "properties": {
        "lastImpressionDateTime": {
          "description": "The timestamp of the last impression observed in the last 48 hours for this campaign. The timestamp is in the customer’s timezone and in “yyyy-MM-dd HH:mm:ss” format.",
          "type": "string"
        },
        "endDateTime": {
          "type": "string",
          "description": "The timestamp of when the campaign will end, if applicable. The timestamp is in the customer’s timezone and in “yyyy-MM-dd HH:mm:ss” format."
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__SmartCampaignEligibleDetails"
    },
    "GoogleAdsGoogleadsV23Common__AdVideoAsset": {
      "id": "GoogleAdsGoogleadsV23Common__AdVideoAsset",
      "description": "A video asset used inside an ad.",
      "properties": {
        "asset": {
          "description": "The Asset resource name of this video.",
          "type": "string"
        },
        "adVideoAssetInfo": {
          "description": "Contains info fields for this AdVideoAsset.",
          "$ref": "GoogleAdsGoogleadsV23Common__AdVideoAssetInfo"
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__MediaAudio": {
      "description": "Encapsulates an Audio.",
      "id": "GoogleAdsGoogleadsV23Resources__MediaAudio",
      "properties": {
        "adDurationMillis": {
          "format": "int64",
          "description": "Output only. The duration of the Audio in milliseconds.",
          "readOnly": true,
          "type": "string"
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__GenerateTargetingSuggestionMetricsRequest": {
      "description": "Request message for AudienceInsightsService.GenerateTargetingSuggestionMetrics.",
      "properties": {
        "customerInsightsGroup": {
          "type": "string",
          "description": "Optional. The name of the customer being planned for. This is a user-defined value."
        },
        "audiences": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__InsightsAudience"
          },
          "description": "Required. Audiences to request metrics for.",
          "type": "array"
        },
        "insightsApplicationInfo": {
          "$ref": "GoogleAdsGoogleadsV23Common__AdditionalApplicationInfo",
          "description": "Optional. Additional information on the application issuing the request."
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__GenerateTargetingSuggestionMetricsRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__ListAudienceInsightsAttributesRequest": {
      "properties": {
        "dimensions": {
          "description": "Required. The types of attributes to be returned. Supported dimensions are CATEGORY, KNOWLEDGE_GRAPH, DEVICE, GEO_TARGET_COUNTRY, SUB_COUNTRY_LOCATION, YOUTUBE_LINEUP, AFFINITY_USER_INTEREST, IN_MARKET_USER_INTEREST, LIFE_EVENT_USER_INTEREST, PARENTAL_STATUS, INCOME_RANGE, AGE_RANGE, and GENDER.",
          "items": {
            "enumDescriptions": [
              "Not specified.",
              "The value is unknown in this version.",
              "A Product & Service category.",
              "A Knowledge Graph entity.",
              "A country, represented by a geo target.",
              "A geographic location within a country.",
              "A YouTube channel.",
              "An Affinity UserInterest.",
              "An In-Market UserInterest.",
              "A Parental Status value (parent, or not a parent).",
              "A household income percentile range.",
              "An age range.",
              "A gender.",
              "A YouTube video.",
              "A device type, such as Mobile, Desktop, Tablet, and Connected TV.",
              "A YouTube Lineup.",
              "A User List.",
              "A Life Event UserInterest."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "CATEGORY",
              "KNOWLEDGE_GRAPH",
              "GEO_TARGET_COUNTRY",
              "SUB_COUNTRY_LOCATION",
              "YOUTUBE_CHANNEL",
              "AFFINITY_USER_INTEREST",
              "IN_MARKET_USER_INTEREST",
              "PARENTAL_STATUS",
              "INCOME_RANGE",
              "AGE_RANGE",
              "GENDER",
              "YOUTUBE_VIDEO",
              "DEVICE",
              "YOUTUBE_LINEUP",
              "USER_LIST",
              "LIFE_EVENT_USER_INTEREST"
            ],
            "type": "string"
          },
          "type": "array"
        },
        "insightsApplicationInfo": {
          "description": "Optional. Additional information on the application issuing the request.",
          "$ref": "GoogleAdsGoogleadsV23Common__AdditionalApplicationInfo"
        },
        "customerInsightsGroup": {
          "description": "The name of the customer being planned for. This is a user-defined value.",
          "type": "string"
        },
        "queryText": {
          "description": "Required. A free text query. If the requested dimensions include Attributes CATEGORY or KNOWLEDGE_GRAPH, then the attributes returned for those dimensions will match or be related to this string. For other dimensions, this field is ignored and all available attributes are returned.",
          "type": "string"
        },
        "locationCountryFilters": {
          "description": "If SUB_COUNTRY_LOCATION attributes are one of the requested dimensions and this field is present, then the SUB_COUNTRY_LOCATION attributes returned will be located in these countries. If this field is absent, then location attributes are not filtered by country. Setting this field when SUB_COUNTRY_LOCATION attributes are not requested will return an error.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__LocationInfo"
          }
        },
        "youtubeReachLocation": {
          "$ref": "GoogleAdsGoogleadsV23Common__LocationInfo",
          "description": "If present, potential YouTube reach estimates within the specified market will be returned for attributes for which they are available. Reach is only available for the AGE_RANGE, GENDER, AFFINITY_USER_INTEREST and IN_MARKET_USER_INTEREST dimensions, and may not be available for every attribute of those dimensions in every market."
        }
      },
      "description": "Request message for AudienceInsightsService.ListAudienceInsightsAttributes.",
      "id": "GoogleAdsGoogleadsV23Services__ListAudienceInsightsAttributesRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__FinalAppUrl": {
      "description": "A URL for deep linking into an app for the given operating system.",
      "id": "GoogleAdsGoogleadsV23Common__FinalAppUrl",
      "type": "object",
      "properties": {
        "osType": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The Apple IOS operating system.",
            "The Android operating system."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "IOS",
            "ANDROID"
          ],
          "description": "The operating system targeted by this URL. Required."
        },
        "url": {
          "type": "string",
          "description": "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."
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__AgeSegment": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__AgeSegment",
      "description": "Contiguous age range.",
      "properties": {
        "maxAge": {
          "type": "integer",
          "description": "Maximum age to include. A maximum age need not be specified. If specified, max_age must be greater than min_age, and allowed values are 24, 34, 44, 54, and 64.",
          "format": "int32"
        },
        "minAge": {
          "format": "int32",
          "type": "integer",
          "description": "Minimum age to include. A minimum age must be specified and must be at least 18. Allowed values are 18, 25, 35, 45, 55, and 65."
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__ParentalStatusDimension": {
      "id": "GoogleAdsGoogleadsV23Common__ParentalStatusDimension",
      "properties": {
        "includeUndetermined": {
          "type": "boolean",
          "description": "Include users whose parental status is undetermined."
        },
        "parentalStatuses": {
          "type": "array",
          "description": "Included parental status demographic segments.",
          "items": {
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "Parent.",
              "Not a parent.",
              "Undetermined parental status."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "PARENT",
              "NOT_A_PARENT",
              "UNDETERMINED"
            ],
            "type": "string"
          }
        }
      },
      "description": "Dimension specifying users by their parental status.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateCustomerAssetsRequest": {
      "description": "Request message for CustomerAssetService.MutateCustomerAssets.",
      "type": "object",
      "properties": {
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "operations": {
          "description": "Required. The list of operations to perform on individual customer assets.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__CustomerAssetOperation"
          },
          "type": "array"
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "responseContentType": {
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ]
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateCustomerAssetsRequest"
    },
    "GoogleAdsGoogleadsV23Services__MutateAdGroupResult": {
      "id": "GoogleAdsGoogleadsV23Services__MutateAdGroupResult",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        },
        "adGroup": {
          "description": "The mutated ad group with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV23Resources__AdGroup"
        }
      },
      "type": "object",
      "description": "The result for the ad group mutate."
    },
    "GoogleAdsGoogleadsV23Resources__ConversionValueRule": {
      "properties": {
        "itineraryCondition": {
          "$ref": "GoogleAdsGoogleadsV23Resources_ConversionValueRule_ValueRuleItineraryCondition",
          "description": "Condition for itinerary that must be satisfied for the value rule to apply."
        },
        "ownerCustomer": {
          "description": "Output only. The resource name of the conversion value rule's owner customer. When the value rule is inherited from a manager customer, owner_customer will be the resource name of the manager whereas the customer in the resource_name will be of the requesting serving customer. ** Read-only **",
          "readOnly": true,
          "type": "string"
        },
        "deviceCondition": {
          "$ref": "GoogleAdsGoogleadsV23Resources_ConversionValueRule_ValueRuleDeviceCondition",
          "description": "Condition for device type that must be satisfied for the value rule to apply."
        },
        "audienceCondition": {
          "$ref": "GoogleAdsGoogleadsV23Resources_ConversionValueRule_ValueRuleAudienceCondition",
          "description": "Condition for audience that must be satisfied for the value rule to apply."
        },
        "id": {
          "readOnly": true,
          "format": "int64",
          "type": "string",
          "description": "Output only. The ID of the conversion value rule."
        },
        "status": {
          "description": "The status of the conversion value rule.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Conversion Value Rule is enabled and can be applied.",
            "Conversion Value Rule is permanently deleted and can't be applied.",
            "Conversion Value Rule is paused, but can be re-enabled."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED",
            "PAUSED"
          ],
          "type": "string"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the conversion value rule. Conversion value rule resource names have the form: `customers/{customer_id}/conversionValueRules/{conversion_value_rule_id}`"
        },
        "action": {
          "$ref": "GoogleAdsGoogleadsV23Resources_ConversionValueRule_ValueRuleAction",
          "description": "Action applied when the rule is triggered."
        },
        "geoLocationCondition": {
          "$ref": "GoogleAdsGoogleadsV23Resources_ConversionValueRule_ValueRuleGeoLocationCondition",
          "description": "Condition for Geo location that must be satisfied for the value rule to apply."
        }
      },
      "description": "A conversion value rule",
      "id": "GoogleAdsGoogleadsV23Resources__ConversionValueRule",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__ForecastMetricOptions": {
      "id": "GoogleAdsGoogleadsV23Services__ForecastMetricOptions",
      "type": "object",
      "properties": {
        "includeCoview": {
          "description": "Indicates whether to include co-view metrics in the response forecast.",
          "type": "boolean"
        }
      },
      "description": "Controls forecast metrics to return."
    },
    "GoogleLongrunning__ListOperationsResponse": {
      "description": "The response message for Operations.ListOperations.",
      "id": "GoogleLongrunning__ListOperationsResponse",
      "type": "object",
      "properties": {
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleLongrunning__Operation"
          },
          "description": "A list of operations that matches the specified filter in the request."
        },
        "nextPageToken": {
          "description": "The standard List next-page token.",
          "type": "string"
        },
        "unreachable": {
          "description": "Unordered list. Unreachable resources. Populated when the request sets `ListOperationsRequest.return_partial_success` and reads across collections. For example, when attempting to list all resources across all supported locations.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__KeywordAnnotations": {
      "properties": {
        "concepts": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__KeywordConcept"
          },
          "description": "The list of concepts for the keyword.",
          "type": "array"
        }
      },
      "type": "object",
      "description": "The annotations for the keyword plan keywords.",
      "id": "GoogleAdsGoogleadsV23Common__KeywordAnnotations"
    },
    "GoogleAdsGoogleadsV23Resources__TopicConstant": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__TopicConstant",
      "description": "Use topics to target or exclude placements in the Google Display Network based on the category into which the placement falls (for example, \"Pets & Animals/Pets/Dogs\").",
      "properties": {
        "path": {
          "type": "array",
          "description": "Output only. The category to target or exclude. Each subsequent element in the array describes a more specific sub-category. For example, {\"Pets & Animals\", \"Pets\", \"Dogs\"} represents the \"Pets & Animals/Pets/Dogs\" category. List of available topic categories at https://developers.google.com/google-ads/api/reference/data/verticals",
          "items": {
            "type": "string"
          },
          "readOnly": true
        },
        "topicConstantParent": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Resource name of parent of the topic constant."
        },
        "resourceName": {
          "description": "Output only. The resource name of the topic constant. topic constant resource names have the form: `topicConstants/{topic_id}`",
          "readOnly": true,
          "type": "string"
        },
        "id": {
          "format": "int64",
          "type": "string",
          "readOnly": true,
          "description": "Output only. The ID of the topic."
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources_AdGroup_VerticalAdsFormatSetting": {
      "type": "object",
      "description": "Vertical ads setting feature to enable/disable ad group format controls in search campaigns.",
      "properties": {
        "disableTextAds": {
          "description": "If true, text ads will be disabled for this ad group.",
          "type": "boolean"
        },
        "enableVerticalPromotionAds": {
          "description": "If true, vertical promotion ads will be enabled for this ad group.",
          "type": "boolean"
        },
        "enableBookingLinks": {
          "description": "If true, booking links will be enabled for this ad group.",
          "type": "boolean"
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources_AdGroup_VerticalAdsFormatSetting"
    },
    "GoogleAdsGoogleadsV23Resources__CustomerCustomizer": {
      "id": "GoogleAdsGoogleadsV23Resources__CustomerCustomizer",
      "description": "A customizer value for the associated CustomizerAttribute at the Customer level.",
      "properties": {
        "resourceName": {
          "description": "Immutable. The resource name of the customer customizer. Customer customizer resource names have the form: `customers/{customer_id}/customerCustomizers/{customizer_attribute_id}`",
          "type": "string"
        },
        "status": {
          "description": "Output only. The status of the customer customizer attribute.",
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "readOnly": true,
          "enumDescriptions": [
            "The status has not been specified.",
            "The received value is not known in this version.",
            "The customizer value is enabled.",
            "The customizer value is removed."
          ]
        },
        "value": {
          "$ref": "GoogleAdsGoogleadsV23Common__CustomizerValue",
          "description": "Required. The value to associate with the customizer attribute at this level. The value must be of the type specified for the CustomizerAttribute."
        },
        "customizerAttribute": {
          "type": "string",
          "description": "Required. Immutable. The customizer attribute which is linked to the customer."
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__GoalOperation": {
      "type": "object",
      "properties": {
        "create": {
          "description": "Create a new goal.",
          "$ref": "GoogleAdsGoogleadsV23Resources__Goal"
        },
        "update": {
          "description": "Update an existing goal.",
          "$ref": "GoogleAdsGoogleadsV23Resources__Goal"
        },
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string",
          "format": "google-fieldmask"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__GoalOperation",
      "description": "A single mutate operation on the goal."
    },
    "GoogleAdsGoogleadsV23Common__TargetCpmTargetFrequencyGoal": {
      "description": "Target Frequency bidding goal details.",
      "properties": {
        "timeUnit": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "WEEKLY",
            "MONTHLY"
          ],
          "description": "Time window expressing the period over which you want to reach the specified target_count.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Optimize bidding to reach Target Frequency in a week.",
            "Optimize bidding to reach Target Frequency in a month."
          ]
        },
        "targetCount": {
          "type": "string",
          "description": "Target Frequency count representing how many times you want to reach a single user.",
          "format": "int64"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__TargetCpmTargetFrequencyGoal"
    },
    "GoogleAdsGoogleadsV23Common__TargetCpm": {
      "properties": {
        "targetFrequencyGoal": {
          "$ref": "GoogleAdsGoogleadsV23Common__TargetCpmTargetFrequencyGoal",
          "description": "Target Frequency bidding goal details."
        }
      },
      "description": "Target CPM (cost per thousand impressions) is an automated bidding strategy that sets bids to optimize performance given the target CPM you set.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__TargetCpm"
    },
    "GoogleAdsGoogleadsV23Common__SearchVolumeRange": {
      "description": "Search volume range. Actual search volume falls within this range.",
      "type": "object",
      "properties": {
        "min": {
          "format": "int64",
          "type": "string",
          "description": "Lower bound of search volume."
        },
        "max": {
          "type": "string",
          "description": "Upper bound of search volume.",
          "format": "int64"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__SearchVolumeRange"
    },
    "GoogleAdsGoogleadsV23Common__ManualCpm": {
      "id": "GoogleAdsGoogleadsV23Common__ManualCpm",
      "description": "Manual impression-based bidding where user pays per thousand impressions.",
      "properties": {},
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__TargetingExpansionView": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__TargetingExpansionView",
      "properties": {
        "resourceName": {
          "description": "Output only. The resource name of the targeting expansion view. Targeting expansion view resource names have the form: `customers/{customer_id}/targetingExpansionViews/{campaign_id}~{targeting_expansion_type}`",
          "readOnly": true,
          "type": "string"
        }
      },
      "description": "A targeting expansion view with metrics. Returns metrics for automated expansion over manual targeting."
    },
    "GoogleAdsGoogleadsV23Services__BenchmarksProductMetadata": {
      "type": "object",
      "properties": {
        "productName": {
          "type": "string",
          "description": "The name of the product."
        },
        "marketingObjective": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "The objective is to increase awareness.",
            "The objective is to encourage potential customers to consider the brand or products.",
            "The objective is to drive a specific conversion, such as a purchase."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AWARENESS",
            "CONSIDERATION",
            "ACTION"
          ],
          "description": "The marketing objective associated with the product. A marketing objective is a broader classification of products."
        },
        "productCode": {
          "description": "The identifier of the product. The identifier can be used as inputs for BenchmarksService.GenerateBenchmarksMetrics.",
          "type": "string"
        }
      },
      "description": "The metadata associated with a product supported for benchmarks data.",
      "id": "GoogleAdsGoogleadsV23Services__BenchmarksProductMetadata"
    },
    "GoogleAdsGoogleadsV23Resources_Campaign_NetworkSettings": {
      "description": "The network settings for the campaign.",
      "id": "GoogleAdsGoogleadsV23Resources_Campaign_NetworkSettings",
      "type": "object",
      "properties": {
        "targetContentNetwork": {
          "description": "Whether ads will be served on specified placements in the Google Display Network. Placements are specified using the Placement criterion.",
          "type": "boolean"
        },
        "targetGoogleTvNetwork": {
          "description": "Whether ads will be served on the Google TV network.",
          "type": "boolean"
        },
        "targetGoogleSearch": {
          "description": "Whether ads will be served with google.com search results.",
          "type": "boolean"
        },
        "targetSearchNetwork": {
          "type": "boolean",
          "description": "Whether ads will be served on partner sites in the Google Search Network (requires `target_google_search` to also be `true`)."
        },
        "targetPartnerSearchNetwork": {
          "description": "Whether ads will be served on the Google Partner Network. This is available only to some select Google partner accounts.",
          "type": "boolean"
        },
        "targetYoutube": {
          "description": "Whether ads will be served on YouTube.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__AdGroup": {
      "properties": {
        "status": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "PAUSED",
            "REMOVED"
          ],
          "type": "string",
          "enumDescriptions": [
            "The status has not been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The ad group is enabled.",
            "The ad group is paused.",
            "The ad group is removed."
          ],
          "description": "The status of the ad group."
        },
        "urlCustomParameters": {
          "description": "The list of mappings used to substitute custom parameter tags in a `tracking_url_template`, `final_urls`, or `mobile_final_urls`.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__CustomParameter"
          },
          "type": "array"
        },
        "type": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SEARCH_STANDARD",
            "DISPLAY_STANDARD",
            "SHOPPING_PRODUCT_ADS",
            "HOTEL_ADS",
            "SHOPPING_SMART_ADS",
            "VIDEO_BUMPER",
            "VIDEO_TRUE_VIEW_IN_STREAM",
            "VIDEO_TRUE_VIEW_IN_DISPLAY",
            "VIDEO_NON_SKIPPABLE_IN_STREAM",
            "SEARCH_DYNAMIC_ADS",
            "SHOPPING_COMPARISON_LISTING_ADS",
            "PROMOTED_HOTEL_ADS",
            "VIDEO_RESPONSIVE",
            "VIDEO_EFFICIENT_REACH",
            "SMART_CAMPAIGN_ADS",
            "TRAVEL_ADS",
            "YOUTUBE_AUDIO"
          ],
          "description": "Immutable. The type of the ad group.",
          "enumDescriptions": [
            "The type has not been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The default ad group type for Search campaigns.",
            "The default ad group type for Display campaigns.",
            "The ad group type for Shopping campaigns serving standard product ads.",
            "The default ad group type for Hotel campaigns.",
            "The type for ad groups in Smart Shopping campaigns.",
            "Short unskippable in-stream video ads.",
            "TrueView (skippable) in-stream video ads.",
            "TrueView in-display video ads.",
            "Unskippable in-stream video ads.",
            "Ad group type for Dynamic Search Ads ad groups.",
            "The type for ad groups in Shopping Comparison Listing campaigns.",
            "The ad group type for Promoted Hotel ad groups.",
            "Video responsive ad groups.",
            "Video efficient reach ad groups.",
            "Ad group type for Smart campaigns.",
            "Ad group type for Travel campaigns.",
            "Ad group type for YouTube Audio campaigns."
          ]
        },
        "verticalAdsFormatSetting": {
          "description": "Vertical ads setting feature to enable/disable ad group format controls in search campaigns. This setting requires AiMaxAdGroupSetting to be enabled and a travel feed to be attached to the campaign.",
          "$ref": "GoogleAdsGoogleadsV23Resources_AdGroup_VerticalAdsFormatSetting"
        },
        "effectiveTargetCpcSource": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. Source of the effective target CPC. This field is read-only.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CAMPAIGN_BIDDING_STRATEGY",
            "AD_GROUP",
            "AD_GROUP_CRITERION"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Effective bid or target is inherited from campaign bidding strategy.",
            "The bid or target is defined on the ad group.",
            "The bid or target is defined on the ad group criterion."
          ]
        },
        "primaryStatus": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. Provides aggregated view into why an ad group is not serving or not serving optimally.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The ad group is eligible to serve.",
            "The ad group is paused.",
            "The ad group is removed.",
            "The ad group may serve in the future.",
            "The ad group is not eligible to serve.",
            "The ad group has limited servability."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ELIGIBLE",
            "PAUSED",
            "REMOVED",
            "PENDING",
            "NOT_ELIGIBLE",
            "LIMITED"
          ]
        },
        "videoAdGroupSettings": {
          "description": "Settings for video ad groups.",
          "$ref": "GoogleAdsGoogleadsV23Resources_AdGroup_VideoAdGroupSettings"
        },
        "targetingSetting": {
          "description": "Setting for targeting related features.",
          "$ref": "GoogleAdsGoogleadsV23Common__TargetingSetting"
        },
        "id": {
          "type": "string",
          "format": "int64",
          "readOnly": true,
          "description": "Output only. The ID of the ad group."
        },
        "targetCpmMicros": {
          "format": "int64",
          "type": "string",
          "description": "Average amount in micros that the advertiser is willing to pay for every thousand times the ad is shown."
        },
        "excludedParentAssetFieldTypes": {
          "type": "array",
          "items": {
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "The asset is linked for use as a headline.",
              "The asset is linked for use as a description.",
              "The asset is linked for use as mandatory ad text.",
              "The asset is linked for use as a marketing image.",
              "The asset is linked for use as a media bundle.",
              "The asset is linked for use as a YouTube video.",
              "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
              "The asset is linked for use as a Lead Form extension.",
              "The asset is linked for use as a Promotion extension.",
              "The asset is linked for use as a Callout extension.",
              "The asset is linked for use as a Structured Snippet extension.",
              "The asset is linked for use as a Sitelink.",
              "The asset is linked for use as a Mobile App extension.",
              "The asset is linked for use as a Hotel Callout extension.",
              "The asset is linked for use as a Call extension.",
              "The asset is linked for use as a Price extension.",
              "The asset is linked for use as a long headline.",
              "The asset is linked for use as a business name.",
              "The asset is linked for use as a square marketing image.",
              "The asset is linked for use as a portrait marketing image.",
              "The asset is linked for use as a logo.",
              "The asset is linked for use as a landscape logo.",
              "The asset is linked for use as a non YouTube logo.",
              "The asset is linked for use to select a call-to-action.",
              "The asset is linked for use to select an ad image.",
              "The asset is linked for use as a business logo.",
              "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
              "The asset is linked for use as a Demand Gen carousel card.",
              "The asset is linked for use as a Business Message.",
              "The asset is linked for use as a tall portrait marketing image.",
              "The asset is linked for use as related YouTube videos.",
              "The asset is linked for use as a landing page preview image.",
              "The asset is linked for use as a long description.",
              "The asset is linked for use as a call-to-action."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "HEADLINE",
              "DESCRIPTION",
              "MANDATORY_AD_TEXT",
              "MARKETING_IMAGE",
              "MEDIA_BUNDLE",
              "YOUTUBE_VIDEO",
              "BOOK_ON_GOOGLE",
              "LEAD_FORM",
              "PROMOTION",
              "CALLOUT",
              "STRUCTURED_SNIPPET",
              "SITELINK",
              "MOBILE_APP",
              "HOTEL_CALLOUT",
              "CALL",
              "PRICE",
              "LONG_HEADLINE",
              "BUSINESS_NAME",
              "SQUARE_MARKETING_IMAGE",
              "PORTRAIT_MARKETING_IMAGE",
              "LOGO",
              "LANDSCAPE_LOGO",
              "VIDEO",
              "CALL_TO_ACTION_SELECTION",
              "AD_IMAGE",
              "BUSINESS_LOGO",
              "HOTEL_PROPERTY",
              "DEMAND_GEN_CAROUSEL_CARD",
              "BUSINESS_MESSAGE",
              "TALL_PORTRAIT_MARKETING_IMAGE",
              "RELATED_YOUTUBE_VIDEOS",
              "LANDING_PAGE_PREVIEW",
              "LONG_DESCRIPTION",
              "CALL_TO_ACTION"
            ],
            "type": "string"
          },
          "description": "The asset field types that should be excluded from this ad group. Asset links with these field types will not be inherited by this ad group from the upper levels."
        },
        "adRotationMode": {
          "description": "The ad rotation mode of the ad group.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "OPTIMIZE",
            "ROTATE_FOREVER"
          ],
          "enumDescriptions": [
            "The ad rotation mode has not been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "Optimize ad group ads based on clicks or conversions.",
            "Rotate evenly forever."
          ],
          "type": "string"
        },
        "cpcBidMicros": {
          "description": "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.",
          "format": "int64",
          "type": "string"
        },
        "audienceSetting": {
          "description": "Immutable. Setting for audience related features.",
          "$ref": "GoogleAdsGoogleadsV23Resources_AdGroup_AudienceSetting"
        },
        "effectiveCpcBidMicros": {
          "type": "string",
          "format": "int64",
          "description": "Output only. Value will be same as that of the CPC (cost-per-click) bid value when the bidding strategy is one of manual cpc, enhanced cpc, page one promoted or target outrank share, otherwise the value will be null.",
          "readOnly": true
        },
        "effectiveTargetRoas": {
          "readOnly": true,
          "format": "double",
          "description": "Output only. The effective target ROAS (return-on-ad-spend). This field is read-only.",
          "type": "number"
        },
        "trackingUrlTemplate": {
          "description": "The URL template for constructing a tracking URL.",
          "type": "string"
        },
        "optimizedTargetingEnabled": {
          "type": "boolean",
          "description": "True if optimized targeting is enabled. Optimized Targeting is the replacement for Audience Expansion."
        },
        "targetCpvMicros": {
          "type": "string",
          "format": "int64",
          "description": "Average amount in micros that the advertiser is willing to pay for every ad view."
        },
        "finalUrlSuffix": {
          "type": "string",
          "description": "URL template for appending params to Final URL."
        },
        "percentCpcBidMicros": {
          "description": "The percent cpc bid amount, expressed as a fraction of the advertised price for some good or service. The valid range for the fraction is [0,1) and the value stored here is 1,000,000 * [fraction].",
          "format": "int64",
          "type": "string"
        },
        "excludedParentAssetSetTypes": {
          "items": {
            "type": "string",
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "PAGE_FEED",
              "DYNAMIC_EDUCATION",
              "MERCHANT_CENTER_FEED",
              "DYNAMIC_REAL_ESTATE",
              "DYNAMIC_CUSTOM",
              "DYNAMIC_HOTELS_AND_RENTALS",
              "DYNAMIC_FLIGHTS",
              "DYNAMIC_TRAVEL",
              "DYNAMIC_LOCAL",
              "DYNAMIC_JOBS",
              "LOCATION_SYNC",
              "BUSINESS_PROFILE_DYNAMIC_LOCATION_GROUP",
              "CHAIN_DYNAMIC_LOCATION_GROUP",
              "STATIC_LOCATION_GROUP",
              "HOTEL_PROPERTY",
              "TRAVEL_FEED"
            ],
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "Page asset set.",
              "Dynamic education asset set.",
              "Google Merchant Center asset set.",
              "Dynamic real estate asset set.",
              "Dynamic custom asset set.",
              "Dynamic hotels and rentals asset set.",
              "Dynamic flights asset set.",
              "Dynamic travel asset set.",
              "Dynamic local asset set.",
              "Dynamic jobs asset set.",
              "Location sync level asset set.",
              "Business Profile location group asset set.",
              "Chain location group asset set which can be used for both owned locations and affiliate locations.",
              "Static location group asset set which can be used for both owned locations and affiliate locations.",
              "Hotel Property asset set which is used to link a hotel property feed to Performance Max for travel goals campaigns.",
              "Travel Feed asset set type. Can represent either a Hotel feed or a Things to Do (activities) feed."
            ]
          },
          "description": "The asset set types that should be excluded from this ad group. Asset set links with these types will not be inherited by this ad group from the upper levels. Location group types (GMB_DYNAMIC_LOCATION_GROUP, CHAIN_DYNAMIC_LOCATION_GROUP, and STATIC_LOCATION_GROUP) are child types of LOCATION_SYNC. Therefore, if LOCATION_SYNC is set for this field, all location group asset sets are not allowed to be linked to this ad group, and all Location Extension (LE) and Affiliate Location Extensions (ALE) will not be served under this ad group. Only LOCATION_SYNC is currently supported.",
          "type": "array"
        },
        "primaryStatusReasons": {
          "readOnly": true,
          "description": "Output only. Provides reasons for why an ad group is not serving or not serving optimally.",
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "CAMPAIGN_REMOVED",
              "CAMPAIGN_PAUSED",
              "CAMPAIGN_PENDING",
              "CAMPAIGN_ENDED",
              "AD_GROUP_PAUSED",
              "AD_GROUP_REMOVED",
              "AD_GROUP_INCOMPLETE",
              "KEYWORDS_PAUSED",
              "NO_KEYWORDS",
              "AD_GROUP_ADS_PAUSED",
              "NO_AD_GROUP_ADS",
              "HAS_ADS_DISAPPROVED",
              "HAS_ADS_LIMITED_BY_POLICY",
              "MOST_ADS_UNDER_REVIEW",
              "CAMPAIGN_DRAFT",
              "AD_GROUP_PAUSED_DUE_TO_LOW_ACTIVITY"
            ],
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "The user-specified campaign status is removed. Contributes to AdGroupPrimaryStatus.NOT_ELIGIBLE.",
              "The user-specified campaign status is paused. Contributes to AdGroupPrimaryStatus.NOT_ELIGIBLE.",
              "The user-specified time for this campaign to start is in the future. Contributes to AdGroupPrimaryStatus.NOT_ELIGIBLE",
              "The user-specified time for this campaign to end has passed. Contributes to AdGroupPrimaryStatus.NOT_ELIGIBLE.",
              "The user-specified ad group status is paused. Contributes to AdGroupPrimaryStatus.PAUSED.",
              "The user-specified ad group status is removed. Contributes to AdGroupPrimaryStatus.REMOVED.",
              "The construction of this ad group is not yet complete. Contributes to AdGroupPrimaryStatus.NOT_ELIGIBLE.",
              "The user-specified keyword statuses in this ad group are all paused. Contributes to AdGroupPrimaryStatus.NOT_ELIGIBLE.",
              "No eligible keywords exist in this ad group. Contributes to AdGroupPrimaryStatus.NOT_ELIGIBLE.",
              "The user-specified ad group ads statuses in this ad group are all paused. Contributes to AdGroupPrimaryStatus.NOT_ELIGIBLE.",
              "No eligible ad group ads exist in this ad group. Contributes to AdGroupPrimaryStatus.NOT_ELIGIBLE.",
              "Policy status reason when at least one ad is disapproved. Contributes to multiple AdGroupPrimaryStatus.",
              "Policy status reason when at least one ad is limited by policy. Contributes to multiple AdGroupPrimaryStatus.",
              "Policy status reason when most ads are pending review. Contributes to AdGroupPrimaryStatus.PENDING.",
              "The AdGroup belongs to a Draft campaign. Contributes to AdGroupPrimaryStatus.NOT_ELIGIBLE.",
              "Ad group has been paused due to prolonged low activity in serving. Contributes to AdGroupPrimaryStatus.PAUSED."
            ]
          }
        },
        "cpmBidMicros": {
          "type": "string",
          "description": "The maximum CPM (cost-per-thousand viewable impressions) bid.",
          "format": "int64"
        },
        "demandGenAdGroupSettings": {
          "description": "Settings for Demand Gen ad groups.",
          "$ref": "GoogleAdsGoogleadsV23Resources_AdGroup_DemandGenAdGroupSettings"
        },
        "effectiveTargetCpc": {
          "type": "string",
          "readOnly": true,
          "format": "int64",
          "description": "Output only. The effective target CPC (cost-per-click). This field is read-only."
        },
        "baseAdGroup": {
          "type": "string",
          "description": "Output only. For draft or experiment ad groups, this field is the resource name of the base ad group from which this ad group was created. If a draft or experiment ad group does not have a base ad group, then this field is null. For base ad groups, this field equals the ad group resource name. This field is read-only.",
          "readOnly": true
        },
        "targetCpaMicros": {
          "format": "int64",
          "description": "The target CPA (cost-per-acquisition). If the ad group's campaign bidding strategy is TargetCpa or MaximizeConversions (with its target_cpa field set), then this field overrides the target CPA specified in the campaign's bidding strategy. Otherwise, this value is ignored.",
          "type": "string"
        },
        "effectiveTargetRoasSource": {
          "readOnly": true,
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CAMPAIGN_BIDDING_STRATEGY",
            "AD_GROUP",
            "AD_GROUP_CRITERION"
          ],
          "description": "Output only. Source of the effective target ROAS. This field is read-only.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Effective bid or target is inherited from campaign bidding strategy.",
            "The bid or target is defined on the ad group.",
            "The bid or target is defined on the ad group criterion."
          ]
        },
        "targetCpcMicros": {
          "description": "Average amount in micros that the advertiser is willing to pay for every ad click. Overrides the target CPC configured at the campaign level.",
          "format": "int64",
          "type": "string"
        },
        "aiMaxAdGroupSetting": {
          "$ref": "GoogleAdsGoogleadsV23Resources_AdGroup_AiMaxAdGroupSetting",
          "description": "Settings for AI Max feature in standard search adgroups."
        },
        "labels": {
          "readOnly": true,
          "description": "Output only. The resource names of labels attached to this ad group.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "name": {
          "description": "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.",
          "type": "string"
        },
        "effectiveTargetCpaMicros": {
          "format": "int64",
          "readOnly": true,
          "type": "string",
          "description": "Output only. The effective target CPA (cost-per-acquisition). This field is read-only."
        },
        "fixedCpmMicros": {
          "type": "string",
          "description": "The fixed amount in micros that the advertiser pays for every thousand impressions of the ad.",
          "format": "int64"
        },
        "cpvBidMicros": {
          "description": "The CPV (cost-per-view) bid.",
          "format": "int64",
          "type": "string"
        },
        "effectiveTargetCpaSource": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Effective bid or target is inherited from campaign bidding strategy.",
            "The bid or target is defined on the ad group.",
            "The bid or target is defined on the ad group criterion."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CAMPAIGN_BIDDING_STRATEGY",
            "AD_GROUP",
            "AD_GROUP_CRITERION"
          ],
          "description": "Output only. Source of the effective target CPA. This field is read-only.",
          "readOnly": true
        },
        "campaign": {
          "description": "Immutable. The campaign to which the ad group belongs.",
          "type": "string"
        },
        "targetRoas": {
          "format": "double",
          "type": "number",
          "description": "The target ROAS (return-on-ad-spend) for this ad group. This field lets you override the target ROAS specified in the campaign's bidding strategy, but only if the campaign is using a standard (not portfolio) `TargetRoas` strategy or a standard `MaximizeConversionValue` strategy with its `target_roas` field set. If the campaign is using a portfolio bidding strategy, this field cannot be set and attempting to do so will result in an error. For any other bidding strategies, this value is ignored. To see the actual target ROAS being used by the ad group, considering potential overrides, query the `effective_target_roas` and `effective_target_roas_source` fields."
        },
        "displayCustomBidDimension": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "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 criteria, which include user list, user interest, custom affinity, and custom in market.",
            "Topic criteria for targeting categories of content, for example, 'category::Animals>Pets' Used for Display and Video targeting.",
            "Criteria for targeting gender.",
            "Criteria for targeting age ranges.",
            "Placement criteria, which include websites like 'www.flowers4sale.com', as well as mobile applications, mobile app categories, YouTube videos, and YouTube channels.",
            "Criteria for parental status targeting.",
            "Criteria for income range targeting."
          ],
          "type": "string",
          "description": "Lets advertisers specify a targeting dimension on which to place absolute bids. This is only applicable for campaigns that target only the display network and not search.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "KEYWORD",
            "AUDIENCE",
            "TOPIC",
            "GENDER",
            "AGE_RANGE",
            "PLACEMENT",
            "PARENTAL_STATUS",
            "INCOME_RANGE"
          ]
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the ad group. Ad group resource names have the form: `customers/{customer_id}/adGroups/{ad_group_id}`"
        },
        "excludeDemographicExpansion": {
          "description": "When this value is true, demographics will be excluded from the types of targeting which are expanded when optimized_targeting_enabled is true. When optimized_targeting_enabled is false, this field is ignored. Default is false.",
          "type": "boolean"
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__AdGroup",
      "type": "object",
      "description": "An ad group."
    },
    "GoogleAdsGoogleadsV23Common__EventItemAttribute": {
      "type": "object",
      "properties": {
        "itemId": {
          "description": "Optional. A unique identifier of a product. It can be either the Merchant Center Item ID or GTIN (Global Trade Item Number).",
          "type": "string"
        }
      },
      "description": "Event Item attributes of the Customer Match.",
      "id": "GoogleAdsGoogleadsV23Common__EventItemAttribute"
    },
    "GoogleAdsGoogleadsV23Resources__MessageDetails": {
      "description": "Represents details of text message in case of email, message or SMS.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__MessageDetails",
      "properties": {
        "attachmentUrls": {
          "type": "array",
          "description": "Output only. URL to the SMS or email attachments. These URLs can be used to download the contents of the attachment by using the developer token.",
          "items": {
            "type": "string"
          },
          "readOnly": true
        },
        "text": {
          "type": "string",
          "description": "Output only. Textual content of the message.",
          "readOnly": true
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__AdGroupBidModifier": {
      "description": "Represents an ad group bid modifier.",
      "properties": {
        "hotelLengthOfStay": {
          "$ref": "GoogleAdsGoogleadsV23Common__HotelLengthOfStayInfo",
          "description": "Immutable. Criterion for length of hotel stay in nights."
        },
        "hotelAdvanceBookingWindow": {
          "description": "Immutable. Criterion for number of days prior to the stay the booking is being made.",
          "$ref": "GoogleAdsGoogleadsV23Common__HotelAdvanceBookingWindowInfo"
        },
        "device": {
          "description": "Immutable. A device criterion.",
          "$ref": "GoogleAdsGoogleadsV23Common__DeviceInfo"
        },
        "resourceName": {
          "description": "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}`",
          "type": "string"
        },
        "hotelDateSelectionType": {
          "description": "Immutable. Criterion for hotel date selection (default dates versus user selected).",
          "$ref": "GoogleAdsGoogleadsV23Common__HotelDateSelectionTypeInfo"
        },
        "bidModifierSource": {
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The bid modifier is specified at the campaign level, on the campaign level criterion.",
            "The bid modifier is specified (overridden) at the ad group level."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CAMPAIGN",
            "AD_GROUP"
          ],
          "description": "Output only. Bid modifier source."
        },
        "hotelCheckInDateRange": {
          "description": "Immutable. Criterion for a hotel check-in date range.",
          "$ref": "GoogleAdsGoogleadsV23Common__HotelCheckInDateRangeInfo"
        },
        "criterionId": {
          "format": "int64",
          "description": "Output only. The ID of the criterion to bid modify. This field is ignored for mutates.",
          "readOnly": true,
          "type": "string"
        },
        "baseAdGroup": {
          "readOnly": true,
          "description": "Output only. The base ad group from which this draft/trial adgroup bid modifier was created. If ad_group is a base ad group then this field will be equal to ad_group. If the ad group was created in the draft or trial and has no corresponding base ad group, then this field will be null. This field is readonly.",
          "type": "string"
        },
        "adGroup": {
          "description": "Immutable. The ad group to which this criterion belongs.",
          "type": "string"
        },
        "hotelCheckInDay": {
          "description": "Immutable. Criterion for day of the week the booking is for.",
          "$ref": "GoogleAdsGoogleadsV23Common__HotelCheckInDayInfo"
        },
        "bidModifier": {
          "format": "double",
          "type": "number",
          "description": "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."
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__AdGroupBidModifier",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__ConfigureCampaignLifecycleGoalsResult": {
      "id": "GoogleAdsGoogleadsV23Services__ConfigureCampaignLifecycleGoalsResult",
      "description": "The result for the campaign lifecycle goal configuration.",
      "type": "object",
      "properties": {
        "resourceName": {
          "description": "Returned for the successful operation.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__EndExperimentRequest": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__EndExperimentRequest",
      "properties": {
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        }
      },
      "description": "Request message for ExperimentService.EndExperiment."
    },
    "GoogleAdsGoogleadsV23Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_CoarseGrainedConversionValueMappings": {
      "id": "GoogleAdsGoogleadsV23Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_CoarseGrainedConversionValueMappings",
      "type": "object",
      "description": "Mappings for coarse grained conversion values.",
      "properties": {
        "mediumConversionValueMapping": {
          "readOnly": true,
          "description": "Output only. Mapping for \"medium\" coarse conversion value.",
          "$ref": "GoogleAdsGoogleadsV23Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_ConversionValueMapping"
        },
        "highConversionValueMapping": {
          "readOnly": true,
          "description": "Output only. Mapping for \"high\" coarse conversion value.",
          "$ref": "GoogleAdsGoogleadsV23Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_ConversionValueMapping"
        },
        "lowConversionValueMapping": {
          "readOnly": true,
          "description": "Output only. Mapping for \"low\" coarse conversion value.",
          "$ref": "GoogleAdsGoogleadsV23Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_ConversionValueMapping"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__UpdateProductLinkInvitationRequest": {
      "id": "GoogleAdsGoogleadsV23Services__UpdateProductLinkInvitationRequest",
      "description": "Request message for ProductLinkInvitationService.UpdateProductLinkInvitation.",
      "type": "object",
      "properties": {
        "resourceName": {
          "description": "Required. Resource name of the product link invitation.",
          "type": "string"
        },
        "productLinkInvitationStatus": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The invitation is accepted.",
            "An invitation has been sent to the other account. A user on the other account may now accept the invitation by setting the status to ACCEPTED.",
            "This invitation has been sent by a user on the other account. It may be accepted by a user on this account by setting the status to ACCEPTED.",
            "The invitation is revoked by the user who sent the invitation.",
            "The invitation has been rejected by the invitee.",
            "The invitation has timed out before being accepted by the invitee."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ACCEPTED",
            "REQUESTED",
            "PENDING_APPROVAL",
            "REVOKED",
            "REJECTED",
            "EXPIRED"
          ],
          "description": "Required. The product link invitation to be created."
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__LocalServiceIdInfo": {
      "description": "A Local Services Ads service ID. Represents a service type (such as install_faucet) that a Local Services Campaign can target.",
      "properties": {
        "serviceId": {
          "description": "The criterion resource name.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__LocalServiceIdInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common_CampaignGoalSettings_CampaignRetentionGoalSettings": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common_CampaignGoalSettings_CampaignRetentionGoalSettings",
      "description": "Retention campaign goal settings.",
      "properties": {
        "valueSettingsOverride": {
          "description": "Retention goal campaign specific value settings.",
          "$ref": "GoogleAdsGoogleadsV23Common__CustomerLifecycleOptimizationValueSettings"
        },
        "targetOption": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "TARGET_ALL",
            "TARGET_SPECIFIC"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The mode is used when the campaign optimizes for all customers, which is the default value.",
            "This mode configures the campaign to target only customers who have previously interacted but are now lapsed or disengaged."
          ],
          "description": "Retention goal optimization mode for this campaign. Defaults to TARGET_ALL. Only customers on the allowlist can set target_option."
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__PriceOffering": {
      "description": "A single price offering within a PriceAsset.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__PriceOffering",
      "properties": {
        "description": {
          "description": "Required. The description of the price offering. The length of this string should be between 1 and 25, inclusive.",
          "type": "string"
        },
        "finalMobileUrl": {
          "description": "The final mobile URL after all cross domain redirects.",
          "type": "string"
        },
        "price": {
          "description": "Required. The price value of the price offering.",
          "$ref": "GoogleAdsGoogleadsV23Common__Money"
        },
        "unit": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Per hour.",
            "Per day.",
            "Per week.",
            "Per month.",
            "Per year.",
            "Per night."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PER_HOUR",
            "PER_DAY",
            "PER_WEEK",
            "PER_MONTH",
            "PER_YEAR",
            "PER_NIGHT"
          ],
          "description": "The price unit of the price offering."
        },
        "finalUrl": {
          "description": "Required. The final URL after all cross domain redirects.",
          "type": "string"
        },
        "header": {
          "type": "string",
          "description": "Required. The header of the price offering. The length of this string should be between 1 and 25, inclusive."
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__ChainLocationGroup": {
      "id": "GoogleAdsGoogleadsV23Common__ChainLocationGroup",
      "type": "object",
      "description": "Represents information about a Chain dynamic location group. Only applicable if the sync level AssetSet's type is LOCATION_SYNC and sync source is chain.",
      "properties": {
        "dynamicChainLocationGroupFilters": {
          "description": "Used to filter chain locations by chain ids. Only Locations that belong to the specified chain(s) will be in the asset set.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__ChainFilter"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__TargetRoasSimulationPointList": {
      "type": "object",
      "description": "A container for simulation points for simulations of type TARGET_ROAS.",
      "id": "GoogleAdsGoogleadsV23Common__TargetRoasSimulationPointList",
      "properties": {
        "points": {
          "description": "Projected metrics for a series of target ROAS amounts.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__TargetRoasSimulationPoint"
          },
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__DisplayUploadAdInfo": {
      "properties": {
        "displayUploadProductType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HTML5_UPLOAD_AD",
            "DYNAMIC_HTML5_EDUCATION_AD",
            "DYNAMIC_HTML5_FLIGHT_AD",
            "DYNAMIC_HTML5_HOTEL_RENTAL_AD",
            "DYNAMIC_HTML5_JOB_AD",
            "DYNAMIC_HTML5_LOCAL_AD",
            "DYNAMIC_HTML5_REAL_ESTATE_AD",
            "DYNAMIC_HTML5_CUSTOM_AD",
            "DYNAMIC_HTML5_TRAVEL_AD",
            "DYNAMIC_HTML5_HOTEL_AD"
          ],
          "description": "The product type of this ad. See comments on the enum for details.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "HTML5 upload ad. This product type requires the upload_media_bundle field in DisplayUploadAdInfo to be set.",
            "Dynamic HTML5 education ad. This product type requires the upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be used in an education campaign.",
            "Dynamic HTML5 flight ad. This product type requires the upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be used in a flight campaign.",
            "Dynamic HTML5 hotel and rental ad. This product type requires the upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be used in a hotel campaign.",
            "Dynamic HTML5 job ad. This product type requires the upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be used in a job campaign.",
            "Dynamic HTML5 local ad. This product type requires the upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be used in a local campaign.",
            "Dynamic HTML5 real estate ad. This product type requires the upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be used in a real estate campaign.",
            "Dynamic HTML5 custom ad. This product type requires the upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be used in a custom campaign.",
            "Dynamic HTML5 travel ad. This product type requires the upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be used in a travel campaign.",
            "Dynamic HTML5 hotel ad. This product type requires the upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be used in a hotel campaign."
          ],
          "type": "string"
        },
        "mediaBundle": {
          "description": "A media bundle asset to be used in the ad. For information about the media bundle for HTML5_UPLOAD_AD, see https://support.google.com/google-ads/answer/1722096 Media bundles that are part of dynamic product types use a special format that needs to be created through the Google Web Designer. See https://support.google.com/webdesigner/answer/7543898 for more information.",
          "$ref": "GoogleAdsGoogleadsV23Common__AdMediaBundleAsset"
        }
      },
      "description": "A generic type of display ad. The exact ad format is controlled by the `display_upload_product_type` field, which determines what kinds of data need to be included with the ad.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__DisplayUploadAdInfo"
    },
    "GoogleAdsGoogleadsV23Common__AudienceInsightsAttributeMetadata": {
      "properties": {
        "displayName": {
          "description": "The human-readable name of the attribute.",
          "type": "string"
        },
        "youtubeChannelMetadata": {
          "$ref": "GoogleAdsGoogleadsV23Common__YouTubeChannelAttributeMetadata",
          "description": "Special metadata for a YouTube channel."
        },
        "knowledgeGraphAttributeMetadata": {
          "$ref": "GoogleAdsGoogleadsV23Common__KnowledgeGraphAttributeMetadata",
          "description": "Special metadata for a Knowledge Graph Entity."
        },
        "locationAttributeMetadata": {
          "description": "Special metadata for a Location.",
          "$ref": "GoogleAdsGoogleadsV23Common__LocationAttributeMetadata"
        },
        "lineupAttributeMetadata": {
          "$ref": "GoogleAdsGoogleadsV23Common__LineupAttributeMetadata",
          "description": "Special metadata for a YouTube Lineup."
        },
        "attribute": {
          "description": "The attribute itself.",
          "$ref": "GoogleAdsGoogleadsV23Common__AudienceInsightsAttribute"
        },
        "potentialYoutubeReach": {
          "type": "string",
          "format": "int64",
          "description": "An estimate of the number of reachable YouTube users matching this attribute in the requested location, or zero if that information is not available for this attribute. This field is not populated in every response."
        },
        "viewerShare": {
          "description": "The share of viewers within this attribute, between and including 0 and 1. This field is not populated in every response.",
          "type": "number",
          "format": "double"
        },
        "youtubeVideoMetadata": {
          "description": "Special metadata for a YouTube video.",
          "$ref": "GoogleAdsGoogleadsV23Common__YouTubeVideoAttributeMetadata"
        },
        "subscriberShare": {
          "format": "double",
          "description": "The share of subscribers within this attribute, between and including 0 and 1. This field is not populated in every response.",
          "type": "number"
        },
        "dimension": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CATEGORY",
            "KNOWLEDGE_GRAPH",
            "GEO_TARGET_COUNTRY",
            "SUB_COUNTRY_LOCATION",
            "YOUTUBE_CHANNEL",
            "AFFINITY_USER_INTEREST",
            "IN_MARKET_USER_INTEREST",
            "PARENTAL_STATUS",
            "INCOME_RANGE",
            "AGE_RANGE",
            "GENDER",
            "YOUTUBE_VIDEO",
            "DEVICE",
            "YOUTUBE_LINEUP",
            "USER_LIST",
            "LIFE_EVENT_USER_INTEREST"
          ],
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "A Product & Service category.",
            "A Knowledge Graph entity.",
            "A country, represented by a geo target.",
            "A geographic location within a country.",
            "A YouTube channel.",
            "An Affinity UserInterest.",
            "An In-Market UserInterest.",
            "A Parental Status value (parent, or not a parent).",
            "A household income percentile range.",
            "An age range.",
            "A gender.",
            "A YouTube video.",
            "A device type, such as Mobile, Desktop, Tablet, and Connected TV.",
            "A YouTube Lineup.",
            "A User List.",
            "A Life Event UserInterest."
          ],
          "description": "The type of the attribute.",
          "type": "string"
        },
        "displayInfo": {
          "description": "A string that supplements the display_name to identify the attribute. If the dimension is TOPIC, this is a brief description of the Knowledge Graph entity, such as \"American singer-songwriter\". If the dimension is CATEGORY, this is the complete path to the category in The Product & Service taxonomy, for example \"/Apparel/Clothing/Outerwear\".",
          "type": "string"
        },
        "userInterestAttributeMetadata": {
          "$ref": "GoogleAdsGoogleadsV23Common__UserInterestAttributeMetadata",
          "description": "Special metadata for a User Interest."
        },
        "userListAttributeMetadata": {
          "description": "Special metadata for a User List.",
          "$ref": "GoogleAdsGoogleadsV23Common__UserListAttributeMetadata"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__AudienceInsightsAttributeMetadata",
      "description": "An audience attribute, with metadata about it, returned in response to a search."
    },
    "GoogleAdsGoogleadsV23Services__MutateAdGroupLabelsRequest": {
      "id": "GoogleAdsGoogleadsV23Services__MutateAdGroupLabelsRequest",
      "type": "object",
      "properties": {
        "operations": {
          "type": "array",
          "description": "Required. The list of operations to perform on ad group labels.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__AdGroupLabelOperation"
          }
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        }
      },
      "description": "Request message for AdGroupLabelService.MutateAdGroupLabels."
    },
    "GoogleAdsGoogleadsV23Services__MutateAdGroupAdLabelsResponse": {
      "id": "GoogleAdsGoogleadsV23Services__MutateAdGroupAdLabelsResponse",
      "description": "Response message for an ad group ad labels mutate.",
      "properties": {
        "partialFailureError": {
          "$ref": "GoogleRpc__Status",
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error."
        },
        "results": {
          "type": "array",
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateAdGroupAdLabelResult"
          }
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__AdGroupAudienceView": {
      "id": "GoogleAdsGoogleadsV23Resources__AdGroupAudienceView",
      "properties": {
        "resourceName": {
          "description": "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}`",
          "type": "string",
          "readOnly": true
        }
      },
      "description": "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": "object"
    },
    "GoogleAdsGoogleadsV23Services__CyoIncentives": {
      "properties": {
        "highOffer": {
          "description": "Required. The CYO incentive with high target and award amounts.",
          "$ref": "GoogleAdsGoogleadsV23Services__Incentive"
        },
        "lowOffer": {
          "$ref": "GoogleAdsGoogleadsV23Services__Incentive",
          "description": "Required. The CYO incentive with low target and award amounts."
        },
        "mediumOffer": {
          "description": "Required. The CYO incentive with medium target and award amounts.",
          "$ref": "GoogleAdsGoogleadsV23Services__Incentive"
        }
      },
      "description": "An incentive offer in the Choose-Your-Own Incentive feature where a user can select from a set of incentives with different money amounts.",
      "id": "GoogleAdsGoogleadsV23Services__CyoIncentives",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateKeywordPlanAdGroupKeywordResult": {
      "type": "object",
      "description": "The result for the Keyword Plan ad group keyword mutate.",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateKeywordPlanAdGroupKeywordResult"
    },
    "GoogleAdsGoogleadsV23Services__StartIdentityVerificationRequest": {
      "type": "object",
      "properties": {
        "verificationProgram": {
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Advertiser submits documents to verify their identity."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADVERTISER_IDENTITY_VERIFICATION"
          ],
          "description": "Required. The verification program type for which we want to start the verification."
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__StartIdentityVerificationRequest",
      "description": "Request message for StartIdentityVerification."
    },
    "GoogleAdsGoogleadsV23Resources_ProductCategoryConstant_ProductCategoryLocalization": {
      "id": "GoogleAdsGoogleadsV23Resources_ProductCategoryConstant_ProductCategoryLocalization",
      "type": "object",
      "description": "Localization for the product category.",
      "properties": {
        "languageCode": {
          "description": "Output only. Two-letter ISO 639-1 language code of the localized category.",
          "readOnly": true,
          "type": "string"
        },
        "regionCode": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Upper-case two-letter ISO 3166-1 country code of the localized category."
        },
        "value": {
          "description": "Output only. The name of the category in the specified locale.",
          "type": "string",
          "readOnly": true
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__ConceptGroup": {
      "type": "object",
      "description": "The concept group for the keyword concept.",
      "id": "GoogleAdsGoogleadsV23Common__ConceptGroup",
      "properties": {
        "type": {
          "description": "The concept group type.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BRAND",
            "OTHER_BRANDS",
            "NON_BRAND"
          ],
          "enumDescriptions": [
            "The concept group classification different from brand/non-brand. This is a catch all bucket for all classifications that are none of the below.",
            "The value is unknown in this version.",
            "The concept group classification is based on BRAND.",
            "The concept group classification based on BRAND, that didn't fit well with the BRAND classifications. These are generally outliers and can have very few keywords in this type of classification.",
            "These concept group classification is not based on BRAND. This is returned for generic keywords that don't have a brand association."
          ],
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "The concept group name."
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__CustomizerValue": {
      "type": "object",
      "description": "A customizer value that is referenced in customizer linkage entities like CustomerCustomizer, CampaignCustomizer, etc.",
      "properties": {
        "stringValue": {
          "type": "string",
          "description": "Required. Value to insert in creative text. Customizer values of all types are stored as string to make formatting unambiguous."
        },
        "type": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "TEXT",
            "NUMBER",
            "PRICE",
            "PERCENT"
          ],
          "enumDescriptions": [
            "The status has not been specified.",
            "The received value is not known in this version.",
            "Text customizer.",
            "Number customizer.",
            "Price customizer consisting of a number and a currency.",
            "Percentage customizer consisting of a number and a '%'."
          ],
          "type": "string",
          "description": "Required. The data type for the customizer value. It must match the attribute type. The string_value content must match the constraints associated with the type."
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__CustomizerValue"
    },
    "GoogleAdsGoogleadsV23Resources__Video": {
      "description": "A video.",
      "type": "object",
      "properties": {
        "channelId": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The owner channel id of the video."
        },
        "id": {
          "type": "string",
          "description": "Output only. The ID of the video.",
          "readOnly": true
        },
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the video. Video resource names have the form: `customers/{customer_id}/videos/{video_id}`",
          "readOnly": true
        },
        "title": {
          "description": "Output only. The title of the video.",
          "readOnly": true,
          "type": "string"
        },
        "durationMillis": {
          "description": "Output only. The duration of the video in milliseconds.",
          "format": "int64",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__Video"
    },
    "GoogleAdsGoogleadsV23Resources__TopicView": {
      "description": "A topic view.",
      "id": "GoogleAdsGoogleadsV23Resources__TopicView",
      "properties": {
        "resourceName": {
          "description": "Output only. The resource name of the topic view. Topic view resource names have the form: `customers/{customer_id}/topicViews/{ad_group_id}~{criterion_id}`",
          "readOnly": true,
          "type": "string"
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__TargetRoasSimulationPoint": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__TargetRoasSimulationPoint",
      "properties": {
        "costMicros": {
          "type": "string",
          "format": "int64",
          "description": "Projected cost in micros."
        },
        "impressions": {
          "description": "Projected number of impressions.",
          "type": "string",
          "format": "int64"
        },
        "biddableConversionsValue": {
          "format": "double",
          "description": "Projected total value of biddable conversions.",
          "type": "number"
        },
        "requiredBudgetAmountMicros": {
          "format": "int64",
          "type": "string",
          "description": "Projected required daily budget that the advertiser must set in order to receive the estimated traffic, in micros of advertiser currency."
        },
        "topSlotImpressions": {
          "format": "int64",
          "description": "Projected number of top slot impressions. Only Search advertising channel type supports this field.",
          "type": "string"
        },
        "targetRoas": {
          "format": "double",
          "type": "number",
          "description": "The simulated target ROAS upon which projected metrics are based."
        },
        "clicks": {
          "type": "string",
          "description": "Projected number of clicks.",
          "format": "int64"
        },
        "biddableConversions": {
          "description": "Projected number of biddable conversions.",
          "type": "number",
          "format": "double"
        }
      },
      "description": "Projected metrics for a specific target ROAS amount."
    },
    "GoogleAdsGoogleadsV23Services__ConfigureCustomerLifecycleGoalsRequest": {
      "description": "Request message for CustomerLifecycleGoalService.ConfigureCustomerLifecycleGoals.",
      "type": "object",
      "properties": {
        "operation": {
          "description": "Required. The operation to perform customer lifecycle goal update.",
          "$ref": "GoogleAdsGoogleadsV23Services__CustomerLifecycleGoalOperation"
        },
        "validateOnly": {
          "type": "boolean",
          "description": "Optional. If true, the request is validated but not executed. Only errors are returned, not results."
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__ConfigureCustomerLifecycleGoalsRequest"
    },
    "GoogleAdsGoogleadsV23Services__FrequencyCap": {
      "properties": {
        "timeUnit": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DAY",
            "WEEK",
            "MONTH"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The cap would define limit per one day.",
            "The cap would define limit per one week.",
            "The cap would define limit per one month."
          ],
          "type": "string",
          "description": "Required. The type of time unit."
        },
        "impressions": {
          "type": "integer",
          "format": "int32",
          "description": "Required. The number of impressions, inclusive."
        }
      },
      "description": "A rule specifying the maximum number of times an ad can be shown to a user over a particular time period.",
      "id": "GoogleAdsGoogleadsV23Services__FrequencyCap",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources_Invoice_AdjustmentSummary": {
      "description": "Represents adjustment information associated with an account.",
      "type": "object",
      "properties": {
        "adjustmentDescription": {
          "description": "Output only. The description of the adjustment. Example: Incentive Adjustment, discount.",
          "readOnly": true,
          "type": "string"
        },
        "amountMicros": {
          "readOnly": true,
          "description": "Output only. The amount of the adjustment, in micros. The currency code for this amount is the same as the Invoice.currency_code.",
          "type": "string",
          "format": "int64"
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources_Invoice_AdjustmentSummary"
    },
    "GoogleAdsGoogleadsV23Common__TargetImpressionShareSimulationPointList": {
      "type": "object",
      "description": "A container for simulation points for simulations of type TARGET_IMPRESSION_SHARE.",
      "id": "GoogleAdsGoogleadsV23Common__TargetImpressionShareSimulationPointList",
      "properties": {
        "points": {
          "description": "Projected metrics for a specific target impression share value.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__TargetImpressionShareSimulationPoint"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources_ConversionAction_GoogleAnalytics4Settings": {
      "description": "Settings related to a Google Analytics 4 conversion action.",
      "properties": {
        "propertyId": {
          "format": "int64",
          "readOnly": true,
          "description": "Output only. The ID of the GA 4 property.",
          "type": "string"
        },
        "eventName": {
          "type": "string",
          "description": "Output only. The name of the GA 4 event.",
          "readOnly": true
        },
        "propertyName": {
          "description": "Output only. The name of the GA 4 property.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources_ConversionAction_GoogleAnalytics4Settings",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__ConversationOrError": {
      "type": "object",
      "properties": {
        "localServicesLeadConversation": {
          "description": "The resource name of the appended local services lead conversation.",
          "type": "string"
        },
        "partialFailureError": {
          "$ref": "GoogleRpc__Status",
          "description": "Failure status when the request could not be processed."
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__ConversationOrError",
      "description": "Result of the append conversation operation."
    },
    "GoogleAdsGoogleadsV23Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_FineGrainedConversionValueMappings": {
      "description": "Mappings for fine grained conversion value.",
      "id": "GoogleAdsGoogleadsV23Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_FineGrainedConversionValueMappings",
      "type": "object",
      "properties": {
        "conversionValueMapping": {
          "$ref": "GoogleAdsGoogleadsV23Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_ConversionValueMapping",
          "readOnly": true,
          "description": "Output only. Conversion events the fine grained conversion value maps to."
        },
        "fineGrainedConversionValue": {
          "type": "integer",
          "format": "int32",
          "readOnly": true,
          "description": "Output only. Fine grained conversion value. Valid values are in the inclusive range [0,63]."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services_GenerateRecommendationsRequest_TargetImpressionShareInfo": {
      "properties": {
        "targetImpressionShareMicros": {
          "type": "string",
          "description": "Required. The chosen fraction of targeted impression share in micros. For example, 1% equals 10,000. It must be a value between 1 and 1,000,000. This is required for campaigns with an AdvertisingChannelType of SEARCH and a bidding strategy type of TARGET_IMPRESSION_SHARE.",
          "format": "int64"
        },
        "location": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ANYWHERE_ON_PAGE",
            "TOP_OF_PAGE",
            "ABSOLUTE_TOP_OF_PAGE"
          ],
          "description": "Required. The targeted location on the search results page. This is required for campaigns where the AdvertisingChannelType is SEARCH and the bidding strategy type is TARGET_IMPRESSION_SHARE.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Any location on the web page.",
            "Top box of ads.",
            "Top slot in the top box of ads."
          ],
          "type": "string"
        },
        "maxCpcBidCeiling": {
          "type": "string",
          "format": "int64",
          "description": "Optional. Ceiling of max CPC bids in micros set by automated bidders. This is optional for campaigns with an AdvertisingChannelType of SEARCH and a bidding strategy type of TARGET_IMPRESSION_SHARE."
        }
      },
      "id": "GoogleAdsGoogleadsV23Services_GenerateRecommendationsRequest_TargetImpressionShareInfo",
      "type": "object",
      "description": "Current Target Impression Share information of the campaign."
    },
    "GoogleAdsGoogleadsV23Errors_ErrorLocation_FieldPathElement": {
      "id": "GoogleAdsGoogleadsV23Errors_ErrorLocation_FieldPathElement",
      "description": "A part of a field path.",
      "type": "object",
      "properties": {
        "fieldName": {
          "description": "The name of a field or a oneof",
          "type": "string"
        },
        "index": {
          "description": "If field_name is a repeated field, this is the element that failed",
          "format": "int32",
          "type": "integer"
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__AssetInteractionTarget": {
      "properties": {
        "interactionOnThisAsset": {
          "type": "boolean",
          "description": "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."
        },
        "asset": {
          "type": "string",
          "description": "The asset resource name."
        }
      },
      "description": "An AssetInteractionTarget segment.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__AssetInteractionTarget"
    },
    "GoogleAdsGoogleadsV23Services_ProductFilter_MarketingObjectiveList": {
      "id": "GoogleAdsGoogleadsV23Services_ProductFilter_MarketingObjectiveList",
      "type": "object",
      "description": "The list of marketing objectives to generate benchmarks metrics for.",
      "properties": {
        "marketingObjectives": {
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "The value is unknown in this version.",
              "The objective is to increase awareness.",
              "The objective is to encourage potential customers to consider the brand or products.",
              "The objective is to drive a specific conversion, such as a purchase."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "AWARENESS",
              "CONSIDERATION",
              "ACTION"
            ]
          },
          "description": "Required. Marketing objectives to generate benchmarks metrics for.",
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__UserListStringRuleItemInfo": {
      "properties": {
        "operator": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Contains.",
            "Equals.",
            "Starts with.",
            "Ends with.",
            "Not equals.",
            "Not contains.",
            "Not starts with.",
            "Not ends with."
          ],
          "type": "string",
          "description": "String comparison operator. This field is required and must be populated when creating a new string rule item.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CONTAINS",
            "EQUALS",
            "STARTS_WITH",
            "ENDS_WITH",
            "NOT_EQUALS",
            "NOT_CONTAINS",
            "NOT_STARTS_WITH",
            "NOT_ENDS_WITH"
          ]
        },
        "value": {
          "type": "string",
          "description": "The right hand side of the string rule item. For URLs or referrer URLs, the value can not contain illegal URL chars such as newlines, quotes, tabs, or parentheses. This field is required and must be populated when creating a new string rule item."
        }
      },
      "type": "object",
      "description": "A rule item composed of a string operation.",
      "id": "GoogleAdsGoogleadsV23Common__UserListStringRuleItemInfo"
    },
    "GoogleAdsGoogleadsV23Common__VideoTrueViewInStreamAdInfo": {
      "type": "object",
      "properties": {
        "actionButtonLabel": {
          "type": "string",
          "description": "Label on the CTA (call-to-action) button taking the user to the video ad's final URL. Required for TrueView for action campaigns, optional otherwise."
        },
        "companionBanner": {
          "description": "The image assets of the companion banner used with the ad.",
          "$ref": "GoogleAdsGoogleadsV23Common__AdImageAsset"
        },
        "actionHeadline": {
          "type": "string",
          "description": "Additional text displayed with the CTA (call-to-action) button to give context and encourage clicking on the button."
        }
      },
      "description": "Representation of video TrueView in-stream ad format (ad shown during video playback, often at beginning, which displays a skip button a few seconds into the video).",
      "id": "GoogleAdsGoogleadsV23Common__VideoTrueViewInStreamAdInfo"
    },
    "GoogleAdsGoogleadsV23Services__BatchJobResult": {
      "description": "An individual batch job result.",
      "id": "GoogleAdsGoogleadsV23Services__BatchJobResult",
      "properties": {
        "operationIndex": {
          "type": "string",
          "format": "int64",
          "description": "Index of the mutate operation."
        },
        "status": {
          "description": "Details of the errors when processing the operation.",
          "$ref": "GoogleRpc__Status"
        },
        "mutateOperationResponse": {
          "description": "Response for the mutate. May be empty if errors occurred.",
          "$ref": "GoogleAdsGoogleadsV23Services__MutateOperationResponse"
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateExperimentsResponse": {
      "description": "Response message for experiment mutate.",
      "id": "GoogleAdsGoogleadsV23Services__MutateExperimentsResponse",
      "type": "object",
      "properties": {
        "results": {
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateExperimentResult"
          },
          "type": "array"
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateCustomerConversionGoalResult": {
      "id": "GoogleAdsGoogleadsV23Services__MutateCustomerConversionGoalResult",
      "description": "The result for the customer conversion goal mutate.",
      "type": "object",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__CartData": {
      "id": "GoogleAdsGoogleadsV23Services__CartData",
      "description": "Contains additional information about cart data.",
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services_CartData_Item"
          },
          "description": "Data of the items purchased."
        },
        "feedCountryCode": {
          "description": "The country code associated with the feed where the items are uploaded.",
          "type": "string"
        },
        "localTransactionCost": {
          "type": "number",
          "description": "Sum of all transaction level discounts, such as free shipping and coupon discounts for the whole cart. The currency code is the same as that in the ClickConversion message.",
          "format": "double"
        },
        "merchantId": {
          "type": "string",
          "description": "The Merchant Center ID where the items are uploaded.",
          "format": "int64"
        },
        "feedLanguageCode": {
          "type": "string",
          "description": "The language code associated with the feed where the items are uploaded."
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common_LineupAttributeMetadata_SampleChannel": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common_LineupAttributeMetadata_SampleChannel",
      "description": "A YouTube channel returned as an example of the content in a lineup.",
      "properties": {
        "displayName": {
          "description": "The name of the sample channel.",
          "type": "string"
        },
        "youtubeChannel": {
          "description": "A YouTube channel.",
          "$ref": "GoogleAdsGoogleadsV23Common__YouTubeChannelInfo"
        },
        "youtubeChannelMetadata": {
          "$ref": "GoogleAdsGoogleadsV23Common__YouTubeChannelAttributeMetadata",
          "description": "Metadata for the sample channel."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateAdGroupCriteriaRequest": {
      "properties": {
        "operations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__AdGroupCriterionOperation"
          },
          "type": "array",
          "description": "Required. The list of operations to perform on individual criteria."
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "responseContentType": {
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "type": "string",
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ]
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateAdGroupCriteriaRequest",
      "description": "Request message for AdGroupCriterionService.MutateAdGroupCriteria."
    },
    "GoogleAdsGoogleadsV23Services__FreeformImageGenerationInput": {
      "description": "Input for guiding image asset generation with a freeform prompt.",
      "properties": {
        "freeformPrompt": {
          "description": "Required. A freeform text description to guide the image generation process. The maximum length is 1500 characters. Required.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__FreeformImageGenerationInput",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__GenerateAudienceDefinitionResponse": {
      "id": "GoogleAdsGoogleadsV23Services__GenerateAudienceDefinitionResponse",
      "description": "Response message for AudienceInsightsService.GenerateAudienceDefinition.",
      "properties": {
        "highRelevanceAttributes": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AudienceInsightsAttributeMetadata"
          },
          "description": "The attributes that make up the audience definition."
        },
        "mediumRelevanceAttributes": {
          "description": "Additional attributes that are less relevant but still related to the audience description. Use these attributes to broaden the audience definition to reach more users.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AudienceInsightsAttributeMetadata"
          }
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__ManualCpcBiddingStrategy": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__ManualCpcBiddingStrategy",
      "properties": {
        "maxCpcBidMicros": {
          "description": "Required. A bid in micros to be applied to ad groups within the campaign for a manual CPC bidding strategy.",
          "type": "string",
          "format": "int64"
        },
        "dailyBudgetMicros": {
          "type": "string",
          "description": "Campaign level budget in micros. If set, a minimum value is enforced for the local currency used in the campaign. An error will occur showing the minimum value if this field is set too low.",
          "format": "int64"
        }
      },
      "description": "Manual CPC Bidding Strategy."
    },
    "GoogleAdsGoogleadsV23Services__GenerateTrendingInsightsResponse": {
      "type": "object",
      "properties": {
        "trendInsights": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__TrendInsight"
          },
          "type": "array",
          "description": "The list of trending insights for the given criteria."
        }
      },
      "description": "Response message for ContentCreatorInsightsService.GenerateTrendingInsights.",
      "id": "GoogleAdsGoogleadsV23Services__GenerateTrendingInsightsResponse"
    },
    "GoogleAdsGoogleadsV23Resources_ListingGroupFilterDimension_ProductType": {
      "description": "Type of a product offer.",
      "id": "GoogleAdsGoogleadsV23Resources_ListingGroupFilterDimension_ProductType",
      "type": "object",
      "properties": {
        "level": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "LEVEL1",
            "LEVEL2",
            "LEVEL3",
            "LEVEL4",
            "LEVEL5"
          ],
          "description": "Level of the type.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Level 1.",
            "Level 2.",
            "Level 3.",
            "Level 4.",
            "Level 5."
          ]
        },
        "value": {
          "description": "Value of the type.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__CriterionCategoryChannelAvailability": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__CriterionCategoryChannelAvailability",
      "properties": {
        "advertisingChannelType": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Search Network. Includes display bundled, and Search+ campaigns.",
            "Google Display Network only.",
            "Shopping campaigns serve on the shopping property and on google.com search results.",
            "Hotel Ads campaigns.",
            "Video campaigns.",
            "App Campaigns, and App Campaigns for Engagement, that run across multiple channels.",
            "Local ads campaigns.",
            "Smart campaigns.",
            "Performance Max campaigns.",
            "Local services campaigns.",
            "Travel campaigns.",
            "Demand Gen campaigns."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SEARCH",
            "DISPLAY",
            "SHOPPING",
            "HOTEL",
            "VIDEO",
            "MULTI_CHANNEL",
            "LOCAL",
            "SMART",
            "PERFORMANCE_MAX",
            "LOCAL_SERVICES",
            "TRAVEL",
            "DEMAND_GEN"
          ],
          "description": "Channel type the category is available to."
        },
        "includeDefaultChannelSubType": {
          "description": "Whether default channel sub type is included. For example, advertising_channel_type being DISPLAY and include_default_channel_sub_type being false means that the default display campaign where channel sub type is not set is not included in this availability configuration.",
          "type": "boolean"
        },
        "advertisingChannelSubType": {
          "items": {
            "enumDescriptions": [
              "Not specified.",
              "Used as a return value only. Represents value unknown in this version.",
              "Mobile app campaigns for Search.",
              "Mobile app campaigns for Display.",
              "AdWords express campaigns for search.",
              "AdWords Express campaigns for display.",
              "Smart Shopping campaigns.",
              "Gmail Ad campaigns.",
              "Smart display campaigns. New campaigns of this sub type cannot be created.",
              "Video TrueView for Action campaigns.",
              "Video campaigns with non-skippable video ads.",
              "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, focused on driving re-engagement with the app across several of Google's top properties including Search, YouTube, and the Google Display Network.",
              "Campaigns specialized for local advertising.",
              "Shopping Comparison Listing campaigns.",
              "Standard Smart campaigns.",
              "Video campaigns with sequence video ads.",
              "App Campaign for pre registration, specialized for advertising mobile app pre-registration, that targets multiple advertising channels across Google Play, YouTube and Display Network. See https://support.google.com/google-ads/answer/9441344 to learn more.",
              "Video reach campaign with Target Frequency bidding strategy.",
              "Travel Activities campaigns.",
              "YouTube Audio campaigns."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "SEARCH_MOBILE_APP",
              "DISPLAY_MOBILE_APP",
              "SEARCH_EXPRESS",
              "DISPLAY_EXPRESS",
              "SHOPPING_SMART_ADS",
              "DISPLAY_GMAIL_AD",
              "DISPLAY_SMART_CAMPAIGN",
              "VIDEO_ACTION",
              "VIDEO_NON_SKIPPABLE",
              "APP_CAMPAIGN",
              "APP_CAMPAIGN_FOR_ENGAGEMENT",
              "LOCAL_CAMPAIGN",
              "SHOPPING_COMPARISON_LISTING_ADS",
              "SMART_CAMPAIGN",
              "VIDEO_SEQUENCE",
              "APP_CAMPAIGN_FOR_PRE_REGISTRATION",
              "VIDEO_REACH_TARGET_FREQUENCY",
              "TRAVEL_ACTIVITIES",
              "YOUTUBE_AUDIO"
            ],
            "type": "string"
          },
          "type": "array",
          "description": "Channel subtypes under the channel type the category is available to."
        },
        "availabilityMode": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ALL_CHANNELS",
            "CHANNEL_TYPE_AND_ALL_SUBTYPES",
            "CHANNEL_TYPE_AND_SUBSET_SUBTYPES"
          ],
          "type": "string",
          "description": "Format of the channel availability. Can be ALL_CHANNELS (the rest of the fields will not be set), CHANNEL_TYPE (only advertising_channel_type type will be set, the category is available to all sub types under it) or CHANNEL_TYPE_AND_SUBTYPES (advertising_channel_type, advertising_channel_sub_type, and include_default_channel_sub_type will all be set).",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The category is available to campaigns of all channel types and subtypes.",
            "The category is available to campaigns of a specific channel type, including all subtypes under it.",
            "The category is available to campaigns of a specific channel type and subtype(s)."
          ]
        }
      },
      "description": "Information of advertising channel type and subtypes a category is available in."
    },
    "GoogleAdsGoogleadsV23Services__SearchGoogleAdsFieldsRequest": {
      "id": "GoogleAdsGoogleadsV23Services__SearchGoogleAdsFieldsRequest",
      "type": "object",
      "description": "Request message for GoogleAdsFieldService.SearchGoogleAdsFields.",
      "properties": {
        "query": {
          "description": "Required. The query string.",
          "type": "string"
        },
        "pageSize": {
          "type": "integer",
          "format": "int32",
          "description": "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."
        },
        "pageToken": {
          "type": "string",
          "description": "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."
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__ChainSet": {
      "properties": {
        "relationshipType": {
          "description": "Required. Immutable. Relationship type the specified chains have with this advertiser.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AUTO_DEALERS",
            "GENERAL_RETAILERS"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Auto dealer relationship.",
            "General retailer relationship."
          ],
          "type": "string"
        },
        "chains": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__ChainFilter"
          },
          "type": "array",
          "description": "Required. A list of chain level filters, all filters are OR'ed together."
        }
      },
      "description": "Data used to configure a location set populated with the specified chains.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__ChainSet"
    },
    "GoogleAdsGoogleadsV23Services__ConversionAdjustment": {
      "type": "object",
      "description": "A conversion adjustment.",
      "id": "GoogleAdsGoogleadsV23Services__ConversionAdjustment",
      "properties": {
        "userAgent": {
          "description": "The user agent to enhance the original conversion. This can be found in your user's HTTP request header when they convert on your web page. Example, \"Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X)\". User agent can only be specified in enhancements with user identifiers. This should match the user agent of the request that sent the original conversion so the conversion and its enhancement are either both attributed as same-device or both attributed as cross-device.",
          "type": "string"
        },
        "orderId": {
          "type": "string",
          "description": "The order ID of the conversion to be adjusted. If the conversion was reported with an order ID specified, that order ID must be used as the identifier here. The order ID is required for enhancements."
        },
        "adjustmentType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "RETRACTION",
            "RESTATEMENT",
            "ENHANCEMENT"
          ],
          "description": "The adjustment type.",
          "enumDescriptions": [
            "Not specified.",
            "Represents value unknown in this version.",
            "Negates a conversion so that its total value and count are both zero.",
            "Changes the value of a conversion.",
            "Supplements an existing conversion with provided user identifiers and user agent, which can be used by Google to enhance the conversion count."
          ],
          "type": "string"
        },
        "conversionAction": {
          "description": "Resource name of the conversion action associated with this conversion adjustment. Note: Although this resource name consists of a customer id and a conversion action id, validation will ignore the customer id and use the conversion action id as the sole identifier of the conversion action.",
          "type": "string"
        },
        "restatementValue": {
          "description": "Information needed to restate the conversion's value. Required for restatements. Should not be supplied for retractions. An error will be returned if provided for a retraction. NOTE: If you want to upload a second restatement with a different adjusted value, it must have a new, more recent, adjustment occurrence time. Otherwise, it will be treated as a duplicate of the previous restatement and ignored.",
          "$ref": "GoogleAdsGoogleadsV23Services__RestatementValue"
        },
        "userIdentifiers": {
          "type": "array",
          "description": "The user identifiers to enhance the original conversion. ConversionAdjustmentUploadService only accepts user identifiers in enhancements. The maximum number of user identifiers for each enhancement is 5.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__UserIdentifier"
          }
        },
        "adjustmentDateTime": {
          "type": "string",
          "description": "The date time at which the adjustment occurred. Must be after the conversion_date_time. The timezone must be specified. The format is \"yyyy-mm-dd hh:mm:ss+|-hh:mm\", for example, \"2019-01-01 12:32:45-08:00\"."
        },
        "gclidDateTimePair": {
          "$ref": "GoogleAdsGoogleadsV23Services__GclidDateTimePair",
          "description": "For adjustments, uniquely identifies a conversion that was reported without an order ID specified. If the adjustment_type is ENHANCEMENT, this value is optional but may be set in addition to the order_id."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__CampaignSharedSetOperation": {
      "type": "object",
      "description": "A single operation (create, remove) on a campaign shared set.",
      "properties": {
        "remove": {
          "description": "Remove operation: A resource name for the removed campaign shared set is expected, in this format: `customers/{customer_id}/campaignSharedSets/{campaign_id}~{shared_set_id}`",
          "type": "string"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new campaign shared set.",
          "$ref": "GoogleAdsGoogleadsV23Resources__CampaignSharedSet"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__CampaignSharedSetOperation"
    },
    "GoogleAdsGoogleadsV23Services__ConversionCustomVariableOperation": {
      "type": "object",
      "properties": {
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask",
          "type": "string"
        },
        "update": {
          "$ref": "GoogleAdsGoogleadsV23Resources__ConversionCustomVariable",
          "description": "Update operation: The conversion custom variable is expected to have a valid resource name."
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new conversion custom variable.",
          "$ref": "GoogleAdsGoogleadsV23Resources__ConversionCustomVariable"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__ConversionCustomVariableOperation",
      "description": "A single operation (create, update) on a conversion custom variable."
    },
    "GoogleAdsGoogleadsV23Resources_Recommendation_RecommendationImpact": {
      "type": "object",
      "description": "The impact of making the change as described in the recommendation. Some types of recommendations may not have impact information.",
      "id": "GoogleAdsGoogleadsV23Resources_Recommendation_RecommendationImpact",
      "properties": {
        "baseMetrics": {
          "readOnly": true,
          "description": "Output only. Base metrics at the time the recommendation was generated.",
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_RecommendationMetrics"
        },
        "potentialMetrics": {
          "description": "Output only. Estimated metrics if the recommendation is applied.",
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_RecommendationMetrics",
          "readOnly": true
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateAccountBudgetProposalResult": {
      "id": "GoogleAdsGoogleadsV23Services__MutateAccountBudgetProposalResult",
      "description": "The result for the account budget proposal mutate.",
      "type": "object",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services_GenerateRecommendationsRequest_AdGroupInfo": {
      "properties": {
        "adGroupType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SEARCH_STANDARD",
            "DISPLAY_STANDARD",
            "SHOPPING_PRODUCT_ADS",
            "HOTEL_ADS",
            "SHOPPING_SMART_ADS",
            "VIDEO_BUMPER",
            "VIDEO_TRUE_VIEW_IN_STREAM",
            "VIDEO_TRUE_VIEW_IN_DISPLAY",
            "VIDEO_NON_SKIPPABLE_IN_STREAM",
            "SEARCH_DYNAMIC_ADS",
            "SHOPPING_COMPARISON_LISTING_ADS",
            "PROMOTED_HOTEL_ADS",
            "VIDEO_RESPONSIVE",
            "VIDEO_EFFICIENT_REACH",
            "SMART_CAMPAIGN_ADS",
            "TRAVEL_ADS",
            "YOUTUBE_AUDIO"
          ],
          "enumDescriptions": [
            "The type has not been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The default ad group type for Search campaigns.",
            "The default ad group type for Display campaigns.",
            "The ad group type for Shopping campaigns serving standard product ads.",
            "The default ad group type for Hotel campaigns.",
            "The type for ad groups in Smart Shopping campaigns.",
            "Short unskippable in-stream video ads.",
            "TrueView (skippable) in-stream video ads.",
            "TrueView in-display video ads.",
            "Unskippable in-stream video ads.",
            "Ad group type for Dynamic Search Ads ad groups.",
            "The type for ad groups in Shopping Comparison Listing campaigns.",
            "The ad group type for Promoted Hotel ad groups.",
            "Video responsive ad groups.",
            "Video efficient reach ad groups.",
            "Ad group type for Smart campaigns.",
            "Ad group type for Travel campaigns.",
            "Ad group type for YouTube Audio campaigns."
          ],
          "type": "string",
          "description": "Optional. AdGroup Type of the AdGroup. This field is necessary for the following recommendation_types if ad_group_info is set: KEYWORD"
        },
        "keywords": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__KeywordInfo"
          },
          "description": "Optional. Current keywords. This field is optional for the following recommendation_types if ad_group_info is set: KEYWORD This field is required for the following recommendation_types: CAMPAIGN_BUDGET if AdvertisingChannelType is SEARCH",
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services_GenerateRecommendationsRequest_AdGroupInfo",
      "description": "Current AdGroup Information of the campaign.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__BiddingStrategy": {
      "id": "GoogleAdsGoogleadsV23Resources__BiddingStrategy",
      "description": "A bidding strategy.",
      "properties": {
        "effectiveCurrencyCode": {
          "description": "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.",
          "type": "string",
          "readOnly": true
        },
        "targetCpa": {
          "$ref": "GoogleAdsGoogleadsV23Common__TargetCpa",
          "description": "A bidding strategy that sets bids to help get as many conversions as possible at the target cost-per-acquisition (CPA) you set."
        },
        "alignedCampaignBudgetId": {
          "format": "int64",
          "description": "ID of the campaign budget that this portfolio bidding strategy is aligned with. When a portfolio and a campaign budget are aligned, that means that they are attached to the same set of campaigns. After a bidding strategy is aligned with a campaign budget, campaigns that are added to the bidding strategy must also use the aligned campaign budget.",
          "type": "string"
        },
        "id": {
          "type": "string",
          "format": "int64",
          "description": "Output only. The ID of the bidding strategy.",
          "readOnly": true
        },
        "name": {
          "description": "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).",
          "type": "string"
        },
        "targetRoas": {
          "description": "A bidding strategy that helps you maximize revenue while averaging a specific target Return On Ad Spend (ROAS).",
          "$ref": "GoogleAdsGoogleadsV23Common__TargetRoas"
        },
        "currencyCode": {
          "type": "string",
          "description": "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."
        },
        "type": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Commission is an automatic bidding strategy in which the advertiser pays a certain portion of the conversion value.",
            "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.",
            "Fixed CPM is a manual bidding strategy with a fixed CPM.",
            "Fixed share of voice is a manual bidding strategy for YouTube Sponsorships that bills either on CPM or a fixed cost per day.",
            "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 bidding strategy that allows advertiser to set the bid per advertiser-specified action.",
            "Manual click based bidding where user pays per click.",
            "Manual impression based bidding where user pays per thousand impressions.",
            "A bidding strategy that pays a configurable amount per video view.",
            "A bidding strategy that automatically maximizes number of conversions given a daily budget.",
            "An automated bidding strategy that automatically sets bids to maximize revenue while spending your budget.",
            "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 is bidding strategy where bids are a fraction of the advertised price for some good or service.",
            "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 CPC is an automated bid strategy that sets bids to help get as many clicks as possible at the target cost-per-click (CPC) you set.",
            "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 CPV is an automated bidding strategy that sets bids to optimize performance given the average target cost per view.",
            "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 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 is an automated bidding strategy that helps you maximize revenue while averaging a specific target Return On Average Spend (ROAS).",
            "Target Spend is an automated bid strategy that sets your bids to help get as many clicks as possible within your budget."
          ],
          "readOnly": true,
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "COMMISSION",
            "ENHANCED_CPC",
            "FIXED_CPM",
            "FIXED_SHARE_OF_VOICE",
            "INVALID",
            "MANUAL_CPA",
            "MANUAL_CPC",
            "MANUAL_CPM",
            "MANUAL_CPV",
            "MAXIMIZE_CONVERSIONS",
            "MAXIMIZE_CONVERSION_VALUE",
            "PAGE_ONE_PROMOTED",
            "PERCENT_CPC",
            "TARGET_CPA",
            "TARGET_CPC",
            "TARGET_CPM",
            "TARGET_CPV",
            "TARGET_IMPRESSION_SHARE",
            "TARGET_OUTRANK_SHARE",
            "TARGET_ROAS",
            "TARGET_SPEND"
          ],
          "description": "Output only. The type of the bidding strategy. Create a bidding strategy by setting the bidding scheme. This field is read-only."
        },
        "enhancedCpc": {
          "$ref": "GoogleAdsGoogleadsV23Common__EnhancedCpc",
          "description": "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."
        },
        "targetImpressionShare": {
          "$ref": "GoogleAdsGoogleadsV23Common__TargetImpressionShare",
          "description": "A bidding strategy that automatically optimizes towards a chosen percentage of impressions."
        },
        "campaignCount": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The number of campaigns attached to this bidding strategy. This field is read-only."
        },
        "status": {
          "type": "string",
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The bidding strategy is enabled.",
            "The bidding strategy is removed."
          ],
          "description": "Output only. The status of the bidding strategy. This field is read-only.",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ]
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the bidding strategy. Bidding strategy resource names have the form: `customers/{customer_id}/biddingStrategies/{bidding_strategy_id}`"
        },
        "targetSpend": {
          "description": "A bid strategy that sets your bids to help get as many clicks as possible within your budget.",
          "$ref": "GoogleAdsGoogleadsV23Common__TargetSpend"
        },
        "maximizeConversionValue": {
          "$ref": "GoogleAdsGoogleadsV23Common__MaximizeConversionValue",
          "description": "An automated bidding strategy to help get the most conversion value for your campaigns while spending your budget."
        },
        "maximizeConversions": {
          "description": "An automated bidding strategy to help get the most conversions for your campaigns while spending your budget.",
          "$ref": "GoogleAdsGoogleadsV23Common__MaximizeConversions"
        },
        "nonRemovedCampaignCount": {
          "format": "int64",
          "readOnly": true,
          "description": "Output only. The number of non-removed campaigns attached to this bidding strategy. This field is read-only.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__AgeRangeInfo": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__AgeRangeInfo",
      "properties": {
        "type": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Between 18 and 24 years old.",
            "Between 25 and 34 years old.",
            "Between 35 and 44 years old.",
            "Between 45 and 54 years old.",
            "Between 55 and 64 years old.",
            "65 years old and beyond.",
            "Undetermined age range."
          ],
          "description": "Type of the age range.",
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AGE_RANGE_18_24",
            "AGE_RANGE_25_34",
            "AGE_RANGE_35_44",
            "AGE_RANGE_45_54",
            "AGE_RANGE_55_64",
            "AGE_RANGE_65_UP",
            "AGE_RANGE_UNDETERMINED"
          ]
        }
      },
      "description": "An age range criterion."
    },
    "GoogleAdsGoogleadsV23Services__MutateCustomizerAttributeResult": {
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        },
        "customizerAttribute": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CustomizerAttribute",
          "description": "The mutated CustomizerAttribute with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\"."
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateCustomizerAttributeResult",
      "type": "object",
      "description": "The result for the customizer attribute mutate."
    },
    "GoogleAdsGoogleadsV23Services__OnTargetAudienceMetrics": {
      "id": "GoogleAdsGoogleadsV23Services__OnTargetAudienceMetrics",
      "properties": {
        "youtubeAudienceSize": {
          "type": "string",
          "description": "Reference audience size matching the considered targeting for YouTube.",
          "format": "int64"
        },
        "censusAudienceSize": {
          "description": "Reference audience size matching the considered targeting for Census.",
          "format": "int64",
          "type": "string"
        }
      },
      "description": "Audience metrics for the planned products. These metrics consider the following targeting dimensions: - Location - PlannableAgeRange - Gender - AudienceTargeting (only for youtube_audience_size)",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__CustomerClientLinkOperation": {
      "type": "object",
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new link.",
          "$ref": "GoogleAdsGoogleadsV23Resources__CustomerClientLink"
        },
        "update": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CustomerClientLink",
          "description": "Update operation: The link is expected to have a valid resource name."
        },
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string",
          "format": "google-fieldmask"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__CustomerClientLinkOperation",
      "description": "A single operation (create, update) on a CustomerClientLink."
    },
    "GoogleAdsGoogleadsV23Services__MutateRecommendationSubscriptionRequest": {
      "id": "GoogleAdsGoogleadsV23Services__MutateRecommendationSubscriptionRequest",
      "properties": {
        "operations": {
          "description": "Required. The list of create or update operations.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__RecommendationSubscriptionOperation"
          },
          "type": "array"
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "responseContentType": {
          "type": "string",
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation. The mutable resource will only be returned if the resource has the appropriate response field. For example, MutateCampaignResult.campaign.",
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ]
        }
      },
      "type": "object",
      "description": "Request message for RecommendationSubscriptionService.MutateRecommendationSubscription"
    },
    "GoogleAdsGoogleadsV23Resources_AccessibleBiddingStrategy_MaximizeConversionValue": {
      "type": "object",
      "description": "An automated bidding strategy to help get the most conversion value for your campaigns while spending your budget.",
      "id": "GoogleAdsGoogleadsV23Resources_AccessibleBiddingStrategy_MaximizeConversionValue",
      "properties": {
        "targetRoas": {
          "type": "number",
          "readOnly": true,
          "format": "double",
          "description": "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."
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__InsuranceVerificationArtifact": {
      "properties": {
        "amountMicros": {
          "type": "string",
          "readOnly": true,
          "format": "int64",
          "description": "Output only. Insurance amount. This is measured in \"micros\" of the currency mentioned in the insurance document."
        },
        "expirationDateTime": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The timestamp when this insurance expires. The format is \"YYYY-MM-DD HH:MM:SS\" in the Google Ads account's timezone. Examples: \"2018-03-05 09:15:00\" or \"2018-02-01 14:34:30\""
        },
        "rejectionReason": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Business name doesn't match business name for the Local Services Ad.",
            "Insurance amount doesn't meet requirement listed in the legal summaries documentation for that geographic + category ID combination.",
            "Insurance document is expired.",
            "Insurance document is missing a signature.",
            "Insurance document is missing a policy number.",
            "Commercial General Liability(CGL) box is not marked in the insurance document.",
            "Insurance document is in an editable format.",
            "Insurance document does not cover insurance for a particular category.",
            "Insurance document is missing an expiration date.",
            "Insurance document is poor quality - blurry images, illegible, etc...",
            "Insurance document is suspected of being edited.",
            "Insurance document not accepted. For example, documents of insurance proposals, but missing coverages are not accepted.",
            "Insurance document is not final.",
            "Insurance document has another flaw not listed explicitly."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BUSINESS_NAME_MISMATCH",
            "INSURANCE_AMOUNT_INSUFFICIENT",
            "EXPIRED",
            "NO_SIGNATURE",
            "NO_POLICY_NUMBER",
            "NO_COMMERCIAL_GENERAL_LIABILITY",
            "EDITABLE_FORMAT",
            "CATEGORY_MISMATCH",
            "MISSING_EXPIRATION_DATE",
            "POOR_QUALITY",
            "POTENTIALLY_EDITED",
            "WRONG_DOCUMENT_TYPE",
            "NON_FINAL",
            "OTHER"
          ],
          "readOnly": true,
          "description": "Output only. Insurance document's rejection reason."
        },
        "insuranceDocumentReadonly": {
          "description": "Output only. The readonly field containing the information for an uploaded insurance document.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV23Common__LocalServicesDocumentReadOnly"
        }
      },
      "type": "object",
      "description": "A proto holding information specific to a local services insurance.",
      "id": "GoogleAdsGoogleadsV23Resources__InsuranceVerificationArtifact"
    },
    "GoogleAdsGoogleadsV23Common__ActivityRatingInfo": {
      "properties": {
        "value": {
          "format": "int64",
          "type": "string",
          "description": "Long value of the activity rating."
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__ActivityRatingInfo",
      "type": "object",
      "description": "Rating of the activity as a number 1 to 5, where 5 is the best."
    },
    "GoogleAdsGoogleadsV23Common__ProductItemIdInfo": {
      "id": "GoogleAdsGoogleadsV23Common__ProductItemIdInfo",
      "type": "object",
      "description": "Item id of a product offer.",
      "properties": {
        "value": {
          "description": "Value of the id.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__MaximizeConversionValue": {
      "type": "object",
      "properties": {
        "targetRoasTolerancePercentMillis": {
          "type": "string",
          "format": "int64",
          "description": "The percent of ROAS(return on advertising spend) degradation tolerance allowed to increase traffic diversity and conversion volume, specified in millis (for example, 10,000 = 10%). A value of 10,000 means that the advertiser can expect ROAS degradation of up to 10% of the specified target ROAS."
        },
        "targetRoas": {
          "format": "double",
          "type": "number",
          "description": "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."
        },
        "cpcBidCeilingMicros": {
          "type": "string",
          "description": "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.",
          "format": "int64"
        },
        "cpcBidFloorMicros": {
          "type": "string",
          "format": "int64",
          "description": "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."
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__MaximizeConversionValue",
      "description": "An automated bidding strategy to help get the most conversion value for your campaigns while spending your budget."
    },
    "GoogleAdsGoogleadsV23Services__SuggestTravelAssetsResponse": {
      "id": "GoogleAdsGoogleadsV23Services__SuggestTravelAssetsResponse",
      "type": "object",
      "properties": {
        "hotelAssetSuggestions": {
          "type": "array",
          "description": "Asset suggestions for each place ID submitted in the request.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__HotelAssetSuggestion"
          }
        }
      },
      "description": "Response message for TravelAssetSuggestionService.SuggestTravelAssets."
    },
    "GoogleAdsGoogleadsV23Resources_RecommendationKeywordRecommendation_SearchTerm": {
      "type": "object",
      "properties": {
        "estimatedWeeklySearchCount": {
          "description": "Output only. Estimated number of historical weekly searches for this search term.",
          "format": "int64",
          "type": "string",
          "readOnly": true
        },
        "text": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The text of the search term."
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources_RecommendationKeywordRecommendation_SearchTerm",
      "description": "Information about a search term as related to a keyword recommendation."
    },
    "GoogleAdsGoogleadsV23Common__ParentalStatusInfo": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__ParentalStatusInfo",
      "properties": {
        "type": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PARENT",
            "NOT_A_PARENT",
            "UNDETERMINED"
          ],
          "description": "Type of the parental status.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Parent.",
            "Not a parent.",
            "Undetermined parental status."
          ],
          "type": "string"
        }
      },
      "description": "A parental status criterion."
    },
    "GoogleAdsGoogleadsV23Services__MutateCampaignLabelsResponse": {
      "description": "Response message for a campaign labels mutate.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateCampaignLabelsResponse",
      "properties": {
        "results": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateCampaignLabelResult"
          },
          "description": "All results for the mutate.",
          "type": "array"
        },
        "partialFailureError": {
          "$ref": "GoogleRpc__Status",
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error."
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__AdGroupAdAssetAutomationSetting": {
      "properties": {
        "assetAutomationType": {
          "enumDescriptions": [
            "Not specified.",
            "Used as a return value only. Represents value unknown in this version.",
            "Text asset automation includes headlines and descriptions. By default, advertisers are opted-in for Performance Max and opted-out for Search.",
            "Converts horizontal video assets to vertical orientation using content-aware technology. By default, advertisers are opted in for DemandGenVideoResponsiveAd.",
            "Shortens video assets to better capture user attention using content-aware technology. By default, advertisers are opted in for DemandGenVideoResponsiveAd.",
            "Generates a preview of the landing page shown in the engagement panel. By using this feature, you confirm that you own all legal rights to the images on the landing page used by this account (or you have permission to share the images with Google). You hereby instruct Google to publish these images on your behalf for advertising or other commercial purposes.",
            "Generates video enhancements (vertical and shorter videos) for PMax campaigns. Opted in by default.",
            "Generates image enhancements (AutoCrop and AutoEnhance). Opted in by default for pmax.",
            "Generates image extraction. It defaults to account level Dynamic Image Extension control value.",
            "Adds design elements and embeds text assets into image assets to create images with different aspect ratios. By default, advertisers are opted in for DemandGenMultiAssetAd.",
            "Controls automation for text assets related to Final URL expansion. This includes automatically creating dynamic landing pages from the final URL and generating text assets from the content of those landing pages. This setting is turned OFF by default for Search campaigns, but it is turned ON by default for Performance Max campaigns.",
            "Generates videos using other Assets as input, such as images and text. By default, advertisers are opted in for DemandGenMultiAssetAd."
          ],
          "description": "The asset automation type that this setting configures.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "TEXT_ASSET_AUTOMATION",
            "GENERATE_VERTICAL_YOUTUBE_VIDEOS",
            "GENERATE_SHORTER_YOUTUBE_VIDEOS",
            "GENERATE_LANDING_PAGE_PREVIEW",
            "GENERATE_ENHANCED_YOUTUBE_VIDEOS",
            "GENERATE_IMAGE_ENHANCEMENT",
            "GENERATE_IMAGE_EXTRACTION",
            "GENERATE_DESIGN_VERSIONS_FOR_IMAGES",
            "FINAL_URL_EXPANSION_TEXT_ASSET_AUTOMATION",
            "GENERATE_VIDEOS_FROM_OTHER_ASSETS"
          ],
          "type": "string"
        },
        "assetAutomationStatus": {
          "description": "The opt-in/out status for the specified asset automation type.",
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "OPTED_IN",
            "OPTED_OUT"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used as a return value only. Represents value unknown in this version.",
            "Opted-in will enable generating and serving an asset automation type.",
            "Opted-out will stop generating and serving an asset automation type."
          ]
        }
      },
      "description": "Asset automation setting for an AdGroupAd.",
      "id": "GoogleAdsGoogleadsV23Resources__AdGroupAdAssetAutomationSetting",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateExperimentArmResult": {
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        },
        "experimentArm": {
          "description": "The mutated experiment arm with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV23Resources__ExperimentArm"
        }
      },
      "type": "object",
      "description": "The result for the experiment arm mutate.",
      "id": "GoogleAdsGoogleadsV23Services__MutateExperimentArmResult"
    },
    "GoogleAdsGoogleadsV23Resources_Recommendation_LeadFormAssetRecommendation": {
      "type": "object",
      "properties": {},
      "id": "GoogleAdsGoogleadsV23Resources_Recommendation_LeadFormAssetRecommendation",
      "description": "The lead form asset recommendation."
    },
    "GoogleAdsGoogleadsV23Services__MutateCustomerClientLinkResponse": {
      "description": "Response message for a CustomerClientLink mutate.",
      "properties": {
        "result": {
          "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomerClientLinkResult",
          "description": "A result that identifies the resource affected by the mutate request."
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateCustomerClientLinkResponse"
    },
    "GoogleAdsGoogleadsV23Resources__YoutubeVideoIdentifier": {
      "description": "The identifier for YouTube video",
      "id": "GoogleAdsGoogleadsV23Resources__YoutubeVideoIdentifier",
      "properties": {
        "channelId": {
          "description": "Immutable. The ID of the hosting channel of the video. This is a string value with “UC” prefix. For example, \"UCK8sQmJBp8GCxrOtXWBpyEA\".",
          "type": "string"
        },
        "videoId": {
          "description": "Immutable. The ID of the video associated with the video link. This is the 11 character string value used in the YouTube video URL. For example, video ID is jV1vkHv4zq8 from the YouTube video URL \"https://www.youtube.com/watch?v=jV1vkHv4zq8&t=2s\".",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateCampaignGroupsResponse": {
      "id": "GoogleAdsGoogleadsV23Services__MutateCampaignGroupsResponse",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "type": "array",
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateCampaignGroupResult"
          }
        }
      },
      "description": "Response message for campaign group mutate.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__UserIdentifier": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__UserIdentifier",
      "description": "User identifying information.",
      "properties": {
        "hashedPhoneNumber": {
          "type": "string",
          "description": "Hashed phone number using SHA-256 hash function after normalization (E164 standard). Accepted for Customer Match, Store Sales, ConversionUploadService, and ConversionAdjustmentUploadService."
        },
        "hashedEmail": {
          "type": "string",
          "description": "Hashed email address using SHA-256 hash function after normalization. Accepted for Customer Match, Store Sales, ConversionUploadService, and ConversionAdjustmentUploadService."
        },
        "addressInfo": {
          "description": "Address information. Accepted only for Customer Match, Store Sales, and ConversionAdjustmentUploadService.",
          "$ref": "GoogleAdsGoogleadsV23Common__OfflineUserAddressInfo"
        },
        "userIdentifierSource": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version",
            "Indicates that the user identifier was provided by the first party (advertiser).",
            "Indicates that the user identifier was provided by the third party (partner)."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "FIRST_PARTY",
            "THIRD_PARTY"
          ],
          "description": "Source of the user identifier when the upload is from Store Sales, ConversionUploadService, or ConversionAdjustmentUploadService."
        },
        "mobileId": {
          "description": "Mobile device ID (advertising ID/IDFA). Accepted only for Customer Match.",
          "type": "string"
        },
        "thirdPartyUserId": {
          "description": "Advertiser-assigned user ID for Customer Match upload, or third-party-assigned user ID for Store Sales. Accepted only for Customer Match and Store Sales.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources_Recommendation_MerchantInfo": {
      "description": "The Merchant Center account details.",
      "id": "GoogleAdsGoogleadsV23Resources_Recommendation_MerchantInfo",
      "properties": {
        "id": {
          "description": "Output only. The Merchant Center account ID.",
          "type": "string",
          "readOnly": true,
          "format": "int64"
        },
        "name": {
          "readOnly": true,
          "description": "Output only. The name of the Merchant Center account.",
          "type": "string"
        },
        "multiClient": {
          "type": "boolean",
          "description": "Output only. Whether the Merchant Center account is a Multi-Client account (MCA).",
          "readOnly": true
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__RuleBasedUserListInfo": {
      "id": "GoogleAdsGoogleadsV23Common__RuleBasedUserListInfo",
      "type": "object",
      "properties": {
        "flexibleRuleUserList": {
          "$ref": "GoogleAdsGoogleadsV23Common__FlexibleRuleUserListInfo",
          "description": "Flexible rule representation of visitors with one or multiple actions. The flexible user list is defined by two lists of operands – inclusive_operands and exclusive_operands; each operand represents a set of users based on actions they took in a given timeframe. These lists of operands are combined with the AND_NOT operator, so that users represented by the inclusive operands are included in the user list, minus the users represented by the exclusive operands."
        },
        "prepopulationStatus": {
          "description": "The status of pre-population. The field is default to NONE if not set which means the previous users will not be considered. If set to REQUESTED, past site visitors or app users who match the list definition will be included in the list (works on the Display Network only). This will only add past users from within the last 30 days, depending on the list's membership duration and the date when the remarketing tag is added. The status will be updated to FINISHED once request is processed, or FAILED if the request fails.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Prepopoulation is being requested.",
            "Prepopulation is finished.",
            "Prepopulation failed."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "REQUESTED",
            "FINISHED",
            "FAILED"
          ]
        }
      },
      "description": "Representation of a userlist that is generated by a rule."
    },
    "GoogleAdsGoogleadsV23Common__UserData": {
      "properties": {
        "userIdentifiers": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__UserIdentifier"
          },
          "description": "User identification info. Required.",
          "type": "array"
        },
        "userAttribute": {
          "description": "Additional attributes associated with the user. Required when updating customer match attributes. These have an expiration of 540 days.",
          "$ref": "GoogleAdsGoogleadsV23Common__UserAttribute"
        },
        "transactionAttribute": {
          "description": "Additional transactions/attributes associated with the user. Required when updating store sales data.",
          "$ref": "GoogleAdsGoogleadsV23Common__TransactionAttribute"
        },
        "consent": {
          "description": "The consent setting for the user. If set, will override the job level consent for this user.",
          "$ref": "GoogleAdsGoogleadsV23Common__Consent"
        }
      },
      "description": "User data holding user identifiers and attributes.",
      "id": "GoogleAdsGoogleadsV23Common__UserData",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__CampaignCriterion": {
      "id": "GoogleAdsGoogleadsV23Resources__CampaignCriterion",
      "properties": {
        "displayName": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The display name of the criterion. This field is ignored for mutates."
        },
        "videoLineup": {
          "$ref": "GoogleAdsGoogleadsV23Common__VideoLineupInfo",
          "description": "Immutable. Video lineup criterion."
        },
        "parentalStatus": {
          "description": "Immutable. Parental status.",
          "$ref": "GoogleAdsGoogleadsV23Common__ParentalStatusInfo"
        },
        "resourceName": {
          "description": "Immutable. The resource name of the campaign criterion. Campaign criterion resource names have the form: `customers/{customer_id}/campaignCriteria/{campaign_id}~{criterion_id}`",
          "type": "string"
        },
        "operatingSystemVersion": {
          "$ref": "GoogleAdsGoogleadsV23Common__OperatingSystemVersionInfo",
          "description": "Immutable. Operating system version."
        },
        "placement": {
          "description": "Immutable. Placement.",
          "$ref": "GoogleAdsGoogleadsV23Common__PlacementInfo"
        },
        "negative": {
          "type": "boolean",
          "description": "Immutable. Whether to target (`false`) or exclude (`true`) the criterion."
        },
        "language": {
          "$ref": "GoogleAdsGoogleadsV23Common__LanguageInfo",
          "description": "Immutable. Language."
        },
        "gender": {
          "description": "Immutable. Gender.",
          "$ref": "GoogleAdsGoogleadsV23Common__GenderInfo"
        },
        "ageRange": {
          "$ref": "GoogleAdsGoogleadsV23Common__AgeRangeInfo",
          "description": "Immutable. Age range."
        },
        "bidModifier": {
          "description": "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.",
          "format": "float",
          "type": "number"
        },
        "topic": {
          "description": "Immutable. Topic.",
          "$ref": "GoogleAdsGoogleadsV23Common__TopicInfo"
        },
        "combinedAudience": {
          "description": "Immutable. Combined Audience.",
          "$ref": "GoogleAdsGoogleadsV23Common__CombinedAudienceInfo"
        },
        "ipBlock": {
          "description": "Immutable. IpBlock. You can exclude up to 500 IP addresses per campaign.",
          "$ref": "GoogleAdsGoogleadsV23Common__IpBlockInfo"
        },
        "adSchedule": {
          "$ref": "GoogleAdsGoogleadsV23Common__AdScheduleInfo",
          "description": "Immutable. Ad Schedule."
        },
        "lifeEvent": {
          "$ref": "GoogleAdsGoogleadsV23Common__LifeEventInfo",
          "description": "Immutable. Life event campaign criterion."
        },
        "customAffinity": {
          "$ref": "GoogleAdsGoogleadsV23Common__CustomAffinityInfo",
          "description": "Immutable. Custom Affinity."
        },
        "keyword": {
          "description": "Immutable. Keyword.",
          "$ref": "GoogleAdsGoogleadsV23Common__KeywordInfo"
        },
        "webpageList": {
          "description": "Immutable. Webpage list. This criterion is not publicly available.",
          "$ref": "GoogleAdsGoogleadsV23Common__WebpageListInfo"
        },
        "campaign": {
          "description": "Immutable. The campaign to which the criterion belongs.",
          "type": "string"
        },
        "mobileAppCategory": {
          "$ref": "GoogleAdsGoogleadsV23Common__MobileAppCategoryInfo",
          "description": "Immutable. Mobile app category."
        },
        "keywordTheme": {
          "description": "Immutable. Smart Campaign Keyword Theme.",
          "$ref": "GoogleAdsGoogleadsV23Common__KeywordThemeInfo"
        },
        "userList": {
          "description": "Immutable. User List.",
          "$ref": "GoogleAdsGoogleadsV23Common__UserListInfo"
        },
        "carrier": {
          "$ref": "GoogleAdsGoogleadsV23Common__CarrierInfo",
          "description": "Immutable. Carrier."
        },
        "webpage": {
          "$ref": "GoogleAdsGoogleadsV23Common__WebpageInfo",
          "description": "Immutable. Webpage."
        },
        "extendedDemographic": {
          "description": "Immutable. Extended demographic criterion.",
          "$ref": "GoogleAdsGoogleadsV23Common__ExtendedDemographicInfo"
        },
        "incomeRange": {
          "description": "Immutable. Income range.",
          "$ref": "GoogleAdsGoogleadsV23Common__IncomeRangeInfo"
        },
        "mobileApplication": {
          "description": "Immutable. Mobile application.",
          "$ref": "GoogleAdsGoogleadsV23Common__MobileApplicationInfo"
        },
        "localServiceId": {
          "$ref": "GoogleAdsGoogleadsV23Common__LocalServiceIdInfo",
          "description": "Immutable. GLS service campaign criterion."
        },
        "type": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "KEYWORD",
            "PLACEMENT",
            "MOBILE_APP_CATEGORY",
            "MOBILE_APPLICATION",
            "DEVICE",
            "LOCATION",
            "LISTING_GROUP",
            "AD_SCHEDULE",
            "AGE_RANGE",
            "GENDER",
            "INCOME_RANGE",
            "PARENTAL_STATUS",
            "YOUTUBE_VIDEO",
            "YOUTUBE_CHANNEL",
            "USER_LIST",
            "PROXIMITY",
            "TOPIC",
            "LISTING_SCOPE",
            "LANGUAGE",
            "IP_BLOCK",
            "CONTENT_LABEL",
            "CARRIER",
            "USER_INTEREST",
            "WEBPAGE",
            "OPERATING_SYSTEM_VERSION",
            "APP_PAYMENT_MODEL",
            "MOBILE_DEVICE",
            "CUSTOM_AFFINITY",
            "CUSTOM_INTENT",
            "LOCATION_GROUP",
            "CUSTOM_AUDIENCE",
            "COMBINED_AUDIENCE",
            "KEYWORD_THEME",
            "AUDIENCE",
            "NEGATIVE_KEYWORD_LIST",
            "LOCAL_SERVICE_ID",
            "SEARCH_THEME",
            "BRAND",
            "BRAND_LIST",
            "LIFE_EVENT",
            "WEBPAGE_LIST",
            "VIDEO_LINEUP",
            "PLACEMENT_LIST",
            "VERTICAL_ADS_ITEM_GROUP_RULE_LIST",
            "VERTICAL_ADS_ITEM_GROUP_RULE"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Keyword, for example, 'mars cruise'.",
            "Placement, also known as Website, for example, 'www.flowers4sale.com'",
            "Mobile application categories to target.",
            "Mobile applications to target.",
            "Devices to target.",
            "Locations to target.",
            "Listing groups to target.",
            "Ad Schedule.",
            "Age range.",
            "Gender.",
            "Income Range.",
            "Parental status.",
            "YouTube Video.",
            "YouTube Channel.",
            "User list.",
            "Proximity.",
            "A topic target on the display network (for example, \"Pets & Animals\").",
            "Listing scope to target.",
            "Language.",
            "IpBlock.",
            "Content Label for category exclusion.",
            "Carrier.",
            "A category the user is interested in.",
            "Webpage criterion for dynamic search ads.",
            "Operating system version.",
            "App payment model.",
            "Mobile device.",
            "Custom affinity.",
            "Custom intent.",
            "Location group.",
            "Custom audience",
            "Combined audience",
            "Smart Campaign keyword theme",
            "Audience",
            "Negative Keyword List",
            "Local Services Ads Service ID.",
            "Search Theme.",
            "Brand",
            "Brand List",
            "Life Event",
            "Webpage List",
            "Video lineup",
            "Placement List",
            "A list of rules for item groups in Vertical Ads.",
            "A rule for an item group in Vertical Ads."
          ],
          "readOnly": true,
          "description": "Output only. The type of the criterion."
        },
        "customAudience": {
          "description": "Immutable. Custom Audience",
          "$ref": "GoogleAdsGoogleadsV23Common__CustomAudienceInfo"
        },
        "mobileDevice": {
          "description": "Immutable. Mobile Device.",
          "$ref": "GoogleAdsGoogleadsV23Common__MobileDeviceInfo"
        },
        "youtubeChannel": {
          "$ref": "GoogleAdsGoogleadsV23Common__YouTubeChannelInfo",
          "description": "Immutable. YouTube Channel."
        },
        "userInterest": {
          "$ref": "GoogleAdsGoogleadsV23Common__UserInterestInfo",
          "description": "Immutable. User Interest."
        },
        "contentLabel": {
          "$ref": "GoogleAdsGoogleadsV23Common__ContentLabelInfo",
          "description": "Immutable. ContentLabel."
        },
        "criterionId": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The ID of the criterion. This field is ignored during mutate.",
          "format": "int64"
        },
        "brandList": {
          "description": "Immutable. Brand list campaign criterion.",
          "$ref": "GoogleAdsGoogleadsV23Common__BrandListInfo"
        },
        "status": {
          "type": "string",
          "description": "The status of the criterion.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "PAUSED",
            "REMOVED"
          ],
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The campaign criterion is enabled.",
            "The campaign criterion is paused.",
            "The campaign criterion is removed."
          ]
        },
        "proximity": {
          "description": "Immutable. Proximity.",
          "$ref": "GoogleAdsGoogleadsV23Common__ProximityInfo"
        },
        "device": {
          "description": "Immutable. Device.",
          "$ref": "GoogleAdsGoogleadsV23Common__DeviceInfo"
        },
        "listingScope": {
          "description": "Immutable. Listing scope.",
          "$ref": "GoogleAdsGoogleadsV23Common__ListingScopeInfo"
        },
        "locationGroup": {
          "description": "Immutable. Location Group",
          "$ref": "GoogleAdsGoogleadsV23Common__LocationGroupInfo"
        },
        "youtubeVideo": {
          "description": "Immutable. YouTube Video.",
          "$ref": "GoogleAdsGoogleadsV23Common__YouTubeVideoInfo"
        },
        "location": {
          "$ref": "GoogleAdsGoogleadsV23Common__LocationInfo",
          "description": "Immutable. Location."
        }
      },
      "type": "object",
      "description": "A campaign criterion."
    },
    "GoogleAdsGoogleadsV23Common_PolicyTopicEvidence_DestinationTextList": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common_PolicyTopicEvidence_DestinationTextList",
      "description": "A list of strings found in a destination page that caused a policy finding.",
      "properties": {
        "destinationTexts": {
          "type": "array",
          "description": "List of text found in the resource's destination page.",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__YouTubeAudioAdInfo": {
      "description": "Representation of YouTube Audio ad format.",
      "id": "GoogleAdsGoogleadsV23Common__YouTubeAudioAdInfo",
      "properties": {},
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__ManagedPlacementView": {
      "type": "object",
      "properties": {
        "resourceName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the Managed Placement view. Managed placement view resource names have the form: `customers/{customer_id}/managedPlacementViews/{ad_group_id}~{criterion_id}`"
        }
      },
      "description": "A managed placement view.",
      "id": "GoogleAdsGoogleadsV23Resources__ManagedPlacementView"
    },
    "GoogleAdsGoogleadsV23Resources__CustomerLabel": {
      "properties": {
        "resourceName": {
          "description": "Immutable. Name of the resource. Customer label resource names have the form: `customers/{customer_id}/customerLabels/{label_id}`",
          "type": "string"
        },
        "customer": {
          "type": "string",
          "description": "Output only. The resource name of the customer to which the label is attached. Read only.",
          "readOnly": true
        },
        "label": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The resource name of the label assigned to the customer. Note: the Customer ID portion of the label resource name is not validated when creating a new CustomerLabel."
        }
      },
      "type": "object",
      "description": "Represents a relationship between a customer and a label. This customer may not have access to all the labels attached to it. Additional CustomerLabels may be returned by increasing permissions with login-customer-id.",
      "id": "GoogleAdsGoogleadsV23Resources__CustomerLabel"
    },
    "GoogleAdsGoogleadsV23Common__KeywordPlanAggregateMetricResults": {
      "properties": {
        "deviceSearches": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__KeywordPlanDeviceSearches"
          },
          "description": "The aggregate searches for all the keywords segmented by device for the specified time. Supports the following device types: MOBILE, TABLET, DESKTOP. This is only set when KeywordPlanAggregateMetricTypeEnum.DEVICE is set in the KeywordPlanAggregateMetrics field in the request.",
          "type": "array"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__KeywordPlanAggregateMetricResults",
      "description": "The aggregated historical metrics for keyword plan keywords."
    },
    "GoogleAdsGoogleadsV23Resources_Recommendation_RefreshCustomerMatchListRecommendation": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources_Recommendation_RefreshCustomerMatchListRecommendation",
      "properties": {
        "daysSinceLastRefresh": {
          "readOnly": true,
          "description": "Output only. Days since last refresh.",
          "type": "string",
          "format": "int64"
        },
        "userListName": {
          "description": "Output only. The name of the list.",
          "readOnly": true,
          "type": "string"
        },
        "userListId": {
          "format": "int64",
          "readOnly": true,
          "description": "Output only. The user list ID.",
          "type": "string"
        },
        "topSpendingAccount": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_AccountInfo"
          },
          "description": "Output only. The top spending account.",
          "readOnly": true,
          "type": "array"
        },
        "ownerAccount": {
          "description": "Output only. The owner account. This is the account that should update the customer list.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_AccountInfo"
        },
        "targetingAccountsCount": {
          "type": "string",
          "description": "Output only. User lists can be shared with other accounts by the owner. targeting_accounts_count is the number of those accounts that can use it for targeting.",
          "readOnly": true,
          "format": "int64"
        }
      },
      "description": "The recommendation to update a customer list that hasn't been updated in the last 90 days. The customer receiving the recommendation is not necessarily the owner account. The owner account should update the customer list."
    },
    "GoogleAdsGoogleadsV23Common__UnknownListingDimensionInfo": {
      "description": "Unknown listing dimension.",
      "properties": {},
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__UnknownListingDimensionInfo"
    },
    "GoogleAdsGoogleadsV23Services__MutateCustomizerAttributesResponse": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateCustomizerAttributesResponse",
      "description": "Response message for a customizer attribute mutate.",
      "properties": {
        "results": {
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomizerAttributeResult"
          },
          "type": "array"
        },
        "partialFailureError": {
          "$ref": "GoogleRpc__Status",
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error."
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources_Campaign_BrandGuidelines": {
      "properties": {
        "predefinedFontFamily": {
          "type": "string",
          "description": "The brand's font family. Must be one of the following Google Fonts (case sensitive): Open Sans, Roboto, Montserrat, Poppins, Lato, Oswald, Playfair Display, Roboto Slab."
        },
        "mainColor": {
          "description": "The main brand color, entered as a hex code (e.g., #00ff00). You must provide the main_color if you provide an accent_color.",
          "type": "string"
        },
        "accentColor": {
          "description": "The accent brand color, entered as a hex code (e.g., #00ff00). You must provide the accent_color if you provide a main_color.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources_Campaign_BrandGuidelines",
      "description": "Settings that control the visual appearance of your brand in a campaign's automatically generated assets and formats. Only applicable to Performance Max campaigns.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__KeywordPlanDeviceSearches": {
      "description": "The total searches for the device type during the specified time period.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__KeywordPlanDeviceSearches",
      "properties": {
        "device": {
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Mobile devices with full browsers.",
            "Tablets with full browsers.",
            "Computers.",
            "Smart TVs and game consoles.",
            "Other device types."
          ],
          "description": "The device type.",
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MOBILE",
            "TABLET",
            "DESKTOP",
            "CONNECTED_TV",
            "OTHER"
          ]
        },
        "searchCount": {
          "type": "string",
          "description": "The total searches for the device.",
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateAdGroupBidModifiersResponse": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateAdGroupBidModifiersResponse",
      "description": "Response message for ad group bid modifiers mutate.",
      "properties": {
        "partialFailureError": {
          "$ref": "GoogleRpc__Status",
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error."
        },
        "results": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateAdGroupBidModifierResult"
          },
          "description": "All results for the mutate.",
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateCampaignAssetSetsRequest": {
      "type": "object",
      "description": "Request message for CampaignAssetSetService.MutateCampaignAssetSets.",
      "id": "GoogleAdsGoogleadsV23Services__MutateCampaignAssetSetsRequest",
      "properties": {
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "operations": {
          "type": "array",
          "description": "Required. The list of operations to perform on individual campaign asset sets.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__CampaignAssetSetOperation"
          }
        },
        "responseContentType": {
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources_AccessibleBiddingStrategy_TargetSpend": {
      "description": "An automated bid strategy that sets your bids to help get as many clicks as possible within your budget.",
      "properties": {
        "cpcBidCeilingMicros": {
          "description": "Output only. Maximum bid limit that can be set by the bid strategy. The limit applies to all keywords managed by the strategy.",
          "readOnly": true,
          "type": "string",
          "format": "int64"
        },
        "targetSpendMicros": {
          "readOnly": true,
          "type": "string",
          "description": "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.",
          "format": "int64",
          "deprecated": true
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources_AccessibleBiddingStrategy_TargetSpend",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__TargetImpressionShareSimulationPoint": {
      "properties": {
        "requiredCpcBidCeilingMicros": {
          "description": "Projected required daily cpc bid ceiling that the advertiser must set to realize this simulation, in micros of the advertiser currency.",
          "type": "string",
          "format": "int64"
        },
        "biddableConversions": {
          "format": "double",
          "type": "number",
          "description": "Projected number of biddable conversions."
        },
        "topSlotImpressions": {
          "type": "string",
          "description": "Projected number of top slot impressions. Only search advertising channel type supports this field.",
          "format": "int64"
        },
        "costMicros": {
          "format": "int64",
          "description": "Projected cost in micros.",
          "type": "string"
        },
        "clicks": {
          "format": "int64",
          "description": "Projected number of clicks.",
          "type": "string"
        },
        "requiredBudgetAmountMicros": {
          "description": "Projected required daily budget that the advertiser must set in order to receive the estimated traffic, in micros of advertiser currency.",
          "type": "string",
          "format": "int64"
        },
        "biddableConversionsValue": {
          "format": "double",
          "type": "number",
          "description": "Projected total value of biddable conversions."
        },
        "absoluteTopImpressions": {
          "description": "Projected number of absolute top impressions. Only search advertising channel type supports this field.",
          "format": "int64",
          "type": "string"
        },
        "impressions": {
          "format": "int64",
          "type": "string",
          "description": "Projected number of impressions."
        },
        "targetImpressionShareMicros": {
          "type": "string",
          "description": "The simulated target impression share value (in micros) upon which projected metrics are based. For example, 10% impression share, which is equal to 0.1, is stored as 100_000. This value is validated and will not exceed 1M (100%).",
          "format": "int64"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__TargetImpressionShareSimulationPoint",
      "description": "Projected metrics for a specific target impression share value.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__ListPlannableLocationsRequest": {
      "description": "Request message for ReachPlanService.ListPlannableLocations.",
      "id": "GoogleAdsGoogleadsV23Services__ListPlannableLocationsRequest",
      "properties": {
        "reachApplicationInfo": {
          "description": "Optional. Additional information on the application issuing the request.",
          "$ref": "GoogleAdsGoogleadsV23Common__AdditionalApplicationInfo"
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateSharedSetsRequest": {
      "id": "GoogleAdsGoogleadsV23Services__MutateSharedSetsRequest",
      "properties": {
        "operations": {
          "description": "Required. The list of operations to perform on individual shared sets.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__SharedSetOperation"
          }
        },
        "responseContentType": {
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "type": "string"
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        }
      },
      "description": "Request message for SharedSetService.MutateSharedSets.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__BillingSetup": {
      "id": "GoogleAdsGoogleadsV23Resources__BillingSetup",
      "type": "object",
      "description": "A billing setup, which associates a payments account and an advertiser. A billing setup is specific to one advertiser.",
      "properties": {
        "id": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The ID of the billing setup.",
          "format": "int64"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the billing setup. BillingSetup resource names have the form: `customers/{customer_id}/billingSetups/{billing_setup_id}`"
        },
        "endTimeType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NOW",
            "FOREVER"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "As soon as possible.",
            "An infinite point in the future."
          ],
          "type": "string",
          "description": "Output only. The end time as a type. The only possible value is FOREVER.",
          "readOnly": true
        },
        "startDateTime": {
          "type": "string",
          "description": "Immutable. The start date time in yyyy-MM-dd or yyyy-MM-dd HH:mm:ss format. Only a future time is allowed."
        },
        "endDateTime": {
          "description": "Output only. The end date time in yyyy-MM-dd or yyyy-MM-dd HH:mm:ss format.",
          "readOnly": true,
          "type": "string"
        },
        "startTimeType": {
          "description": "Immutable. The start time as a type. Only NOW is allowed.",
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NOW",
            "FOREVER"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "As soon as possible.",
            "An infinite point in the future."
          ]
        },
        "status": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PENDING",
            "APPROVED_HELD",
            "APPROVED",
            "CANCELLED"
          ],
          "description": "Output only. The status of the billing setup.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The billing setup is pending approval.",
            "The billing setup has been approved but the corresponding first budget has not. This can only occur for billing setups configured for monthly invoicing.",
            "The billing setup has been approved.",
            "The billing setup was cancelled by the user prior to approval."
          ],
          "type": "string"
        },
        "paymentsAccount": {
          "type": "string",
          "description": "Immutable. The resource name of the payments account associated with this billing setup. Payments resource names have the form: `customers/{customer_id}/paymentsAccounts/{payments_account_id}` When setting up billing, this is used to signup with an existing payments account (and then payments_account_info should not be set). When getting a billing setup, this and payments_account_info will be populated."
        },
        "paymentsAccountInfo": {
          "description": "Immutable. The payments account information associated with this billing setup. When setting up billing, this is used to signup with a new payments account (and then payments_account should not be set). When getting a billing setup, this and payments_account will be populated.",
          "$ref": "GoogleAdsGoogleadsV23Resources_BillingSetup_PaymentsAccountInfo"
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources_RecommendationCampaignBudgetRecommendation_CampaignBudgetRecommendationOption": {
      "description": "The impact estimates for a given budget amount.",
      "properties": {
        "budgetAmountMicros": {
          "type": "string",
          "format": "int64",
          "readOnly": true,
          "description": "Output only. The budget amount for this option."
        },
        "impact": {
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_RecommendationImpact",
          "description": "Output only. The impact estimate if budget is changed to amount specified in this option.",
          "readOnly": true
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources_RecommendationCampaignBudgetRecommendation_CampaignBudgetRecommendationOption"
    },
    "GoogleAdsGoogleadsV23Services__AddBatchJobOperationsResponse": {
      "id": "GoogleAdsGoogleadsV23Services__AddBatchJobOperationsResponse",
      "description": "Response message for BatchJobService.AddBatchJobOperations.",
      "type": "object",
      "properties": {
        "totalOperations": {
          "description": "The total number of operations added so far for this batch job.",
          "type": "string",
          "format": "int64"
        },
        "nextSequenceToken": {
          "description": "The sequence token to be used when calling AddBatchJobOperations again if more operations need to be added. The next AddBatchJobOperations request must set the sequence_token field to the value of this field.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__HotelTextAsset": {
      "description": "A single text asset suggestion for a hotel.",
      "type": "object",
      "properties": {
        "text": {
          "type": "string",
          "description": "Asset text in requested language."
        },
        "assetFieldType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE",
            "DESCRIPTION",
            "MANDATORY_AD_TEXT",
            "MARKETING_IMAGE",
            "MEDIA_BUNDLE",
            "YOUTUBE_VIDEO",
            "BOOK_ON_GOOGLE",
            "LEAD_FORM",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "LONG_HEADLINE",
            "BUSINESS_NAME",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "VIDEO",
            "CALL_TO_ACTION_SELECTION",
            "AD_IMAGE",
            "BUSINESS_LOGO",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "TALL_PORTRAIT_MARKETING_IMAGE",
            "RELATED_YOUTUBE_VIDEOS",
            "LANDING_PAGE_PREVIEW",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is linked for use as a headline.",
            "The asset is linked for use as a description.",
            "The asset is linked for use as mandatory ad text.",
            "The asset is linked for use as a marketing image.",
            "The asset is linked for use as a media bundle.",
            "The asset is linked for use as a YouTube video.",
            "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
            "The asset is linked for use as a Lead Form extension.",
            "The asset is linked for use as a Promotion extension.",
            "The asset is linked for use as a Callout extension.",
            "The asset is linked for use as a Structured Snippet extension.",
            "The asset is linked for use as a Sitelink.",
            "The asset is linked for use as a Mobile App extension.",
            "The asset is linked for use as a Hotel Callout extension.",
            "The asset is linked for use as a Call extension.",
            "The asset is linked for use as a Price extension.",
            "The asset is linked for use as a long headline.",
            "The asset is linked for use as a business name.",
            "The asset is linked for use as a square marketing image.",
            "The asset is linked for use as a portrait marketing image.",
            "The asset is linked for use as a logo.",
            "The asset is linked for use as a landscape logo.",
            "The asset is linked for use as a non YouTube logo.",
            "The asset is linked for use to select a call-to-action.",
            "The asset is linked for use to select an ad image.",
            "The asset is linked for use as a business logo.",
            "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
            "The asset is linked for use as a Demand Gen carousel card.",
            "The asset is linked for use as a Business Message.",
            "The asset is linked for use as a tall portrait marketing image.",
            "The asset is linked for use as related YouTube videos.",
            "The asset is linked for use as a landing page preview image.",
            "The asset is linked for use as a long description.",
            "The asset is linked for use as a call-to-action."
          ],
          "description": "The text asset type. For example, HEADLINE, DESCRIPTION, etc.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__HotelTextAsset"
    },
    "GoogleAdsGoogleadsV23Common__CustomerLifecycleOptimizationValueSettings": {
      "id": "GoogleAdsGoogleadsV23Common__CustomerLifecycleOptimizationValueSettings",
      "description": "Lifecycle goal optimization value settings.",
      "type": "object",
      "properties": {
        "additionalValue": {
          "format": "double",
          "description": "Value of the lifecycle goal. For example, for retention goals, value is the incremental conversion value for lapsed customers who are not of high value.",
          "type": "number"
        },
        "additionalHighLifetimeValue": {
          "format": "double",
          "type": "number",
          "description": "High lifetime value of the lifecycle goal. For example, for customer acquisition goals, high lifetime value is the incremental conversion value for lapsed customers who are of high value. High lifetime value should be greater than value, if set."
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__YouTubeVideoInfo": {
      "id": "GoogleAdsGoogleadsV23Common__YouTubeVideoInfo",
      "description": "A YouTube Video criterion.",
      "type": "object",
      "properties": {
        "videoId": {
          "type": "string",
          "description": "YouTube video id as it appears on the YouTube watch page."
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources_Recommendation_CallAssetRecommendation": {
      "description": "The call asset recommendation.",
      "type": "object",
      "properties": {},
      "id": "GoogleAdsGoogleadsV23Resources_Recommendation_CallAssetRecommendation"
    },
    "GoogleAdsGoogleadsV23Common__DeviceInfo": {
      "id": "GoogleAdsGoogleadsV23Common__DeviceInfo",
      "description": "A device criterion.",
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MOBILE",
            "TABLET",
            "DESKTOP",
            "CONNECTED_TV",
            "OTHER"
          ],
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Mobile devices with full browsers.",
            "Tablets with full browsers.",
            "Computers.",
            "Smart TVs and game consoles.",
            "Other device types."
          ],
          "description": "Type of the device."
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__LocationSet": {
      "type": "object",
      "properties": {
        "locationOwnershipType": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Business Owner of location(legacy location extension - LE).",
            "Affiliate location(Third party location extension - ALE)."
          ],
          "description": "Required. Immutable. Location Ownership Type (owned location or affiliate location).",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BUSINESS_OWNER",
            "AFFILIATE"
          ],
          "type": "string"
        },
        "mapsLocationSet": {
          "$ref": "GoogleAdsGoogleadsV23Common__MapsLocationSet",
          "description": "Only set if locations are synced based on selected maps locations"
        },
        "businessProfileLocationSet": {
          "description": "Data used to configure a location set populated from Google Business Profile locations.",
          "$ref": "GoogleAdsGoogleadsV23Common__BusinessProfileLocationSet"
        },
        "chainLocationSet": {
          "$ref": "GoogleAdsGoogleadsV23Common__ChainSet",
          "description": "Data used to configure a location on chain set populated with the specified chains."
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__LocationSet",
      "description": "Data related to location set. One of the Google Business Profile (previously known as Google My Business) data, Chain data, and map location data need to be specified."
    },
    "GoogleAdsGoogleadsV23Common__NegativeKeywordListInfo": {
      "description": "A Negative Keyword List criterion. Represents a shared set of negative keywords that can be excluded at the account-level. Only one negative keyword list criterion can be attached per account.",
      "id": "GoogleAdsGoogleadsV23Common__NegativeKeywordListInfo",
      "type": "object",
      "properties": {
        "sharedSet": {
          "type": "string",
          "description": "The NegativeKeywordListInfo shared set resource name."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__SearchAudience": {
      "id": "GoogleAdsGoogleadsV23Services__SearchAudience",
      "properties": {
        "audienceAttributes": {
          "description": "Required. Audience attributes that describe an audience of viewers. This is used to search for topics trending for the defined audience.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AudienceInsightsAttribute"
          },
          "type": "array"
        }
      },
      "description": "A collection of audience attributes that describe an audience of viewers. This is used to search for topics trending for the defined audience.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__ConversionCustomVariable": {
      "description": "A conversion custom variable See \"About custom variables for conversions\" at https://support.google.com/google-ads/answer/9964350",
      "properties": {
        "tag": {
          "type": "string",
          "description": "Required. Immutable. The tag of the conversion custom variable. It is used in the event snippet and sent to Google Ads along with conversion pings. For conversion uploads in Google Ads API, the resource name of the conversion custom variable is used. Tag should be unique. The maximum size of tag is 100 bytes. There should not be any extra spaces before and after. Currently only lowercase letters, numbers and underscores are allowed in the tag."
        },
        "name": {
          "description": "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.",
          "type": "string"
        },
        "resourceName": {
          "description": "Immutable. The resource name of the conversion custom variable. Conversion custom variable resource names have the form: `customers/{customer_id}/conversionCustomVariables/{conversion_custom_variable_id}`",
          "type": "string"
        },
        "ownerCustomer": {
          "description": "Output only. The resource name of the customer that owns the conversion custom variable.",
          "type": "string",
          "readOnly": true
        },
        "id": {
          "format": "int64",
          "description": "Output only. The ID of the conversion custom variable.",
          "readOnly": true,
          "type": "string"
        },
        "status": {
          "description": "The status of the conversion custom variable for conversion event accrual.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "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.",
            "The conversion custom variable is enabled and will accrue stats.",
            "The conversion custom variable is paused and will not accrue stats until set to ENABLED again."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ACTIVATION_NEEDED",
            "ENABLED",
            "PAUSED"
          ],
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__ConversionCustomVariable",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__ChainFilter": {
      "description": "One chain level filter on location in a feed item set. The filtering logic among all the fields is AND.",
      "id": "GoogleAdsGoogleadsV23Common__ChainFilter",
      "type": "object",
      "properties": {
        "locationAttributes": {
          "type": "array",
          "description": "Used to filter chain locations by location attributes. Only chain locations that belong to all of the specified attribute(s) will be in the asset set. If this field is empty, it means no filtering on this field.",
          "items": {
            "type": "string"
          }
        },
        "chainId": {
          "type": "string",
          "format": "int64",
          "description": "Required. Used to filter chain locations by chain id. Only chain locations that belong to the specified chain will be in the asset set."
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__GeoTargetConstant": {
      "description": "A geo target constant.",
      "properties": {
        "countryCode": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The ISO-3166-1 alpha-2 country code that is associated with the target."
        },
        "canonicalName": {
          "readOnly": true,
          "description": "Output only. The fully qualified English name, consisting of the target's name and that of its parent and country.",
          "type": "string"
        },
        "targetType": {
          "description": "Output only. Geo target constant target type.",
          "type": "string",
          "readOnly": true
        },
        "parentGeoTarget": {
          "readOnly": true,
          "type": "string",
          "description": "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}`"
        },
        "id": {
          "format": "int64",
          "readOnly": true,
          "type": "string",
          "description": "Output only. The ID of the geo target constant."
        },
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the geo target constant. Geo target constant resource names have the form: `geoTargetConstants/{geo_target_constant_id}`",
          "readOnly": true
        },
        "status": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVAL_PLANNED"
          ],
          "description": "Output only. Geo target constant status.",
          "type": "string",
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The geo target constant is valid.",
            "The geo target constant is obsolete and will be removed."
          ]
        },
        "name": {
          "description": "Output only. Geo target constant English name.",
          "readOnly": true,
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__GeoTargetConstant"
    },
    "GoogleAdsGoogleadsV23Resources_ConversionValueRule_ValueRuleItineraryTravelStartDay": {
      "type": "object",
      "description": "The days of the week on which an itinerary's travel can start.",
      "properties": {
        "saturday": {
          "description": "The travel can start on Saturday.",
          "type": "boolean"
        },
        "sunday": {
          "description": "The travel can start on Sunday.",
          "type": "boolean"
        },
        "tuesday": {
          "description": "The travel can start on Tuesday.",
          "type": "boolean"
        },
        "thursday": {
          "description": "The travel can start on Thursday.",
          "type": "boolean"
        },
        "monday": {
          "type": "boolean",
          "description": "The travel can start on Monday."
        },
        "friday": {
          "description": "The travel can start on Friday.",
          "type": "boolean"
        },
        "wednesday": {
          "type": "boolean",
          "description": "The travel can start on Wednesday."
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources_ConversionValueRule_ValueRuleItineraryTravelStartDay"
    },
    "GoogleAdsGoogleadsV23Resources__GranularInsuranceStatus": {
      "properties": {
        "categoryId": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Service category associated with the status. For example, xcat:service_area_business_plumber. For more details see: https://developers.google.com/google-ads/api/data/codes-formats#local_services_ids"
        },
        "verificationStatus": {
          "description": "Output only. Granular insurance status, per geo + vertical.",
          "enumDescriptions": [
            "Not specified.",
            "Unknown verification status.",
            "Verification has started, but has not finished.",
            "Verification has failed.",
            "Verification has passed.",
            "Verification is not applicable.",
            "Verification is required but pending submission.",
            "Not all required verification has been submitted.",
            "Verification needs review by Local Services Ads Ops Specialist."
          ],
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NEEDS_REVIEW",
            "FAILED",
            "PASSED",
            "NOT_APPLICABLE",
            "NO_SUBMISSION",
            "PARTIAL_SUBMISSION",
            "PENDING_ESCALATION"
          ],
          "type": "string"
        },
        "geoCriterionId": {
          "type": "string",
          "format": "int64",
          "description": "Output only. Geotarget criterion ID associated with the status. Can be on country or state/province geo level, depending on requirements and location. See https://developers.google.com/google-ads/api/data/geotargets for more information.",
          "readOnly": true
        }
      },
      "description": "Insurance status at geo + vertical level.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__GranularInsuranceStatus"
    },
    "GoogleAdsGoogleadsV23Services__CallConversionResult": {
      "properties": {
        "callStartDateTime": {
          "description": "The date time at which the call occurred. The format is \"yyyy-mm-dd hh:mm:ss+|-hh:mm\", for example, \"2019-01-01 12:32:45-08:00\".",
          "type": "string"
        },
        "callerId": {
          "type": "string",
          "description": "The caller id from which this call was placed. Caller id is expected to be in E.164 format with preceding '+' sign."
        },
        "conversionDateTime": {
          "type": "string",
          "description": "The date time at which the conversion occurred. The format is \"yyyy-mm-dd hh:mm:ss+|-hh:mm\", for example, \"2019-01-01 12:32:45-08:00\"."
        },
        "conversionAction": {
          "description": "Resource name of the conversion action associated with this conversion.",
          "type": "string"
        }
      },
      "description": "Identifying information for a successfully processed CallConversionUpload.",
      "id": "GoogleAdsGoogleadsV23Services__CallConversionResult",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__ImageAsset": {
      "description": "An Image asset.",
      "type": "object",
      "properties": {
        "fullSize": {
          "$ref": "GoogleAdsGoogleadsV23Common__ImageDimension",
          "description": "Metadata for this image at its original size."
        },
        "data": {
          "description": "The raw bytes data of an image. This field is mutate only.",
          "format": "byte",
          "type": "string"
        },
        "mimeType": {
          "description": "MIME type of the image asset.",
          "enumDescriptions": [
            "The mime type has not been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "MIME type of image/jpeg.",
            "MIME type of image/gif.",
            "MIME type of image/png.",
            "MIME type of application/x-shockwave-flash.",
            "MIME type of text/html.",
            "MIME type of application/pdf.",
            "MIME type of application/msword.",
            "MIME type of application/vnd.ms-excel.",
            "MIME type of application/rtf.",
            "MIME type of audio/wav.",
            "MIME type of audio/mp3.",
            "MIME type of application/x-html5-ad-zip."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "IMAGE_JPEG",
            "IMAGE_GIF",
            "IMAGE_PNG",
            "FLASH",
            "TEXT_HTML",
            "PDF",
            "MSWORD",
            "MSEXCEL",
            "RTF",
            "AUDIO_WAV",
            "AUDIO_MP3",
            "HTML5_AD_ZIP"
          ],
          "type": "string"
        },
        "fileSize": {
          "format": "int64",
          "description": "File size of the image asset in bytes.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__ImageAsset"
    },
    "GoogleAdsGoogleadsV23Services__MutateUserListResult": {
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      },
      "type": "object",
      "description": "The result for the user list mutate.",
      "id": "GoogleAdsGoogleadsV23Services__MutateUserListResult"
    },
    "GoogleAdsGoogleadsV23Common__ResponsiveDisplayAdControlSpec": {
      "id": "GoogleAdsGoogleadsV23Common__ResponsiveDisplayAdControlSpec",
      "properties": {
        "enableAutogenVideo": {
          "description": "Whether the advertiser has opted into auto-gen video feature.",
          "type": "boolean"
        },
        "enableAssetEnhancements": {
          "type": "boolean",
          "description": "Whether the advertiser has opted into the asset enhancements feature."
        }
      },
      "description": "Specification for various creative controls for a responsive display ad.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__SmartCampaignPausedDetails": {
      "id": "GoogleAdsGoogleadsV23Services__SmartCampaignPausedDetails",
      "description": "Details related to paused Smart campaigns.",
      "type": "object",
      "properties": {
        "pausedDateTime": {
          "description": "The timestamp of when the campaign was last paused. The timestamp is in the customer’s timezone and in “yyyy-MM-dd HH:mm:ss” format.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services_GenerateCreatorInsightsRequest_SearchBrand": {
      "id": "GoogleAdsGoogleadsV23Services_GenerateCreatorInsightsRequest_SearchBrand",
      "description": "The brand used to search for top creators.",
      "type": "object",
      "properties": {
        "brandEntities": {
          "description": "Optional. One or more Knowledge Graph Entities that represent the brand for which to find insights.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AudienceInsightsAttribute"
          }
        },
        "includeRelatedTopics": {
          "description": "Optional. When true, we will expand the search to beyond just the entities specified in [brand_entities] to other related knowledge graph entities similar to the brand. The default value is `false`.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__ListAccessibleCustomersResponse": {
      "properties": {
        "resourceNames": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Resource name of customers directly accessible by the user authenticating the call."
        }
      },
      "description": "Response message for CustomerService.ListAccessibleCustomers.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__ListAccessibleCustomersResponse"
    },
    "GoogleAdsGoogleadsV23Resources__CampaignDraft": {
      "id": "GoogleAdsGoogleadsV23Resources__CampaignDraft",
      "description": "A campaign draft.",
      "type": "object",
      "properties": {
        "baseCampaign": {
          "description": "Immutable. The base campaign to which the draft belongs.",
          "type": "string"
        },
        "longRunningOperation": {
          "type": "string",
          "description": "Output only. The resource name of the long-running operation that can be used to poll for completion of draft promotion. This is only set if the draft promotion is in progress or finished.",
          "readOnly": true
        },
        "hasExperimentRunning": {
          "type": "boolean",
          "readOnly": true,
          "description": "Output only. Whether there is an experiment based on this draft currently serving."
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the campaign draft. Campaign draft resource names have the form: `customers/{customer_id}/campaignDrafts/{base_campaign_id}~{draft_id}`"
        },
        "draftId": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The ID of the draft. This field is read-only.",
          "format": "int64"
        },
        "status": {
          "readOnly": true,
          "description": "Output only. The status of the campaign draft. This field is read-only. When a new campaign draft is added, the status defaults to PROPOSED.",
          "type": "string",
          "enumDescriptions": [
            "The status has not been specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Initial state of the draft, the advertiser can start adding changes with no effect on serving.",
            "The campaign draft is removed.",
            "Advertiser requested to promote draft's changes back into the original campaign. Advertiser can poll the long running operation returned by the promote action to see the status of the promotion.",
            "The process to merge changes in the draft back to the original campaign has completed successfully.",
            "The promotion failed after it was partially applied. Promote cannot be attempted again safely, so the issue must be corrected in the original campaign."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PROPOSED",
            "REMOVED",
            "PROMOTING",
            "PROMOTED",
            "PROMOTE_FAILED"
          ]
        },
        "name": {
          "description": "The name of the campaign draft. This field is required and should not be empty when creating new campaign drafts. It must not contain any null (code point 0x0), NL line feed (code point 0xA) or carriage return (code point 0xD) characters.",
          "type": "string"
        },
        "draftCampaign": {
          "description": "Output only. Resource name of the Campaign that results from overlaying the draft changes onto the base campaign. This field is read-only.",
          "type": "string",
          "readOnly": true
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__ListingDimensionPath": {
      "properties": {
        "dimensions": {
          "type": "array",
          "description": "The complete path of dimensions through the listing group hierarchy, from the root (excluding the root itself) to this listing group.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__ListingDimensionInfo"
          }
        }
      },
      "description": "The path of dimensions defining a listing group.",
      "id": "GoogleAdsGoogleadsV23Common__ListingDimensionPath",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources_ChangeEvent_ChangedResource": {
      "properties": {
        "campaignCriterion": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CampaignCriterion",
          "description": "Output only. Set if change_resource_type == CAMPAIGN_CRITERION.",
          "readOnly": true
        },
        "assetSetAsset": {
          "description": "Output only. Set if change_resource_type == ASSET_SET_ASSET.",
          "$ref": "GoogleAdsGoogleadsV23Resources__AssetSetAsset",
          "readOnly": true
        },
        "adGroupAd": {
          "$ref": "GoogleAdsGoogleadsV23Resources__AdGroupAd",
          "description": "Output only. Set if change_resource_type == AD_GROUP_AD.",
          "readOnly": true
        },
        "campaignAssetSet": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CampaignAssetSet",
          "description": "Output only. Set if change_resource_type == CAMPAIGN_ASSET_SET.",
          "readOnly": true
        },
        "assetSet": {
          "readOnly": true,
          "description": "Output only. Set if change_resource_type == ASSET_SET.",
          "$ref": "GoogleAdsGoogleadsV23Resources__AssetSet"
        },
        "campaign": {
          "description": "Output only. Set if change_resource_type == CAMPAIGN.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV23Resources__Campaign"
        },
        "campaignAsset": {
          "description": "Output only. Set if change_resource_type == CAMPAIGN_ASSET.",
          "$ref": "GoogleAdsGoogleadsV23Resources__CampaignAsset",
          "readOnly": true
        },
        "asset": {
          "$ref": "GoogleAdsGoogleadsV23Resources__Asset",
          "readOnly": true,
          "description": "Output only. Set if change_resource_type == ASSET."
        },
        "adGroupCriterion": {
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV23Resources__AdGroupCriterion",
          "description": "Output only. Set if change_resource_type == AD_GROUP_CRITERION."
        },
        "adGroupAsset": {
          "description": "Output only. Set if change_resource_type == AD_GROUP_ASSET.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV23Resources__AdGroupAsset"
        },
        "adGroup": {
          "description": "Output only. Set if change_resource_type == AD_GROUP.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV23Resources__AdGroup"
        },
        "customerAsset": {
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV23Resources__CustomerAsset",
          "description": "Output only. Set if change_resource_type == CUSTOMER_ASSET."
        },
        "campaignBudget": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CampaignBudget",
          "description": "Output only. Set if change_resource_type == CAMPAIGN_BUDGET.",
          "readOnly": true
        },
        "adGroupBidModifier": {
          "readOnly": true,
          "description": "Output only. Set if change_resource_type == AD_GROUP_BID_MODIFIER.",
          "$ref": "GoogleAdsGoogleadsV23Resources__AdGroupBidModifier"
        },
        "ad": {
          "description": "Output only. Set if change_resource_type == AD.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV23Resources__Ad"
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources_ChangeEvent_ChangedResource",
      "type": "object",
      "description": "A wrapper proto presenting all supported resources. Only the resource of the change_resource_type will be set."
    },
    "GoogleAdsGoogleadsV23Services__ListBenchmarksProductsResponse": {
      "type": "object",
      "properties": {
        "benchmarksProducts": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__BenchmarksProductMetadata"
          },
          "description": "The list of products available for benchmarks data.",
          "type": "array"
        }
      },
      "description": "Response message for BenchmarksService.ListBenchmarksProducts.",
      "id": "GoogleAdsGoogleadsV23Services__ListBenchmarksProductsResponse"
    },
    "GoogleAdsGoogleadsV23Resources_Recommendation_TargetCpaOptInRecommendation": {
      "id": "GoogleAdsGoogleadsV23Resources_Recommendation_TargetCpaOptInRecommendation",
      "type": "object",
      "properties": {
        "recommendedTargetCpaMicros": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The recommended average CPA target. See required budget amount and impact of using this recommendation in options list.",
          "format": "int64"
        },
        "options": {
          "description": "Output only. The available goals and corresponding options for Target CPA strategy.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Resources_RecommendationTargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption"
          },
          "readOnly": true,
          "type": "array"
        }
      },
      "description": "The Target CPA opt-in recommendation."
    },
    "GoogleAdsGoogleadsV23Services__AudienceCompositionSection": {
      "description": "A collection of related attributes of the same type in an audience composition insights report.",
      "id": "GoogleAdsGoogleadsV23Services__AudienceCompositionSection",
      "properties": {
        "dimension": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CATEGORY",
            "KNOWLEDGE_GRAPH",
            "GEO_TARGET_COUNTRY",
            "SUB_COUNTRY_LOCATION",
            "YOUTUBE_CHANNEL",
            "AFFINITY_USER_INTEREST",
            "IN_MARKET_USER_INTEREST",
            "PARENTAL_STATUS",
            "INCOME_RANGE",
            "AGE_RANGE",
            "GENDER",
            "YOUTUBE_VIDEO",
            "DEVICE",
            "YOUTUBE_LINEUP",
            "USER_LIST",
            "LIFE_EVENT_USER_INTEREST"
          ],
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "A Product & Service category.",
            "A Knowledge Graph entity.",
            "A country, represented by a geo target.",
            "A geographic location within a country.",
            "A YouTube channel.",
            "An Affinity UserInterest.",
            "An In-Market UserInterest.",
            "A Parental Status value (parent, or not a parent).",
            "A household income percentile range.",
            "An age range.",
            "A gender.",
            "A YouTube video.",
            "A device type, such as Mobile, Desktop, Tablet, and Connected TV.",
            "A YouTube Lineup.",
            "A User List.",
            "A Life Event UserInterest."
          ],
          "type": "string",
          "description": "The type of the attributes in this section."
        },
        "topAttributes": {
          "type": "array",
          "description": "The most relevant segments for this audience. If dimension is GENDER, AGE_RANGE or PARENTAL_STATUS, then this list of attributes is exhaustive.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__AudienceCompositionAttribute"
          }
        },
        "clusteredAttributes": {
          "type": "array",
          "description": "Additional attributes for this audience, grouped into clusters. Only populated if dimension is YOUTUBE_CHANNEL.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__AudienceCompositionAttributeCluster"
          }
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateConversionGoalCampaignConfigsRequest": {
      "properties": {
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "operations": {
          "description": "Required. The list of operations to perform on individual conversion goal campaign config.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__ConversionGoalCampaignConfigOperation"
          },
          "type": "array"
        },
        "responseContentType": {
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ]
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateConversionGoalCampaignConfigsRequest",
      "description": "Request message for ConversionGoalCampaignConfigService.MutateConversionGoalCampaignConfigs."
    },
    "GoogleAdsGoogleadsV23Resources_Recommendation_ShoppingMigrateRegularShoppingCampaignOffersToPerformanceMaxRecommendation": {
      "id": "GoogleAdsGoogleadsV23Resources_Recommendation_ShoppingMigrateRegularShoppingCampaignOffersToPerformanceMaxRecommendation",
      "type": "object",
      "properties": {
        "feedLabel": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The feed label of the offers targeted by the campaigns sharing this suggestion."
        },
        "merchant": {
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_MerchantInfo",
          "description": "Output only. The details of the Merchant Center account.",
          "readOnly": true
        }
      },
      "description": "The shopping recommendation to migrate Regular Shopping Campaign targeted offers to Performance Max campaigns."
    },
    "GoogleAdsGoogleadsV23Resources__SmartCampaignSetting": {
      "properties": {
        "adOptimizedBusinessProfileSetting": {
          "description": "Settings for configuring a business profile optimized for ads as this campaign's landing page. This campaign must be linked to a business profile to use this option. For more information on this feature, consult https://support.google.com/google-ads/answer/9827068.",
          "$ref": "GoogleAdsGoogleadsV23Resources_SmartCampaignSetting_AdOptimizedBusinessProfileSetting"
        },
        "advertisingLanguageCode": {
          "type": "string",
          "description": "The language code to advertise in from the set of [supported language codes] (https://developers.google.com/google-ads/api/reference/data/codes-formats#languages)."
        },
        "phoneNumber": {
          "description": "Phone number and country code.",
          "$ref": "GoogleAdsGoogleadsV23Resources_SmartCampaignSetting_PhoneNumber"
        },
        "campaign": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The campaign to which these settings apply."
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the Smart campaign setting. Smart campaign setting resource names have the form: `customers/{customer_id}/smartCampaignSettings/{campaign_id}`"
        },
        "businessProfileLocation": {
          "description": "The resource name of a Business Profile location. Business Profile location resource names can be fetched through the Business Profile API and adhere to the following format: `locations/{locationId}`. See the [Business Profile API] (https://developers.google.com/my-business/reference/businessinformation/rest/v1/accounts.locations) for additional details.",
          "type": "string"
        },
        "finalUrl": {
          "type": "string",
          "description": "The user-provided landing page URL for this Campaign."
        },
        "businessName": {
          "type": "string",
          "description": "The name of the business."
        }
      },
      "type": "object",
      "description": "Settings for configuring Smart campaigns.",
      "id": "GoogleAdsGoogleadsV23Resources__SmartCampaignSetting"
    },
    "GoogleAdsGoogleadsV23Resources_Recommendation_ForecastingSetTargetCpaRecommendation": {
      "type": "object",
      "description": "The set target CPA recommendations.",
      "id": "GoogleAdsGoogleadsV23Resources_Recommendation_ForecastingSetTargetCpaRecommendation",
      "properties": {
        "campaignBudget": {
          "readOnly": true,
          "description": "Output only. The campaign budget.",
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_CampaignBudget"
        },
        "recommendedTargetCpaMicros": {
          "format": "int64",
          "description": "Output only. The recommended target CPA.",
          "type": "string",
          "readOnly": true
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateAssetsResponse": {
      "description": "Response message for an asset mutate.",
      "properties": {
        "partialFailureError": {
          "$ref": "GoogleRpc__Status",
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error."
        },
        "results": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateAssetResult"
          },
          "description": "All results for the mutate.",
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateAssetsResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateCampaignAssetResult": {
      "id": "GoogleAdsGoogleadsV23Services__MutateCampaignAssetResult",
      "type": "object",
      "properties": {
        "campaignAsset": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CampaignAsset",
          "description": "The mutated campaign asset with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\"."
        },
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      },
      "description": "The result for the campaign asset mutate."
    },
    "GoogleAdsGoogleadsV23Services__MutateCampaignBudgetsResponse": {
      "type": "object",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateCampaignBudgetResult"
          },
          "type": "array",
          "description": "All results for the mutate."
        }
      },
      "description": "Response message for campaign budget mutate.",
      "id": "GoogleAdsGoogleadsV23Services__MutateCampaignBudgetsResponse"
    },
    "GoogleAdsGoogleadsV23Services__AdGroupAdOperation": {
      "description": "A single operation (create, update, remove) on an ad group ad.",
      "id": "GoogleAdsGoogleadsV23Services__AdGroupAdOperation",
      "type": "object",
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new ad.",
          "$ref": "GoogleAdsGoogleadsV23Resources__AdGroupAd"
        },
        "updateMask": {
          "format": "google-fieldmask",
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string"
        },
        "policyValidationParameter": {
          "description": "Configuration for how policies are validated.",
          "$ref": "GoogleAdsGoogleadsV23Common__PolicyValidationParameter"
        },
        "update": {
          "description": "Update operation: The ad is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV23Resources__AdGroupAd"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed ad is expected, in this format: `customers/{customer_id}/adGroupAds/{ad_group_id}~{ad_id}`"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateLabelsResponse": {
      "id": "GoogleAdsGoogleadsV23Services__MutateLabelsResponse",
      "description": "Response message for a labels mutate.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateLabelResult"
          },
          "description": "All results for the mutate."
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__HotelLengthOfStayInfo": {
      "description": "Criterion for length of hotel stay in nights.",
      "type": "object",
      "properties": {
        "maxNights": {
          "description": "High end of the number of nights in the stay.",
          "type": "string",
          "format": "int64"
        },
        "minNights": {
          "description": "Low end of the number of nights in the stay.",
          "type": "string",
          "format": "int64"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__HotelLengthOfStayInfo"
    },
    "GoogleProtobuf__Empty": {
      "description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }",
      "type": "object",
      "id": "GoogleProtobuf__Empty",
      "properties": {}
    },
    "GoogleAdsGoogleadsV23Resources_Campaign_AudienceSetting": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources_Campaign_AudienceSetting",
      "description": "Settings for the audience targeting.",
      "properties": {
        "useAudienceGrouped": {
          "description": "Immutable. If true, this campaign uses an Audience resource for audience targeting. If false, this campaign may use audience segment criteria instead.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_CallExtensionParameters": {
      "id": "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_CallExtensionParameters",
      "type": "object",
      "description": "Parameters to use when applying call extension recommendation.",
      "properties": {
        "callExtensions": {
          "description": "Call extensions to be added. This is a required field.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__CallFeedItem"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__CampaignSearchTermView": {
      "id": "GoogleAdsGoogleadsV23Resources__CampaignSearchTermView",
      "description": "This report provides granular performance data, including cost metrics, for each individual search term that triggered your ads. If keyword-related segments are used, Performance Max data will be excluded from the results.",
      "type": "object",
      "properties": {
        "resourceName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the campaign search term view. Campaign search term view resource names have the form: `customers/{customer_id}/campaignSearchTermViews/{campaign_id}~{URL-base64_search_term}`"
        },
        "searchTerm": {
          "readOnly": true,
          "description": "Output only. The search term.",
          "type": "string"
        },
        "campaign": {
          "type": "string",
          "description": "Output only. The campaign the search term served in.",
          "readOnly": true
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__PlannableUserListMetadata": {
      "properties": {
        "userListCrmDataSourceType": {
          "description": "The data source type of a CRM based user list.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "FIRST_PARTY",
            "THIRD_PARTY_CREDIT_BUREAU",
            "THIRD_PARTY_VOTER_FILE",
            "THIRD_PARTY_PARTNER_DATA"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The uploaded data is first-party data.",
            "The uploaded data is from a third-party credit bureau.",
            "The uploaded data is from a third-party voter file.",
            "The uploaded data is third party partner data."
          ]
        }
      },
      "description": "The metadata associated with a plannable user list.",
      "id": "GoogleAdsGoogleadsV23Services__PlannableUserListMetadata",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateCampaignResult": {
      "description": "The result for the campaign mutate.",
      "id": "GoogleAdsGoogleadsV23Services__MutateCampaignResult",
      "properties": {
        "campaign": {
          "description": "The mutated campaign with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV23Resources__Campaign"
        },
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__ExternalAttributionData": {
      "id": "GoogleAdsGoogleadsV23Services__ExternalAttributionData",
      "type": "object",
      "properties": {
        "externalAttributionCredit": {
          "description": "Represents the fraction of the conversion that is attributed to the Google Ads click.",
          "format": "double",
          "type": "number"
        },
        "externalAttributionModel": {
          "description": "Specifies the attribution model name.",
          "type": "string"
        }
      },
      "description": "Contains additional information about externally attributed conversions."
    },
    "GoogleAdsGoogleadsV23Resources_AccountBudget_PendingAccountBudgetProposal": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources_AccountBudget_PendingAccountBudgetProposal",
      "description": "A pending proposal associated with the enclosing account-level budget, if applicable.",
      "properties": {
        "proposalType": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The type of this proposal, for example, END to end the budget associated with this proposal.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CREATE",
            "UPDATE",
            "END",
            "REMOVE"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Identifies a request to create a new budget.",
            "Identifies a request to edit an existing budget.",
            "Identifies a request to end a budget that has already started.",
            "Identifies a request to remove a budget that hasn't started yet."
          ]
        },
        "creationDateTime": {
          "type": "string",
          "description": "Output only. The time when this account-level budget proposal was created. Formatted as yyyy-MM-dd HH:mm:ss.",
          "readOnly": true
        },
        "startDateTime": {
          "type": "string",
          "description": "Output only. The start time in yyyy-MM-dd HH:mm:ss format.",
          "readOnly": true
        },
        "purchaseOrderNumber": {
          "description": "Output only. A purchase order number is a value that helps users reference this budget in their monthly invoices.",
          "type": "string",
          "readOnly": true
        },
        "accountBudgetProposal": {
          "description": "Output only. The resource name of the proposal. AccountBudgetProposal resource names have the form: `customers/{customer_id}/accountBudgetProposals/{account_budget_proposal_id}`",
          "type": "string",
          "readOnly": true
        },
        "spendingLimitMicros": {
          "format": "int64",
          "type": "string",
          "description": "Output only. The spending limit in micros. One million is equivalent to one unit.",
          "readOnly": true
        },
        "notes": {
          "type": "string",
          "description": "Output only. Notes associated with this budget.",
          "readOnly": true
        },
        "name": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The name to assign to the account-level budget."
        },
        "endDateTime": {
          "description": "Output only. The end time in yyyy-MM-dd HH:mm:ss format.",
          "type": "string",
          "readOnly": true
        },
        "endTimeType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NOW",
            "FOREVER"
          ],
          "type": "string",
          "readOnly": true,
          "description": "Output only. The end time as a well-defined type, for example, FOREVER.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "As soon as possible.",
            "An infinite point in the future."
          ]
        },
        "spendingLimitType": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Infinite, indicates unlimited spending power."
          ],
          "description": "Output only. The spending limit as a well-defined type, for example, INFINITE.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INFINITE"
          ],
          "type": "string",
          "readOnly": true
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__DynamicJobsAsset": {
      "description": "A dynamic jobs asset.",
      "id": "GoogleAdsGoogleadsV23Common__DynamicJobsAsset",
      "properties": {
        "locationId": {
          "description": "Location ID which can be any sequence of letters and digits. The ID sequence (job ID + location ID) must be unique.",
          "type": "string"
        },
        "iosAppStoreId": {
          "type": "string",
          "description": "iOS app store ID. This is used to check if the user has the app installed on their device before deep linking. If this field is set, then the ios_app_link field must also be present.",
          "format": "int64"
        },
        "salary": {
          "type": "string",
          "description": "Salary, for example, $100,000."
        },
        "androidAppLink": {
          "type": "string",
          "description": "Android deep link, for example, android-app://com.example.android/http/example.com/gizmos?1234."
        },
        "similarJobIds": {
          "items": {
            "type": "string"
          },
          "description": "Similar job IDs, for example, 1275.",
          "type": "array"
        },
        "iosAppLink": {
          "type": "string",
          "description": "iOS deep link, for example, exampleApp://content/page."
        },
        "jobSubtitle": {
          "description": "Job subtitle, for example, Level II.",
          "type": "string"
        },
        "address": {
          "type": "string",
          "description": "Address which can be specified in one of the following formats. (1) City, state, code, country, for example, Mountain View, CA, USA. (2) Full address, for example, 123 Boulevard St, Mountain View, CA 94043. (3) Latitude-longitude in the DDD format, for example, 41.40338, 2.17403."
        },
        "jobCategory": {
          "type": "string",
          "description": "Job category, for example, Technical."
        },
        "jobId": {
          "type": "string",
          "description": "Required. Job ID which can be any sequence of letters and digits, and must be unique and match the values of remarketing tag. Required."
        },
        "imageUrl": {
          "description": "Image URL, for example, http://www.example.com/image.png. The image will not be uploaded as image asset.",
          "type": "string"
        },
        "description": {
          "description": "Description, for example, Apply your technical skills.",
          "type": "string"
        },
        "contextualKeywords": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "Contextual keywords, for example, Software engineering job."
        },
        "jobTitle": {
          "description": "Required. Job title, for example, Software engineer. Required.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__YouTubeChannelInfo": {
      "description": "A YouTube Channel criterion.",
      "type": "object",
      "properties": {
        "channelId": {
          "description": "The YouTube uploader channel id or the channel code of a YouTube channel.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__YouTubeChannelInfo"
    },
    "GoogleAdsGoogleadsV23Services__ListPlannableUserInterestsResponse": {
      "type": "object",
      "properties": {
        "plannableUserInterests": {
          "description": "The list of plannable user interests.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__PlannableUserInterest"
          }
        }
      },
      "description": "Response message for ReachPlanService.ListPlannableUserInterests.",
      "id": "GoogleAdsGoogleadsV23Services__ListPlannableUserInterestsResponse"
    },
    "GoogleAdsGoogleadsV23Resources__ShoppingProduct": {
      "id": "GoogleAdsGoogleadsV23Resources__ShoppingProduct",
      "properties": {
        "effectiveMaxCpcMicros": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The effective maximum cost-per-click (effective max. CPC) of the product. This field is available only if the query specifies the campaign or ad group scope, and if the campaign uses manual bidding. The value is the highest bid set for the product in product groups across all enabled ad groups. It represents the most you're willing to pay for a click on the product. This field can take up to 24 hours to update."
        },
        "categoryLevel1": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The category level 1 of the product."
        },
        "channelExclusivity": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SINGLE_CHANNEL",
            "MULTI_CHANNEL"
          ],
          "description": "Output only. The channel exclusivity of the product as provided by the merchant.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The item is sold through one channel only, either local stores or online as indicated by its ProductChannel.",
            "The item is matched to its online or local stores counterpart, indicating it is available for purchase in both ShoppingProductChannels."
          ]
        },
        "languageCode": {
          "description": "Output only. The language code as provided by the merchant, in BCP 47 format.",
          "readOnly": true,
          "type": "string"
        },
        "customAttribute3": {
          "description": "Output only. The custom attribute 3 of the product as provided by the merchant.",
          "type": "string",
          "readOnly": true
        },
        "customAttribute4": {
          "readOnly": true,
          "description": "Output only. The custom attribute 4 of the product as provided by the merchant.",
          "type": "string"
        },
        "adGroup": {
          "description": "Output only. An ad group of a campaign that includes the product. This field is selectable only in the ad group scope, which requires an equality filter on `campaign` and `ad_group`.",
          "readOnly": true,
          "type": "string"
        },
        "productTypeLevel5": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The product type level 5 as provided by the merchant."
        },
        "productTypeLevel2": {
          "description": "Output only. The product type level 2 as provided by the merchant.",
          "type": "string",
          "readOnly": true
        },
        "feedLabel": {
          "type": "string",
          "description": "Output only. The product feed label as provided by the merchant.",
          "readOnly": true
        },
        "targetCountries": {
          "type": "array",
          "readOnly": true,
          "items": {
            "type": "string"
          },
          "description": "Output only. Upper-case two-letter ISO 3166-1 code of the regions where the product is intended to be shown in ads."
        },
        "categoryLevel4": {
          "description": "Output only. The category level 4 of the product.",
          "type": "string",
          "readOnly": true
        },
        "categoryLevel3": {
          "type": "string",
          "description": "Output only. The category level 3 of the product.",
          "readOnly": true
        },
        "multiClientAccountId": {
          "type": "string",
          "format": "int64",
          "readOnly": true,
          "description": "Output only. The id of the Multi Client Account of the merchant, if present."
        },
        "categoryLevel5": {
          "type": "string",
          "description": "Output only. The category level 5 of the product.",
          "readOnly": true
        },
        "campaign": {
          "description": "Output only. A campaign that includes the product. This field is selectable only in the campaign scope, which requires an equality filter on `campaign`.",
          "type": "string",
          "readOnly": true
        },
        "productTypeLevel3": {
          "description": "Output only. The product type level 3 as provided by the merchant.",
          "type": "string",
          "readOnly": true
        },
        "resourceName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the shopping product. Shopping product resource names have the form: `customers/{customer_id}/shoppingProducts/{merchant_center_id}~{channel}~{language_code}~{feed_label}~{item_id}`"
        },
        "currencyCode": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The currency code as provided by the merchant, in ISO 4217 format."
        },
        "title": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The title of the product as provided by the merchant."
        },
        "brand": {
          "description": "Output only. The brand of the product as provided by the merchant.",
          "readOnly": true,
          "type": "string"
        },
        "customAttribute2": {
          "description": "Output only. The custom attribute 2 of the product as provided by the merchant.",
          "readOnly": true,
          "type": "string"
        },
        "channel": {
          "type": "string",
          "description": "Output only. The product channel describing the locality of the product.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The item is sold online.",
            "The item is sold in local stores."
          ],
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ONLINE",
            "LOCAL"
          ]
        },
        "priceMicros": {
          "format": "int64",
          "description": "Output only. The price of the product in micros as provided by the merchant, in the currency specified in `currency_code` (e.g. $2.97 is reported as 2970000).",
          "type": "string",
          "readOnly": true
        },
        "productImageUri": {
          "description": "Output only. The URI of the product image as provided by the merchant.",
          "readOnly": true,
          "type": "string"
        },
        "condition": {
          "type": "string",
          "description": "Output only. The condition of the product as provided by the merchant.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NEW",
            "REFURBISHED",
            "USED"
          ],
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The product condition is new.",
            "The product condition is refurbished.",
            "The product condition is used."
          ]
        },
        "customAttribute1": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The custom attribute 1 of the product as provided by the merchant."
        },
        "productTypeLevel1": {
          "description": "Output only. The product type level 1 as provided by the merchant.",
          "type": "string",
          "readOnly": true
        },
        "itemId": {
          "description": "Output only. The item id of the product as provided by the merchant.",
          "readOnly": true,
          "type": "string"
        },
        "customAttribute0": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The custom attribute 0 of the product as provided by the merchant."
        },
        "categoryLevel2": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The category level 2 of the product."
        },
        "merchantCenterId": {
          "readOnly": true,
          "format": "int64",
          "description": "Output only. The id of the merchant that owns the product.",
          "type": "string"
        },
        "availability": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "IN_STOCK",
            "OUT_OF_STOCK",
            "PREORDER"
          ],
          "readOnly": true,
          "enumDescriptions": [
            "Enum unspecified.",
            "Used for return value only. Represents values unknown in this version.",
            "The product is in stock.",
            "The product is out of stock.",
            "The product can be preordered."
          ],
          "type": "string",
          "description": "Output only. The availability of the product as provided by the merchant."
        },
        "status": {
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents values unknown in this version.",
            "The product cannot show in ads.",
            "The product can show in ads but may be limited in where and when it can show due to identified issues.",
            "The product can show in ads."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NOT_ELIGIBLE",
            "ELIGIBLE_LIMITED",
            "ELIGIBLE"
          ],
          "description": "Output only. The status that indicates whether the product can show in ads. The value of this field is restricted to the scope specified in the query, see the documentation of the resource. This field can take up to 24 hours to update."
        },
        "issues": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Resources_ShoppingProduct_ProductIssue"
          },
          "type": "array",
          "readOnly": true,
          "description": "Output only. The list of issues affecting whether the product can show in ads. The value of this field is restricted to the scope specified in the query, see the documentation of the resource. This field can take up to 24 hours to update."
        },
        "productTypeLevel4": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The product type level 4 as provided by the merchant."
        }
      },
      "description": "A shopping product from Google Merchant Center that can be advertised by campaigns. The resource returns currently existing products from Google Merchant Center accounts linked with the customer. A campaign includes a product by specifying its merchant id (or, if available, the Multi Client Account id of the merchant) in the `ShoppingSetting`, and can limit the inclusion to products having a specified feed label. Standard Shopping campaigns can also limit the inclusion through a `campaign_criterion.listing_scope`. Queries to this resource specify a scope: Account: - Filters on campaigns or ad groups are not specified. - All products from the linked Google Merchant Center accounts are returned. - Metrics and some fields (see the per-field documentation) are aggregated across all Shopping and Performance Max campaigns that include a product. Campaign: - An equality filter on `campaign` is specified. Supported campaign types are Shopping, Performance Max, Demand Gen, Video. - Only products that are included by the specified campaign are returned. - Metrics and some fields (see the per-field documentation) are restricted to the specified campaign. - Only the following metrics are supported for Demand Gen and Video campaigns: impressions, clicks, ctr. Ad group: - An equality filter on `ad group` and `campaign` is specified. Supported campaign types are Shopping, Demand Gen, Video. - Only products that are included by the specified campaign are returned. - Metrics and some fields (see the per-field documentation) are restricted to the specified ad group. - Only the following metrics are supported for Demand Gen and Video campaigns: impressions, clicks, ctr. Note that segmentation by date segments is not permitted and will return UNSUPPORTED_DATE_SEGMENTATION error. On the other hand, filtering on date segments is allowed.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources_ListingGroupFilterDimension_ProductBrand": {
      "id": "GoogleAdsGoogleadsV23Resources_ListingGroupFilterDimension_ProductBrand",
      "type": "object",
      "properties": {
        "value": {
          "description": "String value of the product brand.",
          "type": "string"
        }
      },
      "description": "Brand of the product."
    },
    "GoogleAdsGoogleadsV23Common__DetailedDemographicSegment": {
      "id": "GoogleAdsGoogleadsV23Common__DetailedDemographicSegment",
      "type": "object",
      "properties": {
        "detailedDemographic": {
          "type": "string",
          "description": "The detailed demographic resource."
        }
      },
      "description": "Detailed demographic segment."
    },
    "GoogleAdsGoogleadsV23Resources__AssetFieldTypePolicySummary": {
      "properties": {
        "assetSource": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset or asset link is provided by advertiser.",
            "The asset or asset link is generated by Google."
          ],
          "type": "string",
          "description": "Output only. Source of this asset.",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADVERTISER",
            "AUTOMATICALLY_CREATED"
          ]
        },
        "policySummaryInfo": {
          "description": "Output only. Policy summary.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV23Resources__AssetPolicySummary"
        },
        "assetFieldType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE",
            "DESCRIPTION",
            "MANDATORY_AD_TEXT",
            "MARKETING_IMAGE",
            "MEDIA_BUNDLE",
            "YOUTUBE_VIDEO",
            "BOOK_ON_GOOGLE",
            "LEAD_FORM",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "LONG_HEADLINE",
            "BUSINESS_NAME",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "VIDEO",
            "CALL_TO_ACTION_SELECTION",
            "AD_IMAGE",
            "BUSINESS_LOGO",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "TALL_PORTRAIT_MARKETING_IMAGE",
            "RELATED_YOUTUBE_VIDEOS",
            "LANDING_PAGE_PREVIEW",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is linked for use as a headline.",
            "The asset is linked for use as a description.",
            "The asset is linked for use as mandatory ad text.",
            "The asset is linked for use as a marketing image.",
            "The asset is linked for use as a media bundle.",
            "The asset is linked for use as a YouTube video.",
            "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
            "The asset is linked for use as a Lead Form extension.",
            "The asset is linked for use as a Promotion extension.",
            "The asset is linked for use as a Callout extension.",
            "The asset is linked for use as a Structured Snippet extension.",
            "The asset is linked for use as a Sitelink.",
            "The asset is linked for use as a Mobile App extension.",
            "The asset is linked for use as a Hotel Callout extension.",
            "The asset is linked for use as a Call extension.",
            "The asset is linked for use as a Price extension.",
            "The asset is linked for use as a long headline.",
            "The asset is linked for use as a business name.",
            "The asset is linked for use as a square marketing image.",
            "The asset is linked for use as a portrait marketing image.",
            "The asset is linked for use as a logo.",
            "The asset is linked for use as a landscape logo.",
            "The asset is linked for use as a non YouTube logo.",
            "The asset is linked for use to select a call-to-action.",
            "The asset is linked for use to select an ad image.",
            "The asset is linked for use as a business logo.",
            "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
            "The asset is linked for use as a Demand Gen carousel card.",
            "The asset is linked for use as a Business Message.",
            "The asset is linked for use as a tall portrait marketing image.",
            "The asset is linked for use as related YouTube videos.",
            "The asset is linked for use as a landing page preview image.",
            "The asset is linked for use as a long description.",
            "The asset is linked for use as a call-to-action."
          ],
          "description": "Output only. FieldType of this asset.",
          "readOnly": true
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__AssetFieldTypePolicySummary",
      "description": "Contains policy information for an asset under AssetFieldType context."
    },
    "GoogleAdsGoogleadsV23Common__YearMonth": {
      "type": "object",
      "properties": {
        "year": {
          "description": "The year (for example, 2020).",
          "type": "string",
          "format": "int64"
        },
        "month": {
          "description": "The month of the year. (for example, FEBRUARY).",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "January.",
            "February.",
            "March.",
            "April.",
            "May.",
            "June.",
            "July.",
            "August.",
            "September.",
            "October.",
            "November.",
            "December."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "JANUARY",
            "FEBRUARY",
            "MARCH",
            "APRIL",
            "MAY",
            "JUNE",
            "JULY",
            "AUGUST",
            "SEPTEMBER",
            "OCTOBER",
            "NOVEMBER",
            "DECEMBER"
          ],
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__YearMonth",
      "description": "Year month."
    },
    "GoogleAdsGoogleadsV23Resources__LocalServicesSettings": {
      "type": "object",
      "properties": {
        "granularLicenseStatuses": {
          "type": "array",
          "readOnly": true,
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Resources__GranularLicenseStatus"
          },
          "description": "Output only. A read-only list of geo vertical level license statuses."
        },
        "granularInsuranceStatuses": {
          "type": "array",
          "description": "Output only. A read-only list of geo vertical level insurance statuses.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Resources__GranularInsuranceStatus"
          },
          "readOnly": true
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__LocalServicesSettings",
      "description": "Settings for Local Services customer."
    },
    "GoogleAdsGoogleadsV23Resources_Recommendation_KeywordRecommendation": {
      "description": "The keyword recommendation.",
      "id": "GoogleAdsGoogleadsV23Resources_Recommendation_KeywordRecommendation",
      "type": "object",
      "properties": {
        "recommendedCpcBidMicros": {
          "description": "Output only. The recommended CPC (cost-per-click) bid.",
          "type": "string",
          "readOnly": true,
          "format": "int64"
        },
        "searchTerms": {
          "type": "array",
          "description": "Output only. A list of search terms this keyword matches. The same search term may be repeated for multiple keywords.",
          "readOnly": true,
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Resources_RecommendationKeywordRecommendation_SearchTerm"
          }
        },
        "keyword": {
          "description": "Output only. The recommended keyword.",
          "$ref": "GoogleAdsGoogleadsV23Common__KeywordInfo",
          "readOnly": true
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__CustomerClient": {
      "properties": {
        "appliedLabels": {
          "description": "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}`",
          "type": "array",
          "readOnly": true,
          "items": {
            "type": "string"
          }
        },
        "currencyCode": {
          "readOnly": true,
          "description": "Output only. Currency code (for example, 'USD', 'EUR') for the client. Read only.",
          "type": "string"
        },
        "testAccount": {
          "description": "Output only. Identifies if the client is a test account. Read only.",
          "readOnly": true,
          "type": "boolean"
        },
        "level": {
          "type": "string",
          "description": "Output only. Distance between given customer and client. For self link, the level value will be 0. Read only.",
          "format": "int64",
          "readOnly": true
        },
        "timeZone": {
          "description": "Output only. Common Locale Data Repository (CLDR) string representation of the time zone of the client, for example, America/Los_Angeles. Read only.",
          "readOnly": true,
          "type": "string"
        },
        "id": {
          "readOnly": true,
          "format": "int64",
          "type": "string",
          "description": "Output only. The ID of the client customer. Read only."
        },
        "descriptiveName": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. Descriptive name for the client. Read only."
        },
        "hidden": {
          "type": "boolean",
          "readOnly": true,
          "description": "Output only. Specifies whether this is a [hidden account](https://support.google.com/google-ads/answer/7519830). Read only."
        },
        "resourceName": {
          "description": "Output only. The resource name of the customer client. CustomerClient resource names have the form: `customers/{customer_id}/customerClients/{client_customer_id}`",
          "readOnly": true,
          "type": "string"
        },
        "clientCustomer": {
          "description": "Output only. The resource name of the client-customer which is linked to the given customer. Read only.",
          "type": "string",
          "readOnly": true
        },
        "status": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "CANCELED",
            "SUSPENDED",
            "CLOSED"
          ],
          "description": "Output only. The status of the client customer. Read only.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Indicates an active account able to serve ads.",
            "Indicates a canceled account unable to serve ads. Can be reactivated by an admin user.",
            "Indicates a suspended account unable to serve ads. May only be activated by Google support.",
            "Indicates a closed account unable to serve ads. Test account will also have CLOSED status. Status is permanent and may not be reopened."
          ],
          "type": "string"
        },
        "manager": {
          "readOnly": true,
          "type": "boolean",
          "description": "Output only. Identifies if the client is a manager. Read only."
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__CustomerClient",
      "description": "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."
    },
    "GoogleAdsGoogleadsV23Services__UploadConversionAdjustmentsRequest": {
      "description": "Request message for ConversionAdjustmentUploadService.UploadConversionAdjustments.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__UploadConversionAdjustmentsRequest",
      "properties": {
        "jobId": {
          "format": "int32",
          "description": "Optional. Optional input to set job ID. Must be a non-negative number that is less than 2^31 if provided. If this field is not provided, the API will generate a job ID in the range [2^31, (2^63)-1]. The API will return the value for this request in the `job_id` field of the `UploadConversionAdjustmentsResponse`.",
          "type": "integer"
        },
        "conversionAdjustments": {
          "description": "Required. The conversion adjustments that are being uploaded.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__ConversionAdjustment"
          }
        },
        "partialFailure": {
          "description": "Required. If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. This should always be set to true. See https://developers.google.com/google-ads/api/docs/best-practices/partial-failures for more information about partial failure.",
          "type": "boolean"
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__ProductChannelExclusivityInfo": {
      "description": "Availability of a product offer.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__ProductChannelExclusivityInfo",
      "properties": {
        "channelExclusivity": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SINGLE_CHANNEL",
            "MULTI_CHANNEL"
          ],
          "description": "Value of the availability.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The item is sold through one channel only, either local stores or online as indicated by its ProductChannel.",
            "The item is matched to its online or local stores counterpart, indicating it is available for purchase in both ShoppingProductChannels."
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__FixedCpm": {
      "description": "Fixed CPM (cost per thousand impression) bidding strategy. A manual bidding strategy with a fixed CPM.",
      "properties": {
        "targetFrequencyInfo": {
          "$ref": "GoogleAdsGoogleadsV23Common__FixedCpmTargetFrequencyGoalInfo",
          "description": "Target frequency bidding goal details."
        },
        "goal": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Maximize reach, that is the number of users who saw the ads in this campaign.",
            "Target Frequency CPM bidder. Optimize bidding to reach a single user with the requested frequency."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "REACH",
            "TARGET_FREQUENCY"
          ],
          "description": "Fixed CPM bidding goal. Determines the exact bidding optimization parameters.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__FixedCpm"
    },
    "GoogleAdsGoogleadsV23Resources__ListingGroupFilterDimensionPath": {
      "description": "The path defining of dimensions defining a listing group filter.",
      "id": "GoogleAdsGoogleadsV23Resources__ListingGroupFilterDimensionPath",
      "type": "object",
      "properties": {
        "dimensions": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Resources__ListingGroupFilterDimension"
          },
          "readOnly": true,
          "type": "array",
          "description": "Output only. The complete path of dimensions through the listing group filter hierarchy (excluding the root node) to this listing group filter."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateCampaignBudgetsRequest": {
      "properties": {
        "operations": {
          "description": "Required. The list of operations to perform on individual campaign budgets.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__CampaignBudgetOperation"
          }
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "responseContentType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ]
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        }
      },
      "description": "Request message for CampaignBudgetService.MutateCampaignBudgets.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateCampaignBudgetsRequest"
    },
    "GoogleAdsGoogleadsV23Services__AdGroupAssetSetOperation": {
      "id": "GoogleAdsGoogleadsV23Services__AdGroupAssetSetOperation",
      "type": "object",
      "description": "A single operation (create, remove) on an ad group asset set.",
      "properties": {
        "create": {
          "$ref": "GoogleAdsGoogleadsV23Resources__AdGroupAssetSet",
          "description": "Create operation: No resource name is expected for the new ad group asset set."
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed ad group asset set is expected, in this format: `customers/{customer_id}/adGroupAssetSets/{ad_group_id}~{asset_set_id}`"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__AssetSetOperation": {
      "description": "A single operation (create, remove) on an asset set.",
      "id": "GoogleAdsGoogleadsV23Services__AssetSetOperation",
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new asset set",
          "$ref": "GoogleAdsGoogleadsV23Resources__AssetSet"
        },
        "updateMask": {
          "type": "string",
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask"
        },
        "update": {
          "description": "Update operation: The asset set is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV23Resources__AssetSet"
        },
        "remove": {
          "description": "Remove operation: A resource name for the removed asset set is expected, in this format: `customers/{customer_id}/assetSets/{asset_set_id}`",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__CombinedAudienceInfo": {
      "properties": {
        "combinedAudience": {
          "type": "string",
          "description": "The CombinedAudience resource name."
        }
      },
      "description": "A combined audience criterion.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__CombinedAudienceInfo"
    },
    "GoogleAdsGoogleadsV23Services__MutateCampaignSharedSetsRequest": {
      "description": "Request message for CampaignSharedSetService.MutateCampaignSharedSets.",
      "properties": {
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__CampaignSharedSetOperation"
          },
          "description": "Required. The list of operations to perform on individual campaign shared sets."
        },
        "responseContentType": {
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ]
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateCampaignSharedSetsRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__KeywordPlanHistoricalMetrics": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__KeywordPlanHistoricalMetrics",
      "description": "Historical metrics specific to the targeting options selected. Targeting options include geographies, network, and so on. Refer to https://support.google.com/google-ads/answer/3022575 for more details.",
      "properties": {
        "competition": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "LOW",
            "MEDIUM",
            "HIGH"
          ],
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Low competition. The Competition Index range for this is [0, 33].",
            "Medium competition. The Competition Index range for this is [34, 66].",
            "High competition. The Competition Index range for this is [67, 100]."
          ],
          "description": "The competition level for the query."
        },
        "competitionIndex": {
          "description": "The competition index for the query in the range [0, 100]. Shows how competitive ad placement is for a keyword. The level of competition from 0-100 is determined by the number of ad slots filled divided by the total number of ad slots available. If not enough data is available, null is returned.",
          "type": "string",
          "format": "int64"
        },
        "highTopOfPageBidMicros": {
          "description": "Top of page bid high range (80th percentile) in micros for the keyword.",
          "format": "int64",
          "type": "string"
        },
        "avgMonthlySearches": {
          "format": "int64",
          "description": "Approximate number of monthly searches on this query, averaged for the past 12 months.",
          "type": "string"
        },
        "lowTopOfPageBidMicros": {
          "format": "int64",
          "type": "string",
          "description": "Top of page bid low range (20th percentile) in micros for the keyword."
        },
        "averageCpcMicros": {
          "type": "string",
          "format": "int64",
          "description": "Average Cost Per Click in micros for the keyword."
        },
        "monthlySearchVolumes": {
          "description": "Approximate number of searches on this query for the past twelve months.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__MonthlySearchVolume"
          },
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__DetailContentSuitabilityPlacementView": {
      "description": "A detail content suitability placement view.",
      "properties": {
        "displayName": {
          "description": "Output only. The display name is URL for websites, YouTube video name for YouTube videos, and translated mobile app name for mobile apps.",
          "readOnly": true,
          "type": "string"
        },
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the detail content suitability placement view. Detail content suitability placement view resource names have the form: `customers/{customer_id}/detailContentSuitabilityPlacementViews/{placement_fingerprint}`",
          "readOnly": true
        },
        "targetUrl": {
          "type": "string",
          "description": "Output only. URL of the placement, for example, website, link to the mobile application in app store, or a YouTube video URL.",
          "readOnly": true
        },
        "placementType": {
          "description": "Output only. Represents the type of the placement, for example, Website, YouTubeVideo and MobileApplication.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Websites(for example, 'www.flowers4sale.com').",
            "Mobile application categories(for example, 'Games').",
            "mobile applications(for example, 'mobileapp::2-com.whatsthewordanswers').",
            "YouTube videos(for example, 'youtube.com/video/wtLJPvx7-ys').",
            "YouTube channels(for example, 'youtube.com::L8ZULXASCc1I_oaOT0NaOQ').",
            "Surfaces owned and operated by Google(for example, 'tv.google.com')."
          ],
          "readOnly": true,
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "WEBSITE",
            "MOBILE_APP_CATEGORY",
            "MOBILE_APPLICATION",
            "YOUTUBE_VIDEO",
            "YOUTUBE_CHANNEL",
            "GOOGLE_PRODUCTS"
          ]
        },
        "placement": {
          "type": "string",
          "description": "Output only. The automatic placement string at detail level, for example. website url, mobile application id, or a YouTube video id.",
          "readOnly": true
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__DetailContentSuitabilityPlacementView"
    },
    "GoogleAdsGoogleadsV23Common__ProductTypeInfo": {
      "properties": {
        "level": {
          "description": "Level of the type.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Level 1.",
            "Level 2.",
            "Level 3.",
            "Level 4.",
            "Level 5."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "LEVEL1",
            "LEVEL2",
            "LEVEL3",
            "LEVEL4",
            "LEVEL5"
          ],
          "type": "string"
        },
        "value": {
          "type": "string",
          "description": "Value of the type."
        }
      },
      "description": "Type of a product offer.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__ProductTypeInfo"
    },
    "GoogleAdsGoogleadsV23Services__SearchGoogleAdsStreamRequest": {
      "properties": {
        "query": {
          "type": "string",
          "description": "Required. The query string."
        },
        "summaryRowSetting": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Represent unknown values of return summary row.",
            "Do not return summary row.",
            "Return summary row along with results. The summary row will be returned in the last batch alone (last batch will contain no results).",
            "Return summary row only and return no results."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NO_SUMMARY_ROW",
            "SUMMARY_ROW_WITH_RESULTS",
            "SUMMARY_ROW_ONLY"
          ],
          "description": "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."
        }
      },
      "description": "Request message for GoogleAdsService.SearchStream.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__SearchGoogleAdsStreamRequest"
    },
    "GoogleAdsGoogleadsV23Common__IncomeRangeInfo": {
      "id": "GoogleAdsGoogleadsV23Common__IncomeRangeInfo",
      "properties": {
        "type": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INCOME_RANGE_0_50",
            "INCOME_RANGE_50_60",
            "INCOME_RANGE_60_70",
            "INCOME_RANGE_70_80",
            "INCOME_RANGE_80_90",
            "INCOME_RANGE_90_UP",
            "INCOME_RANGE_UNDETERMINED"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "0%-50%.",
            "50% to 60%.",
            "60% to 70%.",
            "70% to 80%.",
            "80% to 90%.",
            "Greater than 90%.",
            "Undetermined income range."
          ],
          "description": "Type of the income range.",
          "type": "string"
        }
      },
      "type": "object",
      "description": "An income range criterion."
    },
    "GoogleAdsGoogleadsV23Resources__LocalServicesEmployee": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__LocalServicesEmployee",
      "description": "A local services employee resource.",
      "properties": {
        "yearStartedPracticing": {
          "description": "Output only. The year that this employee started practicing in this field.",
          "readOnly": true,
          "type": "integer",
          "format": "int32"
        },
        "emailAddress": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. Email address of the employee."
        },
        "languagesSpoken": {
          "items": {
            "type": "string"
          },
          "readOnly": true,
          "type": "array",
          "description": "Output only. Languages that the employee speaks, represented as language tags from https://developers.google.com/admin-sdk/directory/v1/languages"
        },
        "id": {
          "description": "Output only. The ID of the employee.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "nationalProviderIdNumber": {
          "description": "Output only. NPI id associated with the employee.",
          "type": "string",
          "readOnly": true
        },
        "middleName": {
          "readOnly": true,
          "description": "Output only. Middle name of the employee.",
          "type": "string"
        },
        "jobTitle": {
          "description": "Output only. Job title for this employee, such as \"Senior partner\" in legal verticals.",
          "readOnly": true,
          "type": "string"
        },
        "firstName": {
          "description": "Output only. First name of the employee.",
          "readOnly": true,
          "type": "string"
        },
        "creationDateTime": {
          "readOnly": true,
          "description": "Output only. Timestamp of employee creation. The format is \"YYYY-MM-DD HH:MM:SS\" in the Google Ads account's timezone. Examples: \"2018-03-05 09:15:00\" or \"2018-02-01 14:34:30\"",
          "type": "string"
        },
        "categoryIds": {
          "description": "Output only. Category of the employee. A list of Local Services category IDs can be found at https://developers.google.com/google-ads/api/data/codes-formats#local_services_ids.",
          "type": "array",
          "items": {
            "type": "string"
          },
          "readOnly": true
        },
        "fellowships": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Resources__Fellowship"
          },
          "type": "array",
          "description": "Output only. The institutions where the employee has completed their fellowship.",
          "readOnly": true
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the Local Services Verification. Local Services Verification resource names have the form: `customers/{customer_id}/localServicesEmployees/{gls_employee_id}`"
        },
        "residencies": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Resources__Residency"
          },
          "readOnly": true,
          "type": "array",
          "description": "Output only. The institutions where the employee has completed their residency."
        },
        "type": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Represents the owner of the business.",
            "Represents an employee of the business."
          ],
          "description": "Output only. Employee type.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BUSINESS_OWNER",
            "EMPLOYEE"
          ],
          "type": "string",
          "readOnly": true
        },
        "universityDegrees": {
          "description": "Output only. A list of degrees this employee has obtained, and wants to feature.",
          "type": "array",
          "readOnly": true,
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Resources__UniversityDegree"
          }
        },
        "lastName": {
          "type": "string",
          "description": "Output only. Last name of the employee.",
          "readOnly": true
        },
        "status": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Employee is not removed, and employee status is active.",
            "Employee is removed. Used to delete an employee from the business."
          ],
          "type": "string",
          "readOnly": true,
          "description": "Output only. Employee status, such as DELETED or ENABLED."
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__HotelCalloutAsset": {
      "id": "GoogleAdsGoogleadsV23Common__HotelCalloutAsset",
      "description": "An asset representing a hotel callout.",
      "properties": {
        "text": {
          "type": "string",
          "description": "Required. The text of the hotel callout asset. The length of this string should be between 1 and 25, inclusive."
        },
        "languageCode": {
          "type": "string",
          "description": "Required. The language of the hotel callout. Represented as BCP 47 language tag."
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__LocalServicesLead": {
      "type": "object",
      "description": "Data from Local Services Lead. Contains details of Lead which is generated when user calls, messages or books service from advertiser. More info: https://ads.google.com/local-services-ads",
      "id": "GoogleAdsGoogleadsV23Resources__LocalServicesLead",
      "properties": {
        "note": {
          "$ref": "GoogleAdsGoogleadsV23Resources__Note",
          "readOnly": true,
          "description": "Output only. Note added by advertiser for the lead."
        },
        "leadCharged": {
          "type": "boolean",
          "description": "Output only. True if the advertiser was charged for the lead.",
          "readOnly": true
        },
        "leadType": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Message lead.",
            "Lead created by phone call.",
            "Booking lead."
          ],
          "type": "string",
          "description": "Output only. Type of Local Services lead: phone, message, booking, etc.",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MESSAGE",
            "PHONE_CALL",
            "BOOKING"
          ]
        },
        "locale": {
          "readOnly": true,
          "description": "Output only. Language used by the Local Services provider linked to lead. See https://developers.google.com/google-ads/api/data/codes-formats#locales",
          "type": "string"
        },
        "contactDetails": {
          "readOnly": true,
          "description": "Output only. Lead's contact details.",
          "$ref": "GoogleAdsGoogleadsV23Resources__ContactDetails"
        },
        "serviceId": {
          "type": "string",
          "description": "Output only. Service for the category. For example: `buyer_agent`, `seller_agent` for the category of `xcat:service_area_business_real_estate_agent`.",
          "readOnly": true
        },
        "categoryId": {
          "readOnly": true,
          "description": "Output only. Service category of the lead. For example: `xcat:service_area_business_hvac`, `xcat:service_area_business_real_estate_agent`, etc. For more details see: https://developers.google.com/google-ads/api/data/codes-formats#local_services_ids",
          "type": "string"
        },
        "creditDetails": {
          "readOnly": true,
          "description": "Output only. Credit details of the lead.",
          "$ref": "GoogleAdsGoogleadsV23Resources__CreditDetails"
        },
        "leadStatus": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NEW",
            "ACTIVE",
            "BOOKED",
            "DECLINED",
            "EXPIRED",
            "DISABLED",
            "CONSUMER_DECLINED",
            "WIPED_OUT"
          ],
          "type": "string",
          "description": "Output only. Current status of lead.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "New lead which hasn't yet been seen by advertiser.",
            "Lead that thas been interacted by advertiser.",
            "Lead has been booked.",
            "Lead was declined by advertiser.",
            "Lead has expired due to inactivity.",
            "Disabled due to spam or dispute.",
            "Consumer declined the lead.",
            "Personally Identifiable Information of the lead is wiped out."
          ],
          "readOnly": true
        },
        "creationDateTime": {
          "readOnly": true,
          "description": "Output only. The date time at which lead was created by Local Services Ads. The format is \"YYYY-MM-DD HH:MM:SS\" in the Google Ads account's timezone. Examples: \"2018-03-05 09:15:00\" or \"2018-02-01 14:34:30\"",
          "type": "string"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the local services lead data. Local Services Lead resource name have the form `customers/{customer_id}/localServicesLead/{local_services_lead_id}`"
        },
        "leadFeedbackSubmitted": {
          "type": "boolean",
          "readOnly": true,
          "description": "Output only. True if the advertiser submitted feedback for the lead."
        },
        "id": {
          "description": "Output only. ID of this Lead.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Errors__ErrorLocation": {
      "type": "object",
      "properties": {
        "fieldPathElements": {
          "description": "A field path that indicates which field was invalid in the request.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Errors_ErrorLocation_FieldPathElement"
          },
          "type": "array"
        }
      },
      "description": "Describes the part of the request proto that caused the error.",
      "id": "GoogleAdsGoogleadsV23Errors__ErrorLocation"
    },
    "GoogleAdsGoogleadsV23Common__PolicyValidationParameter": {
      "description": "Parameter for controlling how policy exemption is done.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__PolicyValidationParameter",
      "properties": {
        "ignorablePolicyTopics": {
          "description": "The list of policy topics that should not cause a `PolicyFindingError` to be reported. This field is used for ad policy exemptions. It corresponds to the `PolicyTopicEntry.topic` field. If this field is populated, then `exempt_policy_violation_keys` must be empty. Resources that violate these policies will be saved, but will not be eligible to serve. They may begin serving at a later time due to a change in policies, re-review of the resource, or a change in advertiser certificates.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "exemptPolicyViolationKeys": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__PolicyViolationKey"
          },
          "description": "The list of policy violation keys that should not cause a `PolicyViolationError` to be reported. Not all policy violations are exemptable. Refer to the `is_exemptible` field in the returned `PolicyViolationError`. This field is used for keyword policy exemptions. If this field is populated, then `ignorable_policy_topics` must be empty. Resources that violate these policies will be saved, but will not be eligible to serve. They may begin serving at a later time due to a change in policies, re-review of the resource, or a change in advertiser certificates."
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__InteractionTypeInfo": {
      "description": "Criterion for Interaction Type.",
      "properties": {
        "type": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CALLS"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Calls."
          ],
          "description": "The interaction type.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__InteractionTypeInfo"
    },
    "GoogleAdsGoogleadsV23Services__ReachCurve": {
      "id": "GoogleAdsGoogleadsV23Services__ReachCurve",
      "properties": {
        "reachForecasts": {
          "type": "array",
          "description": "All points on the reach curve.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__ReachForecast"
          }
        }
      },
      "description": "The reach curve for the planned products.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Errors__ResourceCountDetails": {
      "description": "Error details returned when an resource count limit was exceeded.",
      "properties": {
        "existingCount": {
          "description": "The count of existing entities.",
          "type": "integer",
          "format": "int32"
        },
        "limitType": {
          "description": "The resource limit type which was exceeded.",
          "type": "string",
          "enumDescriptions": [
            "No value has been specified.",
            "Used for return value only. Represents an unclassified operation unknown in this version.",
            "Number of ENABLED and PAUSED campaigns per customer.",
            "Number of ENABLED and PAUSED base campaigns per customer.",
            "Number of ENABLED and PAUSED experiment campaigns per customer.",
            "Number of ENABLED and PAUSED Hotel campaigns per customer.",
            "Number of ENABLED and PAUSED Smart Shopping campaigns per customer.",
            "Number of ENABLED ad groups per campaign.",
            "Number of ENABLED ad groups per Shopping campaign.",
            "Number of ENABLED ad groups per Hotel campaign.",
            "Number of ENABLED reporting ad groups per local campaign.",
            "Number of ENABLED reporting ad groups per App campaign. It includes app campaign and app campaign for engagement.",
            "Number of ENABLED managed ad groups per smart campaign.",
            "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.",
            "Number of ad group criteria across all base campaigns for a customer.",
            "Number of ad group criteria across all experiment campaigns for a customer.",
            "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.",
            "Number of ENABLED campaign criteria per customer.",
            "Number of ENABLED campaign criteria across all base campaigns for a customer.",
            "Number of ENABLED campaign criteria across all experiment campaigns for a customer.",
            "Number of ENABLED webpage criteria per customer, including campaign level and ad group level.",
            "Number of ENABLED webpage criteria across all base campaigns for a customer.",
            "Meximum number of ENABLED webpage criteria across all experiment campaigns for a customer.",
            "Number of combined audience criteria per ad group.",
            "Limit for placement criterion type group in customer negative criterion.",
            "Limit for YouTube TV channels in customer negative criterion.",
            "Number of ENABLED criteria per ad group.",
            "Number of listing group criteria per ad group.",
            "Number of ENABLED explicitly shared budgets per customer.",
            "Number of ENABLED implicitly shared budgets per customer.",
            "Number of combined audience criteria per campaign.",
            "Number of negative keywords 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.",
            "Number of geo targets per campaign.",
            "Number of negative IP blocks per campaign.",
            "Number of proximity targets per campaign.",
            "Number of listing scopes per Shopping campaign.",
            "Number of listing scopes per non-Shopping campaign.",
            "Number of criteria per negative keyword shared set.",
            "Number of criteria per negative placement shared set.",
            "Default number of shared sets allowed per type per customer.",
            "Number of shared sets of negative placement list type for a manager customer.",
            "Number of hotel_advance_booking_window bid modifiers per ad group.",
            "Number of ENABLED shared bidding strategies per customer.",
            "Number of open basic user lists per customer.",
            "Number of open logical user lists per customer.",
            "Number of open rule based user lists per customer.",
            "Number of ENABLED and PAUSED ad group ads across all base campaigns for a customer.",
            "Number of ENABLED and PAUSED ad group ads across all experiment campaigns for a customer.",
            "Number of ENABLED and PAUSED ad group ads per campaign.",
            "Number of ENABLED ads per ad group that do not fall in to other buckets. Includes text and many other types.",
            "Number of ENABLED image ads per ad group.",
            "Number of ENABLED shopping smart ads per ad group.",
            "Number of ENABLED responsive search ads per ad group.",
            "Number of ENABLED app ads per ad group.",
            "Number of ENABLED app engagement ads per ad group.",
            "Number of ENABLED local ads per ad group.",
            "Number of ENABLED video ads per ad group.",
            "Number of ENABLED lead form CampaignAssets per campaign.",
            "Number of ENABLED promotion CustomerAssets per customer.",
            "Number of ENABLED promotion CampaignAssets per campaign.",
            "Number of ENABLED promotion AdGroupAssets per ad group.",
            "Number of ENABLED callout CustomerAssets per customer.",
            "Number of ENABLED callout CampaignAssets per campaign.",
            "Number of ENABLED callout AdGroupAssets per ad group.",
            "Number of ENABLED sitelink CustomerAssets per customer.",
            "Number of ENABLED sitelink CampaignAssets per campaign.",
            "Number of ENABLED sitelink AdGroupAssets per ad group.",
            "Number of ENABLED structured snippet CustomerAssets per customer.",
            "Number of ENABLED structured snippet CampaignAssets per campaign.",
            "Number of ENABLED structured snippet AdGroupAssets per ad group.",
            "Number of ENABLED mobile app CustomerAssets per customer.",
            "Number of ENABLED mobile app CampaignAssets per campaign.",
            "Number of ENABLED mobile app AdGroupAssets per ad group.",
            "Number of ENABLED hotel callout CustomerAssets per customer.",
            "Number of ENABLED hotel callout CampaignAssets per campaign.",
            "Number of ENABLED hotel callout AdGroupAssets per ad group.",
            "Number of ENABLED call CustomerAssets per customer.",
            "Number of ENABLED call CampaignAssets per campaign.",
            "Number of ENABLED call AdGroupAssets per ad group.",
            "Number of ENABLED price CustomerAssets per customer.",
            "Number of ENABLED price CampaignAssets per campaign.",
            "Number of ENABLED price AdGroupAssets per ad group.",
            "Number of ENABLED ad image CampaignAssets per campaign.",
            "Number of ENABLED ad image AdGroupAssets per ad group.",
            "Number of ENABLED page feed asset sets per customer.",
            "Number of ENABLED dynamic education feed asset sets per customer.",
            "Number of ENABLED assets per page feed asset set.",
            "Number of ENABLED assets per dynamic education asset set.",
            "Number of ENABLED dynamic real estate asset sets per customer.",
            "Number of ENABLED assets per dynamic real estate asset set.",
            "Number of ENABLED dynamic custom asset sets per customer.",
            "Number of ENABLED assets per dynamic custom asset set.",
            "Number of ENABLED dynamic hotels and rentals asset sets per customer.",
            "Number of ENABLED assets per dynamic hotels and rentals asset set.",
            "Number of ENABLED dynamic local asset sets per customer.",
            "Number of ENABLED assets per dynamic local asset set.",
            "Number of ENABLED dynamic flights asset sets per customer.",
            "Number of ENABLED assets per dynamic flights asset set.",
            "Number of ENABLED dynamic travel asset sets per customer.",
            "Number of ENABLED assets per dynamic travel asset set.",
            "Number of ENABLED dynamic jobs asset sets per customer.",
            "Number of ENABLED assets per dynamic jobs asset set.",
            "Number of ENABLED business name CampaignAssets per campaign.",
            "Number of ENABLED business logo CampaignAssets per campaign.",
            "Number of versions per ad.",
            "Number of ENABLED user feeds per customer.",
            "Number of ENABLED system feeds per customer.",
            "Number of feed attributes per feed.",
            "Number of ENABLED feed items per customer.",
            "Number of ENABLED campaign feeds per customer.",
            "Number of ENABLED campaign feeds across all base campaigns for a customer.",
            "Number of ENABLED campaign feeds across all experiment campaigns for a customer.",
            "Number of ENABLED ad group feeds per customer.",
            "Number of ENABLED ad group feeds across all base campaigns for a customer.",
            "Number of ENABLED ad group feeds across all experiment campaigns for a customer.",
            "Number of ENABLED ad group feeds per campaign.",
            "Number of ENABLED feed items per customer.",
            "Number of feed items per feed item set.",
            "Number of ENABLED campaign experiments per customer.",
            "Number of video experiment arms per experiment.",
            "Number of owned labels per customer.",
            "Number of applied labels per campaign.",
            "Number of applied labels per ad group.",
            "Number of applied labels per ad group ad.",
            "Number of applied labels per ad group criterion.",
            "Number of customers with a single label applied.",
            "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.",
            "Number of keyword plan ad group keywords per keyword plan.",
            "Number of keyword plan ad groups per keyword plan.",
            "Number of keyword plan negative keywords (both campaign and ad group) per keyword plan.",
            "Number of keyword plan campaigns per keyword plan.",
            "Number of ENABLED conversion actions per customer.",
            "Number of operations in a single batch job.",
            "Number of PENDING or ENABLED batch jobs per customer.",
            "Number of hotel check-in date range bid modifiers per ad agroup.",
            "Number of shared sets of type ACCOUNT_LEVEL_NEGATIVE_KEYWORDS per account.",
            "Number of keywords per ACCOUNT_LEVEL_NEGATIVE_KEYWORDS shared set.",
            "Maximum number of asset per hotel property asset set.",
            "Maximum number of enabled hotel property assets per asset group.",
            "Number of criteria per brand shared set.",
            "Number of active brand list criteria per campaign.",
            "Maximum number of shared sets of brand type for an account.",
            "Maximum number of lookalike lists per customer.",
            "Total number of enabled IMAGE CampaignAssets with LOGO and LANDSCAPE_LOGO field types per campaign.",
            "Maximum number of active business message asset links at customer level.",
            "Maximum number of active WhatsApp business message asset links at campaign level.",
            "Maximum number of active WhatsApp business message asset links at ad group level.",
            "Number of ENABLED brand list criteria per ad group."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CAMPAIGNS_PER_CUSTOMER",
            "BASE_CAMPAIGNS_PER_CUSTOMER",
            "EXPERIMENT_CAMPAIGNS_PER_CUSTOMER",
            "HOTEL_CAMPAIGNS_PER_CUSTOMER",
            "SMART_SHOPPING_CAMPAIGNS_PER_CUSTOMER",
            "AD_GROUPS_PER_CAMPAIGN",
            "AD_GROUPS_PER_SHOPPING_CAMPAIGN",
            "AD_GROUPS_PER_HOTEL_CAMPAIGN",
            "REPORTING_AD_GROUPS_PER_LOCAL_CAMPAIGN",
            "REPORTING_AD_GROUPS_PER_APP_CAMPAIGN",
            "MANAGED_AD_GROUPS_PER_SMART_CAMPAIGN",
            "AD_GROUP_CRITERIA_PER_CUSTOMER",
            "BASE_AD_GROUP_CRITERIA_PER_CUSTOMER",
            "EXPERIMENT_AD_GROUP_CRITERIA_PER_CUSTOMER",
            "AD_GROUP_CRITERIA_PER_CAMPAIGN",
            "CAMPAIGN_CRITERIA_PER_CUSTOMER",
            "BASE_CAMPAIGN_CRITERIA_PER_CUSTOMER",
            "EXPERIMENT_CAMPAIGN_CRITERIA_PER_CUSTOMER",
            "WEBPAGE_CRITERIA_PER_CUSTOMER",
            "BASE_WEBPAGE_CRITERIA_PER_CUSTOMER",
            "EXPERIMENT_WEBPAGE_CRITERIA_PER_CUSTOMER",
            "COMBINED_AUDIENCE_CRITERIA_PER_AD_GROUP",
            "CUSTOMER_NEGATIVE_PLACEMENT_CRITERIA_PER_CUSTOMER",
            "CUSTOMER_NEGATIVE_YOUTUBE_CHANNEL_CRITERIA_PER_CUSTOMER",
            "CRITERIA_PER_AD_GROUP",
            "LISTING_GROUPS_PER_AD_GROUP",
            "EXPLICITLY_SHARED_BUDGETS_PER_CUSTOMER",
            "IMPLICITLY_SHARED_BUDGETS_PER_CUSTOMER",
            "COMBINED_AUDIENCE_CRITERIA_PER_CAMPAIGN",
            "NEGATIVE_KEYWORDS_PER_CAMPAIGN",
            "NEGATIVE_PLACEMENTS_PER_CAMPAIGN",
            "GEO_TARGETS_PER_CAMPAIGN",
            "NEGATIVE_IP_BLOCKS_PER_CAMPAIGN",
            "PROXIMITIES_PER_CAMPAIGN",
            "LISTING_SCOPES_PER_SHOPPING_CAMPAIGN",
            "LISTING_SCOPES_PER_NON_SHOPPING_CAMPAIGN",
            "NEGATIVE_KEYWORDS_PER_SHARED_SET",
            "NEGATIVE_PLACEMENTS_PER_SHARED_SET",
            "SHARED_SETS_PER_CUSTOMER_FOR_TYPE_DEFAULT",
            "SHARED_SETS_PER_CUSTOMER_FOR_NEGATIVE_PLACEMENT_LIST_LOWER",
            "HOTEL_ADVANCE_BOOKING_WINDOW_BID_MODIFIERS_PER_AD_GROUP",
            "BIDDING_STRATEGIES_PER_CUSTOMER",
            "BASIC_USER_LISTS_PER_CUSTOMER",
            "LOGICAL_USER_LISTS_PER_CUSTOMER",
            "RULE_BASED_USER_LISTS_PER_CUSTOMER",
            "BASE_AD_GROUP_ADS_PER_CUSTOMER",
            "EXPERIMENT_AD_GROUP_ADS_PER_CUSTOMER",
            "AD_GROUP_ADS_PER_CAMPAIGN",
            "TEXT_AND_OTHER_ADS_PER_AD_GROUP",
            "IMAGE_ADS_PER_AD_GROUP",
            "SHOPPING_SMART_ADS_PER_AD_GROUP",
            "RESPONSIVE_SEARCH_ADS_PER_AD_GROUP",
            "APP_ADS_PER_AD_GROUP",
            "APP_ENGAGEMENT_ADS_PER_AD_GROUP",
            "LOCAL_ADS_PER_AD_GROUP",
            "VIDEO_ADS_PER_AD_GROUP",
            "LEAD_FORM_CAMPAIGN_ASSETS_PER_CAMPAIGN",
            "PROMOTION_CUSTOMER_ASSETS_PER_CUSTOMER",
            "PROMOTION_CAMPAIGN_ASSETS_PER_CAMPAIGN",
            "PROMOTION_AD_GROUP_ASSETS_PER_AD_GROUP",
            "CALLOUT_CUSTOMER_ASSETS_PER_CUSTOMER",
            "CALLOUT_CAMPAIGN_ASSETS_PER_CAMPAIGN",
            "CALLOUT_AD_GROUP_ASSETS_PER_AD_GROUP",
            "SITELINK_CUSTOMER_ASSETS_PER_CUSTOMER",
            "SITELINK_CAMPAIGN_ASSETS_PER_CAMPAIGN",
            "SITELINK_AD_GROUP_ASSETS_PER_AD_GROUP",
            "STRUCTURED_SNIPPET_CUSTOMER_ASSETS_PER_CUSTOMER",
            "STRUCTURED_SNIPPET_CAMPAIGN_ASSETS_PER_CAMPAIGN",
            "STRUCTURED_SNIPPET_AD_GROUP_ASSETS_PER_AD_GROUP",
            "MOBILE_APP_CUSTOMER_ASSETS_PER_CUSTOMER",
            "MOBILE_APP_CAMPAIGN_ASSETS_PER_CAMPAIGN",
            "MOBILE_APP_AD_GROUP_ASSETS_PER_AD_GROUP",
            "HOTEL_CALLOUT_CUSTOMER_ASSETS_PER_CUSTOMER",
            "HOTEL_CALLOUT_CAMPAIGN_ASSETS_PER_CAMPAIGN",
            "HOTEL_CALLOUT_AD_GROUP_ASSETS_PER_AD_GROUP",
            "CALL_CUSTOMER_ASSETS_PER_CUSTOMER",
            "CALL_CAMPAIGN_ASSETS_PER_CAMPAIGN",
            "CALL_AD_GROUP_ASSETS_PER_AD_GROUP",
            "PRICE_CUSTOMER_ASSETS_PER_CUSTOMER",
            "PRICE_CAMPAIGN_ASSETS_PER_CAMPAIGN",
            "PRICE_AD_GROUP_ASSETS_PER_AD_GROUP",
            "AD_IMAGE_CAMPAIGN_ASSETS_PER_CAMPAIGN",
            "AD_IMAGE_AD_GROUP_ASSETS_PER_AD_GROUP",
            "PAGE_FEED_ASSET_SETS_PER_CUSTOMER",
            "DYNAMIC_EDUCATION_FEED_ASSET_SETS_PER_CUSTOMER",
            "ASSETS_PER_PAGE_FEED_ASSET_SET",
            "ASSETS_PER_DYNAMIC_EDUCATION_FEED_ASSET_SET",
            "DYNAMIC_REAL_ESTATE_ASSET_SETS_PER_CUSTOMER",
            "ASSETS_PER_DYNAMIC_REAL_ESTATE_ASSET_SET",
            "DYNAMIC_CUSTOM_ASSET_SETS_PER_CUSTOMER",
            "ASSETS_PER_DYNAMIC_CUSTOM_ASSET_SET",
            "DYNAMIC_HOTELS_AND_RENTALS_ASSET_SETS_PER_CUSTOMER",
            "ASSETS_PER_DYNAMIC_HOTELS_AND_RENTALS_ASSET_SET",
            "DYNAMIC_LOCAL_ASSET_SETS_PER_CUSTOMER",
            "ASSETS_PER_DYNAMIC_LOCAL_ASSET_SET",
            "DYNAMIC_FLIGHTS_ASSET_SETS_PER_CUSTOMER",
            "ASSETS_PER_DYNAMIC_FLIGHTS_ASSET_SET",
            "DYNAMIC_TRAVEL_ASSET_SETS_PER_CUSTOMER",
            "ASSETS_PER_DYNAMIC_TRAVEL_ASSET_SET",
            "DYNAMIC_JOBS_ASSET_SETS_PER_CUSTOMER",
            "ASSETS_PER_DYNAMIC_JOBS_ASSET_SET",
            "BUSINESS_NAME_CAMPAIGN_ASSETS_PER_CAMPAIGN",
            "BUSINESS_LOGO_CAMPAIGN_ASSETS_PER_CAMPAIGN",
            "VERSIONS_PER_AD",
            "USER_FEEDS_PER_CUSTOMER",
            "SYSTEM_FEEDS_PER_CUSTOMER",
            "FEED_ATTRIBUTES_PER_FEED",
            "FEED_ITEMS_PER_CUSTOMER",
            "CAMPAIGN_FEEDS_PER_CUSTOMER",
            "BASE_CAMPAIGN_FEEDS_PER_CUSTOMER",
            "EXPERIMENT_CAMPAIGN_FEEDS_PER_CUSTOMER",
            "AD_GROUP_FEEDS_PER_CUSTOMER",
            "BASE_AD_GROUP_FEEDS_PER_CUSTOMER",
            "EXPERIMENT_AD_GROUP_FEEDS_PER_CUSTOMER",
            "AD_GROUP_FEEDS_PER_CAMPAIGN",
            "FEED_ITEM_SETS_PER_CUSTOMER",
            "FEED_ITEMS_PER_FEED_ITEM_SET",
            "CAMPAIGN_EXPERIMENTS_PER_CUSTOMER",
            "EXPERIMENT_ARMS_PER_VIDEO_EXPERIMENT",
            "OWNED_LABELS_PER_CUSTOMER",
            "LABELS_PER_CAMPAIGN",
            "LABELS_PER_AD_GROUP",
            "LABELS_PER_AD_GROUP_AD",
            "LABELS_PER_AD_GROUP_CRITERION",
            "TARGET_CUSTOMERS_PER_LABEL",
            "KEYWORD_PLANS_PER_USER_PER_CUSTOMER",
            "KEYWORD_PLAN_AD_GROUP_KEYWORDS_PER_KEYWORD_PLAN",
            "KEYWORD_PLAN_AD_GROUPS_PER_KEYWORD_PLAN",
            "KEYWORD_PLAN_NEGATIVE_KEYWORDS_PER_KEYWORD_PLAN",
            "KEYWORD_PLAN_CAMPAIGNS_PER_KEYWORD_PLAN",
            "CONVERSION_ACTIONS_PER_CUSTOMER",
            "BATCH_JOB_OPERATIONS_PER_JOB",
            "BATCH_JOBS_PER_CUSTOMER",
            "HOTEL_CHECK_IN_DATE_RANGE_BID_MODIFIERS_PER_AD_GROUP",
            "SHARED_SETS_PER_ACCOUNT_FOR_ACCOUNT_LEVEL_NEGATIVE_KEYWORDS",
            "ACCOUNT_LEVEL_NEGATIVE_KEYWORDS_PER_SHARED_SET",
            "ENABLED_ASSET_PER_HOTEL_PROPERTY_ASSET_SET",
            "ENABLED_HOTEL_PROPERTY_ASSET_LINKS_PER_ASSET_GROUP",
            "BRANDS_PER_SHARED_SET",
            "ENABLED_BRAND_LIST_CRITERIA_PER_CAMPAIGN",
            "SHARED_SETS_PER_ACCOUNT_FOR_BRAND",
            "LOOKALIKE_USER_LISTS_PER_CUSTOMER",
            "LOGO_CAMPAIGN_ASSETS_PER_CAMPAIGN",
            "BUSINESS_MESSAGE_ASSET_LINKS_PER_CUSTOMER",
            "WHATSAPP_BUSINESS_MESSAGE_ASSET_LINKS_PER_CAMPAIGN",
            "WHATSAPP_BUSINESS_MESSAGE_ASSET_LINKS_PER_AD_GROUP",
            "BRAND_LIST_CRITERIA_PER_AD_GROUP"
          ]
        },
        "enclosingResource": {
          "type": "string",
          "description": "The name of the resource (Customer, Campaign etc.) whose limit was exceeded."
        },
        "enclosingId": {
          "type": "string",
          "description": "The ID of the resource whose limit was exceeded. External customer ID if the limit is for a customer."
        },
        "limit": {
          "type": "integer",
          "format": "int32",
          "description": "The limit which was exceeded."
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Errors__ResourceCountDetails"
    },
    "GoogleAdsGoogleadsV23Services__MutateGoogleAdsRequest": {
      "id": "GoogleAdsGoogleadsV23Services__MutateGoogleAdsRequest",
      "description": "Request message for GoogleAdsService.Mutate.",
      "properties": {
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "mutateOperations": {
          "description": "Required. The list of operations to perform on individual resources.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateOperation"
          },
          "type": "array"
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "responseContentType": {
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation. The mutable resource will only be returned if the resource has the appropriate response field. For example, MutateCampaignResult.campaign.",
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ]
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__PlannedProductForecast": {
      "id": "GoogleAdsGoogleadsV23Services__PlannedProductForecast",
      "type": "object",
      "properties": {
        "averageFrequency": {
          "description": "The number of times per selected time unit a user will see an ad, averaged over the number of time units in the forecast length. This field will only be populated for a Target Frequency campaign. See https://support.google.com/google-ads/answer/12400225 for more information about Target Frequency campaigns.",
          "type": "number",
          "format": "double"
        },
        "onTargetImpressions": {
          "description": "Number of ad impressions that exactly matches the Targeting.",
          "type": "string",
          "format": "int64"
        },
        "conversions": {
          "type": "number",
          "description": "The number of conversions. This metric is only available for DEMAND_GEN plannable products. See https://support.google.com/google-ads/answer/2375431 for more information on conversions.",
          "format": "double"
        },
        "onTargetReach": {
          "format": "int64",
          "type": "string",
          "description": "Number of unique people reached that exactly matches the Targeting. Note that a minimum number of unique people must be reached in order for data to be reported. If the minimum number is not met, the on_target_reach value will be rounded to 0."
        },
        "totalCoviewImpressions": {
          "description": "Total number of ad impressions including co-viewers. This includes impressions that may fall outside the specified Targeting, due to insufficient information on signed-in users.",
          "type": "string",
          "format": "int64"
        },
        "trueviewViews": {
          "format": "int64",
          "description": "Number of ad views forecasted for the specified product and targeting. A TrueView View is counted when a viewer views a larger portion or the entirety of an ad beyond an impression. See https://support.google.com/google-ads/answer/2375431 for more information on TrueView Views.",
          "type": "string"
        },
        "viewableImpressions": {
          "description": "Number of times the ad's impressions were considered viewable. See https://support.google.com/google-ads/answer/7029393 for more information about what makes an ad viewable and how viewability is measured.",
          "type": "string",
          "format": "int64"
        },
        "totalReach": {
          "description": "Number of unique people reached. This includes people that may fall outside the specified Targeting. Note that a minimum number of unique people must be reached in order for data to be reported. If the minimum number is not met, the total_reach value will be rounded to 0.",
          "type": "string",
          "format": "int64"
        },
        "totalImpressions": {
          "type": "string",
          "description": "Total number of ad impressions. This includes impressions that may fall outside the specified Targeting, due to insufficient information on signed-in users.",
          "format": "int64"
        },
        "onTargetCoviewImpressions": {
          "type": "string",
          "format": "int64",
          "description": "Number of ad impressions that exactly matches the Targeting including co-viewers."
        },
        "onTargetCoviewReach": {
          "type": "string",
          "format": "int64",
          "description": "Number of unique people reached that exactly matches the Targeting including co-viewers."
        },
        "totalCoviewReach": {
          "type": "string",
          "description": "Number of unique people reached including co-viewers. This includes people that may fall outside the specified Targeting.",
          "format": "int64"
        }
      },
      "description": "Forecasted traffic metrics for a planned product."
    },
    "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_MoveUnusedBudgetParameters": {
      "id": "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_MoveUnusedBudgetParameters",
      "properties": {
        "budgetMicrosToMove": {
          "type": "string",
          "description": "Budget amount to move from excess budget to constrained budget. This is a required field.",
          "format": "int64"
        }
      },
      "description": "Parameters to use when applying move unused budget recommendation.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__PhoneCallDetails": {
      "properties": {
        "callDurationMillis": {
          "description": "Output only. The duration (in milliseconds) of the phone call (end to end).",
          "format": "int64",
          "readOnly": true,
          "type": "string"
        },
        "callRecordingUrl": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. URL to the call recording audio file."
        }
      },
      "description": "Represents details of a phone call conversation.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__PhoneCallDetails"
    },
    "GoogleAdsGoogleadsV23Services__DismissRecommendationRequest": {
      "description": "Request message for RecommendationService.DismissRecommendation.",
      "id": "GoogleAdsGoogleadsV23Services__DismissRecommendationRequest",
      "type": "object",
      "properties": {
        "operations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services_DismissRecommendationRequest_DismissRecommendationOperation"
          },
          "description": "Required. The list of operations to dismiss recommendations. If partial_failure=false all recommendations should be of the same type There is a limit of 100 operations per request.",
          "type": "array"
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, operations will be carried in a single transaction if and only if they are all valid. Default is false."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateCustomerManagerLinkRequest": {
      "type": "object",
      "properties": {
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "operations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__CustomerManagerLinkOperation"
          },
          "description": "Required. The list of operations to perform on individual customer manager links.",
          "type": "array"
        }
      },
      "description": "Request message for CustomerManagerLinkService.MutateCustomerManagerLink.",
      "id": "GoogleAdsGoogleadsV23Services__MutateCustomerManagerLinkRequest"
    },
    "GoogleAdsGoogleadsV23Services__MutateAdGroupBidModifierResult": {
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        },
        "adGroupBidModifier": {
          "description": "The mutated ad group bid modifier with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV23Resources__AdGroupBidModifier"
        }
      },
      "description": "The result for the criterion mutate.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateAdGroupBidModifierResult"
    },
    "GoogleAdsGoogleadsV23Resources_ListingGroupFilterDimension_WebpageCondition": {
      "properties": {
        "customLabel": {
          "description": "Filters the URLs in a page feed that have this custom label. A custom label can be added to a campaign by creating an AssetSet of type PAGE_FEED and linking it to the campaign using CampaignAssetSet.",
          "type": "string"
        },
        "urlContains": {
          "type": "string",
          "description": "Filters the URLs in a page feed and the URLs from the advertiser web domain that contain this string."
        }
      },
      "description": "Matching condition for URL filtering.",
      "id": "GoogleAdsGoogleadsV23Resources_ListingGroupFilterDimension_WebpageCondition",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__OfflineUserDataJobMetadata": {
      "type": "object",
      "description": "Metadata of offline user data job.",
      "id": "GoogleAdsGoogleadsV23Resources__OfflineUserDataJobMetadata",
      "properties": {
        "matchRateRange": {
          "description": "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\".",
          "enumDescriptions": [
            "Not specified.",
            "Default value for match rate range.",
            "Match rate range for offline data upload entity is between 0% and 19%.",
            "Match rate range for offline data upload entity is between 20% and 30%.",
            "Match rate range for offline data upload entity is between 31% and 40%.",
            "Match rate range for offline data upload entity is between 41% and 50%.",
            "Match rate range for offline data upload entity is between 51% and 60%.",
            "Match rate range for offline data upload entity is between 61% and 70%.",
            "Match rate range for offline data upload entity is between 71% and 80%.",
            "Match rate range for offline data upload entity is between 81% and 90%.",
            "Match rate range for offline data upload entity is more than or equal to 91%."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MATCH_RANGE_LESS_THAN_20",
            "MATCH_RANGE_20_TO_30",
            "MATCH_RANGE_31_TO_40",
            "MATCH_RANGE_41_TO_50",
            "MATCH_RANGE_51_TO_60",
            "MATCH_RANGE_61_TO_70",
            "MATCH_RANGE_71_TO_80",
            "MATCH_RANGE_81_TO_90",
            "MATCH_RANGE_91_TO_100"
          ],
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__AssetLinkPrimaryStatusDetails": {
      "description": "Provides the detail of a PrimaryStatus. Each asset link has a PrimaryStatus value (e.g. NOT_ELIGIBLE, meaning not serving), and list of corroborating PrimaryStatusReasons (e.g. [ASSET_DISAPPROVED]). Each reason may have some additional details annotated with it. For instance, when the reason is ASSET_DISAPPROVED, the details field will contain additional information about the offline evaluation errors which led to the asset being disapproved.",
      "id": "GoogleAdsGoogleadsV23Common__AssetLinkPrimaryStatusDetails",
      "properties": {
        "status": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is eligible to serve.",
            "The user-specified asset link status is paused.",
            "The user-specified asset link status is removed.",
            "The asset may serve in the future.",
            "The asset is serving in a partial capacity.",
            "The asset is not eligible to serve."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ELIGIBLE",
            "PAUSED",
            "REMOVED",
            "PENDING",
            "LIMITED",
            "NOT_ELIGIBLE"
          ],
          "description": "Provides the PrimaryStatus of this status detail."
        },
        "reason": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is paused for its linked rollup level. Contributes to a PrimaryStatus of PAUSED.",
            "The asset is removed for its linked rollup level. Contributes to a PrimaryStatus of REMOVED.",
            "The asset has been marked as disapproved. Contributes to a PrimaryStatus of NOT_ELIGIBLE",
            "The asset has not completed policy review. Contributes to a PrimaryStatus of PENDING.",
            "The asset is approved with policies applied. Contributes to a PrimaryStatus of LIMITED."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ASSET_LINK_PAUSED",
            "ASSET_LINK_REMOVED",
            "ASSET_DISAPPROVED",
            "ASSET_UNDER_REVIEW",
            "ASSET_APPROVED_LABELED"
          ],
          "type": "string",
          "description": "Provides the reason of this PrimaryStatus."
        },
        "assetDisapproved": {
          "description": "Provides the details for AssetLinkPrimaryStatusReason.ASSET_DISAPPROVED",
          "$ref": "GoogleAdsGoogleadsV23Common__AssetDisapproved"
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateCampaignDraftResult": {
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        },
        "campaignDraft": {
          "description": "The mutated campaign draft with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV23Resources__CampaignDraft"
        }
      },
      "description": "The result for the campaign draft mutate.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateCampaignDraftResult"
    },
    "GoogleAdsGoogleadsV23Errors__QuotaErrorDetails": {
      "id": "GoogleAdsGoogleadsV23Errors__QuotaErrorDetails",
      "type": "object",
      "description": "Additional quota error details when there is QuotaError.",
      "properties": {
        "retryDelay": {
          "format": "google-duration",
          "description": "Backoff period that customers should wait before sending next request.",
          "type": "string"
        },
        "rateName": {
          "description": "The high level description of the quota bucket. Examples are \"Get requests for standard access\" or \"Requests per account\".",
          "type": "string"
        },
        "rateScope": {
          "description": "The rate scope of the quota limit.",
          "type": "string",
          "enumDescriptions": [
            "Unspecified enum",
            "Used for return value only. Represents value unknown in this version.",
            "Per customer account quota",
            "Per project or DevToken quota"
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ACCOUNT",
            "DEVELOPER"
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__EnablePMaxBrandGuidelinesRequest": {
      "properties": {
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__EnableOperation"
          },
          "description": "Required. The list of individual campaign operations. A maximum of 10 enable operations can be executed in a request."
        }
      },
      "description": "Request to enable Brand Guidelines for a Performance Max campaign.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__EnablePMaxBrandGuidelinesRequest"
    },
    "GoogleAdsGoogleadsV23Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_ConversionValueMapping": {
      "id": "GoogleAdsGoogleadsV23Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_ConversionValueMapping",
      "type": "object",
      "description": "Represents mapping from one conversion value to one or more conversion events.",
      "properties": {
        "maxTimePostInstallHours": {
          "type": "string",
          "description": "Output only. The maximum of the time range in which a user was last active during the measurement window.",
          "format": "int64",
          "readOnly": true
        },
        "mappedEvents": {
          "type": "array",
          "description": "Output only. The conversion value may be mapped to multiple events with various attributes.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_Event"
          },
          "readOnly": true
        },
        "minTimePostInstallHours": {
          "type": "string",
          "description": "Output only. The minimum of the time range in which a user was last active during the measurement window.",
          "readOnly": true,
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaEvent_EventOccurrenceRange": {
      "id": "GoogleAdsGoogleadsV23Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaEvent_EventOccurrenceRange",
      "properties": {
        "maxEventCount": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. For event counter ranges, the maximum of the defined range. A value of 0 will be treated as unset.",
          "format": "int64"
        },
        "minEventCount": {
          "type": "string",
          "description": "Output only. For event counter ranges, the minimum of the defined range. A value of 0 will be treated as unset.",
          "format": "int64",
          "readOnly": true
        }
      },
      "description": "Defines a range for event counter values.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateKeywordPlanCampaignKeywordResult": {
      "id": "GoogleAdsGoogleadsV23Services__MutateKeywordPlanCampaignKeywordResult",
      "description": "The result for the Keyword Plan campaign keyword mutate.",
      "type": "object",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources_AdStrengthActionItem_AddAssetDetails": {
      "id": "GoogleAdsGoogleadsV23Resources_AdStrengthActionItem_AddAssetDetails",
      "type": "object",
      "description": "The details of the asset to add.",
      "properties": {
        "videoAspectRatioRequirement": {
          "enumDescriptions": [
            "Not specified.",
            "The received value is not known in this version.",
            "The video requires a horizontal aspect ratio.",
            "The video requires a square aspect ratio.",
            "The video requires a vertical aspect ratio."
          ],
          "type": "string",
          "description": "Output only. For video field types, the required aspect ratio of the video. When unset and asset_field_type is YOUTUBE_VIDEO, the system recommends the advertiser upload any YouTube video, regardless of aspect ratio.",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HORIZONTAL",
            "SQUARE",
            "VERTICAL"
          ]
        },
        "assetFieldType": {
          "type": "string",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is linked for use as a headline.",
            "The asset is linked for use as a description.",
            "The asset is linked for use as mandatory ad text.",
            "The asset is linked for use as a marketing image.",
            "The asset is linked for use as a media bundle.",
            "The asset is linked for use as a YouTube video.",
            "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
            "The asset is linked for use as a Lead Form extension.",
            "The asset is linked for use as a Promotion extension.",
            "The asset is linked for use as a Callout extension.",
            "The asset is linked for use as a Structured Snippet extension.",
            "The asset is linked for use as a Sitelink.",
            "The asset is linked for use as a Mobile App extension.",
            "The asset is linked for use as a Hotel Callout extension.",
            "The asset is linked for use as a Call extension.",
            "The asset is linked for use as a Price extension.",
            "The asset is linked for use as a long headline.",
            "The asset is linked for use as a business name.",
            "The asset is linked for use as a square marketing image.",
            "The asset is linked for use as a portrait marketing image.",
            "The asset is linked for use as a logo.",
            "The asset is linked for use as a landscape logo.",
            "The asset is linked for use as a non YouTube logo.",
            "The asset is linked for use to select a call-to-action.",
            "The asset is linked for use to select an ad image.",
            "The asset is linked for use as a business logo.",
            "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
            "The asset is linked for use as a Demand Gen carousel card.",
            "The asset is linked for use as a Business Message.",
            "The asset is linked for use as a tall portrait marketing image.",
            "The asset is linked for use as related YouTube videos.",
            "The asset is linked for use as a landing page preview image.",
            "The asset is linked for use as a long description.",
            "The asset is linked for use as a call-to-action."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE",
            "DESCRIPTION",
            "MANDATORY_AD_TEXT",
            "MARKETING_IMAGE",
            "MEDIA_BUNDLE",
            "YOUTUBE_VIDEO",
            "BOOK_ON_GOOGLE",
            "LEAD_FORM",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "LONG_HEADLINE",
            "BUSINESS_NAME",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "VIDEO",
            "CALL_TO_ACTION_SELECTION",
            "AD_IMAGE",
            "BUSINESS_LOGO",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "TALL_PORTRAIT_MARKETING_IMAGE",
            "RELATED_YOUTUBE_VIDEOS",
            "LANDING_PAGE_PREVIEW",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION"
          ],
          "description": "Output only. The asset field type of the asset(s) to add."
        },
        "assetCount": {
          "readOnly": true,
          "format": "int32",
          "description": "Output only. The number of assets to add.",
          "type": "integer"
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__QualifyingQuestion": {
      "type": "object",
      "description": "Qualifying Questions for Lead Form.",
      "id": "GoogleAdsGoogleadsV23Resources__QualifyingQuestion",
      "properties": {
        "locale": {
          "type": "string",
          "description": "Output only. The locale of the qualifying question.",
          "readOnly": true
        },
        "qualifyingQuestionId": {
          "type": "string",
          "description": "Output only. The id of the qualifying question.",
          "readOnly": true,
          "format": "int64"
        },
        "resourceName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the qualifying question. 'qualifyingQuestions/{qualifyingQuestionId}'"
        },
        "text": {
          "readOnly": true,
          "description": "Output only. The qualifying question.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__HotelStateInfo": {
      "type": "object",
      "properties": {
        "stateCriterion": {
          "description": "The Geo Target Constant resource name.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__HotelStateInfo",
      "description": "State the hotel is located in."
    },
    "GoogleAdsGoogleadsV23Resources_Recommendation_CalloutAssetRecommendation": {
      "properties": {
        "recommendedCampaignCalloutAssets": {
          "readOnly": true,
          "type": "array",
          "description": "Output only. New callout extension assets recommended at the campaign level.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Resources__Asset"
          }
        },
        "recommendedCustomerCalloutAssets": {
          "description": "Output only. New callout extension assets recommended at the customer level.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Resources__Asset"
          },
          "readOnly": true,
          "type": "array"
        }
      },
      "description": "The callout asset recommendation.",
      "id": "GoogleAdsGoogleadsV23Resources_Recommendation_CalloutAssetRecommendation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__Customer": {
      "type": "object",
      "description": "A customer.",
      "properties": {
        "videoCustomer": {
          "description": "Video specific information about a Customer.",
          "$ref": "GoogleAdsGoogleadsV23Resources__VideoCustomer"
        },
        "status": {
          "description": "Output only. The status of the customer.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Indicates an active account able to serve ads.",
            "Indicates a canceled account unable to serve ads. Can be reactivated by an admin user.",
            "Indicates a suspended account unable to serve ads. May only be activated by Google support.",
            "Indicates a closed account unable to serve ads. Test account will also have CLOSED status. Status is permanent and may not be reopened."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "CANCELED",
            "SUSPENDED",
            "CLOSED"
          ],
          "readOnly": true
        },
        "remarketingSetting": {
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV23Resources__RemarketingSetting",
          "description": "Output only. Remarketing setting for a customer."
        },
        "trackingUrlTemplate": {
          "type": "string",
          "description": "The URL template for constructing a tracking URL out of parameters. Only mutable in an `update` operation."
        },
        "optimizationScoreWeight": {
          "readOnly": true,
          "description": "Output only. Optimization score weight of the customer. Optimization score weight can be used to compare/aggregate optimization scores across multiple non-manager customers. The aggregate optimization score of a manager is computed as the sum over all of their customers of `Customer.optimization_score * Customer.optimization_score_weight`. This field is 0 for all manager customers, and for unscored non-manager customers. This field is read-only.",
          "format": "double",
          "type": "number"
        },
        "customerAgreementSetting": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CustomerAgreementSetting",
          "description": "Output only. Customer Agreement Setting for a customer.",
          "readOnly": true
        },
        "callReportingSetting": {
          "description": "Call reporting setting for a customer. Only mutable in an `update` operation.",
          "$ref": "GoogleAdsGoogleadsV23Resources__CallReportingSetting"
        },
        "imageAssetAutoMigrationDoneDateTime": {
          "description": "Output only. Timestamp of migration from feed based image to asset base image in yyyy-MM-dd HH:mm:ss format.",
          "readOnly": true,
          "type": "string"
        },
        "currencyCode": {
          "description": "Immutable. The currency in which the account operates. A subset of the currency codes from the ISO 4217 standard is supported.",
          "type": "string"
        },
        "autoTaggingEnabled": {
          "description": "Whether auto-tagging is enabled for the customer. Only mutable in an `update` operation.",
          "type": "boolean"
        },
        "locationAssetAutoMigrationDoneDateTime": {
          "type": "string",
          "description": "Output only. Timestamp of migration from feed based location to asset base location in yyyy-MM-dd HH:mm:ss format.",
          "readOnly": true
        },
        "testAccount": {
          "description": "Output only. Whether the customer is a test account.",
          "readOnly": true,
          "type": "boolean"
        },
        "finalUrlSuffix": {
          "type": "string",
          "description": "The URL template for appending params to the final URL. Only mutable in an `update` operation."
        },
        "timeZone": {
          "description": "Immutable. The local timezone ID of the customer.",
          "type": "string"
        },
        "videoBrandSafetySuitability": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EXPANDED_INVENTORY",
            "STANDARD_INVENTORY",
            "LIMITED_INVENTORY"
          ],
          "type": "string",
          "description": "Brand Safety setting at the account level. Allows for selecting an inventory type to show your ads on content that is the right fit for your brand. See https://support.google.com/google-ads/answer/7515513.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "This option lets you show ads across all inventory on YouTube and video partners that meet our standards for monetization. This option may be an appropriate choice for brands that want maximum access to the full breadth of videos eligible for ads, including, for example, videos that have strong profanity in the context of comedy or a documentary, or excessive violence as featured in video games.",
            "This option lets you show ads across a wide range of content that's appropriate for most brands, such as popular music videos, documentaries, and movie trailers. The content you can show ads on is based on YouTube's advertiser-friendly content guidelines that take into account, for example, the strength or frequency of profanity, or the appropriateness of subject matter like sensitive events. Ads won't show, for example, on content with repeated strong profanity, strong sexual content, or graphic violence.",
            "This option lets you show ads on a reduced range of content that's appropriate for brands with particularly strict guidelines around inappropriate language and sexual suggestiveness; above and beyond what YouTube's advertiser-friendly content guidelines address. The videos accessible in this sensitive category meet heightened requirements, especially for inappropriate language and sexual suggestiveness. For example, your ads will be excluded from showing on some of YouTube's most popular music videos and other pop culture content across YouTube and Google video partners."
          ]
        },
        "descriptiveName": {
          "type": "string",
          "description": "Optional, non-unique descriptive name of the customer."
        },
        "payPerConversionEligibilityFailureReasons": {
          "readOnly": true,
          "type": "array",
          "description": "Output only. Reasons why the customer is not eligible to use PaymentMode.CONVERSIONS. If the list is empty, the customer is eligible. This field is read-only.",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "Customer does not have enough conversions.",
              "Customer's conversion lag is too high.",
              "Customer uses shared budgets.",
              "Customer has conversions with ConversionActionType.UPLOAD_CLICKS.",
              "Customer's average daily spend is too high.",
              "Customer's eligibility has not yet been calculated by the Google Ads backend. Check back soon.",
              "Customer is not eligible due to other reasons."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "NOT_ENOUGH_CONVERSIONS",
              "CONVERSION_LAG_TOO_HIGH",
              "HAS_CAMPAIGN_WITH_SHARED_BUDGET",
              "HAS_UPLOAD_CLICKS_CONVERSION",
              "AVERAGE_DAILY_SPEND_TOO_HIGH",
              "ANALYSIS_NOT_COMPLETE",
              "OTHER"
            ]
          }
        },
        "conversionTrackingSetting": {
          "description": "Conversion tracking setting for a customer.",
          "$ref": "GoogleAdsGoogleadsV23Resources__ConversionTrackingSetting"
        },
        "manager": {
          "readOnly": true,
          "type": "boolean",
          "description": "Output only. Whether the customer is a manager."
        },
        "locationAssetAutoMigrationDone": {
          "description": "Output only. True if feed based location has been migrated to asset based location.",
          "type": "boolean",
          "readOnly": true
        },
        "resourceName": {
          "description": "Immutable. The resource name of the customer. Customer resource names have the form: `customers/{customer_id}`",
          "type": "string"
        },
        "hasPartnersBadge": {
          "description": "Output only. Whether the Customer has a Partners program badge. If the Customer is not associated with the Partners program, this will be false. For more information, see https://support.google.com/partners/answer/3125774.",
          "type": "boolean",
          "readOnly": true
        },
        "localServicesSettings": {
          "$ref": "GoogleAdsGoogleadsV23Resources__LocalServicesSettings",
          "readOnly": true,
          "description": "Output only. Settings for Local Services customer."
        },
        "imageAssetAutoMigrationDone": {
          "type": "boolean",
          "readOnly": true,
          "description": "Output only. True if feed based image has been migrated to asset based image."
        },
        "id": {
          "format": "int64",
          "type": "string",
          "description": "Output only. The ID of the customer.",
          "readOnly": true
        },
        "optimizationScore": {
          "readOnly": true,
          "type": "number",
          "description": "Output only. Optimization score of the customer. Optimization score is an estimate of how well a customer's campaigns are set to perform. It ranges from 0% (0.0) to 100% (1.0). This field is null for all manager customers, and for unscored non-manager customers. See \"About optimization score\" at https://support.google.com/google-ads/answer/9061546. This field is read-only.",
          "format": "double"
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__Customer"
    },
    "GoogleAdsGoogleadsV23Services__MutateCustomerLabelsRequest": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateCustomerLabelsRequest",
      "properties": {
        "operations": {
          "description": "Required. The list of operations to perform on customer-label relationships.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__CustomerLabelOperation"
          }
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        }
      },
      "description": "Request message for CustomerLabelService.MutateCustomerLabels."
    },
    "GoogleAdsGoogleadsV23Services__CustomConversionGoalOperation": {
      "description": "A single operation (create, remove) on a custom conversion goal.",
      "type": "object",
      "properties": {
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed custom conversion goal is expected, in this format: 'customers/{customer_id}/customConversionGoals/{goal_id}'"
        },
        "updateMask": {
          "format": "google-fieldmask",
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new custom conversion goal",
          "$ref": "GoogleAdsGoogleadsV23Resources__CustomConversionGoal"
        },
        "update": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CustomConversionGoal",
          "description": "Update operation: The custom conversion goal is expected to have a valid resource name."
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__CustomConversionGoalOperation"
    },
    "GoogleAdsGoogleadsV23Services__TrendInsight": {
      "properties": {
        "relatedCreators": {
          "type": "array",
          "description": "Related creators for this topic. Only populated for trends using search_topics.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__YouTubeCreatorInsights"
          }
        },
        "trendAttribute": {
          "description": "The attribute this trend is for.",
          "$ref": "GoogleAdsGoogleadsV23Common__AudienceInsightsAttributeMetadata"
        },
        "trend": {
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "This is a new trend.",
            "This trend has increased recently.",
            "This trend has remained stable.",
            "This trend is declining."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EMERGING",
            "RISING",
            "SUSTAINED",
            "DECLINING"
          ],
          "description": "The direction of trend (such as RISING or DECLINING).",
          "type": "string"
        },
        "trendMetrics": {
          "$ref": "GoogleAdsGoogleadsV23Services__TrendInsightMetrics",
          "description": "Metrics associated with this trend."
        },
        "relatedVideos": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AudienceInsightsAttributeMetadata"
          },
          "description": "Related videos for this topic. Only populated for trends using search_topics."
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__TrendInsight",
      "type": "object",
      "description": "A trend insight for a given attribute."
    },
    "GoogleAdsGoogleadsV23Resources_ConversionValueRule_ValueRuleItineraryAdvanceBookingWindow": {
      "id": "GoogleAdsGoogleadsV23Resources_ConversionValueRule_ValueRuleItineraryAdvanceBookingWindow",
      "description": "Range for the number of days between the date of the booking and the start of the itinerary.",
      "type": "object",
      "properties": {
        "minDays": {
          "format": "int32",
          "description": "Minimum number of days between the date of the booking the start date.",
          "type": "integer"
        },
        "maxDays": {
          "description": "Maximum number of days between the date of the booking the start date.",
          "format": "int32",
          "type": "integer"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__CampaignAssetOperation": {
      "properties": {
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string",
          "format": "google-fieldmask"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new campaign asset.",
          "$ref": "GoogleAdsGoogleadsV23Resources__CampaignAsset"
        },
        "update": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CampaignAsset",
          "description": "Update operation: The campaign asset is expected to have a valid resource name."
        },
        "remove": {
          "description": "Remove operation: A resource name for the removed campaign asset is expected, in this format: `customers/{customer_id}/campaignAssets/{campaign_id}~{asset_id}~{field_type}`",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__CampaignAssetOperation",
      "description": "A single operation (create, update, remove) on a campaign asset."
    },
    "GoogleAdsGoogleadsV23Common__SitelinkAsset": {
      "id": "GoogleAdsGoogleadsV23Common__SitelinkAsset",
      "description": "A Sitelink asset.",
      "type": "object",
      "properties": {
        "adScheduleTargets": {
          "description": "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.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdScheduleInfo"
          },
          "type": "array"
        },
        "endDate": {
          "description": "Last date of when this asset is effective and still serving, in yyyy-MM-dd format.",
          "type": "string"
        },
        "description2": {
          "type": "string",
          "description": "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."
        },
        "startDate": {
          "description": "Start date of when this asset is effective and can begin serving, in yyyy-MM-dd format.",
          "type": "string"
        },
        "description1": {
          "type": "string",
          "description": "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."
        },
        "linkText": {
          "type": "string",
          "description": "Required. URL display text for the sitelink. The length of this string should be between 1 and 25, inclusive."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__KeywordPlanCampaignOperation": {
      "properties": {
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed Keyword Plan campaign is expected, in this format: `customers/{customer_id}/keywordPlanCampaigns/{keywordPlan_campaign_id}`"
        },
        "updateMask": {
          "format": "google-fieldmask",
          "type": "string",
          "description": "The FieldMask that determines which resource fields are modified in an update."
        },
        "update": {
          "$ref": "GoogleAdsGoogleadsV23Resources__KeywordPlanCampaign",
          "description": "Update operation: The Keyword Plan campaign is expected to have a valid resource name."
        },
        "create": {
          "$ref": "GoogleAdsGoogleadsV23Resources__KeywordPlanCampaign",
          "description": "Create operation: No resource name is expected for the new Keyword Plan campaign."
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__KeywordPlanCampaignOperation",
      "description": "A single operation (create, update, remove) on a Keyword Plan campaign.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__GetSmartCampaignStatusResponse": {
      "id": "GoogleAdsGoogleadsV23Services__GetSmartCampaignStatusResponse",
      "description": "Response message for SmartCampaignSettingService.GetSmartCampaignStatus.",
      "type": "object",
      "properties": {
        "notEligibleDetails": {
          "description": "Details related to Smart campaigns that are ineligible to serve.",
          "$ref": "GoogleAdsGoogleadsV23Services__SmartCampaignNotEligibleDetails"
        },
        "endedDetails": {
          "description": "Details related to Smart campaigns that have ended.",
          "$ref": "GoogleAdsGoogleadsV23Services__SmartCampaignEndedDetails"
        },
        "pausedDetails": {
          "description": "Details related to paused Smart campaigns.",
          "$ref": "GoogleAdsGoogleadsV23Services__SmartCampaignPausedDetails"
        },
        "removedDetails": {
          "description": "Details related to removed Smart campaigns.",
          "$ref": "GoogleAdsGoogleadsV23Services__SmartCampaignRemovedDetails"
        },
        "smartCampaignStatus": {
          "enumDescriptions": [
            "The status has not been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The campaign was paused.",
            "The campaign is not eligible to serve and has issues that may require intervention.",
            "The campaign is pending the approval of at least one ad.",
            "The campaign is eligible to serve.",
            "The campaign has been removed.",
            "The campaign has ended."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PAUSED",
            "NOT_ELIGIBLE",
            "PENDING",
            "ELIGIBLE",
            "REMOVED",
            "ENDED"
          ],
          "type": "string",
          "description": "The status of this Smart campaign."
        },
        "eligibleDetails": {
          "$ref": "GoogleAdsGoogleadsV23Services__SmartCampaignEligibleDetails",
          "description": "Details related to Smart campaigns that are eligible to serve."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateConversionCustomVariableResult": {
      "description": "The result for the conversion custom variable mutate.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        },
        "conversionCustomVariable": {
          "description": "The mutated conversion custom variable with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV23Resources__ConversionCustomVariable"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateConversionCustomVariableResult",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__AppPaymentModelInfo": {
      "id": "GoogleAdsGoogleadsV23Common__AppPaymentModelInfo",
      "type": "object",
      "properties": {
        "type": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Represents paid-for apps."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PAID"
          ],
          "description": "Type of the app payment model.",
          "type": "string"
        }
      },
      "description": "An app payment model criterion."
    },
    "GoogleAdsGoogleadsV23Resources__FinalUrlExpansionAssetView": {
      "type": "object",
      "description": "FinalUrlExpansionAssetView Resource.",
      "id": "GoogleAdsGoogleadsV23Resources__FinalUrlExpansionAssetView",
      "properties": {
        "assetGroup": {
          "readOnly": true,
          "description": "Output only. Asset Group in which FinalUrlExpansionAsset served.",
          "type": "string"
        },
        "resourceName": {
          "description": "Output only. The resource name of the FinalUrlExpansionAsset.",
          "type": "string",
          "readOnly": true
        },
        "campaign": {
          "description": "Output only. Campaign in which the asset served.",
          "type": "string",
          "readOnly": true
        },
        "fieldType": {
          "description": "Output only. The field type of the asset.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is linked for use as a headline.",
            "The asset is linked for use as a description.",
            "The asset is linked for use as mandatory ad text.",
            "The asset is linked for use as a marketing image.",
            "The asset is linked for use as a media bundle.",
            "The asset is linked for use as a YouTube video.",
            "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
            "The asset is linked for use as a Lead Form extension.",
            "The asset is linked for use as a Promotion extension.",
            "The asset is linked for use as a Callout extension.",
            "The asset is linked for use as a Structured Snippet extension.",
            "The asset is linked for use as a Sitelink.",
            "The asset is linked for use as a Mobile App extension.",
            "The asset is linked for use as a Hotel Callout extension.",
            "The asset is linked for use as a Call extension.",
            "The asset is linked for use as a Price extension.",
            "The asset is linked for use as a long headline.",
            "The asset is linked for use as a business name.",
            "The asset is linked for use as a square marketing image.",
            "The asset is linked for use as a portrait marketing image.",
            "The asset is linked for use as a logo.",
            "The asset is linked for use as a landscape logo.",
            "The asset is linked for use as a non YouTube logo.",
            "The asset is linked for use to select a call-to-action.",
            "The asset is linked for use to select an ad image.",
            "The asset is linked for use as a business logo.",
            "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
            "The asset is linked for use as a Demand Gen carousel card.",
            "The asset is linked for use as a Business Message.",
            "The asset is linked for use as a tall portrait marketing image.",
            "The asset is linked for use as related YouTube videos.",
            "The asset is linked for use as a landing page preview image.",
            "The asset is linked for use as a long description.",
            "The asset is linked for use as a call-to-action."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE",
            "DESCRIPTION",
            "MANDATORY_AD_TEXT",
            "MARKETING_IMAGE",
            "MEDIA_BUNDLE",
            "YOUTUBE_VIDEO",
            "BOOK_ON_GOOGLE",
            "LEAD_FORM",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "LONG_HEADLINE",
            "BUSINESS_NAME",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "VIDEO",
            "CALL_TO_ACTION_SELECTION",
            "AD_IMAGE",
            "BUSINESS_LOGO",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "TALL_PORTRAIT_MARKETING_IMAGE",
            "RELATED_YOUTUBE_VIDEOS",
            "LANDING_PAGE_PREVIEW",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION"
          ],
          "readOnly": true
        },
        "asset": {
          "readOnly": true,
          "description": "Output only. The ID of the asset.",
          "type": "string"
        },
        "status": {
          "description": "Output only. Status of the FinalUrlExpansionAsset.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED",
            "PAUSED"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Asset link is enabled.",
            "Asset link has been removed.",
            "Asset link is paused."
          ],
          "type": "string",
          "readOnly": true
        },
        "adGroup": {
          "description": "Output only. Ad Group in which FinalUrlExpansionAsset served.",
          "readOnly": true,
          "type": "string"
        },
        "finalUrl": {
          "description": "Output only. Final URL of the FinalUrlExpansionAsset.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources_CampaignVideoCampaignSettings_VideoAdInventoryControl": {
      "type": "object",
      "properties": {
        "allowShorts": {
          "type": "boolean",
          "description": "Determine if video responsive ads can be used as shorts format."
        },
        "allowInStream": {
          "description": "Determine if video responsive ads can be used for in-stream video ads.",
          "type": "boolean"
        },
        "allowInFeed": {
          "type": "boolean",
          "description": "Determine if video responsive ads can be used for in-feed video ads."
        },
        "allowNonSkippableInStream": {
          "type": "boolean",
          "description": "Determine if video responsive ads can be used for non-skippable in-stream ads. This is only available for campaigns that allow mixing of non-skippable with other formats (Video reach campaign with Target Frequency bidding strategy goal)."
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources_CampaignVideoCampaignSettings_VideoAdInventoryControl",
      "description": "For campaigns using video responsive ads inventory controls determine on which inventories the ads can be shown. This only applies for campaigns with the bidding strategies TARGET_CPM and FIXED_CPM."
    },
    "GoogleAdsGoogleadsV23Common_PolicyTopicEvidence_DestinationNotWorking": {
      "description": "Evidence details when the destination is returning an HTTP error code or isn't functional in all locations for commonly used devices.",
      "properties": {
        "dnsErrorType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HOSTNAME_NOT_FOUND",
            "GOOGLE_CRAWLER_DNS_ISSUE"
          ],
          "description": "The type of DNS error.",
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "Host name not found in DNS when fetching landing page.",
            "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."
          ]
        },
        "httpErrorCode": {
          "description": "The HTTP error code.",
          "type": "string",
          "format": "int64"
        },
        "lastCheckedDateTime": {
          "type": "string",
          "description": "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\""
        },
        "device": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DESKTOP",
            "ANDROID",
            "IOS"
          ],
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "Landing page doesn't work on desktop device.",
            "Landing page doesn't work on Android device.",
            "Landing page doesn't work on iOS device."
          ],
          "description": "The type of device that failed to load the URL.",
          "type": "string"
        },
        "expandedUrl": {
          "type": "string",
          "description": "The full URL that didn't work."
        }
      },
      "id": "GoogleAdsGoogleadsV23Common_PolicyTopicEvidence_DestinationNotWorking",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services_GenerateRecommendationsRequest_AssetGroupInfo": {
      "description": "Current AssetGroup information of the campaign.",
      "properties": {
        "description": {
          "description": "Optional. Current descriptions of the asset group. This field is optional for the following recommendation_types if asset_group_info is set: CAMPAIGN_BUDGET",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "finalUrl": {
          "description": "Required. Current url of the asset group. This field is necessary for the following recommendation_types if asset_group_info is set: CAMPAIGN_BUDGET",
          "type": "string"
        },
        "headline": {
          "items": {
            "type": "string"
          },
          "description": "Optional. Current headlines of the asset group. This field is optional for the following recommendation_types if asset_group_info is set: CAMPAIGN_BUDGET",
          "type": "array"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services_GenerateRecommendationsRequest_AssetGroupInfo"
    },
    "GoogleAdsGoogleadsV23Resources_Recommendation_ShoppingMerchantCenterAccountSuspensionRecommendation": {
      "id": "GoogleAdsGoogleadsV23Resources_Recommendation_ShoppingMerchantCenterAccountSuspensionRecommendation",
      "properties": {
        "feedLabel": {
          "readOnly": true,
          "description": "Output only. The feed label of the campaign for which the suspension happened.",
          "type": "string"
        },
        "merchant": {
          "description": "Output only. The details of the Merchant Center account.",
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_MerchantInfo",
          "readOnly": true
        }
      },
      "type": "object",
      "description": "The shopping recommendation to fix Merchant Center account suspension issues."
    },
    "GoogleAdsGoogleadsV23Services__PlannableTargeting": {
      "description": "The targeting for which traffic metrics will be reported.",
      "properties": {
        "devices": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__DeviceInfo"
          },
          "type": "array",
          "description": "Targetable devices for the ad product. TABLET device targeting is automatically applied to reported metrics when MOBILE targeting is selected for CPM_MASTHEAD, GOOGLE_PREFERRED_BUMPER, and GOOGLE_PREFERRED_SHORT products."
        },
        "genders": {
          "description": "Targetable genders for the ad product.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__GenderInfo"
          },
          "type": "array"
        },
        "surfaceTargeting": {
          "$ref": "GoogleAdsGoogleadsV23Services__SurfaceTargetingCombinations",
          "description": "Targetable surface combinations for the ad product."
        },
        "youtubeSelectLineups": {
          "type": "array",
          "description": "Targetable YouTube Select Lineups for the ad product.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__YouTubeSelectLineUp"
          }
        },
        "ageRanges": {
          "description": "Allowed plannable age ranges for the product for which metrics will be reported. Actual targeting is computed by mapping this age range onto standard Google common.AgeRangeInfo values.",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "The value is unknown in this version.",
              "Between 18 and 24 years old.",
              "Between 18 and 34 years old.",
              "Between 18 and 44 years old.",
              "Between 18 and 49 years old.",
              "Between 18 and 54 years old.",
              "Between 18 and 64 years old.",
              "Between 18 and 65+ years old.",
              "Between 21 and 34 years old.",
              "Between 25 and 34 years old.",
              "Between 25 and 44 years old.",
              "Between 25 and 49 years old.",
              "Between 25 and 54 years old.",
              "Between 25 and 64 years old.",
              "Between 25 and 65+ years old.",
              "Between 35 and 44 years old.",
              "Between 35 and 49 years old.",
              "Between 35 and 54 years old.",
              "Between 35 and 64 years old.",
              "Between 35 and 65+ years old.",
              "Between 45 and 54 years old.",
              "Between 45 and 64 years old.",
              "Between 45 and 65+ years old.",
              "Between 50 and 65+ years old.",
              "Between 55 and 64 years old.",
              "Between 55 and 65+ years old.",
              "65 years old and beyond."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "AGE_RANGE_18_24",
              "AGE_RANGE_18_34",
              "AGE_RANGE_18_44",
              "AGE_RANGE_18_49",
              "AGE_RANGE_18_54",
              "AGE_RANGE_18_64",
              "AGE_RANGE_18_65_UP",
              "AGE_RANGE_21_34",
              "AGE_RANGE_25_34",
              "AGE_RANGE_25_44",
              "AGE_RANGE_25_49",
              "AGE_RANGE_25_54",
              "AGE_RANGE_25_64",
              "AGE_RANGE_25_65_UP",
              "AGE_RANGE_35_44",
              "AGE_RANGE_35_49",
              "AGE_RANGE_35_54",
              "AGE_RANGE_35_64",
              "AGE_RANGE_35_65_UP",
              "AGE_RANGE_45_54",
              "AGE_RANGE_45_64",
              "AGE_RANGE_45_65_UP",
              "AGE_RANGE_50_65_UP",
              "AGE_RANGE_55_64",
              "AGE_RANGE_55_65_UP",
              "AGE_RANGE_65_UP"
            ]
          },
          "type": "array"
        },
        "networks": {
          "items": {
            "type": "string",
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "YOUTUBE",
              "GOOGLE_VIDEO_PARTNERS",
              "YOUTUBE_AND_GOOGLE_VIDEO_PARTNERS"
            ],
            "enumDescriptions": [
              "Not specified.",
              "Used as a return value only. Represents value unknown in this version.",
              "YouTube network.",
              "Google Video Partners (GVP) network.",
              "A combination of the YouTube network and the Google Video Partners network."
            ]
          },
          "description": "Targetable networks for the ad product.",
          "type": "array"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__PlannableTargeting"
    },
    "GoogleAdsGoogleadsV23Services__CriterionBidModifier": {
      "type": "object",
      "description": "Location Criterion bid modifier.",
      "properties": {
        "bidModifier": {
          "type": "number",
          "format": "double",
          "description": "The associated multiplier for the criterion_id. If set, this value cannot be 0."
        },
        "geoTargetConstant": {
          "description": "The resource name of the geo location to target. The resource name is of the format \"geoTargetConstants/{criterion_id}\".",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__CriterionBidModifier"
    },
    "GoogleAdsGoogleadsV23Services__SuggestGeoTargetConstantsRequest": {
      "id": "GoogleAdsGoogleadsV23Services__SuggestGeoTargetConstantsRequest",
      "properties": {
        "geoTargets": {
          "description": "The geo target constant resource names to filter by.",
          "$ref": "GoogleAdsGoogleadsV23Services_SuggestGeoTargetConstantsRequest_GeoTargets"
        },
        "countryCode": {
          "description": "Returned geo targets are restricted to this country code.",
          "type": "string"
        },
        "locale": {
          "type": "string",
          "description": "If possible, returned geo targets are translated using this locale. If not, en is used by default. This is also used as a hint for returned geo targets."
        },
        "locationNames": {
          "description": "The location names to search by. At most 25 names can be set.",
          "$ref": "GoogleAdsGoogleadsV23Services_SuggestGeoTargetConstantsRequest_LocationNames"
        }
      },
      "description": "Request message for GeoTargetConstantService.SuggestGeoTargetConstants.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources_Recommendation_UpgradeLocalCampaignToPerformanceMaxRecommendation": {
      "id": "GoogleAdsGoogleadsV23Resources_Recommendation_UpgradeLocalCampaignToPerformanceMaxRecommendation",
      "description": "The Upgrade Local campaign to Performance Max campaign recommendation.",
      "type": "object",
      "properties": {}
    },
    "GoogleAdsGoogleadsV23Services__MutateBiddingSeasonalityAdjustmentsRequest": {
      "properties": {
        "operations": {
          "description": "Required. The list of operations to perform on individual seasonality adjustments.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__BiddingSeasonalityAdjustmentOperation"
          },
          "type": "array"
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "responseContentType": {
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "type": "string"
        }
      },
      "type": "object",
      "description": "Request message for BiddingSeasonalityAdjustmentService.MutateBiddingSeasonalityAdjustments.",
      "id": "GoogleAdsGoogleadsV23Services__MutateBiddingSeasonalityAdjustmentsRequest"
    },
    "GoogleAdsGoogleadsV23Services__ProductRecontextGenerationImageInput": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__ProductRecontextGenerationImageInput",
      "properties": {
        "prompt": {
          "type": "string",
          "description": "Optional. A freeform description of the assets to be generated. Maximum character limit is 1500."
        },
        "sourceImages": {
          "description": "Required. Product images to use for generating new images. 1-3 images must be provided.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__SourceImage"
          },
          "type": "array"
        }
      },
      "description": "Input for generating new images by recontextualizing existing product images."
    },
    "GoogleAdsGoogleadsV23Common__VideoResponsiveAdInfo": {
      "properties": {
        "breadcrumb2": {
          "type": "string",
          "description": "Second part of text that appears in the ad with the displayed URL."
        },
        "descriptions": {
          "type": "array",
          "description": "List of text assets used for the description. Currently, only a single value for the description is supported.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdTextAsset"
          }
        },
        "companionBanners": {
          "type": "array",
          "description": "List of image assets used for the companion banner. Currently, only a single value for the companion banner asset is supported.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdImageAsset"
          }
        },
        "videos": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdVideoAsset"
          },
          "description": "List of YouTube video assets used for the ad. Currently, only a single value for the YouTube video asset is supported.",
          "type": "array"
        },
        "headlines": {
          "description": "List of text assets used for the short headline. Currently, only a single value for the short headline is supported.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdTextAsset"
          }
        },
        "longHeadlines": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdTextAsset"
          },
          "description": "List of text assets used for the long headline. Currently, only a single value for the long headline is supported."
        },
        "logoImages": {
          "type": "array",
          "description": "Optional logo image to be used in the ad. The minimum size is 128x128 and the aspect ratio must be 1:1(+-1%).",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdImageAsset"
          }
        },
        "breadcrumb1": {
          "description": "First part of text that appears in the ad with the displayed URL.",
          "type": "string"
        },
        "businessName": {
          "description": "Optional advertiser/brand name. Maximum display width is 25 characters.",
          "$ref": "GoogleAdsGoogleadsV23Common__AdTextAsset"
        },
        "callToActions": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdTextAsset"
          },
          "description": "List of text assets used for the button, for example, the \"Call To Action\" button. Currently, only a single value for the button is supported.",
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__VideoResponsiveAdInfo",
      "type": "object",
      "description": "A video responsive ad."
    },
    "GoogleAdsGoogleadsV23Services__ExperimentArmOperation": {
      "properties": {
        "updateMask": {
          "format": "google-fieldmask",
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string"
        },
        "create": {
          "$ref": "GoogleAdsGoogleadsV23Resources__ExperimentArm",
          "description": "Create operation"
        },
        "remove": {
          "description": "Remove operation: The experiment arm is expected to have a valid resource name, in this format: `customers/{customer_id}/experiments/{campaign_experiment_id}`",
          "type": "string"
        },
        "update": {
          "description": "Update operation: The experiment arm is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV23Resources__ExperimentArm"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__ExperimentArmOperation",
      "description": "A single operation on an experiment arm.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__OfflineConversionError": {
      "id": "GoogleAdsGoogleadsV23Resources__OfflineConversionError",
      "description": "Possible errors for offline conversion client summary.",
      "properties": {
        "notAllowlistedError": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CUSTOMER_NOT_ALLOWLISTED_FOR_THIS_FEATURE"
          ],
          "type": "string",
          "description": "Output only. Not allowlisted error.",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Customer is not allowlisted for accessing this feature."
          ]
        },
        "fieldError": {
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The required field was not present.",
            "The field attempted to be mutated is immutable.",
            "The field's value is invalid.",
            "The field cannot be set.",
            "The required repeated field was empty.",
            "The field cannot be cleared.",
            "The field's value is on a deny-list for this field.",
            "The field's value cannot be modified, except for clearing."
          ],
          "description": "Output only. Field error.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "REQUIRED",
            "IMMUTABLE_FIELD",
            "INVALID_VALUE",
            "VALUE_MUST_BE_UNSET",
            "REQUIRED_NONEMPTY_LIST",
            "FIELD_CANNOT_BE_CLEARED",
            "BLOCKED_VALUE",
            "FIELD_CAN_ONLY_BE_CLEARED"
          ]
        },
        "collectionSizeError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Too few.",
            "Too many."
          ],
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "TOO_FEW",
            "TOO_MANY"
          ],
          "type": "string",
          "description": "Output only. Collection size error."
        },
        "distinctError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Duplicate element.",
            "Duplicate type."
          ],
          "type": "string",
          "readOnly": true,
          "description": "Output only. Distinct error.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DUPLICATE_ELEMENT",
            "DUPLICATE_TYPE"
          ]
        },
        "mutateError": {
          "description": "Output only. Mutate error.",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Requested resource was not found.",
            "Cannot mutate the same resource twice in one request.",
            "The field's contents don't match another field that represents the same data.",
            "Mutates are not allowed for the requested resource.",
            "The resource isn't in Google Ads. It belongs to another ads system.",
            "The resource being created already exists.",
            "This resource cannot be used with \"validate_only\".",
            "This operation cannot be used with \"partial_failure\".",
            "Attempt to write to read-only fields."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "RESOURCE_NOT_FOUND",
            "ID_EXISTS_IN_MULTIPLE_MUTATES",
            "INCONSISTENT_FIELD_VALUES",
            "MUTATE_NOT_ALLOWED",
            "RESOURCE_NOT_IN_GOOGLE_ADS",
            "RESOURCE_ALREADY_EXISTS",
            "RESOURCE_DOES_NOT_SUPPORT_VALIDATE_ONLY",
            "OPERATION_DOES_NOT_SUPPORT_PARTIAL_FAILURE",
            "RESOURCE_READ_ONLY"
          ],
          "readOnly": true
        },
        "stringFormatError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The input string value contains disallowed characters.",
            "The input string value is invalid for the associated field."
          ],
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ILLEGAL_CHARS",
            "INVALID_FORMAT"
          ],
          "description": "Output only. String format error.",
          "type": "string"
        },
        "conversionAdjustmentUploadError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "TOO_RECENT_CONVERSION_ACTION",
            "CONVERSION_ALREADY_RETRACTED",
            "CONVERSION_NOT_FOUND",
            "CONVERSION_EXPIRED",
            "ADJUSTMENT_PRECEDES_CONVERSION",
            "MORE_RECENT_RESTATEMENT_FOUND",
            "TOO_RECENT_CONVERSION",
            "CANNOT_RESTATE_CONVERSION_ACTION_THAT_ALWAYS_USES_DEFAULT_CONVERSION_VALUE",
            "TOO_MANY_ADJUSTMENTS_IN_REQUEST",
            "TOO_MANY_ADJUSTMENTS",
            "RESTATEMENT_ALREADY_EXISTS",
            "DUPLICATE_ADJUSTMENT_IN_REQUEST",
            "CUSTOMER_NOT_ACCEPTED_CUSTOMER_DATA_TERMS",
            "CONVERSION_ACTION_NOT_ELIGIBLE_FOR_ENHANCEMENT",
            "INVALID_USER_IDENTIFIER",
            "UNSUPPORTED_USER_IDENTIFIER",
            "GCLID_DATE_TIME_PAIR_AND_ORDER_ID_BOTH_SET",
            "CONVERSION_ALREADY_ENHANCED",
            "DUPLICATE_ENHANCEMENT_IN_REQUEST",
            "CUSTOMER_DATA_POLICY_PROHIBITS_ENHANCEMENT",
            "MISSING_ORDER_ID_FOR_WEBPAGE",
            "ORDER_ID_CONTAINS_PII",
            "INVALID_JOB_ID",
            "NO_CONVERSION_ACTION_FOUND",
            "INVALID_CONVERSION_ACTION_TYPE"
          ],
          "readOnly": true,
          "description": "Output only. Conversion adjustment upload error.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Can't import events to a conversion action that was just created. Try importing again in 6 hours.",
            "The conversion was already retracted. This adjustment was not processed.",
            "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.",
            "Adjustment can't be made to a conversion that occurred more than 54 days ago.",
            "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 adjustment `adjustment_date_time` has already been reported for the associated conversion. Make sure your adjustment `adjustment_date_time` is correct and try again.",
            "Adjustment can't be recorded because the conversion occurred too recently. Try adjusting a conversion that occurred at least 24 hours ago.",
            "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.",
            "Try uploading fewer than 2001 adjustments in a single API request.",
            "The conversion has already been adjusted the maximum number of times. Make sure you're only making necessary adjustment to existing conversion.",
            "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.",
            "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.",
            "Make sure you agree to the customer data processing terms in conversion settings and try again.",
            "Can't use enhanced conversions with the specified conversion action.",
            "Make sure you hash user provided data using SHA-256 and ensure you are normalizing according to the guidelines.",
            "Use user provided data such as emails or phone numbers hashed using SHA-256 and try again.",
            "Cannot set both gclid_date_time_pair and order_id. Use only 1 type and try again.",
            "Conversion already has enhancements with the same Order ID and conversion action. Make sure your data is correctly configured and try again.",
            "Multiple enhancements have the same conversion action and Order ID. Make sure your data is correctly configured and try again.",
            "Enhanced conversions can't be used for this account because of Google customer data policies. Contact your Google representative.",
            "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.",
            "Can't use adjustment with Order IDs containing personally-identifiable information (PII).",
            "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).",
            "The conversion action specified in the adjustment request cannot be found. Make sure it's available in this account.",
            "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`."
          ],
          "type": "string"
        },
        "dateError": {
          "readOnly": true,
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Given field values do not correspond to a valid date.",
            "Given field values do not correspond to a valid date time.",
            "The string date's format should be yyyy-mm-dd.",
            "The string date time's format should be yyyy-mm-dd hh:mm:ss.ssssss.",
            "The string date time's format should be yyyy-mm-dd hh:mm:ss.",
            "The string date time's format should be yyyy-mm-dd hh:mm:ss+|-hh:mm.",
            "Date is before allowed minimum.",
            "Date is after allowed maximum.",
            "Date range bounds are not in order.",
            "Both dates in range are null.",
            "This campaign type doesn't support a start date time that isn't the start of the day.",
            "This campaign type doesn't support an end date time that isn't the end of the day."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_FIELD_VALUES_IN_DATE",
            "INVALID_FIELD_VALUES_IN_DATE_TIME",
            "INVALID_STRING_DATE",
            "INVALID_STRING_DATE_TIME_MICROS",
            "INVALID_STRING_DATE_TIME_SECONDS",
            "INVALID_STRING_DATE_TIME_SECONDS_WITH_OFFSET",
            "EARLIER_THAN_MINIMUM_DATE",
            "LATER_THAN_MAXIMUM_DATE",
            "DATE_RANGE_MINIMUM_DATE_LATER_THAN_MAXIMUM_DATE",
            "DATE_RANGE_MINIMUM_AND_MAXIMUM_DATES_BOTH_NULL",
            "DATE_RANGE_ERROR_START_TIME_MUST_BE_THE_START_OF_A_DAY",
            "DATE_RANGE_ERROR_END_TIME_MUST_BE_THE_END_OF_A_DAY"
          ],
          "type": "string",
          "description": "Output only. Date error."
        },
        "stringLengthError": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EMPTY",
            "TOO_SHORT",
            "TOO_LONG"
          ],
          "description": "Output only. String length error.",
          "readOnly": true,
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The specified field should have a least one non-whitespace character in it.",
            "Too short.",
            "Too long."
          ]
        },
        "conversionUploadError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "TOO_MANY_CONVERSIONS_IN_REQUEST",
            "UNPARSEABLE_GCLID",
            "CONVERSION_PRECEDES_EVENT",
            "EXPIRED_EVENT",
            "TOO_RECENT_EVENT",
            "EVENT_NOT_FOUND",
            "UNAUTHORIZED_CUSTOMER",
            "TOO_RECENT_CONVERSION_ACTION",
            "CONVERSION_TRACKING_NOT_ENABLED_AT_IMPRESSION_TIME",
            "EXTERNAL_ATTRIBUTION_DATA_SET_FOR_NON_EXTERNALLY_ATTRIBUTED_CONVERSION_ACTION",
            "EXTERNAL_ATTRIBUTION_DATA_NOT_SET_FOR_EXTERNALLY_ATTRIBUTED_CONVERSION_ACTION",
            "ORDER_ID_NOT_PERMITTED_FOR_EXTERNALLY_ATTRIBUTED_CONVERSION_ACTION",
            "ORDER_ID_ALREADY_IN_USE",
            "DUPLICATE_ORDER_ID",
            "TOO_RECENT_CALL",
            "EXPIRED_CALL",
            "CALL_NOT_FOUND",
            "CONVERSION_PRECEDES_CALL",
            "CONVERSION_TRACKING_NOT_ENABLED_AT_CALL_TIME",
            "UNPARSEABLE_CALLERS_PHONE_NUMBER",
            "CLICK_CONVERSION_ALREADY_EXISTS",
            "CALL_CONVERSION_ALREADY_EXISTS",
            "DUPLICATE_CLICK_CONVERSION_IN_REQUEST",
            "DUPLICATE_CALL_CONVERSION_IN_REQUEST",
            "CUSTOM_VARIABLE_NOT_ENABLED",
            "CUSTOM_VARIABLE_VALUE_CONTAINS_PII",
            "INVALID_CUSTOMER_FOR_CLICK",
            "INVALID_CUSTOMER_FOR_CALL",
            "CONVERSION_NOT_COMPLIANT_WITH_ATT_POLICY",
            "CLICK_NOT_FOUND",
            "INVALID_USER_IDENTIFIER",
            "EXTERNALLY_ATTRIBUTED_CONVERSION_ACTION_NOT_PERMITTED_WITH_USER_IDENTIFIER",
            "UNSUPPORTED_USER_IDENTIFIER",
            "GBRAID_WBRAID_BOTH_SET",
            "UNPARSEABLE_WBRAID",
            "UNPARSEABLE_GBRAID",
            "ONE_PER_CLICK_CONVERSION_ACTION_NOT_PERMITTED_WITH_BRAID",
            "CUSTOMER_DATA_POLICY_PROHIBITS_ENHANCED_CONVERSIONS",
            "CUSTOMER_NOT_ACCEPTED_CUSTOMER_DATA_TERMS",
            "ORDER_ID_CONTAINS_PII",
            "CUSTOMER_NOT_ENABLED_ENHANCED_CONVERSIONS_FOR_LEADS",
            "INVALID_JOB_ID",
            "NO_CONVERSION_ACTION_FOUND",
            "INVALID_CONVERSION_ACTION_TYPE"
          ],
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "Used for return value only. Represents value unknown in this version.",
            "Upload fewer than 2001 events in a single request.",
            "The imported gclid could not be decoded.",
            "The imported event has a `conversion_date_time` that precedes the click. Make sure your `conversion_date_time` is correct and try again.",
            "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.",
            "The click associated with the given identifier or iOS URL parameter occurred less than 6 hours ago. Retry after 6 hours have passed.",
            "The imported event could not be attributed to a click. This may be because the event did not come from a Google Ads campaign.",
            "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.",
            "Can't import events to a conversion action that was just created. Try importing again in 6 hours.",
            "At the time of the click, conversion tracking was not enabled in the effective conversion account of the click's Google Ads account.",
            "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.",
            "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 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.",
            "The imported event includes an order ID that was previously recorded, so the event was not processed.",
            "Imported events include multiple conversions with the same order ID and were not processed. Make sure order IDs are unique and try again.",
            "Can't import calls that occurred less than 6 hours ago. Try uploading again in 6 hours.",
            "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.",
            "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.",
            "The call has a `conversion_date_time` that precedes the associated click. Make sure your `conversion_date_time` is correct.",
            "At the time of the imported call, conversion tracking was not enabled in the effective conversion account of the click's Google Ads account.",
            "Make sure phone numbers are formatted as E.164 (+16502531234), International (+64 3-331 6005), or US national number (6502531234).",
            "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.",
            "The imported call has the same `conversion_date_time` as an existing conversion. Make sure your `conversion_date_time` correctly configured and try again.",
            "Multiple events have the same click and `conversion_date_time`. Make sure your `conversion_date_time` is correctly configured and try again.",
            "Multiple events have the same call and `conversion_date_time`. Make sure your `conversion_date_time` is correctly configured and try again.",
            "Enable the custom variable in your conversion settings and try again.",
            "Can't import events with custom variables containing personally-identifiable information (PII). Remove these variables and try again.",
            "The click from the imported event is associated with a different Google Ads account. Make sure you're importing to the correct account.",
            "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.",
            "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.",
            "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.",
            "Make sure you hash user provided data using SHA-256 and ensure you are normalizing according to the guidelines.",
            "User provided data can't be used with external attribution models. Use a different attribution model or omit user identifiers and try again.",
            "The provided user identifiers are not supported. Use only hashed email or phone number and try again.",
            "Can't use both gbraid and wbraid parameters. Use only 1 and try again.",
            "Can't parse event import data. Check if your wbraid parameter was not modified and try again.",
            "Can't parse event import data. Check if your gbraid parameter was not modified and try again.",
            "Conversion actions that use one-per-click counting can't be used with gbraid or wbraid parameters.",
            "Enhanced conversions can't be used for this account because of Google customer data policies. Contact your Google representative.",
            "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.",
            "Can't import events with order IDs containing personally-identifiable information (PII).",
            "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.",
            "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).",
            "The conversion action specified in the upload request cannot be found. Make sure it's available in this account.",
            "The conversion action specified in the upload request isn't set up for uploading conversions."
          ],
          "description": "Output only. Conversion upload error.",
          "readOnly": true
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateAssetGroupListingGroupFiltersResponse": {
      "type": "object",
      "description": "Response message for an asset group listing group filter mutate.",
      "properties": {
        "results": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateAssetGroupListingGroupFilterResult"
          },
          "description": "All results for the mutate.",
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateAssetGroupListingGroupFiltersResponse"
    },
    "GoogleAdsGoogleadsV23Common__CallToActionAsset": {
      "type": "object",
      "properties": {
        "callToAction": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The call to action type is learn more.",
            "The call to action type is get quote.",
            "The call to action type is apply now.",
            "The call to action type is sign up.",
            "The call to action type is contact us.",
            "The call to action type is subscribe.",
            "The call to action type is download.",
            "The call to action type is book now.",
            "The call to action type is shop now.",
            "The call to action type is buy now.",
            "The call to action type is donate now.",
            "The call to action type is order now.",
            "The call to action type is play now.",
            "The call to action type is see more.",
            "The call to action type is start now.",
            "The call to action type is visit site.",
            "The call to action type is watch now."
          ],
          "description": "Call to action.",
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "LEARN_MORE",
            "GET_QUOTE",
            "APPLY_NOW",
            "SIGN_UP",
            "CONTACT_US",
            "SUBSCRIBE",
            "DOWNLOAD",
            "BOOK_NOW",
            "SHOP_NOW",
            "BUY_NOW",
            "DONATE_NOW",
            "ORDER_NOW",
            "PLAY_NOW",
            "SEE_MORE",
            "START_NOW",
            "VISIT_SITE",
            "WATCH_NOW"
          ]
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__CallToActionAsset",
      "description": "A call to action asset."
    },
    "GoogleAdsGoogleadsV23Resources__AdGroupAdAssetView": {
      "id": "GoogleAdsGoogleadsV23Resources__AdGroupAdAssetView",
      "type": "object",
      "properties": {
        "enabled": {
          "readOnly": true,
          "description": "Output only. The status between the asset and the latest version of the ad. If true, the asset is linked to the latest version of the ad. If false, it means the link once existed but has been removed and is no longer present in the latest version of the ad.",
          "type": "boolean"
        },
        "performanceLabel": {
          "type": "string",
          "description": "Output only. Performance of an asset linkage.",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PENDING",
            "LEARNING",
            "LOW",
            "GOOD",
            "BEST",
            "NOT_APPLICABLE"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "This asset does not yet have any performance informantion. This may be because it is still under review.",
            "The asset has started getting impressions but the stats are not statistically significant enough to get an asset performance label.",
            "Worst performing assets.",
            "Good performing assets.",
            "Best performing assets.",
            "Performance label cannot be assigned to this asset. This may be because it's not used by asset based creatives."
          ]
        },
        "asset": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The asset which is linked to the ad group ad."
        },
        "pinnedField": {
          "readOnly": true,
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The asset is used in headline 1.",
            "The asset is used in headline 2.",
            "The asset is used in headline 3.",
            "The asset is used in description 1.",
            "The asset is used in description 2.",
            "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",
            "The asset was used as a headline in portrait image.",
            "The asset was used in a long headline (used in MultiAssetResponsiveAd).",
            "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",
            "The asset was used as description in portrait image.",
            "The asset was used as business name in portrait image.",
            "The asset was used as business name.",
            "The asset was used as a marketing image.",
            "The asset was used as a marketing image in portrait image.",
            "The asset was used as a square marketing image.",
            "The asset was used as a portrait marketing image.",
            "The asset was used as a logo.",
            "The asset was used as a landscape logo.",
            "The asset was used as a call-to-action.",
            "The asset was used as a YouTube video.",
            "This asset is used as a sitelink.",
            "This asset is used as a call.",
            "This asset is used as a mobile app.",
            "This asset is used as a callout.",
            "This asset is used as a structured snippet.",
            "This asset is used as a price.",
            "This asset is used as a promotion.",
            "This asset is used as an image.",
            "The asset is used as a lead form.",
            "The asset is used as a business logo.",
            "The asset is used as a description prefix.",
            "A headline asset used as a sitelink in position 1.",
            "A headline asset used as a sitelink in position 2.",
            "A description line asset used as a sitelink in position 1.",
            "A description line asset used as a sitelink in position 2."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE_1",
            "HEADLINE_2",
            "HEADLINE_3",
            "DESCRIPTION_1",
            "DESCRIPTION_2",
            "HEADLINE",
            "HEADLINE_IN_PORTRAIT",
            "LONG_HEADLINE",
            "DESCRIPTION",
            "DESCRIPTION_IN_PORTRAIT",
            "BUSINESS_NAME_IN_PORTRAIT",
            "BUSINESS_NAME",
            "MARKETING_IMAGE",
            "MARKETING_IMAGE_IN_PORTRAIT",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "CALL_TO_ACTION",
            "YOU_TUBE_VIDEO",
            "SITELINK",
            "CALL",
            "MOBILE_APP",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "PRICE",
            "PROMOTION",
            "AD_IMAGE",
            "LEAD_FORM",
            "BUSINESS_LOGO",
            "DESCRIPTION_PREFIX",
            "HEADLINE_AS_SITELINK_POSITION_ONE",
            "HEADLINE_AS_SITELINK_POSITION_TWO",
            "DESCRIPTION_LINE_HEADLINE_AS_SITELINK_POSITION_ONE",
            "DESCRIPTION_LINE_HEADLINE_AS_SITELINK_POSITION_TWO"
          ],
          "description": "Output only. Pinned field."
        },
        "adGroupAd": {
          "type": "string",
          "description": "Output only. The ad group ad to which the asset is linked.",
          "readOnly": true
        },
        "resourceName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the ad group ad asset view. Ad group ad asset view resource names have the form (Before V4): `customers/{customer_id}/adGroupAdAssets/{AdGroupAdAsset.ad_group_id}~{AdGroupAdAsset.ad.ad_id}~{AdGroupAdAsset.asset_id}~{AdGroupAdAsset.field_type}` Ad group ad asset view resource names have the form (Beginning from V4): `customers/{customer_id}/adGroupAdAssetViews/{AdGroupAdAsset.ad_group_id}~{AdGroupAdAsset.ad_id}~{AdGroupAdAsset.asset_id}~{AdGroupAdAsset.field_type}`"
        },
        "fieldType": {
          "readOnly": true,
          "description": "Output only. Role that the asset takes in the ad.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE",
            "DESCRIPTION",
            "MANDATORY_AD_TEXT",
            "MARKETING_IMAGE",
            "MEDIA_BUNDLE",
            "YOUTUBE_VIDEO",
            "BOOK_ON_GOOGLE",
            "LEAD_FORM",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "LONG_HEADLINE",
            "BUSINESS_NAME",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "VIDEO",
            "CALL_TO_ACTION_SELECTION",
            "AD_IMAGE",
            "BUSINESS_LOGO",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "TALL_PORTRAIT_MARKETING_IMAGE",
            "RELATED_YOUTUBE_VIDEOS",
            "LANDING_PAGE_PREVIEW",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is linked for use as a headline.",
            "The asset is linked for use as a description.",
            "The asset is linked for use as mandatory ad text.",
            "The asset is linked for use as a marketing image.",
            "The asset is linked for use as a media bundle.",
            "The asset is linked for use as a YouTube video.",
            "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
            "The asset is linked for use as a Lead Form extension.",
            "The asset is linked for use as a Promotion extension.",
            "The asset is linked for use as a Callout extension.",
            "The asset is linked for use as a Structured Snippet extension.",
            "The asset is linked for use as a Sitelink.",
            "The asset is linked for use as a Mobile App extension.",
            "The asset is linked for use as a Hotel Callout extension.",
            "The asset is linked for use as a Call extension.",
            "The asset is linked for use as a Price extension.",
            "The asset is linked for use as a long headline.",
            "The asset is linked for use as a business name.",
            "The asset is linked for use as a square marketing image.",
            "The asset is linked for use as a portrait marketing image.",
            "The asset is linked for use as a logo.",
            "The asset is linked for use as a landscape logo.",
            "The asset is linked for use as a non YouTube logo.",
            "The asset is linked for use to select a call-to-action.",
            "The asset is linked for use to select an ad image.",
            "The asset is linked for use as a business logo.",
            "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
            "The asset is linked for use as a Demand Gen carousel card.",
            "The asset is linked for use as a Business Message.",
            "The asset is linked for use as a tall portrait marketing image.",
            "The asset is linked for use as related YouTube videos.",
            "The asset is linked for use as a landing page preview image.",
            "The asset is linked for use as a long description.",
            "The asset is linked for use as a call-to-action."
          ]
        },
        "policySummary": {
          "$ref": "GoogleAdsGoogleadsV23Resources__AdGroupAdAssetPolicySummary",
          "description": "Output only. Policy information for the ad group ad asset.",
          "readOnly": true
        },
        "source": {
          "description": "Output only. Source of the ad group ad asset.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADVERTISER",
            "AUTOMATICALLY_CREATED"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset or asset link is provided by advertiser.",
            "The asset or asset link is generated by Google."
          ],
          "type": "string",
          "readOnly": true
        }
      },
      "description": "A link between an AdGroupAd and an Asset. AdGroupAdAssetView supports AppAds, Demand Gen campaigns, and Responsive Search Ads."
    },
    "GoogleAdsGoogleadsV23Services__RemoveProductLinkResponse": {
      "properties": {
        "resourceName": {
          "description": "Result for the remove request.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__RemoveProductLinkResponse",
      "description": "Response message for product link removal."
    },
    "GoogleAdsGoogleadsV23Common__UserListNumberRuleItemInfo": {
      "type": "object",
      "properties": {
        "operator": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Greater than.",
            "Greater than or equal.",
            "Equals.",
            "Not equals.",
            "Less than.",
            "Less than or equal."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "GREATER_THAN",
            "GREATER_THAN_OR_EQUAL",
            "EQUALS",
            "NOT_EQUALS",
            "LESS_THAN",
            "LESS_THAN_OR_EQUAL"
          ],
          "description": "Number comparison operator. This field is required and must be populated when creating a new number rule item."
        },
        "value": {
          "type": "number",
          "description": "Number value to be compared with the variable. This field is required and must be populated when creating a new number rule item.",
          "format": "double"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__UserListNumberRuleItemInfo",
      "description": "A rule item composed of a number operation."
    },
    "GoogleAdsGoogleadsV23Services__MutateCampaignGoalConfigsRequest": {
      "properties": {
        "validateOnly": {
          "description": "Optional. If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "partialFailure": {
          "description": "Optional. If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "operations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__CampaignGoalConfigOperation"
          },
          "description": "Required. The list of operations to perform on the campaign goal configs.",
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateCampaignGoalConfigsRequest",
      "type": "object",
      "description": "Request message for CampaignGoalConfigService.MutateCampaignGoalConfigs."
    },
    "GoogleAdsGoogleadsV23Resources__GroupContentSuitabilityPlacementView": {
      "id": "GoogleAdsGoogleadsV23Resources__GroupContentSuitabilityPlacementView",
      "type": "object",
      "description": "A group content suitability placement view.",
      "properties": {
        "targetUrl": {
          "description": "Output only. URL of the placement, for example, website, link to the mobile application in app store, or a YouTube video URL.",
          "type": "string",
          "readOnly": true
        },
        "placement": {
          "description": "Output only. The automatic placement string at group level, for example. website url, mobile application id, or a YouTube video id.",
          "type": "string",
          "readOnly": true
        },
        "displayName": {
          "description": "Output only. The display name is URL for websites, YouTube video name for YouTube videos, and translated mobile app name for mobile apps.",
          "type": "string",
          "readOnly": true
        },
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the group content suitability placement view. Group content suitability placement view resource names have the form: `customers/{customer_id}/groupContentSuitabilityPlacementViews/{placement_fingerprint}`",
          "readOnly": true
        },
        "placementType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "WEBSITE",
            "MOBILE_APP_CATEGORY",
            "MOBILE_APPLICATION",
            "YOUTUBE_VIDEO",
            "YOUTUBE_CHANNEL",
            "GOOGLE_PRODUCTS"
          ],
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Websites(for example, 'www.flowers4sale.com').",
            "Mobile application categories(for example, 'Games').",
            "mobile applications(for example, 'mobileapp::2-com.whatsthewordanswers').",
            "YouTube videos(for example, 'youtube.com/video/wtLJPvx7-ys').",
            "YouTube channels(for example, 'youtube.com::L8ZULXASCc1I_oaOT0NaOQ').",
            "Surfaces owned and operated by Google(for example, 'tv.google.com')."
          ],
          "description": "Output only. Represents the type of the placement, for example, Website, YouTubeVideo and MobileApplication."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__SiteSeed": {
      "type": "object",
      "properties": {
        "site": {
          "description": "The domain name of the site. If the customer requesting the ideas doesn't own the site provided only public information is returned.",
          "type": "string"
        }
      },
      "description": "Site Seed",
      "id": "GoogleAdsGoogleadsV23Services__SiteSeed"
    },
    "GoogleAdsGoogleadsV23Services__PromoteCampaignDraftRequest": {
      "id": "GoogleAdsGoogleadsV23Services__PromoteCampaignDraftRequest",
      "description": "Request message for CampaignDraftService.PromoteCampaignDraft.",
      "properties": {
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but no Long Running Operation is created. Only errors are returned."
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__SmartCampaignNotEligibleDetails": {
      "id": "GoogleAdsGoogleadsV23Services__SmartCampaignNotEligibleDetails",
      "description": "Details related to Smart campaigns that are not eligible to serve.",
      "type": "object",
      "properties": {
        "notEligibleReason": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ACCOUNT_ISSUE",
            "BILLING_ISSUE",
            "BUSINESS_PROFILE_LOCATION_REMOVED",
            "ALL_ADS_DISAPPROVED"
          ],
          "type": "string",
          "enumDescriptions": [
            "The status has not been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The campaign is not eligible to serve because of an issue with the account.",
            "The campaign is not eligible to serve because of a payment issue.",
            "The business profile location associated with the campaign has been removed.",
            "All system-generated ads have been disapproved. Consult the policy_summary field in the AdGroupAd resource for more details."
          ],
          "description": "The reason why the Smart campaign is not eligible to serve."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateAdGroupAdLabelsRequest": {
      "type": "object",
      "description": "Request message for AdGroupAdLabelService.MutateAdGroupAdLabels.",
      "properties": {
        "operations": {
          "type": "array",
          "description": "Required. The list of operations to perform on ad group ad labels.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__AdGroupAdLabelOperation"
          }
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateAdGroupAdLabelsRequest"
    },
    "GoogleAdsGoogleadsV23Services__ListBatchJobResultsResponse": {
      "properties": {
        "nextPageToken": {
          "type": "string",
          "description": "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."
        },
        "results": {
          "description": "The list of rows that matched the query.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__BatchJobResult"
          },
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__ListBatchJobResultsResponse",
      "description": "Response message for BatchJobService.ListBatchJobResults.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateBillingSetupResult": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateBillingSetupResult",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      },
      "description": "Result for a single billing setup mutate."
    },
    "GoogleAdsGoogleadsV23Services__ListInsightsEligibleDatesRequest": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__ListInsightsEligibleDatesRequest",
      "description": "Request message for AudienceInsightsService.ListInsightsEligibleDates.",
      "properties": {
        "insightsApplicationInfo": {
          "description": "Optional. Additional information on the application issuing the request.",
          "$ref": "GoogleAdsGoogleadsV23Common__AdditionalApplicationInfo"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateCustomerUserAccessResult": {
      "description": "The result for the customer user access mutate.",
      "type": "object",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateCustomerUserAccessResult"
    },
    "GoogleAdsGoogleadsV23Services__MaximizeConversionsBiddingStrategy": {
      "description": "Maximize Conversions Bidding Strategy.",
      "properties": {
        "dailyTargetSpendMicros": {
          "description": "Required. The daily target spend in micros to be used for estimation. This value must be greater than zero.",
          "type": "string",
          "format": "int64"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MaximizeConversionsBiddingStrategy"
    },
    "GoogleAdsGoogleadsV23Resources__CustomerNegativeCriterion": {
      "type": "object",
      "properties": {
        "contentLabel": {
          "description": "Immutable. ContentLabel.",
          "$ref": "GoogleAdsGoogleadsV23Common__ContentLabelInfo"
        },
        "ipBlock": {
          "$ref": "GoogleAdsGoogleadsV23Common__IpBlockInfo",
          "description": "Immutable. IpBlock. You can exclude up to 500 IP addresses per account."
        },
        "youtubeVideo": {
          "$ref": "GoogleAdsGoogleadsV23Common__YouTubeVideoInfo",
          "description": "Immutable. YouTube Video."
        },
        "mobileApplication": {
          "$ref": "GoogleAdsGoogleadsV23Common__MobileApplicationInfo",
          "description": "Immutable. MobileApplication."
        },
        "type": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Keyword, for example, 'mars cruise'.",
            "Placement, also known as Website, for example, 'www.flowers4sale.com'",
            "Mobile application categories to target.",
            "Mobile applications to target.",
            "Devices to target.",
            "Locations to target.",
            "Listing groups to target.",
            "Ad Schedule.",
            "Age range.",
            "Gender.",
            "Income Range.",
            "Parental status.",
            "YouTube Video.",
            "YouTube Channel.",
            "User list.",
            "Proximity.",
            "A topic target on the display network (for example, \"Pets & Animals\").",
            "Listing scope to target.",
            "Language.",
            "IpBlock.",
            "Content Label for category exclusion.",
            "Carrier.",
            "A category the user is interested in.",
            "Webpage criterion for dynamic search ads.",
            "Operating system version.",
            "App payment model.",
            "Mobile device.",
            "Custom affinity.",
            "Custom intent.",
            "Location group.",
            "Custom audience",
            "Combined audience",
            "Smart Campaign keyword theme",
            "Audience",
            "Negative Keyword List",
            "Local Services Ads Service ID.",
            "Search Theme.",
            "Brand",
            "Brand List",
            "Life Event",
            "Webpage List",
            "Video lineup",
            "Placement List",
            "A list of rules for item groups in Vertical Ads.",
            "A rule for an item group in Vertical Ads."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "KEYWORD",
            "PLACEMENT",
            "MOBILE_APP_CATEGORY",
            "MOBILE_APPLICATION",
            "DEVICE",
            "LOCATION",
            "LISTING_GROUP",
            "AD_SCHEDULE",
            "AGE_RANGE",
            "GENDER",
            "INCOME_RANGE",
            "PARENTAL_STATUS",
            "YOUTUBE_VIDEO",
            "YOUTUBE_CHANNEL",
            "USER_LIST",
            "PROXIMITY",
            "TOPIC",
            "LISTING_SCOPE",
            "LANGUAGE",
            "IP_BLOCK",
            "CONTENT_LABEL",
            "CARRIER",
            "USER_INTEREST",
            "WEBPAGE",
            "OPERATING_SYSTEM_VERSION",
            "APP_PAYMENT_MODEL",
            "MOBILE_DEVICE",
            "CUSTOM_AFFINITY",
            "CUSTOM_INTENT",
            "LOCATION_GROUP",
            "CUSTOM_AUDIENCE",
            "COMBINED_AUDIENCE",
            "KEYWORD_THEME",
            "AUDIENCE",
            "NEGATIVE_KEYWORD_LIST",
            "LOCAL_SERVICE_ID",
            "SEARCH_THEME",
            "BRAND",
            "BRAND_LIST",
            "LIFE_EVENT",
            "WEBPAGE_LIST",
            "VIDEO_LINEUP",
            "PLACEMENT_LIST",
            "VERTICAL_ADS_ITEM_GROUP_RULE_LIST",
            "VERTICAL_ADS_ITEM_GROUP_RULE"
          ],
          "readOnly": true,
          "type": "string",
          "description": "Output only. The type of the criterion."
        },
        "youtubeChannel": {
          "description": "Immutable. YouTube Channel.",
          "$ref": "GoogleAdsGoogleadsV23Common__YouTubeChannelInfo"
        },
        "placement": {
          "$ref": "GoogleAdsGoogleadsV23Common__PlacementInfo",
          "description": "Immutable. Placement."
        },
        "negativeKeywordList": {
          "description": "Immutable. NegativeKeywordList.",
          "$ref": "GoogleAdsGoogleadsV23Common__NegativeKeywordListInfo"
        },
        "id": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The ID of the criterion.",
          "format": "int64"
        },
        "mobileAppCategory": {
          "$ref": "GoogleAdsGoogleadsV23Common__MobileAppCategoryInfo",
          "description": "Immutable. MobileAppCategory."
        },
        "placementList": {
          "description": "Immutable. PlacementList.",
          "$ref": "GoogleAdsGoogleadsV23Common__PlacementListInfo"
        },
        "resourceName": {
          "description": "Immutable. The resource name of the customer negative criterion. Customer negative criterion resource names have the form: `customers/{customer_id}/customerNegativeCriteria/{criterion_id}`",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__CustomerNegativeCriterion",
      "description": "A negative criterion for exclusions at the customer level."
    },
    "GoogleAdsGoogleadsV23Common__ManualCpc": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__ManualCpc",
      "properties": {
        "enhancedCpcEnabled": {
          "description": "Whether bids are to be enhanced based on conversion optimizer data.",
          "type": "boolean"
        }
      },
      "description": "Manual click-based bidding where user pays per click."
    },
    "GoogleAdsGoogleadsV23Common__CalloutFeedItem": {
      "properties": {
        "calloutText": {
          "description": "The callout text. The length of this string should be between 1 and 25, inclusive.",
          "type": "string"
        }
      },
      "description": "Represents a callout extension.",
      "id": "GoogleAdsGoogleadsV23Common__CalloutFeedItem",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common_PolicyTopicConstraint_CountryConstraint": {
      "id": "GoogleAdsGoogleadsV23Common_PolicyTopicConstraint_CountryConstraint",
      "description": "Indicates that a resource's ability to serve in a particular country is constrained.",
      "properties": {
        "countryCriterion": {
          "description": "Geo target constant resource name of the country in which serving is constrained.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateExperimentsRequest": {
      "type": "object",
      "properties": {
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__ExperimentOperation"
          },
          "description": "Required. The list of operations to perform on individual experiments."
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateExperimentsRequest",
      "description": "Request message for ExperimentService.MutateExperiments."
    },
    "GoogleAdsGoogleadsV23Common__LineupAttributeMetadata": {
      "description": "Metadata associated with a Lineup attribute.",
      "properties": {
        "inventoryCountry": {
          "description": "The national market associated with the lineup.",
          "$ref": "GoogleAdsGoogleadsV23Common__LocationInfo"
        },
        "channelCountLowerBound": {
          "description": "The lower end of a range containing the number of channels in the lineup.",
          "format": "int64",
          "type": "string"
        },
        "medianMonthlyInventory": {
          "format": "int64",
          "type": "string",
          "description": "The median number of impressions per month on this lineup."
        },
        "sampleChannels": {
          "description": "Examples of channels that are included in the lineup.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common_LineupAttributeMetadata_SampleChannel"
          },
          "type": "array"
        },
        "channelCountUpperBound": {
          "description": "The upper end of a range containing the number of channels in the lineup.",
          "type": "string",
          "format": "int64"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__LineupAttributeMetadata",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateCustomerClientLinkResult": {
      "description": "The result for a single customer client link mutate.",
      "id": "GoogleAdsGoogleadsV23Services__MutateCustomerClientLinkResult",
      "type": "object",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__ConversionAction": {
      "type": "object",
      "properties": {
        "mobileAppVendor": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "APPLE_APP_STORE",
            "GOOGLE_APP_STORE"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Mobile app vendor for Apple app store.",
            "Mobile app vendor for Google app store."
          ],
          "description": "Output only. Mobile app vendor for an app conversion action."
        },
        "thirdPartyAppAnalyticsSettings": {
          "description": "Output only. Third Party App Analytics settings for third party conversion types.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV23Resources_ConversionAction_ThirdPartyAppAnalyticsSettings"
        },
        "attributionModelSettings": {
          "description": "Settings related to this conversion action's attribution model.",
          "$ref": "GoogleAdsGoogleadsV23Resources_ConversionAction_AttributionModelSettings"
        },
        "googleAnalytics4Settings": {
          "$ref": "GoogleAdsGoogleadsV23Resources_ConversionAction_GoogleAnalytics4Settings",
          "description": "Output only. Google Analytics 4 settings for Google Analytics 4 conversion types.",
          "readOnly": true
        },
        "clickThroughLookbackWindowDays": {
          "format": "int64",
          "description": "The maximum number of days that may elapse between an interaction (for example, a click) and a conversion event.",
          "type": "string"
        },
        "viewThroughLookbackWindowDays": {
          "format": "int64",
          "description": "The maximum number of days which may elapse between an impression and a conversion without an interaction.",
          "type": "string"
        },
        "appId": {
          "type": "string",
          "description": "App ID for an app conversion action."
        },
        "ownerCustomer": {
          "description": "Output only. The resource name of the conversion action owner customer, or null if this is a system-defined conversion action.",
          "type": "string",
          "readOnly": true
        },
        "primaryForGoal": {
          "description": "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.",
          "type": "boolean"
        },
        "origin": {
          "enumDescriptions": [
            "The conversion origin has not been specified.",
            "The conversion origin is not known in this version.",
            "Conversion that occurs when a user visits a website or takes an action there after viewing an ad.",
            "Conversions reported by an offline pipeline which collects local actions from Google-hosted pages (for example, Google Maps, Google Place Page, etc) and attributes them to relevant ad events.",
            "Conversion that occurs when a user performs an action through any app platforms.",
            "Conversion that occurs when a user makes a call from ads.",
            "Conversion that occurs when a user visits or makes a purchase at a physical store.",
            "Conversion that occurs on YouTube."
          ],
          "type": "string",
          "description": "Output only. The conversion origin of this conversion action.",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "WEBSITE",
            "GOOGLE_HOSTED",
            "APP",
            "CALL_FROM_ADS",
            "STORE",
            "YOUTUBE_HOSTED"
          ]
        },
        "name": {
          "description": "The name of the conversion action. This field is required and should not be empty when creating new conversion actions.",
          "type": "string"
        },
        "category": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DEFAULT",
            "PAGE_VIEW",
            "PURCHASE",
            "SIGNUP",
            "DOWNLOAD",
            "ADD_TO_CART",
            "BEGIN_CHECKOUT",
            "SUBSCRIBE_PAID",
            "PHONE_CALL_LEAD",
            "IMPORTED_LEAD",
            "SUBMIT_LEAD_FORM",
            "BOOK_APPOINTMENT",
            "REQUEST_QUOTE",
            "GET_DIRECTIONS",
            "OUTBOUND_CLICK",
            "CONTACT",
            "ENGAGEMENT",
            "STORE_VISIT",
            "STORE_SALE",
            "QUALIFIED_LEAD",
            "CONVERTED_LEAD"
          ],
          "description": "The category of conversions reported for this conversion action.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Default category.",
            "User visiting a page.",
            "Purchase, sales, or \"order placed\" event.",
            "Signup user action.",
            "Software download action (as for an app).",
            "The addition of items to a shopping cart or bag on an advertiser site.",
            "When someone enters the checkout flow on an advertiser site.",
            "The start of a paid subscription for a product or service.",
            "A call to indicate interest in an advertiser's offering.",
            "A lead conversion imported from an external source into Google Ads.",
            "A submission of a form on an advertiser site indicating business interest.",
            "A booking of an appointment with an advertiser's business.",
            "A quote or price estimate request.",
            "A search for an advertiser's business location with intention to visit.",
            "A click to an advertiser's partner's site.",
            "A call, SMS, email, chat or other type of contact to an advertiser.",
            "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.",
            "A visit to a physical store location.",
            "A sale occurring in a physical store.",
            "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\".",
            "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."
          ]
        },
        "tagSnippets": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__TagSnippet"
          },
          "readOnly": true,
          "description": "Output only. The snippets used for tracking conversions."
        },
        "status": {
          "description": "The status of this conversion action for conversion event accrual.",
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED",
            "HIDDEN"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Conversions will be recorded.",
            "Conversions will not be recorded.",
            "Conversions will not be recorded and the conversion action will not appear in the UI."
          ]
        },
        "valueSettings": {
          "$ref": "GoogleAdsGoogleadsV23Resources_ConversionAction_ValueSettings",
          "description": "Settings related to the value for conversion events associated with this conversion action."
        },
        "includeInConversionsMetric": {
          "type": "boolean",
          "description": "Whether this conversion action should be included in the \"conversions\" metric."
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the conversion action. Conversion action resource names have the form: `customers/{customer_id}/conversionActions/{conversion_action_id}`"
        },
        "countingType": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Count only one conversion per click.",
            "Count all conversions per click."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ONE_PER_CLICK",
            "MANY_PER_CLICK"
          ],
          "description": "How to count conversion events for the conversion action."
        },
        "phoneCallDurationSeconds": {
          "format": "int64",
          "type": "string",
          "description": "The phone call duration in seconds after which a conversion should be reported for this conversion action. The value must be between 0 and 10000, inclusive."
        },
        "id": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The ID of the conversion action."
        },
        "firebaseSettings": {
          "description": "Output only. Firebase settings for Firebase conversion types.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV23Resources_ConversionAction_FirebaseSettings"
        },
        "type": {
          "enumDeprecated": [
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            true,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AD_CALL",
            "CLICK_TO_CALL",
            "GOOGLE_PLAY_DOWNLOAD",
            "GOOGLE_PLAY_IN_APP_PURCHASE",
            "UPLOAD_CALLS",
            "UPLOAD_CLICKS",
            "WEBPAGE",
            "WEBSITE_CALL",
            "STORE_SALES_DIRECT_UPLOAD",
            "STORE_SALES",
            "FIREBASE_ANDROID_FIRST_OPEN",
            "FIREBASE_ANDROID_IN_APP_PURCHASE",
            "FIREBASE_ANDROID_CUSTOM",
            "FIREBASE_IOS_FIRST_OPEN",
            "FIREBASE_IOS_IN_APP_PURCHASE",
            "FIREBASE_IOS_CUSTOM",
            "THIRD_PARTY_APP_ANALYTICS_ANDROID_FIRST_OPEN",
            "THIRD_PARTY_APP_ANALYTICS_ANDROID_IN_APP_PURCHASE",
            "THIRD_PARTY_APP_ANALYTICS_ANDROID_CUSTOM",
            "THIRD_PARTY_APP_ANALYTICS_IOS_FIRST_OPEN",
            "THIRD_PARTY_APP_ANALYTICS_IOS_IN_APP_PURCHASE",
            "THIRD_PARTY_APP_ANALYTICS_IOS_CUSTOM",
            "ANDROID_APP_PRE_REGISTRATION",
            "ANDROID_INSTALLS_ALL_OTHER_APPS",
            "FLOODLIGHT_ACTION",
            "FLOODLIGHT_TRANSACTION",
            "GOOGLE_HOSTED",
            "LEAD_FORM_SUBMIT",
            "SALESFORCE",
            "SEARCH_ADS_360",
            "SMART_CAMPAIGN_AD_CLICKS_TO_CALL",
            "SMART_CAMPAIGN_MAP_CLICKS_TO_CALL",
            "SMART_CAMPAIGN_MAP_DIRECTIONS",
            "SMART_CAMPAIGN_TRACKED_CALLS",
            "STORE_VISITS",
            "WEBPAGE_CODELESS",
            "UNIVERSAL_ANALYTICS_GOAL",
            "UNIVERSAL_ANALYTICS_TRANSACTION",
            "GOOGLE_ANALYTICS_4_CUSTOM",
            "GOOGLE_ANALYTICS_4_PURCHASE"
          ],
          "description": "Immutable. The type of this conversion action.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Conversions that occur when a user clicks on an ad's call extension.",
            "Conversions that occur when a user on a mobile device clicks a phone number.",
            "Conversions that occur when a user downloads a mobile app from the Google Play Store.",
            "Conversions that occur when a user makes a purchase in an app through Android billing.",
            "Call conversions that are tracked by the advertiser and uploaded.",
            "Conversions that are tracked by the advertiser and uploaded with attributed clicks.",
            "Conversions that occur on a webpage.",
            "Conversions that occur when a user calls a dynamically-generated phone number from an advertiser's website.",
            "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 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.",
            "Android app first open conversions tracked through Firebase.",
            "Android app in app purchase conversions tracked through Firebase.",
            "Android app custom conversions tracked through Firebase.",
            "iOS app first open conversions tracked through Firebase.",
            "iOS app in app purchase conversions tracked through Firebase.",
            "iOS app custom conversions tracked through Firebase.",
            "Android app first open conversions tracked through Third Party App Analytics.",
            "Android app in app purchase conversions tracked through Third Party App Analytics.",
            "Android app custom conversions tracked through Third Party App Analytics.",
            "iOS app first open conversions tracked through Third Party App Analytics.",
            "iOS app in app purchase conversions tracked through Third Party App Analytics.",
            "iOS app custom conversions tracked through Third Party App Analytics.",
            "Conversions that occur when a user pre-registers a mobile app from the Google Play Store. Read only.",
            "Conversions that track all Google Play downloads which aren't tracked by an app-specific type. Read only.",
            "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 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.",
            "Conversions that track local actions from Google's products and services after interacting with an ad. Read only.",
            "Conversions reported when a user submits a lead form. Read only.",
            "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",
            "Conversions imported from Search Ads 360 Floodlight data. Read only.",
            "Call conversions that occur on Smart campaign Ads without call tracking setup, using Smart campaign custom criteria. Read only.",
            "The user clicks on a call element within Google Maps. Smart campaign only. Read only.",
            "The user requests directions to a business location within Google Maps. Smart campaign only. Read only.",
            "Call conversions that occur on Smart campaign Ads with call tracking setup, using Smart campaign custom criteria. Read only.",
            "Conversions that occur when a user visits an advertiser's retail store. Read only.",
            "Conversions created from website events (such as form submissions or page loads), that don't use individually coded event snippets. Read only.",
            "Conversions that come from linked Universal Analytics goals.",
            "Conversions that come from linked Universal Analytics transactions.",
            "Conversions that come from linked Google Analytics 4 custom event conversions.",
            "Conversions that come from linked Google Analytics 4 purchase conversions."
          ],
          "type": "string"
        }
      },
      "description": "A conversion action.",
      "id": "GoogleAdsGoogleadsV23Resources__ConversionAction"
    },
    "GoogleAdsGoogleadsV23Services__MutateCampaignAssetsRequest": {
      "description": "Request message for CampaignAssetService.MutateCampaignAssets.",
      "properties": {
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "operations": {
          "description": "Required. The list of operations to perform on individual campaign assets.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__CampaignAssetOperation"
          },
          "type": "array"
        },
        "responseContentType": {
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "type": "string"
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateCampaignAssetsRequest"
    },
    "GoogleAdsGoogleadsV23Common__AppDeepLinkAsset": {
      "properties": {
        "appDeepLinkUri": {
          "description": "The uri for the app deep link, The uri can be either a custom scheme uri (e.g. mystore://shoes) or universal uri (e.g. http://www.mystore.com/shoes).",
          "type": "string"
        }
      },
      "description": "An app deep link asset",
      "id": "GoogleAdsGoogleadsV23Common__AppDeepLinkAsset",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateAssetGroupAssetsRequest": {
      "type": "object",
      "properties": {
        "operations": {
          "description": "Required. The list of operations to perform on individual asset group assets.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__AssetGroupAssetOperation"
          }
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        }
      },
      "description": "Request message for AssetGroupAssetService.MutateAssetGroupAssets.",
      "id": "GoogleAdsGoogleadsV23Services__MutateAssetGroupAssetsRequest"
    },
    "GoogleAdsGoogleadsV23Common__TargetCpc": {
      "id": "GoogleAdsGoogleadsV23Common__TargetCpc",
      "type": "object",
      "description": "An automated bidding strategy that sets bids to help get as many clicks as possible at the target cost-per-click (CPC) you set.",
      "properties": {
        "targetCpcMicros": {
          "format": "int64",
          "type": "string",
          "description": "Average CPC target. This target should be greater than or equal to minimum billable unit based on the currency for the account."
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources_ListingGroupFilterDimension_Webpage": {
      "type": "object",
      "description": "Filters for URLs in a page feed and URLs from the advertiser web domain. Several root nodes with this dimension are allowed in an asset group and their conditions are considered in OR.",
      "properties": {
        "conditions": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Resources_ListingGroupFilterDimension_WebpageCondition"
          },
          "description": "The webpage conditions are case sensitive and these are and-ed together when evaluated for filtering. All the conditions should be of same type. Example1: for URL1 = www.ads.google.com?ocid=1&euid=2 and URL2 = www.ads.google.com?ocid=1 and with \"ocid\" and \"euid\" as url_contains conditions, URL1 will be matched, but URL2 not. Example2 : If URL1 has Label1, Label2 and URL2 has Label2, Label3, then with Label1 and Label2 as custom_label conditions, URL1 will be matched but not URL2. With Label2 as the only custom_label condition then both URL1 and URL2 will be matched."
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources_ListingGroupFilterDimension_Webpage"
    },
    "GoogleAdsGoogleadsV23Services__SurveyDissatisfied": {
      "description": "Details about various factors for not being satisfied with the lead.",
      "properties": {
        "surveyDissatisfiedReason": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Other reasons.",
            "Lead was for a service that does not match the business' service area.",
            "Lead was for a service that is not offered by the business.",
            "Lead was by a customer that was not ready to book.",
            "Lead was a spam. Example: lead was from a bot, silent called, scam, etc.",
            "Lead was a duplicate of another lead that is, customer contacted the business more than once.",
            "Lead due to solicitation. Example: a person trying to get a job or selling a product, etc."
          ],
          "description": "Required. Provider's reason for not being satisfied with the lead.",
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "OTHER_DISSATISFIED_REASON",
            "GEO_MISMATCH",
            "JOB_TYPE_MISMATCH",
            "NOT_READY_TO_BOOK",
            "SPAM",
            "DUPLICATE",
            "SOLICITATION"
          ]
        },
        "otherReasonComment": {
          "description": "Optional. Provider's free form comments. This field is required when OTHER_DISSATISFIED_REASON is selected as the reason.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__SurveyDissatisfied"
    },
    "GoogleAdsGoogleadsV23Services__GeneratedText": {
      "properties": {
        "assetFieldType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE",
            "DESCRIPTION",
            "MANDATORY_AD_TEXT",
            "MARKETING_IMAGE",
            "MEDIA_BUNDLE",
            "YOUTUBE_VIDEO",
            "BOOK_ON_GOOGLE",
            "LEAD_FORM",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "LONG_HEADLINE",
            "BUSINESS_NAME",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "VIDEO",
            "CALL_TO_ACTION_SELECTION",
            "AD_IMAGE",
            "BUSINESS_LOGO",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "TALL_PORTRAIT_MARKETING_IMAGE",
            "RELATED_YOUTUBE_VIDEOS",
            "LANDING_PAGE_PREVIEW",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION"
          ],
          "description": "The type of asset this text is intended to be used as.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is linked for use as a headline.",
            "The asset is linked for use as a description.",
            "The asset is linked for use as mandatory ad text.",
            "The asset is linked for use as a marketing image.",
            "The asset is linked for use as a media bundle.",
            "The asset is linked for use as a YouTube video.",
            "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
            "The asset is linked for use as a Lead Form extension.",
            "The asset is linked for use as a Promotion extension.",
            "The asset is linked for use as a Callout extension.",
            "The asset is linked for use as a Structured Snippet extension.",
            "The asset is linked for use as a Sitelink.",
            "The asset is linked for use as a Mobile App extension.",
            "The asset is linked for use as a Hotel Callout extension.",
            "The asset is linked for use as a Call extension.",
            "The asset is linked for use as a Price extension.",
            "The asset is linked for use as a long headline.",
            "The asset is linked for use as a business name.",
            "The asset is linked for use as a square marketing image.",
            "The asset is linked for use as a portrait marketing image.",
            "The asset is linked for use as a logo.",
            "The asset is linked for use as a landscape logo.",
            "The asset is linked for use as a non YouTube logo.",
            "The asset is linked for use to select a call-to-action.",
            "The asset is linked for use to select an ad image.",
            "The asset is linked for use as a business logo.",
            "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
            "The asset is linked for use as a Demand Gen carousel card.",
            "The asset is linked for use as a Business Message.",
            "The asset is linked for use as a tall portrait marketing image.",
            "The asset is linked for use as related YouTube videos.",
            "The asset is linked for use as a landing page preview image.",
            "The asset is linked for use as a long description.",
            "The asset is linked for use as a call-to-action."
          ],
          "type": "string"
        },
        "text": {
          "type": "string",
          "description": "A string of text that was generated."
        }
      },
      "description": "Data and metadata about a piece of generated text.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__GeneratedText"
    },
    "GoogleAdsGoogleadsV23Common__WebpageSampleInfo": {
      "id": "GoogleAdsGoogleadsV23Common__WebpageSampleInfo",
      "type": "object",
      "description": "List of sample urls that match the website target",
      "properties": {
        "sampleUrls": {
          "type": "array",
          "description": "Webpage sample urls",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__LocationAsset": {
      "properties": {
        "locationOwnershipType": {
          "description": "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.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BUSINESS_OWNER",
            "AFFILIATE"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Business Owner of location(legacy location extension - LE).",
            "Affiliate location(Third party location extension - ALE)."
          ]
        },
        "businessProfileLocations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__BusinessProfileLocation"
          },
          "description": "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.",
          "type": "array"
        },
        "placeId": {
          "description": "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.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__LocationAsset",
      "type": "object",
      "description": "A location asset."
    },
    "GoogleAdsGoogleadsV23Services__MutateBiddingSeasonalityAdjustmentsResult": {
      "description": "The result for the seasonality adjustment mutate.",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        },
        "biddingSeasonalityAdjustment": {
          "$ref": "GoogleAdsGoogleadsV23Resources__BiddingSeasonalityAdjustment",
          "description": "The mutated bidding seasonality adjustment with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\"."
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateBiddingSeasonalityAdjustmentsResult",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__YouTubeVideoListAsset": {
      "type": "object",
      "description": "A YouTube video list asset.",
      "id": "GoogleAdsGoogleadsV23Common__YouTubeVideoListAsset",
      "properties": {
        "youtubeVideos": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdVideoAsset"
          },
          "type": "array",
          "description": "List of videos. Each is a reference to a YouTube video asset. Minimum of 2 videos required and maximum of 5 allowed."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__CampaignAssetSetOperation": {
      "id": "GoogleAdsGoogleadsV23Services__CampaignAssetSetOperation",
      "properties": {
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed campaign asset set is expected, in this format: `customers/{customer_id}/campaignAssetSets/{campaign_id}~{asset_set_id}`"
        },
        "create": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CampaignAssetSet",
          "description": "Create operation: No resource name is expected for the new campaign asset set."
        }
      },
      "type": "object",
      "description": "A single operation (create, remove) on a campaign asset set."
    },
    "GoogleAdsGoogleadsV23Services__GenerateKeywordHistoricalMetricsResult": {
      "properties": {
        "closeVariants": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The list of close variants from the requested keywords whose stats are combined into this GenerateKeywordHistoricalMetricsResult."
        },
        "text": {
          "type": "string",
          "description": "The text of the query associated with one or more keywords. Note that we de-dupe your keywords list, eliminating close variants before returning the keywords as text. For example, if your request originally contained the keywords \"car\" and \"cars\", the returned search query will only contain \"cars\". The list of de-duped queries will be included in close_variants field."
        },
        "keywordMetrics": {
          "description": "The historical metrics for text and its close variants",
          "$ref": "GoogleAdsGoogleadsV23Common__KeywordPlanHistoricalMetrics"
        }
      },
      "description": "The result of generating keyword historical metrics.",
      "id": "GoogleAdsGoogleadsV23Services__GenerateKeywordHistoricalMetricsResult",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__LookalikeUserListInfo": {
      "type": "object",
      "description": "LookalikeUserlist, composed of users similar to those of a configurable seed (set of UserLists)",
      "properties": {
        "countryCodes": {
          "description": "Countries targeted by the Lookalike. Two-letter country code as defined by ISO-3166",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "seedUserListIds": {
          "type": "array",
          "description": "Seed UserList ID from which this list is derived, provided by user.",
          "items": {
            "format": "int64",
            "type": "string"
          }
        },
        "expansionLevel": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NARROW",
            "BALANCED",
            "BROAD"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Invalid expansion level.",
            "Expansion to a small set of users that are similar to the seed lists",
            "Expansion to a medium set of users that are similar to the seed lists. Includes all users of EXPANSION_LEVEL_NARROW, and more.",
            "Expansion to a large set of users that are similar to the seed lists. Includes all users of EXPANSION_LEVEL_BALANCED, and more."
          ],
          "type": "string",
          "description": "Expansion level, reflecting the size of the lookalike audience"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__LookalikeUserListInfo"
    },
    "GoogleAdsGoogleadsV23Common__HotelPropertyAsset": {
      "type": "object",
      "description": "A hotel property asset.",
      "properties": {
        "placeId": {
          "description": "Place IDs uniquely identify a place in the Google Places database and on Google Maps. See https://developers.google.com/places/web-service/place-id to learn more.",
          "type": "string"
        },
        "hotelAddress": {
          "type": "string",
          "description": "Address of the hotel. Read-only."
        },
        "hotelName": {
          "description": "Name of the hotel. Read-only.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__HotelPropertyAsset"
    },
    "GoogleAdsGoogleadsV23Resources__AssetSet": {
      "id": "GoogleAdsGoogleadsV23Resources__AssetSet",
      "description": "An asset set representing a collection of assets. Use AssetSetAsset to link an asset to the asset set.",
      "type": "object",
      "properties": {
        "hotelPropertyData": {
          "description": "Output only. For Performance Max for travel goals campaigns with a Hotel Center account link. Read-only.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV23Resources_AssetSet_HotelPropertyData"
        },
        "status": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "enumDescriptions": [
            "The status has not been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The asset set is enabled.",
            "The asset set is removed."
          ],
          "type": "string",
          "readOnly": true,
          "description": "Output only. The status of the asset set. Read-only."
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the asset set. Asset set resource names have the form: `customers/{customer_id}/assetSets/{asset_set_id}`"
        },
        "merchantCenterFeed": {
          "$ref": "GoogleAdsGoogleadsV23Resources_AssetSet_MerchantCenterFeed",
          "description": "Merchant ID and Feed Label from Google Merchant Center."
        },
        "locationSet": {
          "description": "Location asset set data. This will be used for sync level location set. This can only be set if AssetSet's type is LOCATION_SYNC.",
          "$ref": "GoogleAdsGoogleadsV23Common__LocationSet"
        },
        "businessProfileLocationGroup": {
          "description": "Business Profile location group asset set data.",
          "$ref": "GoogleAdsGoogleadsV23Common__BusinessProfileLocationGroup"
        },
        "name": {
          "description": "Required. Name of the asset set. Required. It must have a minimum length of 1 and maximum length of 128.",
          "type": "string"
        },
        "chainLocationGroup": {
          "description": "Represents information about a Chain dynamic location group. Only applicable if the sync level AssetSet's type is LOCATION_SYNC and sync source is chain.",
          "$ref": "GoogleAdsGoogleadsV23Common__ChainLocationGroup"
        },
        "locationGroupParentAssetSetId": {
          "format": "int64",
          "description": "Immutable. Parent asset set ID for the asset set where the elements of this asset set come from. For example: the sync level location AssetSet id where the elements in LocationGroup AssetSet come from. This field is required and only applicable for Location Group typed AssetSet.",
          "type": "string"
        },
        "type": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Page asset set.",
            "Dynamic education asset set.",
            "Google Merchant Center asset set.",
            "Dynamic real estate asset set.",
            "Dynamic custom asset set.",
            "Dynamic hotels and rentals asset set.",
            "Dynamic flights asset set.",
            "Dynamic travel asset set.",
            "Dynamic local asset set.",
            "Dynamic jobs asset set.",
            "Location sync level asset set.",
            "Business Profile location group asset set.",
            "Chain location group asset set which can be used for both owned locations and affiliate locations.",
            "Static location group asset set which can be used for both owned locations and affiliate locations.",
            "Hotel Property asset set which is used to link a hotel property feed to Performance Max for travel goals campaigns.",
            "Travel Feed asset set type. Can represent either a Hotel feed or a Things to Do (activities) feed."
          ],
          "description": "Required. Immutable. The type of the asset set. Required.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PAGE_FEED",
            "DYNAMIC_EDUCATION",
            "MERCHANT_CENTER_FEED",
            "DYNAMIC_REAL_ESTATE",
            "DYNAMIC_CUSTOM",
            "DYNAMIC_HOTELS_AND_RENTALS",
            "DYNAMIC_FLIGHTS",
            "DYNAMIC_TRAVEL",
            "DYNAMIC_LOCAL",
            "DYNAMIC_JOBS",
            "LOCATION_SYNC",
            "BUSINESS_PROFILE_DYNAMIC_LOCATION_GROUP",
            "CHAIN_DYNAMIC_LOCATION_GROUP",
            "STATIC_LOCATION_GROUP",
            "HOTEL_PROPERTY",
            "TRAVEL_FEED"
          ]
        },
        "id": {
          "readOnly": true,
          "format": "int64",
          "type": "string",
          "description": "Output only. The ID of the asset set."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateCampaignAssetsResponse": {
      "properties": {
        "partialFailureError": {
          "$ref": "GoogleRpc__Status",
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error."
        },
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateCampaignAssetResult"
          },
          "description": "All results for the mutate."
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateCampaignAssetsResponse",
      "description": "Response message for a campaign asset mutate."
    },
    "GoogleAdsGoogleadsV23Services__CreateOfflineUserDataJobResponse": {
      "id": "GoogleAdsGoogleadsV23Services__CreateOfflineUserDataJobResponse",
      "description": "Response message for OfflineUserDataJobService.CreateOfflineUserDataJob.",
      "type": "object",
      "properties": {
        "resourceName": {
          "description": "The resource name of the OfflineUserDataJob.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__KeywordPlanCampaignKeywordOperation": {
      "id": "GoogleAdsGoogleadsV23Services__KeywordPlanCampaignKeywordOperation",
      "type": "object",
      "properties": {
        "update": {
          "$ref": "GoogleAdsGoogleadsV23Resources__KeywordPlanCampaignKeyword",
          "description": "Update operation: The Keyword Plan campaign keyword expected to have a valid resource name."
        },
        "create": {
          "$ref": "GoogleAdsGoogleadsV23Resources__KeywordPlanCampaignKeyword",
          "description": "Create operation: No resource name is expected for the new Keyword Plan campaign keyword."
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed Keyword Plan campaign keywords expected in this format: `customers/{customer_id}/keywordPlanCampaignKeywords/{kp_campaign_keyword_id}`"
        },
        "updateMask": {
          "format": "google-fieldmask",
          "type": "string",
          "description": "The FieldMask that determines which resource fields are modified in an update."
        }
      },
      "description": "A single operation (create, update, remove) on a Keyword Plan campaign keyword."
    },
    "GoogleAdsGoogleadsV23Services__MutateAssetGroupAssetsResponse": {
      "type": "object",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateAssetGroupAssetResult"
          },
          "description": "All results for the mutate."
        }
      },
      "description": "Response message for an asset group asset mutate.",
      "id": "GoogleAdsGoogleadsV23Services__MutateAssetGroupAssetsResponse"
    },
    "GoogleAdsGoogleadsV23Services__GenerateInsightsFinderReportRequest": {
      "properties": {
        "baselineAudience": {
          "description": "Required. A baseline audience for this report, typically all people in a region.",
          "$ref": "GoogleAdsGoogleadsV23Services__InsightsAudience"
        },
        "insightsApplicationInfo": {
          "description": "Optional. Additional information on the application issuing the request.",
          "$ref": "GoogleAdsGoogleadsV23Common__AdditionalApplicationInfo"
        },
        "specificAudience": {
          "description": "Required. The specific audience of interest for this report. The insights in the report will be based on attributes more prevalent in this audience than in the report's baseline audience.",
          "$ref": "GoogleAdsGoogleadsV23Services__InsightsAudience"
        },
        "customerInsightsGroup": {
          "type": "string",
          "description": "The name of the customer being planned for. This is a user-defined value."
        }
      },
      "description": "Request message for AudienceInsightsService.GenerateInsightsFinderReport.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__GenerateInsightsFinderReportRequest"
    },
    "GoogleAdsGoogleadsV23Resources__Note": {
      "properties": {
        "description": {
          "description": "Output only. Content of lead note.",
          "type": "string",
          "readOnly": true
        },
        "editDateTime": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The date time when lead note was edited. The format is \"YYYY-MM-DD HH:MM:SS\" in the Google Ads account's timezone. Examples: \"2018-03-05 09:15:00\" or \"2018-02-01 14:34:30\""
        }
      },
      "type": "object",
      "description": "Represents a note added to a lead by the advertiser. Advertisers can edit notes, which will reset edit time and change description.",
      "id": "GoogleAdsGoogleadsV23Resources__Note"
    },
    "GoogleAdsGoogleadsV23Resources_CustomerSkAdNetworkConversionValueSchema_SkAdNetworkConversionValueSchema": {
      "properties": {
        "appId": {
          "readOnly": true,
          "description": "Required. Output only. Apple App Store app ID.",
          "type": "string"
        },
        "fineGrainedConversionValueMappings": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_FineGrainedConversionValueMappings"
          },
          "description": "Output only. Fine grained conversion value mappings. For SkAdNetwork versions >= 4.0 that support multiple conversion windows, fine grained conversion value mappings are only applicable to the first postback.",
          "type": "array",
          "readOnly": true
        },
        "measurementWindowHours": {
          "description": "Output only. A time window (measured in hours) post-install, after which the App Attribution Partner or advertiser stops calling [updateConversionValue] (https://developer.apple.com/documentation/storekit/skadnetwork/3566697-updateconversionvalue).",
          "type": "integer",
          "format": "int32",
          "readOnly": true
        },
        "postbackMappings": {
          "description": "Output only. Per-postback conversion value mappings for postbacks in multiple conversion windows. Only applicable for SkAdNetwork versions >= 4.0.",
          "type": "array",
          "readOnly": true,
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_PostbackMapping"
          }
        }
      },
      "type": "object",
      "description": "The CustomerLink specific SkAdNetworkConversionValueSchema.",
      "id": "GoogleAdsGoogleadsV23Resources_CustomerSkAdNetworkConversionValueSchema_SkAdNetworkConversionValueSchema"
    },
    "GoogleAdsGoogleadsV23Resources_CampaignVideoCampaignSettings_VideoAdSequence": {
      "type": "object",
      "description": "Container for video ads sequencing definition.",
      "properties": {
        "minimumDuration": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "WEEK",
            "MONTH"
          ],
          "type": "string",
          "description": "Users are eligible to repeat sequence after this period. Defaults to WEEK if not specified.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Users are eligible to restart a sequence once they have completed the sequence and at least 7 days have passed since sequence start.",
            "Users are eligible to restart a sequence once at least 30 days have passed since sequence start. Users are eligible to start the sequence again even if they haven't completed the sequence."
          ]
        },
        "steps": {
          "description": "The list of sequence steps and data associated with them.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Resources_CampaignVideoCampaignSettings_VideoAdSequenceStep"
          }
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources_CampaignVideoCampaignSettings_VideoAdSequence"
    },
    "GoogleAdsGoogleadsV23Common__UserListSegment": {
      "description": "User list segment.",
      "type": "object",
      "properties": {
        "userList": {
          "description": "The user list resource.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__UserListSegment"
    },
    "GoogleAdsGoogleadsV23Services__ApplyIncentiveRequest": {
      "properties": {
        "countryCode": {
          "description": "Required. User's country code. Required. This field must be equal to the Google Ads account's billing country. Incentive eligibility, terms of service, and reward values are often country-specific. This country code is used to ensure the selected incentive is applicable to the user. Possible country codes: https://developers.google.com/google-ads/api/data/codes-formats#country_codes",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__ApplyIncentiveRequest",
      "description": "Request message for applying an incentive.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__CallReportingSetting": {
      "properties": {
        "callConversionAction": {
          "description": "Customer-level call conversion action to attribute a call conversion to. If not set a default conversion action is used. Only in effect when call_conversion_reporting_enabled is set to true.",
          "type": "string"
        },
        "callReportingEnabled": {
          "description": "Enable reporting of phone call events by redirecting them through Google System.",
          "type": "boolean"
        },
        "callConversionReportingEnabled": {
          "type": "boolean",
          "description": "Whether to enable call conversion reporting."
        }
      },
      "description": "Call reporting setting for a customer. Only mutable in an `update` operation.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__CallReportingSetting"
    },
    "GoogleAdsGoogleadsV23Services__MutateCampaignBidModifiersRequest": {
      "properties": {
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "responseContentType": {
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "type": "string"
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "operations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__CampaignBidModifierOperation"
          },
          "type": "array",
          "description": "Required. The list of operations to perform on individual campaign bid modifiers."
        }
      },
      "type": "object",
      "description": "Request message for CampaignBidModifierService.MutateCampaignBidModifiers.",
      "id": "GoogleAdsGoogleadsV23Services__MutateCampaignBidModifiersRequest"
    },
    "GoogleAdsGoogleadsV23Common__AudienceExclusionDimension": {
      "properties": {
        "exclusions": {
          "description": "Audience segment to be excluded.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__ExclusionSegment"
          },
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__AudienceExclusionDimension",
      "type": "object",
      "description": "Negative dimension specifying users to exclude from the audience."
    },
    "GoogleAdsGoogleadsV23Common__TravelAdInfo": {
      "id": "GoogleAdsGoogleadsV23Common__TravelAdInfo",
      "type": "object",
      "description": "A travel ad.",
      "properties": {}
    },
    "GoogleAdsGoogleadsV23Common__AdAppDeepLinkAsset": {
      "description": "An app deep link used inside an ad.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__AdAppDeepLinkAsset",
      "properties": {
        "asset": {
          "type": "string",
          "description": "The Asset resource name of this app deep link asset."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__DismissRecommendationResponse": {
      "properties": {
        "results": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services_DismissRecommendationResponse_DismissRecommendationResult"
          },
          "description": "Results of operations to dismiss recommendations.",
          "type": "array"
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors) we return the RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      },
      "description": "Response message for RecommendationService.DismissRecommendation.",
      "id": "GoogleAdsGoogleadsV23Services__DismissRecommendationResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__ListBenchmarksProductsRequest": {
      "properties": {
        "applicationInfo": {
          "description": "Additional information on the application issuing the request.",
          "$ref": "GoogleAdsGoogleadsV23Common__AdditionalApplicationInfo"
        }
      },
      "description": "Request message for BenchmarksService.ListBenchmarksProducts.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__ListBenchmarksProductsRequest"
    },
    "GoogleAdsGoogleadsV23Errors__GoogleAdsFailure": {
      "properties": {
        "errors": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Errors__GoogleAdsError"
          },
          "type": "array",
          "description": "The list of errors that occurred."
        },
        "requestId": {
          "type": "string",
          "description": "The unique ID of the request that is used for debugging purposes."
        }
      },
      "description": "Describes how a GoogleAds API call failed. It's returned inside google.rpc.Status.details when a call fails.",
      "id": "GoogleAdsGoogleadsV23Errors__GoogleAdsFailure",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__ListBenchmarksAvailableDatesResponse": {
      "type": "object",
      "properties": {
        "supportedDates": {
          "description": "The dates that support benchmarks metrics. Data is supported for any dates within this date range inclusive.",
          "$ref": "GoogleAdsGoogleadsV23Common__DateRange"
        }
      },
      "description": "Response message for BenchmarksService.ListBenchmarksAvailableDates.",
      "id": "GoogleAdsGoogleadsV23Services__ListBenchmarksAvailableDatesResponse"
    },
    "GoogleAdsGoogleadsV23Resources__AdGroupAd": {
      "type": "object",
      "description": "An ad group ad.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the ad. Ad group ad resource names have the form: `customers/{customer_id}/adGroupAds/{ad_group_id}~{ad_id}`"
        },
        "adStrength": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PENDING",
            "NO_ADS",
            "POOR",
            "AVERAGE",
            "GOOD",
            "EXCELLENT"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The ad strength is currently pending.",
            "No ads could be generated.",
            "Poor strength.",
            "Average strength.",
            "Good strength.",
            "Excellent strength."
          ],
          "type": "string",
          "description": "Output only. Overall ad strength for this ad group ad.",
          "readOnly": true
        },
        "primaryStatus": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ELIGIBLE",
            "PAUSED",
            "REMOVED",
            "PENDING",
            "LIMITED",
            "NOT_ELIGIBLE"
          ],
          "enumDescriptions": [
            "No value has been specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The ad group ad is eligible to serve.",
            "The ad group ad is paused.",
            "The ad group ad is removed.",
            "The ad cannot serve now, but may serve later without advertiser action.",
            "The ad group ad is serving in a limited capacity.",
            "The ad group ad is not eligible to serve."
          ],
          "description": "Output only. Provides aggregated view into why an ad group ad is not serving or not serving optimally.",
          "readOnly": true
        },
        "primaryStatusReasons": {
          "items": {
            "type": "string",
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "CAMPAIGN_REMOVED",
              "CAMPAIGN_PAUSED",
              "CAMPAIGN_PENDING",
              "CAMPAIGN_ENDED",
              "AD_GROUP_PAUSED",
              "AD_GROUP_REMOVED",
              "AD_GROUP_AD_PAUSED",
              "AD_GROUP_AD_REMOVED",
              "AD_GROUP_AD_DISAPPROVED",
              "AD_GROUP_AD_UNDER_REVIEW",
              "AD_GROUP_AD_POOR_QUALITY",
              "AD_GROUP_AD_NO_ADS",
              "AD_GROUP_AD_APPROVED_LABELED",
              "AD_GROUP_AD_AREA_OF_INTEREST_ONLY",
              "AD_GROUP_AD_UNDER_APPEAL"
            ],
            "enumDescriptions": [
              "No value has been specified.",
              "Used for return value only. Represents value unknown in this version.",
              "The user-specified campaign status is removed. Contributes to AdGroupAdPrimaryStatus.REMOVED.",
              "The user-specified campaign status is paused. Contributes to AdGroupAdPrimaryStatus.PAUSED.",
              "The user-specified time for this campaign to start is in the future. Contributes to AdGroupAdPrimaryStatus.PENDING.",
              "The user-specified time for this campaign to end has passed. Contributes to AdGroupAdPrimaryStatus.ENDED.",
              "The user-specified ad group status is paused. Contributes to AdGroupAdPrimaryStatus.PAUSED.",
              "The user-specified ad group status is removed. Contributes to AdGroupAdPrimaryStatus.REMOVED.",
              "The user-specified ad status is paused. Contributes to AdGroupAdPrimaryStatus.PAUSED.",
              "The user-specified ad status is removed. Contributes to AdGroupAdPrimaryStatus.REMOVED.",
              "The ad is disapproved. Contributes to AdGroupAdPrimaryStatus.NOT_ELIGIBLE.",
              "The ad is under review. Contributes to AdGroupAdPrimaryStatus.PENDING.",
              "The ad is poor quality. This is determined by the serving stack that served the Ad. Contributes to AdGroupAdPrimaryStatus.LIMITED.",
              "No eligible ads instances could be generated. Contributes to AdGroupAdPrimaryStatus.PENDING.",
              "The ad is internally labeled with a limiting label. Contributes to AdGroupAdPrimaryStatus.LIMITED.",
              "The ad is only serving in the user-specified area of interest. Contributes to AdGroupAdPrimaryStatus.LIMITED.",
              "The ad is part of an ongoing appeal. This reason does not impact AdGroupAdPrimaryStatus."
            ]
          },
          "type": "array",
          "description": "Output only. Provides reasons for why an ad group ad is not serving or not serving optimally.",
          "readOnly": true
        },
        "actionItems": {
          "description": "Output only. A list of recommendations to improve the ad strength. For example, a recommendation could be \"Try adding a few more unique headlines or unpinning some assets.\".",
          "items": {
            "type": "string"
          },
          "readOnly": true,
          "type": "array"
        },
        "labels": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Output only. The resource names of labels attached to this ad group ad.",
          "readOnly": true
        },
        "adGroupAdAssetAutomationSettings": {
          "type": "array",
          "description": "Settings that control the types of asset automation. See the AssetAutomationTypeEnum documentation for the default opt in/out behavior of each type.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Resources__AdGroupAdAssetAutomationSetting"
          }
        },
        "adGroup": {
          "type": "string",
          "description": "Immutable. The ad group to which the ad belongs."
        },
        "policySummary": {
          "description": "Output only. Policy information for the ad.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV23Resources__AdGroupAdPolicySummary"
        },
        "ad": {
          "description": "Immutable. The ad.",
          "$ref": "GoogleAdsGoogleadsV23Resources__Ad"
        },
        "status": {
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The ad group ad is enabled.",
            "The ad group ad is paused.",
            "The ad group ad is removed."
          ],
          "type": "string",
          "description": "The status of the ad.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "PAUSED",
            "REMOVED"
          ]
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__AdGroupAd"
    },
    "GoogleAdsGoogleadsV23Common__Segments": {
      "id": "GoogleAdsGoogleadsV23Common__Segments",
      "description": "Segment only fields.",
      "properties": {
        "productAggregatorId": {
          "format": "int64",
          "description": "Aggregator ID of the product.",
          "type": "string"
        },
        "quarter": {
          "type": "string",
          "description": "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."
        },
        "skAdNetworkAttributionCredit": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "UNAVAILABLE",
            "WON",
            "CONTRIBUTED"
          ],
          "enumDescriptions": [
            "Default value. This value is equivalent to null.",
            "The value is unknown in this API version. The true enum value cannot be returned in this API version or is not supported yet.",
            "The value was not present in the postback or we do not have this data for other reasons.",
            "Google was the ad network that won ad attribution.",
            "Google qualified for attribution, but didn't win."
          ],
          "type": "string",
          "description": "iOS Store Kit Ad Network attribution credit"
        },
        "activityAccountId": {
          "type": "string",
          "description": "Activity account ID.",
          "format": "int64"
        },
        "productCustomAttribute1": {
          "description": "Custom attribute 1 of the product.",
          "type": "string"
        },
        "hotelBookingWindowDays": {
          "type": "string",
          "description": "Hotel booking window in days.",
          "format": "int64"
        },
        "hotelRateRuleId": {
          "description": "Hotel rate rule ID.",
          "type": "string"
        },
        "searchTerm": {
          "type": "string",
          "description": "A search term."
        },
        "conversionLagBucket": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Conversion lag bucket from 0 to 1 day. 0 day is included, 1 day is not.",
            "Conversion lag bucket from 1 to 2 days. 1 day is included, 2 days is not.",
            "Conversion lag bucket from 2 to 3 days. 2 days is included, 3 days is not.",
            "Conversion lag bucket from 3 to 4 days. 3 days is included, 4 days is not.",
            "Conversion lag bucket from 4 to 5 days. 4 days is included, 5 days is not.",
            "Conversion lag bucket from 5 to 6 days. 5 days is included, 6 days is not.",
            "Conversion lag bucket from 6 to 7 days. 6 days is included, 7 days is not.",
            "Conversion lag bucket from 7 to 8 days. 7 days is included, 8 days is not.",
            "Conversion lag bucket from 8 to 9 days. 8 days is included, 9 days is not.",
            "Conversion lag bucket from 9 to 10 days. 9 days is included, 10 days is not.",
            "Conversion lag bucket from 10 to 11 days. 10 days is included, 11 days is not.",
            "Conversion lag bucket from 11 to 12 days. 11 days is included, 12 days is not.",
            "Conversion lag bucket from 12 to 13 days. 12 days is included, 13 days is not.",
            "Conversion lag bucket from 13 to 14 days. 13 days is included, 14 days is not.",
            "Conversion lag bucket from 14 to 21 days. 14 days is included, 21 days is not.",
            "Conversion lag bucket from 21 to 30 days. 21 days is included, 30 days is not.",
            "Conversion lag bucket from 30 to 45 days. 30 days is included, 45 days is not.",
            "Conversion lag bucket from 45 to 60 days. 45 days is included, 60 days is not.",
            "Conversion lag bucket from 60 to 90 days. 60 days is included, 90 days is not."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "LESS_THAN_ONE_DAY",
            "ONE_TO_TWO_DAYS",
            "TWO_TO_THREE_DAYS",
            "THREE_TO_FOUR_DAYS",
            "FOUR_TO_FIVE_DAYS",
            "FIVE_TO_SIX_DAYS",
            "SIX_TO_SEVEN_DAYS",
            "SEVEN_TO_EIGHT_DAYS",
            "EIGHT_TO_NINE_DAYS",
            "NINE_TO_TEN_DAYS",
            "TEN_TO_ELEVEN_DAYS",
            "ELEVEN_TO_TWELVE_DAYS",
            "TWELVE_TO_THIRTEEN_DAYS",
            "THIRTEEN_TO_FOURTEEN_DAYS",
            "FOURTEEN_TO_TWENTY_ONE_DAYS",
            "TWENTY_ONE_TO_THIRTY_DAYS",
            "THIRTY_TO_FORTY_FIVE_DAYS",
            "FORTY_FIVE_TO_SIXTY_DAYS",
            "SIXTY_TO_NINETY_DAYS"
          ],
          "description": "An enum value representing the number of days between the impression and the conversion.",
          "type": "string"
        },
        "skAdNetworkRedistributedFineConversionValue": {
          "format": "int64",
          "description": "iOS Store Kit Ad Network redistributed fine conversion value. Google uses modeling on observed conversion values(obtained from Apple) to calculate conversions from SKAN postbacks where NULLs are returned. This column represents the sum of the modeled conversion values and the observed conversion values. See https://support.google.com/google-ads/answer/14892597 to lean more.",
          "type": "string"
        },
        "auctionInsightDomain": {
          "type": "string",
          "description": "Domain (visible URL) of a participant in the Auction Insights report."
        },
        "conversionActionName": {
          "description": "Conversion action name.",
          "type": "string"
        },
        "skAdNetworkSourceApp": {
          "$ref": "GoogleAdsGoogleadsV23Common__SkAdNetworkSourceApp",
          "description": "App where the ad that drove the iOS Store Kit Ad Network install was shown. Null value means this segment is not applicable, for example, non-iOS campaign, or was not present in any postbacks sent by Apple."
        },
        "partnerHotelId": {
          "description": "Partner hotel ID.",
          "type": "string"
        },
        "adUsingVideo": {
          "description": "Indicates whether an ad is using a video asset. This segment is only available for PMax campaigns and will not return data when any other campaign type is selected.",
          "type": "boolean"
        },
        "geoTargetMetro": {
          "type": "string",
          "description": "Resource name of the geo target constant that represents a metro."
        },
        "assetInteractionTarget": {
          "description": "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.",
          "$ref": "GoogleAdsGoogleadsV23Common__AssetInteractionTarget"
        },
        "productChannelExclusivity": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SINGLE_CHANNEL",
            "MULTI_CHANNEL"
          ],
          "description": "Channel exclusivity of the product.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The item is sold through one channel only, either local stores or online as indicated by its ProductChannel.",
            "The item is matched to its online or local stores counterpart, indicating it is available for purchase in both ShoppingProductChannels."
          ]
        },
        "geoTargetAirport": {
          "description": "Resource name of the geo target constant that represents an airport.",
          "type": "string"
        },
        "skAdNetworkSourceDomain": {
          "type": "string",
          "description": "Website where the ad that drove the iOS Store Kit Ad Network install was shown. Null value means this segment is not applicable, for example, non-iOS campaign, or was not present in any postbacks sent by Apple."
        },
        "newVersusReturningCustomers": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NEW",
            "RETURNING",
            "NEW_AND_HIGH_LTV"
          ],
          "type": "string",
          "description": "This is for segmenting conversions by whether the user is a new customer or a returning customer. This segmentation is typically used to measure the impact of customer acquisition goal.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Converting user is new to the advertiser.",
            "Converting user is returning to the advertiser. Definition of returning differs among conversion types, such as a second store visit versus a second online purchase.",
            "Converting user is new to the advertiser and has high lifetime value."
          ]
        },
        "productTypeL2": {
          "description": "Type (level 2) of the product.",
          "type": "string"
        },
        "hotelDateSelectionType": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Dates selected by default.",
            "Dates selected by the user."
          ],
          "description": "Hotel date selection type.",
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DEFAULT_SELECTION",
            "USER_SELECTED"
          ]
        },
        "activityCity": {
          "type": "string",
          "description": "The city where the travel activity is available."
        },
        "hotelState": {
          "description": "Hotel state.",
          "type": "string"
        },
        "productCustomAttribute0": {
          "type": "string",
          "description": "Custom attribute 0 of the product."
        },
        "geoTargetCanton": {
          "description": "Resource name of the geo target constant that represents a canton.",
          "type": "string"
        },
        "skAdNetworkFineConversionValue": {
          "format": "int64",
          "description": "iOS Store Kit Ad Network conversion value. Null value means this segment is not applicable, for example, non-iOS campaign.",
          "type": "string"
        },
        "slot": {
          "description": "Position of the ad.",
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SEARCH_SIDE",
            "SEARCH_TOP",
            "SEARCH_OTHER",
            "CONTENT",
            "SEARCH_PARTNER_TOP",
            "SEARCH_PARTNER_OTHER",
            "MIXED"
          ],
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Google search: Side.",
            "Google search: Top.",
            "Google search: Other.",
            "Google Display Network.",
            "Search partners: Top.",
            "Search partners: Other.",
            "Cross-network."
          ]
        },
        "productChannel": {
          "description": "Channel of the product.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The item is sold online.",
            "The item is sold in local stores."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ONLINE",
            "LOCAL"
          ]
        },
        "verticalAdsListingBrand": {
          "type": "string",
          "description": "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."
        },
        "hour": {
          "format": "int32",
          "description": "Hour of day as a number between 0 and 23, inclusive.",
          "type": "integer"
        },
        "matchType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BROAD",
            "EXACT",
            "PHRASE",
            "AI_MAX"
          ],
          "type": "string",
          "description": "The match type of the keyword that triggered the ad. This segment is for use with keyword_view. For other resources, use search_term_match_type. While match_type is filtered to Broad, Exact, Phrase and Ai Max, search_term_match_type includes variants like Near Exact, Near Phrase.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Broad match.",
            "Exact match.",
            "Phrase match.",
            "Match type for AI Max Search."
          ]
        },
        "productCountry": {
          "description": "Resource name of the geo target constant for the country of sale of the product.",
          "type": "string"
        },
        "productCategoryLevel2": {
          "description": "Category (level 2) of the product.",
          "type": "string"
        },
        "verticalAdsEventParticipantDisplayNames": {
          "description": "The display names of participants in an event listing, like performers, speakers, or teams.",
          "type": "string"
        },
        "hotelCheckInDate": {
          "description": "Hotel check-in date. Formatted as yyyy-MM-dd.",
          "type": "string"
        },
        "conversionAdjustment": {
          "description": "This segments your conversion columns by the original conversion and conversion value versus the delta if conversions were adjusted. False row has the data as originally stated; While true row has the delta between data now and the data as originally stated. Summing the two together results post-adjustment data.",
          "type": "boolean"
        },
        "verticalAdsPartnerAccount": {
          "format": "int64",
          "type": "string",
          "description": "A specific partner account within a Partner Center (for example, Hotel Center) that supplies inventory feed data for Vertical Ads."
        },
        "geoTargetPostalCode": {
          "type": "string",
          "description": "Resource name of the geo target constant that represents a postal code."
        },
        "geoTargetDistrict": {
          "type": "string",
          "description": "Resource name of the geo target constant that represents a district."
        },
        "conversionAttributionEventType": {
          "type": "string",
          "description": "Conversion attribution event type.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "IMPRESSION",
            "INTERACTION",
            "ENGAGED_VIEW"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Represents value unknown in this version.",
            "The conversion is attributed to an impression.",
            "The conversion is attributed to an interaction.",
            "The conversion is attributed to a 10s engaged view."
          ]
        },
        "clickType": {
          "description": "Click type.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "App engagement ad deep link.",
            "Breadcrumbs.",
            "Broadband Plan.",
            "Manually dialed phone calls.",
            "Phone calls.",
            "Click on engagement ad.",
            "Driving direction.",
            "Get location details.",
            "Call.",
            "Directions.",
            "Image(s).",
            "Go to landing page.",
            "Map.",
            "Go to store info.",
            "Text.",
            "Mobile phone calls.",
            "Print offer.",
            "Other.",
            "Product plusbox offer.",
            "Shopping - Product - Online.",
            "Sitelink.",
            "Show nearby locations.",
            "Headline.",
            "App store.",
            "Call-to-Action overlay.",
            "Cards.",
            "End cap.",
            "Website.",
            "Visual Sitelinks.",
            "Wireless Plan.",
            "Shopping - Product - Local.",
            "Shopping - Product - MultiChannel Local.",
            "Shopping - Product - MultiChannel Online.",
            "Shopping - Product - Coupon.",
            "Shopping - Product - Sell on Google.",
            "Shopping - Product - App engagement ad deep link.",
            "Shopping - Showcase - Category.",
            "Shopping - Showcase - Local storefront.",
            "Shopping - Showcase - Online product.",
            "Shopping - Showcase - Local product.",
            "Promotion Extension.",
            "Ad Headline.",
            "Swipes.",
            "See More.",
            "Sitelink 1.",
            "Sitelink 2.",
            "Sitelink 3.",
            "Sitelink 4.",
            "Sitelink 5.",
            "Hotel price.",
            "Price Extension.",
            "Book on Google hotel room selection.",
            "Shopping - Comparison Listing.",
            "Cross-network. From Performance Max and Discovery Campaigns.",
            "AD Images.",
            "Travel Feed Assets.",
            "Vehicle Feed Assets.",
            "Product Feed Assets.",
            "Click on channel icon that navigates the user to the corresponding YouTube channel.",
            "Click on a related video that navigates the user to the video watch page.",
            "Click on message button that navigates the user to a third-party messaging app. If the app is not installed, the ad will not show on Android, and the button will redirect to the app install page on iOS.",
            "Click on non-button surface of message ad that navigates the user to the Google-hosted landing page."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "APP_DEEPLINK",
            "BREADCRUMBS",
            "BROADBAND_PLAN",
            "CALL_TRACKING",
            "CALLS",
            "CLICK_ON_ENGAGEMENT_AD",
            "GET_DIRECTIONS",
            "LOCATION_EXPANSION",
            "LOCATION_FORMAT_CALL",
            "LOCATION_FORMAT_DIRECTIONS",
            "LOCATION_FORMAT_IMAGE",
            "LOCATION_FORMAT_LANDING_PAGE",
            "LOCATION_FORMAT_MAP",
            "LOCATION_FORMAT_STORE_INFO",
            "LOCATION_FORMAT_TEXT",
            "MOBILE_CALL_TRACKING",
            "OFFER_PRINTS",
            "OTHER",
            "PRODUCT_EXTENSION_CLICKS",
            "PRODUCT_LISTING_AD_CLICKS",
            "SITELINKS",
            "STORE_LOCATOR",
            "URL_CLICKS",
            "VIDEO_APP_STORE_CLICKS",
            "VIDEO_CALL_TO_ACTION_CLICKS",
            "VIDEO_CARD_ACTION_HEADLINE_CLICKS",
            "VIDEO_END_CAP_CLICKS",
            "VIDEO_WEBSITE_CLICKS",
            "VISUAL_SITELINKS",
            "WIRELESS_PLAN",
            "PRODUCT_LISTING_AD_LOCAL",
            "PRODUCT_LISTING_AD_MULTICHANNEL_LOCAL",
            "PRODUCT_LISTING_AD_MULTICHANNEL_ONLINE",
            "PRODUCT_LISTING_ADS_COUPON",
            "PRODUCT_LISTING_AD_TRANSACTABLE",
            "PRODUCT_AD_APP_DEEPLINK",
            "SHOWCASE_AD_CATEGORY_LINK",
            "SHOWCASE_AD_LOCAL_STOREFRONT_LINK",
            "SHOWCASE_AD_ONLINE_PRODUCT_LINK",
            "SHOWCASE_AD_LOCAL_PRODUCT_LINK",
            "PROMOTION_EXTENSION",
            "SWIPEABLE_GALLERY_AD_HEADLINE",
            "SWIPEABLE_GALLERY_AD_SWIPES",
            "SWIPEABLE_GALLERY_AD_SEE_MORE",
            "SWIPEABLE_GALLERY_AD_SITELINK_ONE",
            "SWIPEABLE_GALLERY_AD_SITELINK_TWO",
            "SWIPEABLE_GALLERY_AD_SITELINK_THREE",
            "SWIPEABLE_GALLERY_AD_SITELINK_FOUR",
            "SWIPEABLE_GALLERY_AD_SITELINK_FIVE",
            "HOTEL_PRICE",
            "PRICE_EXTENSION",
            "HOTEL_BOOK_ON_GOOGLE_ROOM_SELECTION",
            "SHOPPING_COMPARISON_LISTING",
            "CROSS_NETWORK",
            "AD_IMAGE",
            "TRAVEL_ASSETS",
            "VEHICLE_ASSETS",
            "PRODUCT_ASSETS",
            "VIDEO_CHANNEL_CLICK",
            "VIDEO_RELATED_VIDEOS_CLICK",
            "CLICK_TO_MESSAGE_THIRD_PARTY_CLICK",
            "CLICK_TO_MESSAGE_LANDING_PAGE_CLICK"
          ]
        },
        "productCategoryLevel5": {
          "description": "Category (level 5) of the product.",
          "type": "string"
        },
        "geoTargetCity": {
          "description": "Resource name of the geo target constant that represents a city.",
          "type": "string"
        },
        "geoTargetCounty": {
          "type": "string",
          "description": "Resource name of the geo target constant that represents a county."
        },
        "productCategoryLevel1": {
          "type": "string",
          "description": "Category (level 1) of the product."
        },
        "adUsingProductData": {
          "description": "Indicates whether an ad is using product data from a Google Merchant Center feed. This segment is only available for PMax campaigns and will not return data when any other campaign type is selected.",
          "type": "boolean"
        },
        "travelDestinationCountry": {
          "description": "The country the user is searching for at query time.",
          "type": "string"
        },
        "hotelClass": {
          "format": "int32",
          "type": "integer",
          "description": "Hotel class."
        },
        "dayOfWeek": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MONDAY",
            "TUESDAY",
            "WEDNESDAY",
            "THURSDAY",
            "FRIDAY",
            "SATURDAY",
            "SUNDAY"
          ],
          "type": "string",
          "description": "Day of the week, for example, MONDAY.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Monday.",
            "Tuesday.",
            "Wednesday.",
            "Thursday.",
            "Friday.",
            "Saturday.",
            "Sunday."
          ]
        },
        "hotelCity": {
          "description": "Hotel city.",
          "type": "string"
        },
        "hotelRateType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Rate type information is unavailable.",
            "Rates available to everyone.",
            "A membership program rate is available and satisfies basic requirements like having a public rate available. UI treatment will strikethrough the public rate and indicate that a discount is available to the user. For more on Qualified Rates, visit https://developers.google.com/hotels/hotel-ads/dev-guide/qualified-rates",
            "Rates available to users that satisfy some eligibility criteria, for example, all signed-in users, 20% of mobile users, all mobile users in Canada, etc."
          ],
          "description": "Hotel rate type.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "UNAVAILABLE",
            "PUBLIC_RATE",
            "QUALIFIED_RATE",
            "PRIVATE_RATE"
          ]
        },
        "webpage": {
          "type": "string",
          "description": "Resource name of the ad group criterion that represents webpage criterion."
        },
        "productStoreId": {
          "description": "Store ID of the product.",
          "type": "string"
        },
        "productCategoryLevel4": {
          "type": "string",
          "description": "Category (level 4) of the product."
        },
        "conversionOrAdjustmentLagBucket": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Conversion lag bucket from 0 to 1 day. 0 day is included, 1 day is not.",
            "Conversion lag bucket from 1 to 2 days. 1 day is included, 2 days is not.",
            "Conversion lag bucket from 2 to 3 days. 2 days is included, 3 days is not.",
            "Conversion lag bucket from 3 to 4 days. 3 days is included, 4 days is not.",
            "Conversion lag bucket from 4 to 5 days. 4 days is included, 5 days is not.",
            "Conversion lag bucket from 5 to 6 days. 5 days is included, 6 days is not.",
            "Conversion lag bucket from 6 to 7 days. 6 days is included, 7 days is not.",
            "Conversion lag bucket from 7 to 8 days. 7 days is included, 8 days is not.",
            "Conversion lag bucket from 8 to 9 days. 8 days is included, 9 days is not.",
            "Conversion lag bucket from 9 to 10 days. 9 days is included, 10 days is not.",
            "Conversion lag bucket from 10 to 11 days. 10 days is included, 11 days is not.",
            "Conversion lag bucket from 11 to 12 days. 11 days is included, 12 days is not.",
            "Conversion lag bucket from 12 to 13 days. 12 days is included, 13 days is not.",
            "Conversion lag bucket from 13 to 14 days. 13 days is included, 14 days is not.",
            "Conversion lag bucket from 14 to 21 days. 14 days is included, 21 days is not.",
            "Conversion lag bucket from 21 to 30 days. 21 days is included, 30 days is not.",
            "Conversion lag bucket from 30 to 45 days. 30 days is included, 45 days is not.",
            "Conversion lag bucket from 45 to 60 days. 45 days is included, 60 days is not.",
            "Conversion lag bucket from 60 to 90 days. 60 days is included, 90 days is not.",
            "Conversion adjustment lag bucket from 0 to 1 day. 0 day is included, 1 day is not.",
            "Conversion adjustment lag bucket from 1 to 2 days. 1 day is included, 2 days is not.",
            "Conversion adjustment lag bucket from 2 to 3 days. 2 days is included, 3 days is not.",
            "Conversion adjustment lag bucket from 3 to 4 days. 3 days is included, 4 days is not.",
            "Conversion adjustment lag bucket from 4 to 5 days. 4 days is included, 5 days is not.",
            "Conversion adjustment lag bucket from 5 to 6 days. 5 days is included, 6 days is not.",
            "Conversion adjustment lag bucket from 6 to 7 days. 6 days is included, 7 days is not.",
            "Conversion adjustment lag bucket from 7 to 8 days. 7 days is included, 8 days is not.",
            "Conversion adjustment lag bucket from 8 to 9 days. 8 days is included, 9 days is not.",
            "Conversion adjustment lag bucket from 9 to 10 days. 9 days is included, 10 days is not.",
            "Conversion adjustment lag bucket from 10 to 11 days. 10 days is included, 11 days is not.",
            "Conversion adjustment lag bucket from 11 to 12 days. 11 days is included, 12 days is not.",
            "Conversion adjustment lag bucket from 12 to 13 days. 12 days is included, 13 days is not.",
            "Conversion adjustment lag bucket from 13 to 14 days. 13 days is included, 14 days is not.",
            "Conversion adjustment lag bucket from 14 to 21 days. 14 days is included, 21 days is not.",
            "Conversion adjustment lag bucket from 21 to 30 days. 21 days is included, 30 days is not.",
            "Conversion adjustment lag bucket from 30 to 45 days. 30 days is included, 45 days is not.",
            "Conversion adjustment lag bucket from 45 to 60 days. 45 days is included, 60 days is not.",
            "Conversion adjustment lag bucket from 60 to 90 days. 60 days is included, 90 days is not.",
            "Conversion adjustment lag bucket from 90 to 145 days. 90 days is included, 145 days is not.",
            "Conversion lag bucket UNKNOWN. This is for dates before conversion lag bucket was available in Google Ads.",
            "Conversion adjustment lag bucket UNKNOWN. This is for dates before conversion adjustment lag bucket was available in Google Ads."
          ],
          "type": "string",
          "description": "An enum value representing the number of days between the impression and the conversion or between the impression and adjustments to the conversion.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CONVERSION_LESS_THAN_ONE_DAY",
            "CONVERSION_ONE_TO_TWO_DAYS",
            "CONVERSION_TWO_TO_THREE_DAYS",
            "CONVERSION_THREE_TO_FOUR_DAYS",
            "CONVERSION_FOUR_TO_FIVE_DAYS",
            "CONVERSION_FIVE_TO_SIX_DAYS",
            "CONVERSION_SIX_TO_SEVEN_DAYS",
            "CONVERSION_SEVEN_TO_EIGHT_DAYS",
            "CONVERSION_EIGHT_TO_NINE_DAYS",
            "CONVERSION_NINE_TO_TEN_DAYS",
            "CONVERSION_TEN_TO_ELEVEN_DAYS",
            "CONVERSION_ELEVEN_TO_TWELVE_DAYS",
            "CONVERSION_TWELVE_TO_THIRTEEN_DAYS",
            "CONVERSION_THIRTEEN_TO_FOURTEEN_DAYS",
            "CONVERSION_FOURTEEN_TO_TWENTY_ONE_DAYS",
            "CONVERSION_TWENTY_ONE_TO_THIRTY_DAYS",
            "CONVERSION_THIRTY_TO_FORTY_FIVE_DAYS",
            "CONVERSION_FORTY_FIVE_TO_SIXTY_DAYS",
            "CONVERSION_SIXTY_TO_NINETY_DAYS",
            "ADJUSTMENT_LESS_THAN_ONE_DAY",
            "ADJUSTMENT_ONE_TO_TWO_DAYS",
            "ADJUSTMENT_TWO_TO_THREE_DAYS",
            "ADJUSTMENT_THREE_TO_FOUR_DAYS",
            "ADJUSTMENT_FOUR_TO_FIVE_DAYS",
            "ADJUSTMENT_FIVE_TO_SIX_DAYS",
            "ADJUSTMENT_SIX_TO_SEVEN_DAYS",
            "ADJUSTMENT_SEVEN_TO_EIGHT_DAYS",
            "ADJUSTMENT_EIGHT_TO_NINE_DAYS",
            "ADJUSTMENT_NINE_TO_TEN_DAYS",
            "ADJUSTMENT_TEN_TO_ELEVEN_DAYS",
            "ADJUSTMENT_ELEVEN_TO_TWELVE_DAYS",
            "ADJUSTMENT_TWELVE_TO_THIRTEEN_DAYS",
            "ADJUSTMENT_THIRTEEN_TO_FOURTEEN_DAYS",
            "ADJUSTMENT_FOURTEEN_TO_TWENTY_ONE_DAYS",
            "ADJUSTMENT_TWENTY_ONE_TO_THIRTY_DAYS",
            "ADJUSTMENT_THIRTY_TO_FORTY_FIVE_DAYS",
            "ADJUSTMENT_FORTY_FIVE_TO_SIXTY_DAYS",
            "ADJUSTMENT_SIXTY_TO_NINETY_DAYS",
            "ADJUSTMENT_NINETY_TO_ONE_HUNDRED_AND_FORTY_FIVE_DAYS",
            "CONVERSION_UNKNOWN",
            "ADJUSTMENT_UNKNOWN"
          ]
        },
        "productCondition": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The product condition is new.",
            "The product condition is refurbished.",
            "The product condition is used."
          ],
          "description": "Condition of the product.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NEW",
            "REFURBISHED",
            "USED"
          ]
        },
        "skAdNetworkSourceType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "UNAVAILABLE",
            "WEBSITE",
            "MOBILE_APPLICATION"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "The source app ID or source domain was not present in the postback or we do not have this data for other reasons.",
            "The ad was shown on a webpage.",
            "The ad was shown on an app."
          ],
          "description": "The source type where the ad that drove the iOS Store Kit Ad Network install was shown. Null value means this segment is not applicable, for example, non-iOS campaign, or neither source domain nor source app were present in any postbacks sent by Apple."
        },
        "skAdNetworkVersion": {
          "type": "string",
          "description": "The version of the SKAdNetwork API used."
        },
        "budgetCampaignAssociationStatus": {
          "description": "Budget campaign association status.",
          "$ref": "GoogleAdsGoogleadsV23Common__BudgetCampaignAssociationStatus"
        },
        "hotelLengthOfStay": {
          "description": "Hotel length of stay.",
          "format": "int32",
          "type": "integer"
        },
        "conversionActionCategory": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DEFAULT",
            "PAGE_VIEW",
            "PURCHASE",
            "SIGNUP",
            "DOWNLOAD",
            "ADD_TO_CART",
            "BEGIN_CHECKOUT",
            "SUBSCRIBE_PAID",
            "PHONE_CALL_LEAD",
            "IMPORTED_LEAD",
            "SUBMIT_LEAD_FORM",
            "BOOK_APPOINTMENT",
            "REQUEST_QUOTE",
            "GET_DIRECTIONS",
            "OUTBOUND_CLICK",
            "CONTACT",
            "ENGAGEMENT",
            "STORE_VISIT",
            "STORE_SALE",
            "QUALIFIED_LEAD",
            "CONVERTED_LEAD"
          ],
          "type": "string",
          "description": "Conversion action category.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Default category.",
            "User visiting a page.",
            "Purchase, sales, or \"order placed\" event.",
            "Signup user action.",
            "Software download action (as for an app).",
            "The addition of items to a shopping cart or bag on an advertiser site.",
            "When someone enters the checkout flow on an advertiser site.",
            "The start of a paid subscription for a product or service.",
            "A call to indicate interest in an advertiser's offering.",
            "A lead conversion imported from an external source into Google Ads.",
            "A submission of a form on an advertiser site indicating business interest.",
            "A booking of an appointment with an advertiser's business.",
            "A quote or price estimate request.",
            "A search for an advertiser's business location with intention to visit.",
            "A click to an advertiser's partner's site.",
            "A call, SMS, email, chat or other type of contact to an advertiser.",
            "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.",
            "A visit to a physical store location.",
            "A sale occurring in a physical store.",
            "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\".",
            "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."
          ]
        },
        "year": {
          "description": "Year, formatted as yyyy.",
          "type": "integer",
          "format": "int32"
        },
        "conversionAction": {
          "description": "Resource name of the conversion action.",
          "type": "string"
        },
        "adFormatType": {
          "type": "string",
          "description": "Ad Format type.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "OTHER",
            "UNSEGMENTED",
            "INSTREAM_SKIPPABLE",
            "INSTREAM_NON_SKIPPABLE",
            "INFEED",
            "BUMPER",
            "OUTSTREAM",
            "MASTHEAD",
            "AUDIO",
            "SHORTS",
            "PAUSE",
            "VERTICAL_ADS_PROMOTION",
            "VERTICAL_ADS_BOOKING_LINK",
            "TEXT"
          ],
          "enumDescriptions": [
            "No value has been specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Value assigned to formats (such as experimental formats) which don't support format segmentation in Video and Demand Gen campaigns. Note that these formats may change categories in the future, for example if an experimental format is exposed or a new format is added. We strongly recommend to not rely on this field for long term decisions.",
            "Value assigned for Video TrueView for Action campaigns statistics. Note that statistics with this value may change categories in the future, for example if format segmentation support is added for new campaign types. We strongly recommend to not rely on this field for long term decisions.",
            "Skippable in-stream ads.",
            "Non-skippable in-stream ads.",
            "In-feed YouTube or image ads served on feed surfaces (e.g. Discover Feed, YouTube Home, etc.).",
            "Short (<7 secs) in-stream non-skippable YouTube ads.",
            "Outstream ads.",
            "Masthead ads.",
            "Audio ads.",
            "Vertical full-screen video or image ads served on YouTube Shorts or BrandConnect ads served as organic YouTube Shorts.",
            "Image ads served when a user pauses an organic YouTube video on a TV screen. These ads are displayed directly next to the static video frame on the pause screen itself. Note that this does not include Demand Gen image ads served on the ad panel below or on top of a paused organic video. Those are reported under INFEED.",
            "An ad format that promotes a specific entity within a vertical, for example, a hotel ad in the Travel vertical on Search.",
            "An ad format for a booking link call-to-action within a vertical ad, for example a 'Book Now' link for a hotel ad.",
            "A standard text ad format. This is currently only used for ads on the Search network."
          ]
        },
        "productItemId": {
          "type": "string",
          "description": "Item ID of the product."
        },
        "geoTargetProvince": {
          "type": "string",
          "description": "Resource name of the geo target constant that represents a province."
        },
        "travelDestinationCity": {
          "description": "The city the user is searching for at query time.",
          "type": "string"
        },
        "productTypeL5": {
          "description": "Type (level 5) of the product.",
          "type": "string"
        },
        "campaign": {
          "description": "Resource name of the campaign.",
          "type": "string"
        },
        "monthOfYear": {
          "description": "Month of the year, for example, January.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "JANUARY",
            "FEBRUARY",
            "MARCH",
            "APRIL",
            "MAY",
            "JUNE",
            "JULY",
            "AUGUST",
            "SEPTEMBER",
            "OCTOBER",
            "NOVEMBER",
            "DECEMBER"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "January.",
            "February.",
            "March.",
            "April.",
            "May.",
            "June.",
            "July.",
            "August.",
            "September.",
            "October.",
            "November.",
            "December."
          ]
        },
        "productFeedLabel": {
          "description": "Feed label of the product.",
          "type": "string"
        },
        "date": {
          "description": "Date to which metrics apply. yyyy-MM-dd format, for example, 2018-04-17.",
          "type": "string"
        },
        "recommendationType": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Provides optimized budget recommendations for campaigns.",
            "Keyword recommendation.",
            "Recommendation to add a new text ad.",
            "Recommendation to update a campaign to use a Target CPA bidding strategy.",
            "Recommendation to update a campaign to use the Maximize Conversions bidding strategy.",
            "Recommendation to enable Enhanced Cost Per Click for a campaign.",
            "Recommendation to start showing your campaign's ads on Google Search Partners Websites.",
            "Recommendation to update a campaign to use a Maximize Clicks bidding strategy.",
            "Recommendation to start using the \"Optimize\" ad rotation setting for the given ad group.",
            "Recommendation to change an existing keyword from one match type to a broader match type.",
            "Recommendation to move unused budget from one budget to a constrained budget.",
            "Budget recommendation for campaigns that are expected to become budget-constrained in the future (as opposed to the CAMPAIGN_BUDGET recommendation, which applies to campaigns that are currently budget-constrained).",
            "Recommendation to update a campaign to use a Target ROAS bidding strategy.",
            "Recommendation to add a new responsive search ad.",
            "Budget recommendation for campaigns whose ROI is predicted to increase with a budget adjustment.",
            "Recommendation to add broad match versions of keywords for fully automated conversion-based bidding campaigns.",
            "Recommendation to add new responsive search ad assets.",
            "Recommendation to upgrade a Smart Shopping campaign to a Performance Max campaign.",
            "Recommendation to improve strength of responsive search ad.",
            "Recommendation to update a campaign to use Display Expansion.",
            "Recommendation to upgrade a Local campaign to a Performance Max campaign.",
            "Recommendation to raise target CPA when it is too low and there are very few or no conversions. It is applied asynchronously and can take minutes depending on the number of ad groups there are in the related campaign.",
            "Recommendation to raise the budget in advance of a seasonal event that is forecasted to increase traffic, and change bidding strategy from maximize conversion value to target ROAS.",
            "Recommendation to add callout assets to campaign or customer level.",
            "Recommendation to add sitelink assets to campaign or customer level.",
            "Recommendation to add call assets to campaign or customer level.",
            "Recommendation to add the age group attribute to offers that are demoted because of a missing age group.",
            "Recommendation to add a color to offers that are demoted because of a missing color.",
            "Recommendation to add a gender to offers that are demoted because of a missing gender.",
            "Recommendation to add a GTIN (Global Trade Item Number) to offers that are demoted because of a missing GTIN.",
            "Recommendation to add more identifiers to offers that are demoted because of missing identifiers.",
            "Recommendation to add the size to offers that are demoted because of a missing size.",
            "Recommendation informing a customer about a campaign that cannot serve because no products are being targeted.",
            "The shopping recommendation informing a customer about campaign with a high percentage of disapproved products.",
            "Recommendation to create a catch-all campaign that targets all offers.",
            "Recommendation to fix Merchant Center account suspension issues.",
            "Recommendation to fix Merchant Center account suspension warning issues.",
            "Recommendation to migrate offers targeted by Regular Shopping Campaigns to existing Performance Max campaigns.",
            "Recommendation to enable dynamic image extensions on the account, allowing Google to find the best images from ad landing pages and complement text ads.",
            "Recommendation to raise Target CPA based on Google predictions modeled from past conversions. It is applied asynchronously and can take minutes depending on the number of ad groups there are in the related campaign.",
            "Recommendation to lower Target ROAS.",
            "Recommendation to opt into Performance Max campaigns.",
            "Recommendation to improve the asset group strength of a Performance Max campaign to an \"Excellent\" rating.",
            "Recommendation to migrate Dynamic Search Ads to Performance Max campaigns.",
            "Recommendation to set a target CPA for campaigns that do not have one specified, in advance of a seasonal event that is forecasted to increase traffic.",
            "Recommendation to set a target CPA for campaigns that do not have one specified.",
            "Recommendation to set a target ROAS for campaigns that do not have one specified.",
            "Recommendation to update a campaign to use the Maximize Conversion Value bidding strategy.",
            "Recommendation to deploy Google Tag on more pages.",
            "Recommendation to turn on Final URL expansion for your Performance Max campaigns.",
            "Recommendation to update a customer list that hasn't been updated in the last 90 days.",
            "Recommendation to create a custom audience.",
            "Recommendation to add lead form assets to campaign or customer level.",
            "Recommendation to improve the strength of ads in Demand Gen campaigns."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CAMPAIGN_BUDGET",
            "KEYWORD",
            "TEXT_AD",
            "TARGET_CPA_OPT_IN",
            "MAXIMIZE_CONVERSIONS_OPT_IN",
            "ENHANCED_CPC_OPT_IN",
            "SEARCH_PARTNERS_OPT_IN",
            "MAXIMIZE_CLICKS_OPT_IN",
            "OPTIMIZE_AD_ROTATION",
            "KEYWORD_MATCH_TYPE",
            "MOVE_UNUSED_BUDGET",
            "FORECASTING_CAMPAIGN_BUDGET",
            "TARGET_ROAS_OPT_IN",
            "RESPONSIVE_SEARCH_AD",
            "MARGINAL_ROI_CAMPAIGN_BUDGET",
            "USE_BROAD_MATCH_KEYWORD",
            "RESPONSIVE_SEARCH_AD_ASSET",
            "UPGRADE_SMART_SHOPPING_CAMPAIGN_TO_PERFORMANCE_MAX",
            "RESPONSIVE_SEARCH_AD_IMPROVE_AD_STRENGTH",
            "DISPLAY_EXPANSION_OPT_IN",
            "UPGRADE_LOCAL_CAMPAIGN_TO_PERFORMANCE_MAX",
            "RAISE_TARGET_CPA_BID_TOO_LOW",
            "FORECASTING_SET_TARGET_ROAS",
            "CALLOUT_ASSET",
            "SITELINK_ASSET",
            "CALL_ASSET",
            "SHOPPING_ADD_AGE_GROUP",
            "SHOPPING_ADD_COLOR",
            "SHOPPING_ADD_GENDER",
            "SHOPPING_ADD_GTIN",
            "SHOPPING_ADD_MORE_IDENTIFIERS",
            "SHOPPING_ADD_SIZE",
            "SHOPPING_ADD_PRODUCTS_TO_CAMPAIGN",
            "SHOPPING_FIX_DISAPPROVED_PRODUCTS",
            "SHOPPING_TARGET_ALL_OFFERS",
            "SHOPPING_FIX_SUSPENDED_MERCHANT_CENTER_ACCOUNT",
            "SHOPPING_FIX_MERCHANT_CENTER_ACCOUNT_SUSPENSION_WARNING",
            "SHOPPING_MIGRATE_REGULAR_SHOPPING_CAMPAIGN_OFFERS_TO_PERFORMANCE_MAX",
            "DYNAMIC_IMAGE_EXTENSION_OPT_IN",
            "RAISE_TARGET_CPA",
            "LOWER_TARGET_ROAS",
            "PERFORMANCE_MAX_OPT_IN",
            "IMPROVE_PERFORMANCE_MAX_AD_STRENGTH",
            "MIGRATE_DYNAMIC_SEARCH_ADS_CAMPAIGN_TO_PERFORMANCE_MAX",
            "FORECASTING_SET_TARGET_CPA",
            "SET_TARGET_CPA",
            "SET_TARGET_ROAS",
            "MAXIMIZE_CONVERSION_VALUE_OPT_IN",
            "IMPROVE_GOOGLE_TAG_COVERAGE",
            "PERFORMANCE_MAX_FINAL_URL_OPT_IN",
            "REFRESH_CUSTOMER_MATCH_LIST",
            "CUSTOM_AUDIENCE_OPT_IN",
            "LEAD_FORM_ASSET",
            "IMPROVE_DEMAND_GEN_AD_STRENGTH"
          ],
          "type": "string",
          "description": "Recommendation type."
        },
        "productCustomAttribute2": {
          "description": "Custom attribute 2 of the product.",
          "type": "string"
        },
        "productMerchantId": {
          "description": "Merchant ID of the product.",
          "type": "string",
          "format": "int64"
        },
        "landingPageSource": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADVERTISER",
            "AUTOMATIC"
          ],
          "type": "string",
          "description": "The source of a landing page in the landing page report.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The landing page was explicitly provided by the advertiser.",
            "The landing page was selected automatically. This could happen when the advertiser enables AI Max or other features that automatically select landing pages and Google selects the best landing page for the query."
          ]
        },
        "geoTargetMostSpecificLocation": {
          "description": "Resource name of the geo target constant that represents the most specific location.",
          "type": "string"
        },
        "interactionOnThisExtension": {
          "type": "boolean",
          "description": "Only used with feed item metrics. Indicates whether the interaction metrics occurred on the feed item itself or a different extension or ad unit."
        },
        "verticalAdsListingCountry": {
          "type": "string",
          "description": "The country where the vertical ads listing is located."
        },
        "productTypeL1": {
          "type": "string",
          "description": "Type (level 1) of the product."
        },
        "productTypeL3": {
          "type": "string",
          "description": "Type (level 3) of the product."
        },
        "externalConversionSource": {
          "enumDescriptions": [
            "Not specified.",
            "Represents value unknown in this version.",
            "Conversion that occurs when a user navigates to a particular webpage after viewing an ad; Displayed in Google Ads UI as 'Website'.",
            "Conversion that comes from linked Google Analytics goal or transaction; Displayed in Google Ads UI as 'Analytics'.",
            "Website conversion that is uploaded through ConversionUploadService; Displayed in Google Ads UI as 'Import from clicks'.",
            "Conversion that occurs when a user clicks on a call extension directly on an ad; Displayed in Google Ads UI as 'Calls from ads'.",
            "Conversion that occurs when a user calls a dynamically-generated phone number (by installed javascript) from an advertiser's website after clicking on an ad; Displayed in Google Ads UI as 'Calls from website'.",
            "Conversion that occurs when a user visits an advertiser's retail store after clicking on a Google ad; Displayed in Google Ads UI as 'Store visits'.",
            "Conversion that occurs when a user takes an in-app action such as a purchase in an Android app; Displayed in Google Ads UI as 'Android in-app action'.",
            "Conversion that occurs when a user takes an in-app action such as a purchase in an iOS app; Displayed in Google Ads UI as 'iOS in-app action'.",
            "Conversion that occurs when a user opens an iOS app for the first time; Displayed in Google Ads UI as 'iOS app install (first open)'.",
            "Legacy app conversions that do not have an AppPlatform provided; Displayed in Google Ads UI as 'Mobile app'.",
            "Conversion that occurs when a user opens an Android app for the first time; Displayed in Google Ads UI as 'Android app install (first open)'.",
            "Call conversion that is uploaded through ConversionUploadService; Displayed in Google Ads UI as 'Import from calls'.",
            "Conversion that comes from a linked Firebase event; Displayed in Google Ads UI as 'Firebase'.",
            "Conversion that occurs when a user clicks on a mobile phone number; Displayed in Google Ads UI as 'Phone number clicks'.",
            "Conversion that comes from Salesforce; Displayed in Google Ads UI as 'Salesforce.com'.",
            "Conversion that comes from in-store purchases recorded by CRM; Displayed in Google Ads UI as 'Store sales (data partner)'.",
            "Conversion that comes from in-store purchases from payment network; Displayed in Google Ads UI as 'Store sales (payment network)'.",
            "Codeless Google Play conversion; Displayed in Google Ads UI as 'Google Play'.",
            "Conversion that comes from a linked third-party app analytics event; Displayed in Google Ads UI as 'Third-party app analytics'.",
            "Conversion that is controlled by Google Attribution.",
            "Store Sales conversion based on first-party or third-party merchant data uploads. Displayed in Google Ads UI as 'Store sales (direct upload)'.",
            "Store Sales conversion based on first-party or third-party merchant data uploads and/or from in-store purchases using cards from payment networks. Displayed in Google Ads UI as 'Store sales'.",
            "Conversions imported from Search Ads 360 Floodlight data.",
            "Conversions that track local actions from Google's products and services after interacting with an ad.",
            "Conversions reported by Floodlight tags.",
            "Conversions that come from Google Analytics specifically for Search Ads 360. Displayed in Google Ads UI as Analytics (SA360).",
            "Conversion that comes from a linked Firebase event for Search Ads 360.",
            "Conversion that is reported by Floodlight for DV360."
          ],
          "description": "External conversion source.",
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "WEBPAGE",
            "ANALYTICS",
            "UPLOAD",
            "AD_CALL_METRICS",
            "WEBSITE_CALL_METRICS",
            "STORE_VISITS",
            "ANDROID_IN_APP",
            "IOS_IN_APP",
            "IOS_FIRST_OPEN",
            "APP_UNSPECIFIED",
            "ANDROID_FIRST_OPEN",
            "UPLOAD_CALLS",
            "FIREBASE",
            "CLICK_TO_CALL",
            "SALESFORCE",
            "STORE_SALES_CRM",
            "STORE_SALES_PAYMENT_NETWORK",
            "GOOGLE_PLAY",
            "THIRD_PARTY_APP_ANALYTICS",
            "GOOGLE_ATTRIBUTION",
            "STORE_SALES_DIRECT_UPLOAD",
            "STORE_SALES",
            "SEARCH_ADS_360",
            "GOOGLE_HOSTED",
            "FLOODLIGHT",
            "ANALYTICS_SEARCH_ADS_360",
            "FIREBASE_SEARCH_ADS_360",
            "DISPLAY_AND_VIDEO_360_FLOODLIGHT"
          ]
        },
        "adSubNetworkType": {
          "enumDescriptions": [
            "Not specified.",
            "Unknown.",
            "The whole network without any sub network type segmentation.",
            "Ads served in-stream of YouTube organic videos.",
            "Ads served on YouTube feed surfaces, such as YouTube Home or Watch Next.",
            "Ads served on the YouTube Shorts feed."
          ],
          "type": "string",
          "description": "Ad sub network type. Currently only available for ads running as part of DemandGen campaigns on YouTube and has to always be selected together with ad_network_type.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "UNSEGMENTED",
            "YOUTUBE_INSTREAM",
            "YOUTUBE_INFEED",
            "YOUTUBE_SHORTS"
          ]
        },
        "assetGroup": {
          "description": "Resource name of the asset group.",
          "type": "string"
        },
        "skAdNetworkUserType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "UNAVAILABLE",
            "NEW_INSTALLER",
            "REINSTALLER"
          ],
          "description": "iOS Store Kit Ad Network user type.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "The value was not present in the postback or we do not have this data for other reasons.",
            "The user installed the app for the first time.",
            "The user has previously installed the app."
          ]
        },
        "productTitle": {
          "description": "Title of the product.",
          "type": "string"
        },
        "searchTermTargetingStatus": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADDED",
            "EXCLUDED",
            "ADDED_EXCLUDED",
            "NONE"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Search term is added to targeted keywords.",
            "Search term matches a negative keyword.",
            "Search term has been both added and excluded.",
            "Search term is neither targeted nor excluded."
          ],
          "description": "Indicates whether the search term is currently one of your targeted or excluded keywords."
        },
        "productCategoryLevel3": {
          "description": "Category (level 3) of the product.",
          "type": "string"
        },
        "verticalAdsHotelClass": {
          "description": "The class of the hotel. Generally in the range of 1 to 5 stars, but fully customizable in the hotel feed.",
          "format": "int64",
          "type": "string"
        },
        "hotelPriceBucket": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "LOWEST_UNIQUE",
            "LOWEST_TIED",
            "NOT_LOWEST",
            "ONLY_PARTNER_SHOWN"
          ],
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Uniquely lowest price. Partner has the lowest price, and no other partners are within a small variance of that price.",
            "Tied for lowest price. Partner is within a small variance of the lowest price.",
            "Not lowest price. Partner is not within a small variance of the lowest price.",
            "Partner was the only one shown."
          ],
          "description": "Hotel price bucket.",
          "type": "string"
        },
        "adjustedGender": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MALE",
            "FEMALE",
            "UNDETERMINED"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Male.",
            "Female.",
            "Undetermined gender."
          ],
          "description": "Adjusted gender. This is the gender of the user after applying modeling to get more accurate age and gender information. Currently, both adjusted_age_range and adjusted_gender need to be selected together to get valid reach stats. These segmentations are only available for allowlisted customers."
        },
        "verticalAdsListing": {
          "description": "The listing associated with a listing impression, click or conversion.",
          "type": "string"
        },
        "activityCountry": {
          "description": "The country where the travel activity is available.",
          "type": "string"
        },
        "adGroup": {
          "description": "Resource name of the ad group.",
          "type": "string"
        },
        "productTypeL4": {
          "type": "string",
          "description": "Type (level 4) of the product."
        },
        "externalActivityId": {
          "description": "Advertiser supplied activity ID.",
          "type": "string"
        },
        "productBrand": {
          "description": "Brand of the product.",
          "type": "string"
        },
        "travelDestinationRegion": {
          "type": "string",
          "description": "The region the user is searching for at query time."
        },
        "adNetworkType": {
          "description": "Ad network type.",
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SEARCH",
            "SEARCH_PARTNERS",
            "CONTENT",
            "MIXED",
            "YOUTUBE",
            "GOOGLE_TV",
            "GOOGLE_OWNED_CHANNELS",
            "GMAIL",
            "DISCOVER",
            "MAPS"
          ],
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Google search.",
            "Search partners.",
            "Display Network.",
            "Cross-network.",
            "YouTube",
            "Google TV",
            "This network is used for Google Owned channels such as Discover feed, Gmail, YouTube. Starting with V20, Demand Gen Stats will be attributed to more granular network types such as GMAIL, DISCOVER, MAPS, YOUTUBE; this value will only be used for historical data.",
            "Gmail",
            "Discover Feed",
            "Maps"
          ]
        },
        "adDestinationType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NOT_APPLICABLE",
            "WEBSITE",
            "APP_DEEP_LINK",
            "APP_STORE",
            "PHONE_CALL",
            "MAP_DIRECTIONS",
            "LOCATION_LISTING",
            "MESSAGE",
            "LEAD_FORM",
            "YOUTUBE",
            "UNMODELED_FOR_CONVERSIONS"
          ],
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Ads that don't intend to drive users off from ads to other destinations",
            "Website",
            "App Deep Link",
            "iOS App Store or Play Store",
            "Call Dialer",
            "Map App",
            "Location Dedicated Page",
            "Text Message",
            "Lead Generation Form",
            "YouTube",
            "Ad Destination for Conversions with keys unknown"
          ],
          "description": "Ad Destination type.",
          "type": "string"
        },
        "hotelCheckInDayOfWeek": {
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Monday.",
            "Tuesday.",
            "Wednesday.",
            "Thursday.",
            "Friday.",
            "Saturday.",
            "Sunday."
          ],
          "description": "Hotel check-in day of week.",
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MONDAY",
            "TUESDAY",
            "WEDNESDAY",
            "THURSDAY",
            "FRIDAY",
            "SATURDAY",
            "SUNDAY"
          ]
        },
        "device": {
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Mobile devices with full browsers.",
            "Tablets with full browsers.",
            "Computers.",
            "Smart TVs and game consoles.",
            "Other device types."
          ],
          "description": "Device to which metrics apply.",
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MOBILE",
            "TABLET",
            "DESKTOP",
            "CONNECTED_TV",
            "OTHER"
          ]
        },
        "verticalAdsVertical": {
          "description": "Type of vertical ad, such as Vacation Rentals, Car Rentals, or Events, used to categorize and segment data in the context of Vertical Ads.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Hotels travel vertical.",
            "Vacation rentals travel vertical.",
            "Rental cars travel vertical.",
            "Events travel vertical.",
            "Things to do travel vertical.",
            "Flights travel vertical."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HOTELS",
            "VACATION_RENTALS",
            "RENTAL_CARS",
            "EVENTS",
            "THINGS_TO_DO",
            "FLIGHTS"
          ],
          "type": "string"
        },
        "geoTargetRegion": {
          "type": "string",
          "description": "Resource name of the geo target constant that represents a region."
        },
        "month": {
          "description": "Month as represented by the date of the first day of a month. Formatted as yyyy-MM-dd.",
          "type": "string"
        },
        "searchTermMatchSource": {
          "description": "Specifies the source for how the search term was matched, which reveals the type of ad campaign responsible. Use this to distinguish between automated campaigns (like AI Max, Dynamic Search Ads) and keyword-based campaigns (Standard).",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The match is from a user-provided keyword.",
            "The match is from the keywordless expansion portion of AI Max.",
            "The match is from the broad match expansion portion of AI Max.",
            "The match is from a Dynamic Search Ad.",
            "The match is from the search term matching functionality in PMax."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADVERTISER_PROVIDED_KEYWORD",
            "AI_MAX_KEYWORDLESS",
            "AI_MAX_BROAD_MATCH",
            "DYNAMIC_SEARCH_ADS",
            "PERFORMANCE_MAX"
          ]
        },
        "skAdNetworkPostbackSequenceIndex": {
          "description": "iOS Store Kit Ad Network postback sequence index.",
          "format": "int64",
          "type": "string"
        },
        "skAdNetworkAdEventType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "UNAVAILABLE",
            "INTERACTION",
            "VIEW"
          ],
          "type": "string",
          "description": "iOS Store Kit Ad Network ad event type.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "The value was not present in the postback or we do not have this data for other reasons.",
            "The user interacted with the ad.",
            "The user viewed the ad."
          ]
        },
        "geoTargetState": {
          "type": "string",
          "description": "Resource name of the geo target constant that represents a state."
        },
        "verticalAdsListingRegion": {
          "description": "The region where the vertical ads listing is located.",
          "type": "string"
        },
        "week": {
          "type": "string",
          "description": "Week as defined as Monday through Sunday, and represented by the date of Monday. Formatted as yyyy-MM-dd."
        },
        "activityRating": {
          "description": "Activity rating.",
          "type": "string",
          "format": "int64"
        },
        "searchEngineResultsPageType": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Only ads were contained in the search engine results page.",
            "Only organic results were contained in the search engine results page.",
            "Both ads and organic results were contained in the search engine results page."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADS_ONLY",
            "ORGANIC_ONLY",
            "ADS_AND_ORGANIC"
          ],
          "description": "Type of the search engine results page."
        },
        "hotelCountry": {
          "type": "string",
          "description": "Hotel country."
        },
        "hotelCenterId": {
          "format": "int64",
          "description": "Hotel center ID.",
          "type": "string"
        },
        "searchTermMatchType": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Broad match.",
            "Exact match.",
            "Phrase match.",
            "Exact match (close variant).",
            "Phrase match (close variant).",
            "Match type for AI Max Search.",
            "Match type for Performance Max campaigns."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BROAD",
            "EXACT",
            "PHRASE",
            "NEAR_EXACT",
            "NEAR_PHRASE",
            "AI_MAX",
            "PERFORMANCE_MAX"
          ],
          "description": "Match type of the keyword that triggered the ad. This segment is for use with keyword_view. For other resources, use match_type. While match_type is filtered to Broad, Exact, Phrase and Ai Max, search_term_match_type includes variants like Near Exact and Near Phrase.",
          "type": "string"
        },
        "activityState": {
          "type": "string",
          "description": "The state where the travel activity is available."
        },
        "productLanguage": {
          "description": "Resource name of the language constant for the language of the product.",
          "type": "string"
        },
        "productCustomAttribute4": {
          "description": "Custom attribute 4 of the product.",
          "type": "string"
        },
        "searchSubcategory": {
          "description": "A search term subcategory. An empty string denotes the catch-all subcategory for search terms that didn't fit into another subcategory.",
          "type": "string"
        },
        "keyword": {
          "description": "Keyword criterion.",
          "$ref": "GoogleAdsGoogleadsV23Common__Keyword"
        },
        "skAdNetworkCoarseConversionValue": {
          "description": "iOS Store Kit Ad Network coarse conversion value.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "The value was not present in the postback or we do not have this data for other reasons.",
            "A low coarse conversion value.",
            "A medium coarse conversion value.",
            "A high coarse conversion value.",
            "A coarse conversion value was not configured."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "UNAVAILABLE",
            "LOW",
            "MEDIUM",
            "HIGH",
            "NONE"
          ]
        },
        "verticalAdsListingCity": {
          "description": "The city where the vertical ads listing is located.",
          "type": "string"
        },
        "adjustedAgeRange": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AGE_RANGE_18_24",
            "AGE_RANGE_25_34",
            "AGE_RANGE_35_44",
            "AGE_RANGE_45_54",
            "AGE_RANGE_55_64",
            "AGE_RANGE_65_UP",
            "AGE_RANGE_UNDETERMINED"
          ],
          "description": "Adjusted age range. This is the age range of the user after applying modeling to get more accurate age and gender information. Currently, both adjusted_age_range and adjusted_gender need to be selected together to get valid reach stats. These segmentations are only available for allowlisted customers.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Between 18 and 24 years old.",
            "Between 25 and 34 years old.",
            "Between 35 and 44 years old.",
            "Between 45 and 54 years old.",
            "Between 55 and 64 years old.",
            "65 years old and beyond.",
            "Undetermined age range."
          ],
          "type": "string"
        },
        "productCustomAttribute3": {
          "description": "Custom attribute 3 of the product.",
          "type": "string"
        },
        "geoTargetCountry": {
          "description": "Resource name of the geo target constant that represents a country.",
          "type": "string"
        },
        "conversionValueRulePrimaryDimension": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NO_RULE_APPLIED",
            "ORIGINAL",
            "NEW_VS_RETURNING_USER",
            "GEO_LOCATION",
            "DEVICE",
            "AUDIENCE",
            "MULTIPLE",
            "ITINERARY"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "For no-value-rule-applied conversions after value rule is enabled.",
            "Below are for value-rule-applied conversions: The original stats.",
            "When a new or returning customer condition is satisfied.",
            "When a query-time Geo location condition is satisfied.",
            "When a query-time browsing device condition is satisfied.",
            "When a query-time audience condition is satisfied.",
            "When multiple rules are applied.",
            "When a query-time itinerary condition is satisfied."
          ],
          "description": "Primary dimension of applied conversion value rules. NO_RULE_APPLIED shows the total recorded value of conversions that do not have a value rule applied. ORIGINAL shows the original value of conversions to which a value rule has been applied. GEO_LOCATION, DEVICE, AUDIENCE, ITINERARY show the net adjustment after value rules were applied."
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__GenerateReachForecastResponse": {
      "id": "GoogleAdsGoogleadsV23Services__GenerateReachForecastResponse",
      "type": "object",
      "description": "Response message containing the generated reach curve.",
      "properties": {
        "onTargetAudienceMetrics": {
          "$ref": "GoogleAdsGoogleadsV23Services__OnTargetAudienceMetrics",
          "description": "Reference on target audiences for this curve."
        },
        "reachCurve": {
          "description": "The generated reach curve for the planned product mix.",
          "$ref": "GoogleAdsGoogleadsV23Services__ReachCurve"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateAdResult": {
      "id": "GoogleAdsGoogleadsV23Services__MutateAdResult",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "The resource name returned for successful operations."
        },
        "ad": {
          "description": "The mutated ad with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV23Resources__Ad"
        }
      },
      "type": "object",
      "description": "The result for the ad mutate."
    },
    "GoogleAdsGoogleadsV23Resources_Recommendation_RecommendationMetrics": {
      "properties": {
        "clicks": {
          "readOnly": true,
          "type": "number",
          "format": "double",
          "description": "Output only. Number of ad clicks."
        },
        "conversions": {
          "type": "number",
          "format": "double",
          "readOnly": true,
          "description": "Output only. Number of conversions."
        },
        "costMicros": {
          "description": "Output only. Cost (in micros) for advertising, in the local currency for the account.",
          "type": "string",
          "readOnly": true,
          "format": "int64"
        },
        "impressions": {
          "description": "Output only. Number of ad impressions.",
          "format": "double",
          "readOnly": true,
          "type": "number"
        },
        "videoViews": {
          "readOnly": true,
          "description": "Output only. Number of video views for a video ad campaign.",
          "type": "number",
          "format": "double"
        },
        "conversionsValue": {
          "readOnly": true,
          "description": "Output only. Sum of the conversion value of the conversions.",
          "format": "double",
          "type": "number"
        }
      },
      "description": "Weekly account performance metrics. For some recommendation types, these are averaged over the past 90-day period and hence can be fractional.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources_Recommendation_RecommendationMetrics"
    },
    "GoogleAdsGoogleadsV23Common__FlexibleRuleOperandInfo": {
      "properties": {
        "rule": {
          "description": "List of rule item groups that defines this rule. Rule item groups are grouped together.",
          "$ref": "GoogleAdsGoogleadsV23Common__UserListRuleInfo"
        },
        "lookbackWindowDays": {
          "description": "Lookback window for this rule in days. From now until X days ago.",
          "format": "int64",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__FlexibleRuleOperandInfo",
      "description": "Flexible rule that wraps the common rule and a lookback window.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Errors__BudgetPerDayMinimumErrorDetails": {
      "type": "object",
      "properties": {
        "currencyCode": {
          "description": "The advertiser's currency, represented as a three-letter ISO 4217 currency code (such as \"USD\").",
          "type": "string"
        },
        "minimumBudgetTotalAmountMicros": {
          "description": "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.",
          "format": "int64",
          "type": "string"
        },
        "failedBudgetTotalAmountMicros": {
          "description": "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.",
          "type": "string",
          "format": "int64"
        },
        "minimumBudgetAmountMicros": {
          "format": "int64",
          "type": "string",
          "description": "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."
        },
        "failedBudgetAmountMicros": {
          "format": "int64",
          "description": "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.",
          "type": "string"
        },
        "budgetPerDayMinimumMicros": {
          "type": "string",
          "description": "The minimum budget required by the campaign per day, in micros of the advertiser currency. Applies to both daily and custom budgets.",
          "format": "int64"
        }
      },
      "id": "GoogleAdsGoogleadsV23Errors__BudgetPerDayMinimumErrorDetails",
      "description": "Error details for a budget below per-day minimum error."
    },
    "GoogleAdsGoogleadsV23Common__TargetSpend": {
      "type": "object",
      "description": "An automated bid strategy that sets your bids to help get as many clicks as possible within your budget.",
      "properties": {
        "targetSpendMicros": {
          "description": "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.",
          "format": "int64",
          "type": "string",
          "deprecated": true
        },
        "cpcBidCeilingMicros": {
          "description": "Maximum bid limit that can be set by the bid strategy. The limit applies to all keywords managed by the strategy.",
          "type": "string",
          "format": "int64"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__TargetSpend"
    },
    "GoogleAdsGoogleadsV23Services__MutateKeywordPlanAdGroupsRequest": {
      "properties": {
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "operations": {
          "type": "array",
          "description": "Required. The list of operations to perform on individual Keyword Plan ad groups.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__KeywordPlanAdGroupOperation"
          }
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateKeywordPlanAdGroupsRequest",
      "type": "object",
      "description": "Request message for KeywordPlanAdGroupService.MutateKeywordPlanAdGroups."
    },
    "GoogleAdsGoogleadsV23Common__AdVideoAssetInventoryPreferences": {
      "id": "GoogleAdsGoogleadsV23Common__AdVideoAssetInventoryPreferences",
      "description": "YouTube Video Asset inventory preferences.",
      "type": "object",
      "properties": {
        "inFeedPreference": {
          "type": "boolean",
          "description": "When true, YouTube Video Asset with this inventory preference will be preferred when choosing a video to serve In Feed."
        },
        "shortsPreference": {
          "type": "boolean",
          "description": "When true, YouTube Video Asset with this inventory preference will be preferred when choosing a video to serve on YouTube Shorts."
        },
        "inStreamPreference": {
          "type": "boolean",
          "description": "When true, YouTube Video Asset with this inventory preference will be preferred when choosing a video to serve In Stream."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__KeywordAndUrlSeed": {
      "properties": {
        "url": {
          "description": "The URL to crawl in order to generate keyword ideas.",
          "type": "string"
        },
        "keywords": {
          "description": "Requires at least one keyword and no more than 20 keywords.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__KeywordAndUrlSeed",
      "description": "Keyword And Url Seed"
    },
    "GoogleAdsGoogleadsV23Common__ExpandedTextAdInfo": {
      "type": "object",
      "properties": {
        "path2": {
          "description": "Additional text that can appear alongside the ad's displayed URL.",
          "type": "string"
        },
        "description2": {
          "type": "string",
          "description": "The second description of the ad."
        },
        "path1": {
          "description": "The text that can appear alongside the ad's displayed URL.",
          "type": "string"
        },
        "headlinePart2": {
          "type": "string",
          "description": "The second part of the ad's headline."
        },
        "headlinePart3": {
          "type": "string",
          "description": "The third part of the ad's headline."
        },
        "description": {
          "description": "The description of the ad.",
          "type": "string"
        },
        "headlinePart1": {
          "description": "The first part of the ad's headline.",
          "type": "string"
        }
      },
      "description": "An expanded text ad.",
      "id": "GoogleAdsGoogleadsV23Common__ExpandedTextAdInfo"
    },
    "GoogleAdsGoogleadsV23Common__UserListDateRuleItemInfo": {
      "properties": {
        "value": {
          "description": "String representing date value to be compared with the rule variable. Supported date format is YYYY-MM-DD. Times are reported in the customer's time zone.",
          "type": "string"
        },
        "offsetInDays": {
          "description": "The relative date value of the right hand side denoted by number of days offset from now. The value field will override this field when both are present.",
          "format": "int64",
          "type": "string"
        },
        "operator": {
          "description": "Date comparison operator. This field is required and must be populated when creating new date rule item.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Equals.",
            "Not Equals.",
            "Before.",
            "After."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EQUALS",
            "NOT_EQUALS",
            "BEFORE",
            "AFTER"
          ],
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__UserListDateRuleItemInfo",
      "type": "object",
      "description": "A rule item composed of a date operation."
    },
    "GoogleAdsGoogleadsV23Services__CampaignConversionGoalOperation": {
      "description": "A single operation (update) on a campaign conversion goal.",
      "type": "object",
      "properties": {
        "update": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CampaignConversionGoal",
          "description": "Update operation: The customer conversion goal is expected to have a valid resource name."
        },
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__CampaignConversionGoalOperation"
    },
    "GoogleAdsGoogleadsV23Common__TextLabel": {
      "id": "GoogleAdsGoogleadsV23Common__TextLabel",
      "type": "object",
      "properties": {
        "description": {
          "description": "A short description of the label. The length must be no more than 200 characters.",
          "type": "string"
        },
        "backgroundColor": {
          "description": "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.",
          "type": "string"
        }
      },
      "description": "A type of label displaying text on a colored background."
    },
    "GoogleAdsGoogleadsV23Services__MutateAdGroupAdsRequest": {
      "type": "object",
      "properties": {
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "responseContentType": {
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "type": "string"
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "operations": {
          "description": "Required. The list of operations to perform on individual ads.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__AdGroupAdOperation"
          },
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateAdGroupAdsRequest",
      "description": "Request message for AdGroupAdService.MutateAdGroupAds."
    },
    "GoogleAdsGoogleadsV23Services__ListPlannableProductsResponse": {
      "properties": {
        "productMetadata": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__ProductMetadata"
          },
          "description": "The list of products available for planning and related targeting metadata.",
          "type": "array"
        }
      },
      "type": "object",
      "description": "A response with all available products.",
      "id": "GoogleAdsGoogleadsV23Services__ListPlannableProductsResponse"
    },
    "GoogleAdsGoogleadsV23Resources__UserInterest": {
      "properties": {
        "userInterestId": {
          "type": "string",
          "readOnly": true,
          "format": "int64",
          "description": "Output only. The ID of the user interest."
        },
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the user interest. User interest resource names have the form: `customers/{customer_id}/userInterests/{user_interest_id}`",
          "readOnly": true
        },
        "launchedToAll": {
          "readOnly": true,
          "description": "Output only. True if the user interest is launched to all channels and locales.",
          "type": "boolean"
        },
        "userInterestParent": {
          "description": "Output only. The parent of the user interest.",
          "readOnly": true,
          "type": "string"
        },
        "name": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The name of the user interest."
        },
        "availabilities": {
          "description": "Output only. Availability information of the user interest.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__CriterionCategoryAvailability"
          },
          "readOnly": true
        },
        "taxonomyType": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Taxonomy type of the user interest.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AFFINITY",
            "IN_MARKET",
            "MOBILE_APP_INSTALL_USER",
            "VERTICAL_GEO",
            "NEW_SMART_PHONE_USER"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The affinity for this user interest.",
            "The market for this user interest.",
            "Users known to have installed applications in the specified categories.",
            "The geographical location of the interest-based vertical.",
            "User interest criteria for new smart phone users."
          ]
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__UserInterest",
      "description": "A user interest: a particular interest-based vertical to be targeted."
    },
    "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_SitelinkAssetParameters": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_SitelinkAssetParameters",
      "description": "Parameters to use when applying sitelink asset recommendations.",
      "properties": {
        "adAssetApplyParameters": {
          "$ref": "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_AdAssetApplyParameters",
          "description": "Required. Sitelink assets to be added. This is a required field."
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaEvent_RevenueRange": {
      "id": "GoogleAdsGoogleadsV23Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaEvent_RevenueRange",
      "properties": {
        "maxEventRevenue": {
          "format": "double",
          "description": "Output only. For revenue ranges, the maximum value in `currency_code` for which this conversion value would be updated. A value of 0 will be treated as unset.",
          "readOnly": true,
          "type": "number"
        },
        "minEventRevenue": {
          "description": "Output only. For revenue ranges, the minimum value in `currency_code` for which this conversion value would be updated. A value of 0 will be treated as unset.",
          "type": "number",
          "readOnly": true,
          "format": "double"
        }
      },
      "type": "object",
      "description": "Defines a range for revenue values."
    },
    "GoogleAdsGoogleadsV23Resources__ChannelAggregateAssetView": {
      "type": "object",
      "description": "A channel-level aggregate asset view that shows where the asset is linked, performamce of the asset and stats.",
      "id": "GoogleAdsGoogleadsV23Resources__ChannelAggregateAssetView",
      "properties": {
        "assetSource": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset or asset link is provided by advertiser.",
            "The asset or asset link is generated by Google."
          ],
          "readOnly": true,
          "type": "string",
          "description": "Output only. Source of the asset link.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADVERTISER",
            "AUTOMATICALLY_CREATED"
          ]
        },
        "advertisingChannelType": {
          "description": "Output only. Channel in which the asset served.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SEARCH",
            "DISPLAY",
            "SHOPPING",
            "HOTEL",
            "VIDEO",
            "MULTI_CHANNEL",
            "LOCAL",
            "SMART",
            "PERFORMANCE_MAX",
            "LOCAL_SERVICES",
            "TRAVEL",
            "DEMAND_GEN"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Search Network. Includes display bundled, and Search+ campaigns.",
            "Google Display Network only.",
            "Shopping campaigns serve on the shopping property and on google.com search results.",
            "Hotel Ads campaigns.",
            "Video campaigns.",
            "App Campaigns, and App Campaigns for Engagement, that run across multiple channels.",
            "Local ads campaigns.",
            "Smart campaigns.",
            "Performance Max campaigns.",
            "Local services campaigns.",
            "Travel campaigns.",
            "Demand Gen campaigns."
          ],
          "type": "string",
          "readOnly": true
        },
        "fieldType": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is linked for use as a headline.",
            "The asset is linked for use as a description.",
            "The asset is linked for use as mandatory ad text.",
            "The asset is linked for use as a marketing image.",
            "The asset is linked for use as a media bundle.",
            "The asset is linked for use as a YouTube video.",
            "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
            "The asset is linked for use as a Lead Form extension.",
            "The asset is linked for use as a Promotion extension.",
            "The asset is linked for use as a Callout extension.",
            "The asset is linked for use as a Structured Snippet extension.",
            "The asset is linked for use as a Sitelink.",
            "The asset is linked for use as a Mobile App extension.",
            "The asset is linked for use as a Hotel Callout extension.",
            "The asset is linked for use as a Call extension.",
            "The asset is linked for use as a Price extension.",
            "The asset is linked for use as a long headline.",
            "The asset is linked for use as a business name.",
            "The asset is linked for use as a square marketing image.",
            "The asset is linked for use as a portrait marketing image.",
            "The asset is linked for use as a logo.",
            "The asset is linked for use as a landscape logo.",
            "The asset is linked for use as a non YouTube logo.",
            "The asset is linked for use to select a call-to-action.",
            "The asset is linked for use to select an ad image.",
            "The asset is linked for use as a business logo.",
            "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
            "The asset is linked for use as a Demand Gen carousel card.",
            "The asset is linked for use as a Business Message.",
            "The asset is linked for use as a tall portrait marketing image.",
            "The asset is linked for use as related YouTube videos.",
            "The asset is linked for use as a landing page preview image.",
            "The asset is linked for use as a long description.",
            "The asset is linked for use as a call-to-action."
          ],
          "readOnly": true,
          "description": "Output only. FieldType of the asset.",
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE",
            "DESCRIPTION",
            "MANDATORY_AD_TEXT",
            "MARKETING_IMAGE",
            "MEDIA_BUNDLE",
            "YOUTUBE_VIDEO",
            "BOOK_ON_GOOGLE",
            "LEAD_FORM",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "LONG_HEADLINE",
            "BUSINESS_NAME",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "VIDEO",
            "CALL_TO_ACTION_SELECTION",
            "AD_IMAGE",
            "BUSINESS_LOGO",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "TALL_PORTRAIT_MARKETING_IMAGE",
            "RELATED_YOUTUBE_VIDEOS",
            "LANDING_PAGE_PREVIEW",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION"
          ]
        },
        "resourceName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the channel aggregate asset view. Channel aggregate asset view resource names have the form: `customers/{customer_id}/channelAggregateAssetViews/{ChannelAssetV2.advertising_channel_type}~{ChannelAssetV2.asset_id}~{ChannelAssetV2.asset_source}~{ChannelAssetV2.field_type}\"`"
        },
        "asset": {
          "type": "string",
          "description": "Output only. The ID of the asset.",
          "readOnly": true
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__ShareablePreviewResult": {
      "description": "Message to hold a shareable preview result.",
      "id": "GoogleAdsGoogleadsV23Services__ShareablePreviewResult",
      "type": "object",
      "properties": {
        "expirationDateTime": {
          "type": "string",
          "description": "Expiration date time using the ISO-8601 format."
        },
        "shareablePreviewUrl": {
          "type": "string",
          "description": "The shareable preview URL."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__GenerateKeywordForecastMetricsResponse": {
      "id": "GoogleAdsGoogleadsV23Services__GenerateKeywordForecastMetricsResponse",
      "type": "object",
      "description": "Response message for KeywordPlanIdeaService.GenerateKeywordForecastMetrics.",
      "properties": {
        "campaignForecastMetrics": {
          "$ref": "GoogleAdsGoogleadsV23Services__KeywordForecastMetrics",
          "description": "Results of the campaign forecast."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__CustomerNegativeCriterionOperation": {
      "properties": {
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed criterion is expected, in this format: `customers/{customer_id}/customerNegativeCriteria/{criterion_id}`"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new criterion.",
          "$ref": "GoogleAdsGoogleadsV23Resources__CustomerNegativeCriterion"
        }
      },
      "description": "A single operation (create or remove) on a customer level negative criterion.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__CustomerNegativeCriterionOperation"
    },
    "GoogleAdsGoogleadsV23Services_SuggestSmartCampaignBudgetOptionsResponse_BudgetOption": {
      "description": "Smart Campaign budget option.",
      "properties": {
        "dailyAmountMicros": {
          "type": "string",
          "description": "The amount of the budget, in the local currency for the account. Amount is specified in micros, where one million is equivalent to one currency unit.",
          "format": "int64"
        },
        "metrics": {
          "description": "Metrics pertaining to the suggested budget, could be empty if there is not enough information to derive the estimates.",
          "$ref": "GoogleAdsGoogleadsV23Services_SuggestSmartCampaignBudgetOptionsResponse_Metrics"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services_SuggestSmartCampaignBudgetOptionsResponse_BudgetOption",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__EnhancedCpc": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__EnhancedCpc",
      "properties": {},
      "description": "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."
    },
    "GoogleAdsGoogleadsV23Common__HotelAdInfo": {
      "properties": {},
      "id": "GoogleAdsGoogleadsV23Common__HotelAdInfo",
      "description": "A hotel ad.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources_Recommendation_RaiseTargetCpaRecommendation": {
      "description": "Recommendation to raise Target CPA.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources_Recommendation_RaiseTargetCpaRecommendation",
      "properties": {
        "targetAdjustment": {
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_TargetAdjustmentInfo",
          "description": "Output only. The relevant information describing the recommended target adjustment."
        },
        "appBiddingGoal": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "OPTIMIZE_FOR_INSTALL_CONVERSION_VOLUME",
            "OPTIMIZE_FOR_IN_APP_CONVERSION_VOLUME",
            "OPTIMIZE_FOR_TOTAL_CONVERSION_VALUE",
            "OPTIMIZE_FOR_TARGET_IN_APP_CONVERSION",
            "OPTIMIZE_FOR_RETURN_ON_ADVERTISING_SPEND",
            "OPTIMIZE_FOR_INSTALL_CONVERSION_VOLUME_WITHOUT_TARGET_CPI",
            "OPTIMIZE_FOR_PRE_REGISTRATION_CONVERSION_VOLUME"
          ],
          "readOnly": true,
          "description": "Output only. Represents the goal towards which the bidding strategy should optimize. Only populated for App Campaigns.",
          "enumDescriptions": [
            "Not specified.",
            "Represents value unknown in this version of the API.",
            "The bidding strategy of the app campaign should aim to maximize installation of the app.",
            "The bidding strategy of the app campaign should aim to maximize the selected in-app conversions' volume.",
            "The bidding strategy of the app campaign should aim to maximize all conversions' value, that is, install and selected in-app conversions.",
            "The bidding strategy of the app campaign should aim to maximize just the selected in-app conversion's volume, while achieving or exceeding target cost per in-app conversion.",
            "The bidding strategy of the app campaign should aim to maximize all conversions' value, that is, install and selected in-app conversions while achieving or exceeding target return on advertising spend.",
            "This bidding strategy of the app campaign should aim to maximize installation of the app without advertiser-provided target cost-per-install.",
            "This bidding strategy of the app campaign should aim to maximize pre-registration of the app."
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__AdTextAsset": {
      "type": "object",
      "description": "A text asset used inside an ad.",
      "id": "GoogleAdsGoogleadsV23Common__AdTextAsset",
      "properties": {
        "policySummaryInfo": {
          "description": "The policy summary of this text asset.",
          "$ref": "GoogleAdsGoogleadsV23Common__AdAssetPolicySummary"
        },
        "text": {
          "type": "string",
          "description": "Asset text."
        },
        "assetPerformanceLabel": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PENDING",
            "LEARNING",
            "LOW",
            "GOOD",
            "BEST",
            "NOT_APPLICABLE"
          ],
          "type": "string",
          "description": "The performance label of this text asset.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "This asset does not yet have any performance informantion. This may be because it is still under review.",
            "The asset has started getting impressions but the stats are not statistically significant enough to get an asset performance label.",
            "Worst performing assets.",
            "Good performing assets.",
            "Best performing assets.",
            "Performance label cannot be assigned to this asset. This may be because it's not used by asset based creatives."
          ]
        },
        "pinnedField": {
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The asset is used in headline 1.",
            "The asset is used in headline 2.",
            "The asset is used in headline 3.",
            "The asset is used in description 1.",
            "The asset is used in description 2.",
            "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",
            "The asset was used as a headline in portrait image.",
            "The asset was used in a long headline (used in MultiAssetResponsiveAd).",
            "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",
            "The asset was used as description in portrait image.",
            "The asset was used as business name in portrait image.",
            "The asset was used as business name.",
            "The asset was used as a marketing image.",
            "The asset was used as a marketing image in portrait image.",
            "The asset was used as a square marketing image.",
            "The asset was used as a portrait marketing image.",
            "The asset was used as a logo.",
            "The asset was used as a landscape logo.",
            "The asset was used as a call-to-action.",
            "The asset was used as a YouTube video.",
            "This asset is used as a sitelink.",
            "This asset is used as a call.",
            "This asset is used as a mobile app.",
            "This asset is used as a callout.",
            "This asset is used as a structured snippet.",
            "This asset is used as a price.",
            "This asset is used as a promotion.",
            "This asset is used as an image.",
            "The asset is used as a lead form.",
            "The asset is used as a business logo.",
            "The asset is used as a description prefix.",
            "A headline asset used as a sitelink in position 1.",
            "A headline asset used as a sitelink in position 2.",
            "A description line asset used as a sitelink in position 1.",
            "A description line asset used as a sitelink in position 2."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE_1",
            "HEADLINE_2",
            "HEADLINE_3",
            "DESCRIPTION_1",
            "DESCRIPTION_2",
            "HEADLINE",
            "HEADLINE_IN_PORTRAIT",
            "LONG_HEADLINE",
            "DESCRIPTION",
            "DESCRIPTION_IN_PORTRAIT",
            "BUSINESS_NAME_IN_PORTRAIT",
            "BUSINESS_NAME",
            "MARKETING_IMAGE",
            "MARKETING_IMAGE_IN_PORTRAIT",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "CALL_TO_ACTION",
            "YOU_TUBE_VIDEO",
            "SITELINK",
            "CALL",
            "MOBILE_APP",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "PRICE",
            "PROMOTION",
            "AD_IMAGE",
            "LEAD_FORM",
            "BUSINESS_LOGO",
            "DESCRIPTION_PREFIX",
            "HEADLINE_AS_SITELINK_POSITION_ONE",
            "HEADLINE_AS_SITELINK_POSITION_TWO",
            "DESCRIPTION_LINE_HEADLINE_AS_SITELINK_POSITION_ONE",
            "DESCRIPTION_LINE_HEADLINE_AS_SITELINK_POSITION_TWO"
          ],
          "description": "The pinned field of the asset. This restricts the asset to only serve within this field. Multiple assets can be pinned to the same field. An asset that is unpinned or pinned to a different field will not serve in a field where some other asset has been pinned.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__DemandGenVideoResponsiveAdInfo": {
      "description": "A Demand Gen video responsive ad.",
      "properties": {
        "videos": {
          "description": "List of YouTube video assets used for the ad.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdVideoAsset"
          },
          "type": "array"
        },
        "breadcrumb1": {
          "description": "First part of text that appears in the ad with the displayed URL.",
          "type": "string"
        },
        "descriptions": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdTextAsset"
          },
          "description": "List of text assets used for the description."
        },
        "companionBanners": {
          "description": "List of image assets used for the companion banner. Currently, only a single value for the companion banner asset is supported.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdImageAsset"
          },
          "type": "array"
        },
        "callToActions": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdCallToActionAsset"
          },
          "description": "Assets of type CallToActionAsset used for the \"Call To Action\" button.",
          "type": "array"
        },
        "breadcrumb2": {
          "type": "string",
          "description": "Second part of text that appears in the ad with the displayed URL."
        },
        "logoImages": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdImageAsset"
          },
          "description": "Logo image to be used in the ad. Valid image types are GIF, JPEG, and PNG. The minimum size is 128x128 and the aspect ratio must be 1:1 (+-1%).",
          "type": "array"
        },
        "headlines": {
          "description": "List of text assets used for the short headline.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdTextAsset"
          }
        },
        "longHeadlines": {
          "description": "List of text assets used for the long headline.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdTextAsset"
          },
          "type": "array"
        },
        "businessName": {
          "description": "Required. The advertiser/brand name.",
          "$ref": "GoogleAdsGoogleadsV23Common__AdTextAsset"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__DemandGenVideoResponsiveAdInfo"
    },
    "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_TextAdParameters": {
      "id": "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_TextAdParameters",
      "type": "object",
      "description": "Parameters to use when applying a text ad recommendation.",
      "properties": {
        "ad": {
          "description": "New ad to add to recommended ad group. All necessary fields need to be set in this message. This is a required field.",
          "$ref": "GoogleAdsGoogleadsV23Resources__Ad"
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources_Recommendation_TextAdRecommendation": {
      "properties": {
        "ad": {
          "description": "Output only. Recommended ad.",
          "$ref": "GoogleAdsGoogleadsV23Resources__Ad",
          "readOnly": true
        },
        "autoApplyDate": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. Date, if present, is the earliest when the recommendation will be auto applied. YYYY-MM-DD format, for example, 2018-04-17."
        },
        "creationDate": {
          "description": "Output only. Creation date of the recommended ad. YYYY-MM-DD format, for example, 2018-04-17.",
          "type": "string",
          "readOnly": true
        }
      },
      "description": "The text ad recommendation.",
      "id": "GoogleAdsGoogleadsV23Resources_Recommendation_TextAdRecommendation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__LeadFormSingleChoiceAnswers": {
      "type": "object",
      "properties": {
        "answers": {
          "type": "array",
          "description": "List of choices for a single question field. The order of entries defines UI order. Minimum of 2 answers required and maximum of 12 allowed.",
          "items": {
            "type": "string"
          }
        }
      },
      "description": "Defines possible answers for a single choice question, usually presented as a single-choice drop-down list.",
      "id": "GoogleAdsGoogleadsV23Common__LeadFormSingleChoiceAnswers"
    },
    "GoogleAdsGoogleadsV23Services__MutateCustomerAssetSetResult": {
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        },
        "customerAssetSet": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CustomerAssetSet",
          "description": "The mutated customer asset set with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\"."
        }
      },
      "type": "object",
      "description": "The result for the customer asset set mutate.",
      "id": "GoogleAdsGoogleadsV23Services__MutateCustomerAssetSetResult"
    },
    "GoogleAdsGoogleadsV23Common__MonthlySearchVolume": {
      "description": "Monthly search volume.",
      "id": "GoogleAdsGoogleadsV23Common__MonthlySearchVolume",
      "properties": {
        "month": {
          "description": "The month of the search volume.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "JANUARY",
            "FEBRUARY",
            "MARCH",
            "APRIL",
            "MAY",
            "JUNE",
            "JULY",
            "AUGUST",
            "SEPTEMBER",
            "OCTOBER",
            "NOVEMBER",
            "DECEMBER"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "January.",
            "February.",
            "March.",
            "April.",
            "May.",
            "June.",
            "July.",
            "August.",
            "September.",
            "October.",
            "November.",
            "December."
          ]
        },
        "year": {
          "description": "The year of the search volume (for example, 2020).",
          "type": "string",
          "format": "int64"
        },
        "monthlySearches": {
          "description": "Approximate number of searches for the month. A null value indicates the search volume is unavailable for that month.",
          "type": "string",
          "format": "int64"
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources_Recommendation_MoveUnusedBudgetRecommendation": {
      "properties": {
        "excessCampaignBudget": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The excess budget's resource_name."
        },
        "budgetRecommendation": {
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_CampaignBudgetRecommendation",
          "description": "Output only. The recommendation for the constrained budget to increase.",
          "readOnly": true
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources_Recommendation_MoveUnusedBudgetRecommendation",
      "description": "The move unused budget recommendation.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__CampaignThirdPartyBrandLiftIntegrationPartner": {
      "type": "object",
      "properties": {
        "brandLiftIntegrationPartnerData": {
          "$ref": "GoogleAdsGoogleadsV23Common__ThirdPartyIntegrationPartnerData",
          "description": "Third party partner data for YouTube Brand Lift verification. This is optional metadata for partners to join or attach data to Ads campaigns."
        },
        "brandLiftIntegrationPartner": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "KANTAR_MILLWARD_BROWN",
            "DYNATA",
            "INTAGE",
            "MACROMILL"
          ],
          "description": "Allowed third party integration partners for Brand Lift verification.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Kantar",
            "Dynata",
            "Intage",
            "Macromill"
          ]
        },
        "shareCost": {
          "type": "boolean",
          "description": "If true, then cost data will be shared with this vendor."
        }
      },
      "description": "Container for third party Brand Lift integration data for Campaign.",
      "id": "GoogleAdsGoogleadsV23Common__CampaignThirdPartyBrandLiftIntegrationPartner"
    },
    "GoogleAdsGoogleadsV23Common__ActivityIdInfo": {
      "description": "Advertiser-specific activity ID.",
      "properties": {
        "value": {
          "description": "String value of the activity ID.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__ActivityIdInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__MediaBundleAsset": {
      "description": "A MediaBundle asset.",
      "id": "GoogleAdsGoogleadsV23Common__MediaBundleAsset",
      "type": "object",
      "properties": {
        "data": {
          "format": "byte",
          "description": "Media bundle (ZIP file) asset data. The format of the uploaded ZIP file depends on the ad field where it will be used. For more information on the format, see the documentation of the ad field where you plan on using the MediaBundleAsset. This field is mutate only.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__CustomIntentInfo": {
      "id": "GoogleAdsGoogleadsV23Common__CustomIntentInfo",
      "description": "A custom intent criterion. A criterion of this type is only targetable.",
      "properties": {
        "customIntent": {
          "description": "The CustomInterest resource name.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__AudienceInsightsAttribute": {
      "properties": {
        "ageRange": {
          "$ref": "GoogleAdsGoogleadsV23Common__AgeRangeInfo",
          "description": "An audience attribute defined by an age range."
        },
        "incomeRange": {
          "description": "A household income percentile range.",
          "$ref": "GoogleAdsGoogleadsV23Common__IncomeRangeInfo"
        },
        "parentalStatus": {
          "description": "A Parental Status value (parent, or not a parent).",
          "$ref": "GoogleAdsGoogleadsV23Common__ParentalStatusInfo"
        },
        "gender": {
          "$ref": "GoogleAdsGoogleadsV23Common__GenderInfo",
          "description": "An audience attribute defined by a gender."
        },
        "userList": {
          "description": "A User List.",
          "$ref": "GoogleAdsGoogleadsV23Common__UserListInfo"
        },
        "category": {
          "description": "An audience attribute defined by interest in a Product & Service category.",
          "$ref": "GoogleAdsGoogleadsV23Common__AudienceInsightsCategory"
        },
        "location": {
          "description": "An audience attribute defined by a geographic location.",
          "$ref": "GoogleAdsGoogleadsV23Common__LocationInfo"
        },
        "youtubeVideo": {
          "$ref": "GoogleAdsGoogleadsV23Common__YouTubeVideoInfo",
          "description": "A YouTube video."
        },
        "userInterest": {
          "description": "An Affinity or In-Market audience.",
          "$ref": "GoogleAdsGoogleadsV23Common__UserInterestInfo"
        },
        "entity": {
          "description": "An audience attribute defined by interest in a topic represented by a Knowledge Graph entity.",
          "$ref": "GoogleAdsGoogleadsV23Common__AudienceInsightsEntity"
        },
        "device": {
          "$ref": "GoogleAdsGoogleadsV23Common__DeviceInfo",
          "description": "A device type. (Mobile, Desktop, Tablet)"
        },
        "lineup": {
          "$ref": "GoogleAdsGoogleadsV23Common__AudienceInsightsLineup",
          "description": "A YouTube Lineup."
        },
        "youtubeChannel": {
          "description": "A YouTube channel.",
          "$ref": "GoogleAdsGoogleadsV23Common__YouTubeChannelInfo"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__AudienceInsightsAttribute",
      "description": "An audience attribute that can be used to request insights about the audience. Valid inputs for these fields are available from AudienceInsightsService.ListAudienceInsightsAttributes.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__ImageDimension": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__ImageDimension",
      "properties": {
        "widthPixels": {
          "type": "string",
          "format": "int64",
          "description": "Width of the image."
        },
        "heightPixels": {
          "format": "int64",
          "type": "string",
          "description": "Height of the image."
        },
        "url": {
          "description": "A URL that returns the image with this height and width.",
          "type": "string"
        }
      },
      "description": "Metadata for an image at a certain size, either original or resized."
    },
    "GoogleAdsGoogleadsV23Common__CustomerThirdPartyReachIntegrationPartner": {
      "properties": {
        "reachIntegrationPartner": {
          "description": "Allowed Third Party integration partners for reach verification.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NIELSEN",
            "COMSCORE",
            "KANTAR_MILLWARD_BROWN",
            "VIDEO_RESEARCH",
            "GEMIUS",
            "MEDIA_SCOPE",
            "AUDIENCE_PROJECT",
            "VIDEO_AMP",
            "ISPOT_TV"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Nielsen.",
            "Comscore.",
            "Kantar.",
            "Video Research.",
            "Gemius.",
            "MediaScope.",
            "AudienceProject",
            "VideoAmp",
            "iSpot.tv"
          ]
        },
        "allowShareCost": {
          "type": "boolean",
          "description": "If true, cost data can be shared with this vendor."
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__CustomerThirdPartyReachIntegrationPartner",
      "description": "Container for third party reach integration data for Customer.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services_GenerateCreatorInsightsRequest_YouTubeChannels": {
      "id": "GoogleAdsGoogleadsV23Services_GenerateCreatorInsightsRequest_YouTubeChannels",
      "description": "A collection of YouTube Channels.",
      "properties": {
        "youtubeChannels": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__YouTubeChannelInfo"
          },
          "type": "array",
          "description": "Optional. The YouTube Channel IDs to fetch creator insights for."
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__CampaignAggregateAssetView": {
      "type": "object",
      "properties": {
        "campaign": {
          "description": "Output only. Campaign in which the asset served.",
          "type": "string",
          "readOnly": true
        },
        "fieldType": {
          "type": "string",
          "description": "Output only. FieldType of the asset.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE",
            "DESCRIPTION",
            "MANDATORY_AD_TEXT",
            "MARKETING_IMAGE",
            "MEDIA_BUNDLE",
            "YOUTUBE_VIDEO",
            "BOOK_ON_GOOGLE",
            "LEAD_FORM",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "LONG_HEADLINE",
            "BUSINESS_NAME",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "VIDEO",
            "CALL_TO_ACTION_SELECTION",
            "AD_IMAGE",
            "BUSINESS_LOGO",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "TALL_PORTRAIT_MARKETING_IMAGE",
            "RELATED_YOUTUBE_VIDEOS",
            "LANDING_PAGE_PREVIEW",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION"
          ],
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is linked for use as a headline.",
            "The asset is linked for use as a description.",
            "The asset is linked for use as mandatory ad text.",
            "The asset is linked for use as a marketing image.",
            "The asset is linked for use as a media bundle.",
            "The asset is linked for use as a YouTube video.",
            "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
            "The asset is linked for use as a Lead Form extension.",
            "The asset is linked for use as a Promotion extension.",
            "The asset is linked for use as a Callout extension.",
            "The asset is linked for use as a Structured Snippet extension.",
            "The asset is linked for use as a Sitelink.",
            "The asset is linked for use as a Mobile App extension.",
            "The asset is linked for use as a Hotel Callout extension.",
            "The asset is linked for use as a Call extension.",
            "The asset is linked for use as a Price extension.",
            "The asset is linked for use as a long headline.",
            "The asset is linked for use as a business name.",
            "The asset is linked for use as a square marketing image.",
            "The asset is linked for use as a portrait marketing image.",
            "The asset is linked for use as a logo.",
            "The asset is linked for use as a landscape logo.",
            "The asset is linked for use as a non YouTube logo.",
            "The asset is linked for use to select a call-to-action.",
            "The asset is linked for use to select an ad image.",
            "The asset is linked for use as a business logo.",
            "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
            "The asset is linked for use as a Demand Gen carousel card.",
            "The asset is linked for use as a Business Message.",
            "The asset is linked for use as a tall portrait marketing image.",
            "The asset is linked for use as related YouTube videos.",
            "The asset is linked for use as a landing page preview image.",
            "The asset is linked for use as a long description.",
            "The asset is linked for use as a call-to-action."
          ]
        },
        "asset": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The ID of the asset."
        },
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the campaign aggregate asset view. Campaign aggregate asset view resource names have the form: `customers/{customer_id}/campaignAggregateAssetViews/{Campaign.campaign_id}~{Asset.asset_id}~{AssetLinkSource.asset_link_source}~{AssetFieldType.field_type}`",
          "readOnly": true
        },
        "assetSource": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADVERTISER",
            "AUTOMATICALLY_CREATED"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset or asset link is provided by advertiser.",
            "The asset or asset link is generated by Google."
          ],
          "readOnly": true,
          "description": "Output only. Source of the asset link."
        }
      },
      "description": "A campaign-level aggregate asset view that shows where the asset is linked, performamce of the asset and stats.",
      "id": "GoogleAdsGoogleadsV23Resources__CampaignAggregateAssetView"
    },
    "GoogleAdsGoogleadsV23Common__LeadFormAsset": {
      "id": "GoogleAdsGoogleadsV23Common__LeadFormAsset",
      "description": "A Lead Form asset.",
      "type": "object",
      "properties": {
        "businessName": {
          "type": "string",
          "description": "Required. The name of the business being advertised."
        },
        "postSubmitDescription": {
          "type": "string",
          "description": "Detailed description shown after form submission that describes how the advertiser will follow up with the user."
        },
        "postSubmitCallToActionType": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Visit site.",
            "Download.",
            "Learn more.",
            "Shop now."
          ],
          "type": "string",
          "description": "Pre-defined display text that encourages user action after the form is submitted.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "VISIT_SITE",
            "DOWNLOAD",
            "LEARN_MORE",
            "SHOP_NOW"
          ]
        },
        "desiredIntent": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "LOW_INTENT",
            "HIGH_INTENT"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Deliver more leads at a potentially lower quality.",
            "Deliver leads that are more qualified."
          ],
          "description": "Chosen intent for the lead form, for example, more volume or more qualified.",
          "type": "string"
        },
        "postSubmitHeadline": {
          "type": "string",
          "description": "Headline of text shown after form submission that describes how the advertiser will follow up with the user."
        },
        "deliveryMethods": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__LeadFormDeliveryMethod"
          },
          "description": "Configured methods for collected lead data to be delivered to advertiser. Only one method typed as WebhookDelivery can be configured."
        },
        "description": {
          "description": "Required. Detailed description of the expanded form to describe what the form is asking for or facilitating.",
          "type": "string"
        },
        "privacyPolicyUrl": {
          "description": "Required. Link to a page describing the policy on how the collected data is handled by the advertiser/business.",
          "type": "string"
        },
        "backgroundImageAsset": {
          "description": "Asset resource name of the background image. The image dimensions must be exactly 1200x628.",
          "type": "string"
        },
        "customQuestionFields": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__LeadFormCustomQuestionField"
          },
          "description": "Ordered list of custom question fields. This field is subject to a limit of 5 qualifying questions per form.",
          "type": "array"
        },
        "callToActionDescription": {
          "description": "Required. Text giving a clear value proposition of what users expect once they expand the form.",
          "type": "string"
        },
        "headline": {
          "type": "string",
          "description": "Required. Headline of the expanded form to describe what the form is asking for or facilitating."
        },
        "callToActionType": {
          "description": "Required. Pre-defined display text that encourages user to expand the form.",
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "LEARN_MORE",
            "GET_QUOTE",
            "APPLY_NOW",
            "SIGN_UP",
            "CONTACT_US",
            "SUBSCRIBE",
            "DOWNLOAD",
            "BOOK_NOW",
            "GET_OFFER",
            "REGISTER",
            "GET_INFO",
            "REQUEST_DEMO",
            "JOIN_NOW",
            "GET_STARTED"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Learn more.",
            "Get quote.",
            "Apply now.",
            "Sign Up.",
            "Contact us.",
            "Subscribe.",
            "Download.",
            "Book now.",
            "Get offer.",
            "Register.",
            "Get info.",
            "Request a demo.",
            "Join now.",
            "Get started."
          ]
        },
        "customDisclosure": {
          "type": "string",
          "description": "Custom disclosure shown along with Google disclaimer on the lead form. Accessible to allowed customers only."
        },
        "fields": {
          "description": "Ordered list of input fields. This field can be updated by reordering questions, but not by adding or removing questions.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__LeadFormField"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateKeywordPlanCampaignKeywordsResponse": {
      "type": "object",
      "description": "Response message for a Keyword Plan campaign keyword mutate.",
      "properties": {
        "results": {
          "type": "array",
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateKeywordPlanCampaignKeywordResult"
          }
        },
        "partialFailureError": {
          "$ref": "GoogleRpc__Status",
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error."
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateKeywordPlanCampaignKeywordsResponse"
    },
    "GoogleAdsGoogleadsV23Resources__CampaignSharedSet": {
      "properties": {
        "campaign": {
          "type": "string",
          "description": "Immutable. The campaign to which the campaign shared set belongs."
        },
        "status": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "readOnly": true,
          "description": "Output only. The status of this campaign shared set. Read only.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The campaign shared set is enabled.",
            "The campaign shared set is removed and can no longer be used."
          ],
          "type": "string"
        },
        "sharedSet": {
          "description": "Immutable. The shared set associated with the campaign. This may be a negative keyword shared set of another customer. This customer should be a manager of the other customer, otherwise the campaign shared set will exist but have no serving effect. Only negative keyword shared sets can be associated with Shopping campaigns. Only negative placement shared sets can be associated with Display mobile app campaigns.",
          "type": "string"
        },
        "resourceName": {
          "description": "Immutable. The resource name of the campaign shared set. Campaign shared set resource names have the form: `customers/{customer_id}/campaignSharedSets/{campaign_id}~{shared_set_id}`",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__CampaignSharedSet",
      "description": "CampaignSharedSets are used for managing the shared sets associated with a campaign.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__ProductCustomAttributeInfo": {
      "description": "Custom attribute of a product offer.",
      "properties": {
        "index": {
          "type": "string",
          "description": "Indicates the index of the custom attribute.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INDEX0",
            "INDEX1",
            "INDEX2",
            "INDEX3",
            "INDEX4"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "First product custom attribute.",
            "Second product custom attribute.",
            "Third product custom attribute.",
            "Fourth product custom attribute.",
            "Fifth product custom attribute."
          ]
        },
        "value": {
          "description": "String value of the product custom attribute.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__ProductCustomAttributeInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__DetailedDemographic": {
      "description": "A detailed demographic: a particular interest-based vertical to be targeted to reach users based on long-term life facts.",
      "properties": {
        "id": {
          "description": "Output only. The ID of the detailed demographic.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "launchedToAll": {
          "description": "Output only. True if the detailed demographic is launched to all channels and locales.",
          "type": "boolean",
          "readOnly": true
        },
        "name": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The name of the detailed demographic. For example,\"Highest Level of Educational Attainment\""
        },
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the detailed demographic. Detailed demographic resource names have the form: `customers/{customer_id}/detailedDemographics/{detailed_demographic_id}`",
          "readOnly": true
        },
        "parent": {
          "description": "Output only. The parent of the detailed_demographic.",
          "readOnly": true,
          "type": "string"
        },
        "availabilities": {
          "readOnly": true,
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__CriterionCategoryAvailability"
          },
          "type": "array",
          "description": "Output only. Availability information of the detailed demographic."
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__DetailedDemographic",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__GenderDimension": {
      "id": "GoogleAdsGoogleadsV23Common__GenderDimension",
      "type": "object",
      "properties": {
        "genders": {
          "items": {
            "type": "string",
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "MALE",
              "FEMALE",
              "UNDETERMINED"
            ],
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "Male.",
              "Female.",
              "Undetermined gender."
            ]
          },
          "description": "Included gender demographic segments.",
          "type": "array"
        },
        "includeUndetermined": {
          "type": "boolean",
          "description": "Include users whose gender is not determined."
        }
      },
      "description": "Dimension specifying users by their gender."
    },
    "GoogleAdsGoogleadsV23Services__MutateAdGroupCriteriaResponse": {
      "type": "object",
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateAdGroupCriterionResult"
          },
          "description": "All results for the mutate."
        },
        "partialFailureError": {
          "$ref": "GoogleRpc__Status",
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error."
        }
      },
      "description": "Response message for an ad group criterion mutate.",
      "id": "GoogleAdsGoogleadsV23Services__MutateAdGroupCriteriaResponse"
    },
    "GoogleAdsGoogleadsV23Common__AudienceInsightsEntity": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__AudienceInsightsEntity",
      "properties": {
        "knowledgeGraphMachineId": {
          "type": "string",
          "description": "Required. The machine ID (mid) of the Knowledge Graph entity."
        }
      },
      "description": "A Knowledge Graph entity, represented by its machine id."
    },
    "GoogleAdsGoogleadsV23Services__AccountLinkOperation": {
      "properties": {
        "remove": {
          "description": "Remove operation: A resource name for the account link to remove is expected, in this format: `customers/{customer_id}/accountLinks/{account_link_id}`",
          "type": "string"
        },
        "update": {
          "$ref": "GoogleAdsGoogleadsV23Resources__AccountLink",
          "description": "Update operation: The account link is expected to have a valid resource name."
        },
        "updateMask": {
          "format": "google-fieldmask",
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string"
        }
      },
      "description": "A single update on an account link.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__AccountLinkOperation"
    },
    "GoogleAdsGoogleadsV23Common__AudienceInsightsAttributeMetadataGroup": {
      "id": "GoogleAdsGoogleadsV23Common__AudienceInsightsAttributeMetadataGroup",
      "properties": {
        "attributes": {
          "description": "Attributes with metadata returned in response to a search.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AudienceInsightsAttributeMetadata"
          },
          "type": "array"
        }
      },
      "description": "A group of audience attributes with metadata, returned in response to a search.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__UploadClickConversionsRequest": {
      "description": "Request message for ConversionUploadService.UploadClickConversions.",
      "id": "GoogleAdsGoogleadsV23Services__UploadClickConversionsRequest",
      "properties": {
        "partialFailure": {
          "type": "boolean",
          "description": "Required. If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. This should always be set to true. See https://developers.google.com/google-ads/api/docs/best-practices/partial-failures for more information about partial failure."
        },
        "conversions": {
          "type": "array",
          "description": "Required. The conversions that are being uploaded.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__ClickConversion"
          }
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "jobId": {
          "format": "int32",
          "description": "Optional. Optional input to set job ID. Must be a non-negative number that is less than 2^31 if provided. If this field is not provided, the API will generate a job ID in the range [2^31, (2^63)-1]. The API will return the value for this request in the `job_id` field of the `UploadClickConversionsResponse`.",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common_GoalSetting_RetentionGoal": {
      "id": "GoogleAdsGoogleadsV23Common_GoalSetting_RetentionGoal",
      "description": "Retention goal settings.",
      "properties": {
        "valueSettings": {
          "description": "Retention goal value settings.",
          "$ref": "GoogleAdsGoogleadsV23Common__CustomerLifecycleOptimizationValueSettings"
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__WebpageView": {
      "id": "GoogleAdsGoogleadsV23Resources__WebpageView",
      "type": "object",
      "properties": {
        "resourceName": {
          "description": "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}`",
          "readOnly": true,
          "type": "string"
        }
      },
      "description": "A webpage view."
    },
    "GoogleAdsGoogleadsV23Resources__AdScheduleView": {
      "description": "An ad schedule view summarizes the performance of campaigns by AdSchedule criteria.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the ad schedule view. AdSchedule view resource names have the form: `customers/{customer_id}/adScheduleViews/{campaign_id}~{criterion_id}`",
          "readOnly": true
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__AdScheduleView"
    },
    "GoogleAdsGoogleadsV23Common__CpvBidSimulationPoint": {
      "id": "GoogleAdsGoogleadsV23Common__CpvBidSimulationPoint",
      "properties": {
        "views": {
          "format": "int64",
          "type": "string",
          "description": "Projected number of views."
        },
        "cpvBidMicros": {
          "format": "int64",
          "type": "string",
          "description": "The simulated CPV bid upon which projected metrics are based."
        },
        "costMicros": {
          "type": "string",
          "description": "Projected cost in micros.",
          "format": "int64"
        },
        "impressions": {
          "type": "string",
          "description": "Projected number of impressions.",
          "format": "int64"
        }
      },
      "type": "object",
      "description": "Projected metrics for a specific CPV bid amount."
    },
    "GoogleAdsGoogleadsV23Services__MutateCampaignCustomizersRequest": {
      "id": "GoogleAdsGoogleadsV23Services__MutateCampaignCustomizersRequest",
      "description": "Request message for CampaignCustomizerService.MutateCampaignCustomizers.",
      "type": "object",
      "properties": {
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "responseContentType": {
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "type": "string",
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ]
        },
        "operations": {
          "type": "array",
          "description": "Required. The list of operations to perform on individual campaign customizers.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__CampaignCustomizerOperation"
          }
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__TargetCpa": {
      "id": "GoogleAdsGoogleadsV23Common__TargetCpa",
      "description": "An automated bid strategy that sets bids to help get as many conversions as possible at the target cost-per-acquisition (CPA) you set.",
      "properties": {
        "cpcBidCeilingMicros": {
          "format": "int64",
          "type": "string",
          "description": "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."
        },
        "cpcBidFloorMicros": {
          "description": "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.",
          "format": "int64",
          "type": "string"
        },
        "targetCpaMicros": {
          "type": "string",
          "format": "int64",
          "description": "Average CPA target. This target should be greater than or equal to minimum billable unit based on the currency for the account."
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__CampaignGoalConfig": {
      "id": "GoogleAdsGoogleadsV23Resources__CampaignGoalConfig",
      "description": "A link between a campaign and a goal enabling campaign-specific optimization.",
      "type": "object",
      "properties": {
        "campaign": {
          "type": "string",
          "description": "Immutable. The resource name of the campaign for this link."
        },
        "goal": {
          "description": "Immutable. The resource name of the goal this link is attached to.",
          "type": "string"
        },
        "resourceName": {
          "description": "Immutable. The resource name of the campaign goal config. campaign goal config resource names have the form: `customers/{customer_id}/campaignGoalConfigs/{campaign_id}~{goal_id}`",
          "type": "string"
        },
        "goalType": {
          "readOnly": true,
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CUSTOMER_RETENTION"
          ],
          "description": "Output only. The goal type this link is attached to.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Retention goal, which allows advertisers to optimize campaigns to win back lapsed customers. (https://support.google.com/google-ads/answer/14792043?hl=en)"
          ]
        },
        "campaignRetentionSettings": {
          "$ref": "GoogleAdsGoogleadsV23Common_CampaignGoalSettings_CampaignRetentionGoalSettings",
          "description": "Retention goal campaign settings."
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__AssetUsage": {
      "type": "object",
      "description": "Contains the usage information of the asset.",
      "properties": {
        "asset": {
          "type": "string",
          "description": "Resource name of the asset."
        },
        "servedAssetFieldType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE_1",
            "HEADLINE_2",
            "HEADLINE_3",
            "DESCRIPTION_1",
            "DESCRIPTION_2",
            "HEADLINE",
            "HEADLINE_IN_PORTRAIT",
            "LONG_HEADLINE",
            "DESCRIPTION",
            "DESCRIPTION_IN_PORTRAIT",
            "BUSINESS_NAME_IN_PORTRAIT",
            "BUSINESS_NAME",
            "MARKETING_IMAGE",
            "MARKETING_IMAGE_IN_PORTRAIT",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "CALL_TO_ACTION",
            "YOU_TUBE_VIDEO",
            "SITELINK",
            "CALL",
            "MOBILE_APP",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "PRICE",
            "PROMOTION",
            "AD_IMAGE",
            "LEAD_FORM",
            "BUSINESS_LOGO",
            "DESCRIPTION_PREFIX",
            "HEADLINE_AS_SITELINK_POSITION_ONE",
            "HEADLINE_AS_SITELINK_POSITION_TWO",
            "DESCRIPTION_LINE_HEADLINE_AS_SITELINK_POSITION_ONE",
            "DESCRIPTION_LINE_HEADLINE_AS_SITELINK_POSITION_TWO"
          ],
          "description": "The served field type of the asset.",
          "type": "string",
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The asset is used in headline 1.",
            "The asset is used in headline 2.",
            "The asset is used in headline 3.",
            "The asset is used in description 1.",
            "The asset is used in description 2.",
            "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",
            "The asset was used as a headline in portrait image.",
            "The asset was used in a long headline (used in MultiAssetResponsiveAd).",
            "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",
            "The asset was used as description in portrait image.",
            "The asset was used as business name in portrait image.",
            "The asset was used as business name.",
            "The asset was used as a marketing image.",
            "The asset was used as a marketing image in portrait image.",
            "The asset was used as a square marketing image.",
            "The asset was used as a portrait marketing image.",
            "The asset was used as a logo.",
            "The asset was used as a landscape logo.",
            "The asset was used as a call-to-action.",
            "The asset was used as a YouTube video.",
            "This asset is used as a sitelink.",
            "This asset is used as a call.",
            "This asset is used as a mobile app.",
            "This asset is used as a callout.",
            "This asset is used as a structured snippet.",
            "This asset is used as a price.",
            "This asset is used as a promotion.",
            "This asset is used as an image.",
            "The asset is used as a lead form.",
            "The asset is used as a business logo.",
            "The asset is used as a description prefix.",
            "A headline asset used as a sitelink in position 1.",
            "A headline asset used as a sitelink in position 2.",
            "A description line asset used as a sitelink in position 1.",
            "A description line asset used as a sitelink in position 2."
          ]
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__AssetUsage"
    },
    "GoogleAdsGoogleadsV23Resources_Campaign_DemandGenCampaignSettings": {
      "description": "Settings for Demand Gen campaign.",
      "properties": {
        "upgradedTargeting": {
          "type": "boolean",
          "description": "Immutable. Specifies whether this campaign uses upgraded targeting options. When this field is set to `true`, you can use location and language targeting at the ad group level as opposed to the standard campaign-level targeting. This field defaults to `true`, and can only be set when creating a campaign."
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources_Campaign_DemandGenCampaignSettings",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateAccountLinkResult": {
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      },
      "description": "The result for the account link mutate.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateAccountLinkResult"
    },
    "GoogleAdsGoogleadsV23Common__ZaloBusinessMessageInfo": {
      "id": "GoogleAdsGoogleadsV23Common__ZaloBusinessMessageInfo",
      "type": "object",
      "description": "Zalo information to use for messaging.",
      "properties": {
        "oaId": {
          "type": "string",
          "format": "int64",
          "description": "Zalo Official Account ID of the advertiser."
        },
        "customName": {
          "type": "string",
          "description": "Custom name generated by the advertiser for their Zalo Account. These names will usually be registered brands or trademarks."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__BenchmarksSourceMetadata": {
      "properties": {
        "benchmarksSourceType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INDUSTRY_VERTICAL"
          ],
          "description": "The type of benchmarks source.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "The classification of ad categories for benchmarking. (for example, \"Technology\" or \"Finance\")."
          ]
        },
        "industryVerticalInfo": {
          "description": "Information on the Industry Vertical.",
          "$ref": "GoogleAdsGoogleadsV23Services__IndustryVerticalInfo"
        }
      },
      "description": "The metadata associated with a benchmarks source.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__BenchmarksSourceMetadata"
    },
    "GoogleAdsGoogleadsV23Resources__SharedCriterion": {
      "properties": {
        "resourceName": {
          "description": "Immutable. The resource name of the shared criterion. Shared set resource names have the form: `customers/{customer_id}/sharedCriteria/{shared_set_id}~{criterion_id}`",
          "type": "string"
        },
        "youtubeChannel": {
          "$ref": "GoogleAdsGoogleadsV23Common__YouTubeChannelInfo",
          "description": "Immutable. YouTube Channel."
        },
        "sharedSet": {
          "type": "string",
          "description": "Immutable. The shared set to which the shared criterion belongs."
        },
        "mobileAppCategory": {
          "description": "Immutable. Mobile App Category.",
          "$ref": "GoogleAdsGoogleadsV23Common__MobileAppCategoryInfo"
        },
        "webpage": {
          "$ref": "GoogleAdsGoogleadsV23Common__WebpageInfo",
          "description": "Immutable. Webpage."
        },
        "placement": {
          "description": "Immutable. Placement.",
          "$ref": "GoogleAdsGoogleadsV23Common__PlacementInfo"
        },
        "criterionId": {
          "format": "int64",
          "readOnly": true,
          "description": "Output only. The ID of the criterion. This field is ignored for mutates.",
          "type": "string"
        },
        "negative": {
          "description": "Immutable. If true, the criterion is excluded. If false, the criterion is targeted.",
          "type": "boolean"
        },
        "type": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "KEYWORD",
            "PLACEMENT",
            "MOBILE_APP_CATEGORY",
            "MOBILE_APPLICATION",
            "DEVICE",
            "LOCATION",
            "LISTING_GROUP",
            "AD_SCHEDULE",
            "AGE_RANGE",
            "GENDER",
            "INCOME_RANGE",
            "PARENTAL_STATUS",
            "YOUTUBE_VIDEO",
            "YOUTUBE_CHANNEL",
            "USER_LIST",
            "PROXIMITY",
            "TOPIC",
            "LISTING_SCOPE",
            "LANGUAGE",
            "IP_BLOCK",
            "CONTENT_LABEL",
            "CARRIER",
            "USER_INTEREST",
            "WEBPAGE",
            "OPERATING_SYSTEM_VERSION",
            "APP_PAYMENT_MODEL",
            "MOBILE_DEVICE",
            "CUSTOM_AFFINITY",
            "CUSTOM_INTENT",
            "LOCATION_GROUP",
            "CUSTOM_AUDIENCE",
            "COMBINED_AUDIENCE",
            "KEYWORD_THEME",
            "AUDIENCE",
            "NEGATIVE_KEYWORD_LIST",
            "LOCAL_SERVICE_ID",
            "SEARCH_THEME",
            "BRAND",
            "BRAND_LIST",
            "LIFE_EVENT",
            "WEBPAGE_LIST",
            "VIDEO_LINEUP",
            "PLACEMENT_LIST",
            "VERTICAL_ADS_ITEM_GROUP_RULE_LIST",
            "VERTICAL_ADS_ITEM_GROUP_RULE"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Keyword, for example, 'mars cruise'.",
            "Placement, also known as Website, for example, 'www.flowers4sale.com'",
            "Mobile application categories to target.",
            "Mobile applications to target.",
            "Devices to target.",
            "Locations to target.",
            "Listing groups to target.",
            "Ad Schedule.",
            "Age range.",
            "Gender.",
            "Income Range.",
            "Parental status.",
            "YouTube Video.",
            "YouTube Channel.",
            "User list.",
            "Proximity.",
            "A topic target on the display network (for example, \"Pets & Animals\").",
            "Listing scope to target.",
            "Language.",
            "IpBlock.",
            "Content Label for category exclusion.",
            "Carrier.",
            "A category the user is interested in.",
            "Webpage criterion for dynamic search ads.",
            "Operating system version.",
            "App payment model.",
            "Mobile device.",
            "Custom affinity.",
            "Custom intent.",
            "Location group.",
            "Custom audience",
            "Combined audience",
            "Smart Campaign keyword theme",
            "Audience",
            "Negative Keyword List",
            "Local Services Ads Service ID.",
            "Search Theme.",
            "Brand",
            "Brand List",
            "Life Event",
            "Webpage List",
            "Video lineup",
            "Placement List",
            "A list of rules for item groups in Vertical Ads.",
            "A rule for an item group in Vertical Ads."
          ],
          "type": "string",
          "readOnly": true,
          "description": "Output only. The type of the criterion."
        },
        "youtubeVideo": {
          "description": "Immutable. YouTube Video.",
          "$ref": "GoogleAdsGoogleadsV23Common__YouTubeVideoInfo"
        },
        "mobileApplication": {
          "description": "Immutable. Mobile application.",
          "$ref": "GoogleAdsGoogleadsV23Common__MobileApplicationInfo"
        },
        "verticalAdsItemGroupRule": {
          "description": "Immutable. Vertical ads item group rule.",
          "$ref": "GoogleAdsGoogleadsV23Common__VerticalAdsItemGroupRuleInfo"
        },
        "brand": {
          "description": "Immutable. Brand.",
          "$ref": "GoogleAdsGoogleadsV23Common__BrandInfo"
        },
        "keyword": {
          "description": "Immutable. Keyword.",
          "$ref": "GoogleAdsGoogleadsV23Common__KeywordInfo"
        }
      },
      "type": "object",
      "description": "A criterion belonging to a shared set.",
      "id": "GoogleAdsGoogleadsV23Resources__SharedCriterion"
    },
    "GoogleAdsGoogleadsV23Common__ShoppingLoyalty": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__ShoppingLoyalty",
      "properties": {
        "loyaltyTier": {
          "description": "The membership tier. It is a free-form string as each merchant may have their own loyalty system. For example, it could be a number from 1 to 10, or a string such as \"Golden\" or \"Silver\", or even empty string \"\".",
          "type": "string"
        }
      },
      "description": "The shopping loyalty related data. Shopping utilizes this data to provide users with a better experience. Accessible only to merchants on the allow-list."
    },
    "GoogleAdsGoogleadsV23Resources_Invoice_AccountSummary": {
      "properties": {
        "subtotalAmountMicros": {
          "format": "int64",
          "description": "Output only. Total pretax subtotal amount attributable to the account during the service period, in micros.",
          "readOnly": true,
          "type": "string"
        },
        "excessCreditAdjustmentSubtotalAmountMicros": {
          "type": "string",
          "description": "Output only. Pretax excess credit adjustment subtotal amount, in micros.",
          "readOnly": true,
          "format": "int64"
        },
        "excessCreditAdjustmentTaxAmountMicros": {
          "format": "int64",
          "readOnly": true,
          "description": "Output only. Tax on excess credit adjustment, in micros.",
          "type": "string"
        },
        "regulatoryCostsTotalAmountMicros": {
          "type": "string",
          "format": "int64",
          "description": "Output only. Total regulatory costs amount, in micros.",
          "readOnly": true
        },
        "billingCorrectionSubtotalAmountMicros": {
          "description": "Output only. Pretax billing correction subtotal amount, in micros.",
          "format": "int64",
          "readOnly": true,
          "type": "string"
        },
        "billingCorrectionTotalAmountMicros": {
          "description": "Output only. Total billing correction amount, in micros.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "couponAdjustmentTotalAmountMicros": {
          "format": "int64",
          "type": "string",
          "readOnly": true,
          "description": "Output only. Total coupon adjustment amount, in micros."
        },
        "customer": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The account associated with the account summary."
        },
        "excessCreditAdjustmentTotalAmountMicros": {
          "description": "Output only. Total excess credit adjustment amount, in micros.",
          "readOnly": true,
          "type": "string",
          "format": "int64"
        },
        "taxAmountMicros": {
          "readOnly": true,
          "description": "Output only. Total tax amount attributable to the account during the service period, in micros.",
          "type": "string",
          "format": "int64"
        },
        "regulatoryCostSummaries": {
          "readOnly": true,
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Resources_Invoice_RegulatoryCostSummary"
          },
          "type": "array",
          "description": "Output only. The list of regulatory cost information associated with this account."
        },
        "couponAdjustmentTaxAmountMicros": {
          "readOnly": true,
          "description": "Output only. Tax on coupon adjustment, in micros.",
          "format": "int64",
          "type": "string"
        },
        "billingCorrectionTaxAmountMicros": {
          "format": "int64",
          "readOnly": true,
          "type": "string",
          "description": "Output only. Tax on billing correction, in micros."
        },
        "regulatoryCostsTaxAmountMicros": {
          "description": "Output only. Tax on regulatory costs, in micros.",
          "readOnly": true,
          "type": "string",
          "format": "int64"
        },
        "couponAdjustmentSubtotalAmountMicros": {
          "type": "string",
          "format": "int64",
          "description": "Output only. Pretax coupon adjustment subtotal amount, in micros.",
          "readOnly": true
        },
        "regulatoryCostsSubtotalAmountMicros": {
          "format": "int64",
          "readOnly": true,
          "description": "Output only. Pretax regulatory costs subtotal amount, in micros.",
          "type": "string"
        },
        "exportChargeTotalAmountMicros": {
          "type": "string",
          "readOnly": true,
          "format": "int64",
          "description": "Output only. Total export charge amount, in micros."
        },
        "adjustmentSummaries": {
          "type": "array",
          "description": "Output only. The list of adjustment information associated with this account.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Resources_Invoice_AdjustmentSummary"
          },
          "readOnly": true
        },
        "exportChargeSubtotalAmountMicros": {
          "readOnly": true,
          "format": "int64",
          "type": "string",
          "description": "Output only. Pretax export charge subtotal amount, in micros."
        },
        "exportChargeTaxAmountMicros": {
          "description": "Output only. Tax on export charge, in micros.",
          "type": "string",
          "readOnly": true,
          "format": "int64"
        },
        "totalAmountMicros": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. Total amount attributable to the account during the service period, in micros. This equals the sum of the subtotal_amount_micros and tax_amount_micros.",
          "format": "int64"
        }
      },
      "description": "Represents a summarized view at account level.",
      "id": "GoogleAdsGoogleadsV23Resources_Invoice_AccountSummary",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__FacebookMessengerBusinessMessageInfo": {
      "description": "Facebook Messenger information to use for messaging.",
      "type": "object",
      "properties": {
        "pageName": {
          "type": "string",
          "description": "Required. Facebook page name used for starting a chat on Facebook Messenger."
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__FacebookMessengerBusinessMessageInfo"
    },
    "GoogleAdsGoogleadsV23Services__MutateCustomerManagerLinkResult": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateCustomerManagerLinkResult",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      },
      "description": "The result for the customer manager link mutate."
    },
    "GoogleAdsGoogleadsV23Resources__Experiment": {
      "type": "object",
      "properties": {
        "description": {
          "type": "string",
          "description": "The description of the experiment. It must have a minimum length of 1 and maximum length of 2048."
        },
        "goals": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__MetricGoal"
          },
          "description": "The goals of this experiment.",
          "type": "array"
        },
        "syncEnabled": {
          "description": "Immutable. Set to true if changes to base campaigns should be synced to the trial campaigns. Any changes made directly to trial campaigns will be preserved. This field can only be set when the experiment is being created.",
          "type": "boolean"
        },
        "longRunningOperation": {
          "description": "Output only. The resource name of the long-running operation that can be used to poll for completion of experiment schedule or promote. The most recent long running operation is returned.",
          "readOnly": true,
          "type": "string"
        },
        "resourceName": {
          "description": "Immutable. The resource name of the experiment. Experiment resource names have the form: `customers/{customer_id}/experiments/{experiment_id}`",
          "type": "string"
        },
        "status": {
          "description": "The Advertiser-chosen status of this experiment.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "The experiment is enabled.",
            "The experiment has been removed.",
            "The experiment has been halted. This status can be set from ENABLED status through API.",
            "The experiment will be promoted out of experimental status.",
            "Initial status of the experiment.",
            "The experiment's campaigns are pending materialization. This status can be set from SETUP status through API.",
            "The experiment has been graduated."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED",
            "HALTED",
            "PROMOTED",
            "SETUP",
            "INITIATED",
            "GRADUATED"
          ]
        },
        "promoteStatus": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NOT_STARTED",
            "IN_PROGRESS",
            "COMPLETED",
            "FAILED",
            "COMPLETED_WITH_WARNING"
          ],
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Action has not started.",
            "Action is in progress.",
            "Action has completed successfully.",
            "Action has failed.",
            "Action has completed successfully with warnings."
          ],
          "type": "string",
          "description": "Output only. The status of the experiment promotion process."
        },
        "name": {
          "type": "string",
          "description": "Required. The name of the experiment. It must have a minimum length of 1 and maximum length of 1024. It must be unique under a customer."
        },
        "type": {
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "This is a DISPLAY_AND_VIDEO_360 experiment.",
            "This is an ad variation experiment.",
            "A custom experiment consisting of Video campaigns.",
            "A custom experiment consisting of display campaigns.",
            "A custom experiment consisting of search campaigns.",
            "An experiment that compares bidding strategies for display campaigns.",
            "An experiment that compares bidding strategies for search campaigns.\"",
            "An experiment that compares bidding strategies for shopping campaigns.",
            "DEPRECATED. A smart matching experiment with search campaigns.",
            "A custom experiment consisting of hotel campaigns."
          ],
          "description": "Required. The product/feature that uses this experiment.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DISPLAY_AND_VIDEO_360",
            "AD_VARIATION",
            "YOUTUBE_CUSTOM",
            "DISPLAY_CUSTOM",
            "SEARCH_CUSTOM",
            "DISPLAY_AUTOMATED_BIDDING_STRATEGY",
            "SEARCH_AUTOMATED_BIDDING_STRATEGY",
            "SHOPPING_AUTOMATED_BIDDING_STRATEGY",
            "SMART_MATCHING",
            "HOTEL_CUSTOM"
          ],
          "type": "string"
        },
        "startDate": {
          "description": "Date when the experiment starts. By default, the experiment starts now or on the campaign's start date, whichever is later. If this field is set, then the experiment starts at the beginning of the specified date in the customer's time zone. Format: YYYY-MM-DD Example: 2019-03-14",
          "type": "string"
        },
        "endDate": {
          "type": "string",
          "description": "Date when the experiment ends. By default, the experiment ends on the campaign's end date. If this field is set, then the experiment ends at the end of the specified date in the customer's time zone. Format: YYYY-MM-DD Example: 2019-04-18"
        },
        "experimentId": {
          "description": "Output only. The ID of the experiment. Read only.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "suffix": {
          "description": "For system managed experiments, the advertiser must provide a suffix during construction, in the setup stage before moving to initiated. The suffix will be appended to the in-design and experiment campaign names so that the name is base campaign name + suffix.",
          "type": "string"
        }
      },
      "description": "A Google ads experiment for users to experiment changes on multiple campaigns, compare the performance, and apply the effective changes.",
      "id": "GoogleAdsGoogleadsV23Resources__Experiment"
    },
    "GoogleAdsGoogleadsV23Common__PriceAsset": {
      "id": "GoogleAdsGoogleadsV23Common__PriceAsset",
      "properties": {
        "type": {
          "description": "Required. The type of the price asset.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BRANDS",
            "EVENTS",
            "LOCATIONS",
            "NEIGHBORHOODS",
            "PRODUCT_CATEGORIES",
            "PRODUCT_TIERS",
            "SERVICES",
            "SERVICE_CATEGORIES",
            "SERVICE_TIERS"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The type for showing a list of brands.",
            "The type for showing a list of events.",
            "The type for showing locations relevant to your business.",
            "The type for showing sub-regions or districts within a city or region.",
            "The type for showing a collection of product categories.",
            "The type for showing a collection of related product tiers.",
            "The type for showing a collection of services offered by your business.",
            "The type for showing a collection of service categories.",
            "The type for showing a collection of related service tiers."
          ]
        },
        "languageCode": {
          "description": "Required. The language of the price asset. Represented as BCP 47 language tag.",
          "type": "string"
        },
        "priceQualifier": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "'From' qualifier for the price.",
            "'Up to' qualifier for the price.",
            "'Average' qualifier for the price."
          ],
          "description": "The price qualifier of the price asset.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "FROM",
            "UP_TO",
            "AVERAGE"
          ],
          "type": "string"
        },
        "priceOfferings": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__PriceOffering"
          },
          "description": "The price offerings of the price asset. The size of this collection should be between 3 and 8, inclusive.",
          "type": "array"
        }
      },
      "description": "An asset representing a list of price offers.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__AssetSetAsset": {
      "description": "AssetSetAsset is the link between an asset and an asset set. Adding an AssetSetAsset links an asset with an asset set.",
      "properties": {
        "status": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "readOnly": true,
          "type": "string",
          "description": "Output only. The status of the asset set asset. Read-only.",
          "enumDescriptions": [
            "The status has not been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The asset set asset is enabled.",
            "The asset set asset is removed."
          ]
        },
        "assetSet": {
          "type": "string",
          "description": "Immutable. The asset set which this asset set asset is linking to."
        },
        "resourceName": {
          "description": "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}`",
          "type": "string"
        },
        "asset": {
          "description": "Immutable. The asset which this asset set asset is linking to.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__AssetSetAsset",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__CampaignGroupOperation": {
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new campaign group.",
          "$ref": "GoogleAdsGoogleadsV23Resources__CampaignGroup"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed campaign group is expected, in this format: `customers/{customer_id}/campaignGroups/{campaign_group_id}`"
        },
        "update": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CampaignGroup",
          "description": "Update operation: The campaign group is expected to have a valid resource name."
        },
        "updateMask": {
          "format": "google-fieldmask",
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__CampaignGroupOperation",
      "description": "A single operation (create, update, remove) on a campaign group.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources_Recommendation_CampaignBudgetRecommendation": {
      "properties": {
        "budgetOptions": {
          "type": "array",
          "description": "Output only. The budget amounts and associated impact estimates for some values of possible budget amounts.",
          "readOnly": true,
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Resources_RecommendationCampaignBudgetRecommendation_CampaignBudgetRecommendationOption"
          }
        },
        "currentBudgetAmountMicros": {
          "format": "int64",
          "type": "string",
          "readOnly": true,
          "description": "Output only. The current budget amount in micros."
        },
        "recommendedBudgetAmountMicros": {
          "format": "int64",
          "readOnly": true,
          "type": "string",
          "description": "Output only. The recommended budget amount in micros."
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources_Recommendation_CampaignBudgetRecommendation",
      "type": "object",
      "description": "The budget recommendation for budget constrained campaigns."
    },
    "GoogleAdsGoogleadsV23Services__InsightsAudienceDefinition": {
      "description": "A structured definition of the audience of interest for which insights are being requested in AudienceInsightsService.",
      "id": "GoogleAdsGoogleadsV23Services__InsightsAudienceDefinition",
      "type": "object",
      "properties": {
        "baselineAudience": {
          "description": "Optional. The baseline audience. The default, if unspecified, is all people in the same country as the audience of interest.",
          "$ref": "GoogleAdsGoogleadsV23Services__InsightsAudience"
        },
        "dataMonth": {
          "type": "string",
          "description": "Optional. The one-month range of historical data to use for insights, in the format \"yyyy-mm\". If unset, insights will be returned for the last thirty days of data."
        },
        "audience": {
          "description": "Required. The audience of interest for which insights are being requested.",
          "$ref": "GoogleAdsGoogleadsV23Services__InsightsAudience"
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__AdMediaBundleAsset": {
      "description": "A media bundle asset used inside an ad.",
      "properties": {
        "asset": {
          "description": "The Asset resource name of this media bundle.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__AdMediaBundleAsset",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__AiMaxSearchTermAdCombinationView": {
      "properties": {
        "headline": {
          "type": "string",
          "description": "Output only. The concatenated string containing headline assets for the ad. Up to three headline assets are concatenated, separated by \" | \". This field is read-only.",
          "readOnly": true
        },
        "adGroup": {
          "readOnly": true,
          "description": "Output only. Ad group where the search term served.",
          "type": "string"
        },
        "landingPage": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The destination URL, which was dynamically generated. This field is read-only."
        },
        "searchTerm": {
          "readOnly": true,
          "description": "Output only. The search term that triggered the ad. This field is read-only.",
          "type": "string"
        },
        "resourceName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the AI Max Search Term Ad Combination view AI Max Search Term Ad Combination view resource names have the form: `customers/{customer_id}/aiMaxSearchTermAdCombinationViews/{ad_group_id}~{URL-base64_search_term}~{URL-base64_landing_page}~{URL-base64_headline}`"
        }
      },
      "description": "AiMaxSearchTermAdCombinationView Resource.",
      "id": "GoogleAdsGoogleadsV23Resources__AiMaxSearchTermAdCombinationView",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__AudienceTargeting": {
      "type": "object",
      "description": "Audience targeting for reach forecast.",
      "properties": {
        "userInterest": {
          "type": "array",
          "description": "List of audiences based on user interests to be targeted.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__UserInterestInfo"
          }
        },
        "userLists": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__UserListInfo"
          },
          "description": "List of audiences based on user lists to be targeted.",
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__AudienceTargeting"
    },
    "GoogleAdsGoogleadsV23Services__CampaignBudgetOperation": {
      "id": "GoogleAdsGoogleadsV23Services__CampaignBudgetOperation",
      "type": "object",
      "description": "A single operation (create, update, remove) on a campaign budget.",
      "properties": {
        "remove": {
          "description": "Remove operation: A resource name for the removed budget is expected, in this format: `customers/{customer_id}/campaignBudgets/{budget_id}`",
          "type": "string"
        },
        "updateMask": {
          "type": "string",
          "format": "google-fieldmask",
          "description": "FieldMask that determines which resource fields are modified in an update."
        },
        "update": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CampaignBudget",
          "description": "Update operation: The campaign budget is expected to have a valid resource name."
        },
        "create": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CampaignBudget",
          "description": "Create operation: No resource name is expected for the new budget."
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__KeywordPlanCampaignKeyword": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__KeywordPlanCampaignKeyword",
      "properties": {
        "keywordPlanCampaign": {
          "type": "string",
          "description": "The Keyword Plan campaign to which this negative keyword belongs."
        },
        "id": {
          "description": "Output only. The ID of the Keyword Plan negative keyword.",
          "readOnly": true,
          "type": "string",
          "format": "int64"
        },
        "negative": {
          "description": "Immutable. If true, the keyword is negative. Must be set to true. Only negative campaign keywords are supported.",
          "type": "boolean"
        },
        "matchType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Exact match.",
            "Phrase match.",
            "Broad match."
          ],
          "description": "The keyword match type.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EXACT",
            "PHRASE",
            "BROAD"
          ]
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the Keyword Plan Campaign keyword. KeywordPlanCampaignKeyword resource names have the form: `customers/{customer_id}/keywordPlanCampaignKeywords/{kp_campaign_keyword_id}`"
        },
        "text": {
          "type": "string",
          "description": "The keyword text."
        }
      },
      "description": "A Keyword Plan Campaign keyword. Only negative keywords are supported for Campaign Keyword."
    },
    "GoogleAdsGoogleadsV23Services__GenerateAdGroupThemesRequest": {
      "id": "GoogleAdsGoogleadsV23Services__GenerateAdGroupThemesRequest",
      "properties": {
        "keywords": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "Required. A list of keywords to group into the provided AdGroups."
        },
        "adGroups": {
          "description": "Required. A list of resource names of AdGroups to group keywords into. Resource name format: `customers/{customer_id}/adGroups/{ad_group_id}`",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object",
      "description": "Request message for KeywordPlanIdeaService.GenerateAdGroupThemes."
    },
    "GoogleAdsGoogleadsV23Resources_Recommendation_UseBroadMatchKeywordRecommendation": {
      "id": "GoogleAdsGoogleadsV23Resources_Recommendation_UseBroadMatchKeywordRecommendation",
      "properties": {
        "campaignUsesSharedBudget": {
          "type": "boolean",
          "readOnly": true,
          "description": "Output only. Whether the associated campaign uses a shared budget."
        },
        "campaignKeywordsCount": {
          "description": "Output only. Total number of keywords in the campaign.",
          "format": "int64",
          "type": "string",
          "readOnly": true
        },
        "suggestedKeywordsCount": {
          "type": "string",
          "description": "Output only. Total number of keywords to be expanded to Broad Match in the campaign.",
          "readOnly": true,
          "format": "int64"
        },
        "keyword": {
          "type": "array",
          "readOnly": true,
          "description": "Output only. Sample of keywords to be expanded to Broad Match.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__KeywordInfo"
          }
        },
        "requiredCampaignBudgetAmountMicros": {
          "format": "int64",
          "readOnly": true,
          "description": "Output only. The budget recommended to avoid becoming budget constrained after applying the recommendation.",
          "type": "string"
        }
      },
      "description": "The use broad match keyword recommendation.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__CurrencyConstant": {
      "id": "GoogleAdsGoogleadsV23Resources__CurrencyConstant",
      "type": "object",
      "description": "A currency constant.",
      "properties": {
        "billableUnitMicros": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The billable unit for this currency. Billed amounts should be multiples of this value.",
          "format": "int64"
        },
        "resourceName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the currency constant. Currency constant resource names have the form: `currencyConstants/{code}`"
        },
        "name": {
          "readOnly": true,
          "description": "Output only. Full English name of the currency.",
          "type": "string"
        },
        "code": {
          "description": "Output only. ISO 4217 three-letter currency code, for example, \"USD\"",
          "type": "string",
          "readOnly": true
        },
        "symbol": {
          "description": "Output only. Standard symbol for describing this currency, for example, '$' for US Dollars.",
          "type": "string",
          "readOnly": true
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__UserListRuleInfo": {
      "properties": {
        "ruleItemGroups": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__UserListRuleItemGroupInfo"
          },
          "description": "List of rule item groups that defines this rule. Rule item groups are grouped together based on rule_type.",
          "type": "array"
        },
        "ruleType": {
          "type": "string",
          "description": "Rule type is used to determine how to group rule items. The default is OR of ANDs (disjunctive normal form). That is, rule items will be ANDed together within rule item groups and the groups themselves will be ORed together. OR of ANDs is the only supported type for FlexibleRuleUserList.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Conjunctive normal form.",
            "Disjunctive normal form."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AND_OF_ORS",
            "OR_OF_ANDS"
          ]
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__UserListRuleInfo",
      "description": "A client defined rule based on custom parameters sent by web sites or uploaded by the advertiser."
    },
    "GoogleAdsGoogleadsV23Common__ActivityCountryInfo": {
      "properties": {
        "value": {
          "description": "String value of the activity country. The Geo Target Constant resource name.",
          "type": "string"
        }
      },
      "description": "The country where the travel activity is available.",
      "id": "GoogleAdsGoogleadsV23Common__ActivityCountryInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateCustomerLabelResult": {
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateCustomerLabelResult",
      "type": "object",
      "description": "The result for a customer label mutate."
    },
    "GoogleAdsGoogleadsV23Common__PolicyTopicEntry": {
      "id": "GoogleAdsGoogleadsV23Common__PolicyTopicEntry",
      "description": "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": "object",
      "properties": {
        "constraints": {
          "description": "Indicates how serving of this resource may be affected (for example, not serving in a country).",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__PolicyTopicConstraint"
          }
        },
        "topic": {
          "description": "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.",
          "type": "string"
        },
        "evidences": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__PolicyTopicEvidence"
          },
          "description": "Additional information that explains policy finding (for example, the brand name for a trademark finding)."
        },
        "type": {
          "description": "Describes the negative or positive effect this policy will have on serving.",
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The resource will not be served.",
            "The resource will not be served under some circumstances.",
            "The resource cannot serve at all because of the current targeting criteria.",
            "May be of interest, but does not limit how the resource is served.",
            "Could increase coverage beyond normal.",
            "Constrained for all targeted countries, but may serve in other countries through area of interest."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PROHIBITED",
            "LIMITED",
            "FULLY_LIMITED",
            "DESCRIPTIVE",
            "BROADENING",
            "AREA_OF_INTEREST_ONLY"
          ],
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__GenerateRecommendationsResponse": {
      "id": "GoogleAdsGoogleadsV23Services__GenerateRecommendationsResponse",
      "description": "Response message for RecommendationService.GenerateRecommendations.",
      "type": "object",
      "properties": {
        "recommendations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Resources__Recommendation"
          },
          "type": "array",
          "description": "List of generated recommendations from the passed in set of requested recommendation_types. If there isn't sufficient data to generate a recommendation for the requested recommendation_types, the result set won't contain a recommendation for that type."
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources_ListingGroupFilterDimension_ProductChannel": {
      "id": "GoogleAdsGoogleadsV23Resources_ListingGroupFilterDimension_ProductChannel",
      "type": "object",
      "properties": {
        "channel": {
          "type": "string",
          "description": "Value of the locality.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ONLINE",
            "LOCAL"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The item is sold online.",
            "The item is sold in local stores."
          ]
        }
      },
      "description": "Locality of a product offer."
    },
    "GoogleAdsGoogleadsV23Common__ImageAdInfo": {
      "id": "GoogleAdsGoogleadsV23Common__ImageAdInfo",
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of the image. If the image was created from a MediaFile, this is the MediaFile's name. If the image was created from bytes, this is empty."
        },
        "previewImageUrl": {
          "type": "string",
          "description": "URL of the preview size image."
        },
        "previewPixelHeight": {
          "type": "string",
          "description": "Height in pixels of the preview size image.",
          "format": "int64"
        },
        "previewPixelWidth": {
          "description": "Width in pixels of the preview size image.",
          "type": "string",
          "format": "int64"
        },
        "mimeType": {
          "description": "The mime type of the image.",
          "type": "string",
          "enumDescriptions": [
            "The mime type has not been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "MIME type of image/jpeg.",
            "MIME type of image/gif.",
            "MIME type of image/png.",
            "MIME type of application/x-shockwave-flash.",
            "MIME type of text/html.",
            "MIME type of application/pdf.",
            "MIME type of application/msword.",
            "MIME type of application/vnd.ms-excel.",
            "MIME type of application/rtf.",
            "MIME type of audio/wav.",
            "MIME type of audio/mp3.",
            "MIME type of application/x-html5-ad-zip."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "IMAGE_JPEG",
            "IMAGE_GIF",
            "IMAGE_PNG",
            "FLASH",
            "TEXT_HTML",
            "PDF",
            "MSWORD",
            "MSEXCEL",
            "RTF",
            "AUDIO_WAV",
            "AUDIO_MP3",
            "HTML5_AD_ZIP"
          ]
        },
        "data": {
          "type": "string",
          "description": "Raw image data as bytes.",
          "format": "byte"
        },
        "imageUrl": {
          "description": "URL of the full size image.",
          "type": "string"
        },
        "pixelWidth": {
          "type": "string",
          "format": "int64",
          "description": "Width in pixels of the full size image."
        },
        "adIdToCopyImageFrom": {
          "description": "An ad ID to copy the image from.",
          "type": "string",
          "format": "int64"
        },
        "pixelHeight": {
          "format": "int64",
          "type": "string",
          "description": "Height in pixels of the full size image."
        },
        "imageAsset": {
          "description": "The image assets used for the ad.",
          "$ref": "GoogleAdsGoogleadsV23Common__AdImageAsset"
        }
      },
      "type": "object",
      "description": "An image ad."
    },
    "GoogleAdsGoogleadsV23Resources_ListingGroupFilterDimension_ProductCustomAttribute": {
      "type": "object",
      "description": "Custom attribute of a product offer.",
      "id": "GoogleAdsGoogleadsV23Resources_ListingGroupFilterDimension_ProductCustomAttribute",
      "properties": {
        "value": {
          "description": "String value of the product custom attribute.",
          "type": "string"
        },
        "index": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INDEX0",
            "INDEX1",
            "INDEX2",
            "INDEX3",
            "INDEX4"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "First listing group filter custom attribute.",
            "Second listing group filter custom attribute.",
            "Third listing group filter custom attribute.",
            "Fourth listing group filter custom attribute.",
            "Fifth listing group filter custom attribute."
          ],
          "description": "Indicates the index of the custom attribute."
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__RemarketingAction": {
      "id": "GoogleAdsGoogleadsV23Resources__RemarketingAction",
      "properties": {
        "resourceName": {
          "description": "Immutable. The resource name of the remarketing action. Remarketing action resource names have the form: `customers/{customer_id}/remarketingActions/{remarketing_action_id}`",
          "type": "string"
        },
        "tagSnippets": {
          "readOnly": true,
          "description": "Output only. The snippets used for tracking remarketing actions.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__TagSnippet"
          }
        },
        "id": {
          "description": "Output only. Id of the remarketing action.",
          "format": "int64",
          "readOnly": true,
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "The name of the remarketing action. This field is required and should not be empty when creating new remarketing actions."
        }
      },
      "description": "A remarketing action. A snippet of JavaScript code that will collect the product id and the type of page people visited (product page, shopping cart page, purchase page, general site visit) on an advertiser's website.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__AdGroupCustomizer": {
      "type": "object",
      "properties": {
        "status": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "readOnly": true,
          "type": "string",
          "description": "Output only. The status of the ad group customizer.",
          "enumDescriptions": [
            "The status has not been specified.",
            "The received value is not known in this version.",
            "The customizer value is enabled.",
            "The customizer value is removed."
          ]
        },
        "adGroup": {
          "description": "Immutable. The ad group to which the customizer attribute is linked.",
          "type": "string"
        },
        "value": {
          "$ref": "GoogleAdsGoogleadsV23Common__CustomizerValue",
          "description": "Required. The value to associate with the customizer attribute at this level. The value must be of the type specified for the CustomizerAttribute."
        },
        "customizerAttribute": {
          "description": "Required. Immutable. The customizer attribute which is linked to the ad group.",
          "type": "string"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the ad group customizer. Ad group customizer resource names have the form: `customers/{customer_id}/adGroupCustomizers/{ad_group_id}~{customizer_attribute_id}`"
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__AdGroupCustomizer",
      "description": "A customizer value for the associated CustomizerAttribute at the AdGroup level."
    },
    "GoogleAdsGoogleadsV23Resources__AssetCoverage": {
      "properties": {
        "adStrengthActionItems": {
          "readOnly": true,
          "description": "Output only. A list of action items to improve the ad strength of an asset group.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Resources__AdStrengthActionItem"
          },
          "type": "array"
        }
      },
      "description": "Information about the asset coverage of an asset group.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__AssetCoverage"
    },
    "GoogleAdsGoogleadsV23Resources__RecommendationSubscription": {
      "properties": {
        "createDateTime": {
          "type": "string",
          "description": "Output only. Time in seconds when the subscription was first created. The datetime is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss\" format.",
          "readOnly": true
        },
        "modifyDateTime": {
          "description": "Output only. Contains the time in microseconds, when the Recommendation Subscription was last updated. The datetime is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss.ssssss\" format.",
          "readOnly": true,
          "type": "string"
        },
        "status": {
          "enumDescriptions": [
            "Not specified.",
            "Output-only. Represents a format not yet defined in this enum.",
            "A subscription in the enabled state will automatically apply any recommendations of that type.",
            "Recommendations of the relevant type will not be automatically applied. Subscriptions cannot be deleted. Once created, they can only move between enabled and paused states."
          ],
          "description": "Required. Status of the subscription, either enabled or paused.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "PAUSED"
          ],
          "type": "string"
        },
        "resourceName": {
          "description": "Immutable. The resource name of the recommendation subscription. `customers/{customer_id}/recommendationSubscriptions/{recommendation_type}`",
          "type": "string"
        },
        "type": {
          "type": "string",
          "description": "Required. Immutable. The type of recommendation subscribed to.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Provides optimized budget recommendations for campaigns.",
            "Keyword recommendation.",
            "Recommendation to add a new text ad.",
            "Recommendation to update a campaign to use a Target CPA bidding strategy.",
            "Recommendation to update a campaign to use the Maximize Conversions bidding strategy.",
            "Recommendation to enable Enhanced Cost Per Click for a campaign.",
            "Recommendation to start showing your campaign's ads on Google Search Partners Websites.",
            "Recommendation to update a campaign to use a Maximize Clicks bidding strategy.",
            "Recommendation to start using the \"Optimize\" ad rotation setting for the given ad group.",
            "Recommendation to change an existing keyword from one match type to a broader match type.",
            "Recommendation to move unused budget from one budget to a constrained budget.",
            "Budget recommendation for campaigns that are expected to become budget-constrained in the future (as opposed to the CAMPAIGN_BUDGET recommendation, which applies to campaigns that are currently budget-constrained).",
            "Recommendation to update a campaign to use a Target ROAS bidding strategy.",
            "Recommendation to add a new responsive search ad.",
            "Budget recommendation for campaigns whose ROI is predicted to increase with a budget adjustment.",
            "Recommendation to add broad match versions of keywords for fully automated conversion-based bidding campaigns.",
            "Recommendation to add new responsive search ad assets.",
            "Recommendation to upgrade a Smart Shopping campaign to a Performance Max campaign.",
            "Recommendation to improve strength of responsive search ad.",
            "Recommendation to update a campaign to use Display Expansion.",
            "Recommendation to upgrade a Local campaign to a Performance Max campaign.",
            "Recommendation to raise target CPA when it is too low and there are very few or no conversions. It is applied asynchronously and can take minutes depending on the number of ad groups there are in the related campaign.",
            "Recommendation to raise the budget in advance of a seasonal event that is forecasted to increase traffic, and change bidding strategy from maximize conversion value to target ROAS.",
            "Recommendation to add callout assets to campaign or customer level.",
            "Recommendation to add sitelink assets to campaign or customer level.",
            "Recommendation to add call assets to campaign or customer level.",
            "Recommendation to add the age group attribute to offers that are demoted because of a missing age group.",
            "Recommendation to add a color to offers that are demoted because of a missing color.",
            "Recommendation to add a gender to offers that are demoted because of a missing gender.",
            "Recommendation to add a GTIN (Global Trade Item Number) to offers that are demoted because of a missing GTIN.",
            "Recommendation to add more identifiers to offers that are demoted because of missing identifiers.",
            "Recommendation to add the size to offers that are demoted because of a missing size.",
            "Recommendation informing a customer about a campaign that cannot serve because no products are being targeted.",
            "The shopping recommendation informing a customer about campaign with a high percentage of disapproved products.",
            "Recommendation to create a catch-all campaign that targets all offers.",
            "Recommendation to fix Merchant Center account suspension issues.",
            "Recommendation to fix Merchant Center account suspension warning issues.",
            "Recommendation to migrate offers targeted by Regular Shopping Campaigns to existing Performance Max campaigns.",
            "Recommendation to enable dynamic image extensions on the account, allowing Google to find the best images from ad landing pages and complement text ads.",
            "Recommendation to raise Target CPA based on Google predictions modeled from past conversions. It is applied asynchronously and can take minutes depending on the number of ad groups there are in the related campaign.",
            "Recommendation to lower Target ROAS.",
            "Recommendation to opt into Performance Max campaigns.",
            "Recommendation to improve the asset group strength of a Performance Max campaign to an \"Excellent\" rating.",
            "Recommendation to migrate Dynamic Search Ads to Performance Max campaigns.",
            "Recommendation to set a target CPA for campaigns that do not have one specified, in advance of a seasonal event that is forecasted to increase traffic.",
            "Recommendation to set a target CPA for campaigns that do not have one specified.",
            "Recommendation to set a target ROAS for campaigns that do not have one specified.",
            "Recommendation to update a campaign to use the Maximize Conversion Value bidding strategy.",
            "Recommendation to deploy Google Tag on more pages.",
            "Recommendation to turn on Final URL expansion for your Performance Max campaigns.",
            "Recommendation to update a customer list that hasn't been updated in the last 90 days.",
            "Recommendation to create a custom audience.",
            "Recommendation to add lead form assets to campaign or customer level.",
            "Recommendation to improve the strength of ads in Demand Gen campaigns."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CAMPAIGN_BUDGET",
            "KEYWORD",
            "TEXT_AD",
            "TARGET_CPA_OPT_IN",
            "MAXIMIZE_CONVERSIONS_OPT_IN",
            "ENHANCED_CPC_OPT_IN",
            "SEARCH_PARTNERS_OPT_IN",
            "MAXIMIZE_CLICKS_OPT_IN",
            "OPTIMIZE_AD_ROTATION",
            "KEYWORD_MATCH_TYPE",
            "MOVE_UNUSED_BUDGET",
            "FORECASTING_CAMPAIGN_BUDGET",
            "TARGET_ROAS_OPT_IN",
            "RESPONSIVE_SEARCH_AD",
            "MARGINAL_ROI_CAMPAIGN_BUDGET",
            "USE_BROAD_MATCH_KEYWORD",
            "RESPONSIVE_SEARCH_AD_ASSET",
            "UPGRADE_SMART_SHOPPING_CAMPAIGN_TO_PERFORMANCE_MAX",
            "RESPONSIVE_SEARCH_AD_IMPROVE_AD_STRENGTH",
            "DISPLAY_EXPANSION_OPT_IN",
            "UPGRADE_LOCAL_CAMPAIGN_TO_PERFORMANCE_MAX",
            "RAISE_TARGET_CPA_BID_TOO_LOW",
            "FORECASTING_SET_TARGET_ROAS",
            "CALLOUT_ASSET",
            "SITELINK_ASSET",
            "CALL_ASSET",
            "SHOPPING_ADD_AGE_GROUP",
            "SHOPPING_ADD_COLOR",
            "SHOPPING_ADD_GENDER",
            "SHOPPING_ADD_GTIN",
            "SHOPPING_ADD_MORE_IDENTIFIERS",
            "SHOPPING_ADD_SIZE",
            "SHOPPING_ADD_PRODUCTS_TO_CAMPAIGN",
            "SHOPPING_FIX_DISAPPROVED_PRODUCTS",
            "SHOPPING_TARGET_ALL_OFFERS",
            "SHOPPING_FIX_SUSPENDED_MERCHANT_CENTER_ACCOUNT",
            "SHOPPING_FIX_MERCHANT_CENTER_ACCOUNT_SUSPENSION_WARNING",
            "SHOPPING_MIGRATE_REGULAR_SHOPPING_CAMPAIGN_OFFERS_TO_PERFORMANCE_MAX",
            "DYNAMIC_IMAGE_EXTENSION_OPT_IN",
            "RAISE_TARGET_CPA",
            "LOWER_TARGET_ROAS",
            "PERFORMANCE_MAX_OPT_IN",
            "IMPROVE_PERFORMANCE_MAX_AD_STRENGTH",
            "MIGRATE_DYNAMIC_SEARCH_ADS_CAMPAIGN_TO_PERFORMANCE_MAX",
            "FORECASTING_SET_TARGET_CPA",
            "SET_TARGET_CPA",
            "SET_TARGET_ROAS",
            "MAXIMIZE_CONVERSION_VALUE_OPT_IN",
            "IMPROVE_GOOGLE_TAG_COVERAGE",
            "PERFORMANCE_MAX_FINAL_URL_OPT_IN",
            "REFRESH_CUSTOMER_MATCH_LIST",
            "CUSTOM_AUDIENCE_OPT_IN",
            "LEAD_FORM_ASSET",
            "IMPROVE_DEMAND_GEN_AD_STRENGTH"
          ]
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__RecommendationSubscription",
      "description": "Recommendation Subscription resource",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__GenerateKeywordIdeaResponse": {
      "description": "Response message for KeywordPlanIdeaService.GenerateKeywordIdeas.",
      "properties": {
        "results": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__GenerateKeywordIdeaResult"
          },
          "type": "array",
          "description": "Results of generating keyword ideas."
        },
        "totalSize": {
          "type": "string",
          "description": "Total number of results available.",
          "format": "int64"
        },
        "aggregateMetricResults": {
          "description": "The aggregate metrics for all keyword ideas.",
          "$ref": "GoogleAdsGoogleadsV23Common__KeywordPlanAggregateMetricResults"
        },
        "nextPageToken": {
          "description": "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.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__GenerateKeywordIdeaResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateAccountBudgetProposalResponse": {
      "properties": {
        "result": {
          "$ref": "GoogleAdsGoogleadsV23Services__MutateAccountBudgetProposalResult",
          "description": "The result of the mutate."
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateAccountBudgetProposalResponse",
      "type": "object",
      "description": "Response message for account-level budget mutate operations."
    },
    "GoogleAdsGoogleadsV23Resources__AdGroupAdPolicySummary": {
      "id": "GoogleAdsGoogleadsV23Resources__AdGroupAdPolicySummary",
      "description": "Contains policy information for an ad.",
      "type": "object",
      "properties": {
        "policyTopicEntries": {
          "type": "array",
          "description": "Output only. The list of policy findings for this ad.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__PolicyTopicEntry"
          },
          "readOnly": true
        },
        "reviewStatus": {
          "description": "Output only. Where in the review process this ad is.",
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "Currently under review.",
            "Primary review complete. Other reviews may be continuing.",
            "The resource has been resubmitted for approval or its policy decision has been appealed.",
            "The resource is eligible and may be serving but could still undergo further review."
          ],
          "type": "string",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "REVIEW_IN_PROGRESS",
            "REVIEWED",
            "UNDER_APPEAL",
            "ELIGIBLE_MAY_SERVE"
          ]
        },
        "approvalStatus": {
          "description": "Output only. The overall approval status of this ad, calculated based on the status of its individual policy topic entries.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DISAPPROVED",
            "APPROVED_LIMITED",
            "APPROVED",
            "AREA_OF_INTEREST_ONLY"
          ],
          "type": "string",
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "Will not serve.",
            "Serves with restrictions.",
            "Serves without restrictions.",
            "Will not serve in targeted countries, but may serve for users who are searching for information about the targeted countries."
          ],
          "readOnly": true
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources_ConversionValueRule_ValueRuleGeoLocationCondition": {
      "properties": {
        "excludedGeoTargetConstants": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "Geo locations that advertisers want to exclude."
        },
        "excludedGeoMatchType": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Either Area of Interest or Location of Presence can be used to match.",
            "Only Location of Presence can be used to match."
          ],
          "description": "Excluded Geo location match type.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ANY",
            "LOCATION_OF_PRESENCE"
          ],
          "type": "string"
        },
        "geoTargetConstants": {
          "description": "Geo locations that advertisers want to include.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "geoMatchType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Either Area of Interest or Location of Presence can be used to match.",
            "Only Location of Presence can be used to match."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ANY",
            "LOCATION_OF_PRESENCE"
          ],
          "description": "Included Geo location match type."
        }
      },
      "type": "object",
      "description": "Condition on Geo dimension.",
      "id": "GoogleAdsGoogleadsV23Resources_ConversionValueRule_ValueRuleGeoLocationCondition"
    },
    "GoogleAdsGoogleadsV23Common_PolicyTopicEvidence_TextList": {
      "id": "GoogleAdsGoogleadsV23Common_PolicyTopicEvidence_TextList",
      "type": "object",
      "properties": {
        "texts": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "The fragments of text from the resource that caused the policy finding."
        }
      },
      "description": "A list of fragments of text that violated a policy."
    },
    "GoogleAdsGoogleadsV23Common__PromotionQrCodeInfo": {
      "description": "QR code info to generate promotion QR code.",
      "type": "object",
      "properties": {
        "qrCodeContent": {
          "description": "Promotion message to be encoded in the QR code.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__PromotionQrCodeInfo"
    },
    "GoogleAdsGoogleadsV23Services__PlannedProductReachForecast": {
      "description": "The forecasted allocation and traffic metrics for a specific product at a point on the reach curve.",
      "id": "GoogleAdsGoogleadsV23Services__PlannedProductReachForecast",
      "type": "object",
      "properties": {
        "plannableProductCode": {
          "description": "Selected product for planning. The product codes returned are within the set of the ones returned by ListPlannableProducts when using the same location ID.",
          "type": "string"
        },
        "costMicros": {
          "type": "string",
          "description": "The cost in micros. This may differ from the product's input allocation if one or more planned products cannot fulfill the budget because of limited inventory.",
          "format": "int64"
        },
        "plannedProductForecast": {
          "description": "Forecasted traffic metrics for this product.",
          "$ref": "GoogleAdsGoogleadsV23Services__PlannedProductForecast"
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__AdGroupCriterionLabel": {
      "properties": {
        "label": {
          "description": "Immutable. The label assigned to the ad group criterion.",
          "type": "string"
        },
        "adGroupCriterion": {
          "description": "Immutable. The ad group criterion to which the label is attached.",
          "type": "string"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the ad group criterion label. Ad group criterion label resource names have the form: `customers/{customer_id}/adGroupCriterionLabels/{ad_group_id}~{criterion_id}~{label_id}`"
        }
      },
      "description": "A relationship between an ad group criterion and a label.",
      "id": "GoogleAdsGoogleadsV23Resources__AdGroupCriterionLabel",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__TextAdInfo": {
      "description": "A text ad.",
      "properties": {
        "description1": {
          "type": "string",
          "description": "The first line of the ad's description."
        },
        "description2": {
          "description": "The second line of the ad's description.",
          "type": "string"
        },
        "headline": {
          "description": "The headline of the ad.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__TextAdInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__PolicyTopicEvidence": {
      "id": "GoogleAdsGoogleadsV23Common__PolicyTopicEvidence",
      "description": "Additional information that explains a policy finding.",
      "properties": {
        "textList": {
          "description": "List of evidence found in the text of a resource.",
          "$ref": "GoogleAdsGoogleadsV23Common_PolicyTopicEvidence_TextList"
        },
        "destinationNotWorking": {
          "description": "Details when the destination is returning an HTTP error code or isn't functional in all locations for commonly used devices.",
          "$ref": "GoogleAdsGoogleadsV23Common_PolicyTopicEvidence_DestinationNotWorking"
        },
        "languageCode": {
          "description": "The language the resource was detected to be written in. This is an IETF language tag such as \"en-US\".",
          "type": "string"
        },
        "destinationTextList": {
          "$ref": "GoogleAdsGoogleadsV23Common_PolicyTopicEvidence_DestinationTextList",
          "description": "The text in the destination of the resource that is causing a policy finding."
        },
        "websiteList": {
          "$ref": "GoogleAdsGoogleadsV23Common_PolicyTopicEvidence_WebsiteList",
          "description": "List of websites linked with this resource."
        },
        "destinationMismatch": {
          "description": "Mismatch between the destinations of a resource's URLs.",
          "$ref": "GoogleAdsGoogleadsV23Common_PolicyTopicEvidence_DestinationMismatch"
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateGoalsRequest": {
      "type": "object",
      "properties": {
        "operations": {
          "description": "Required. The list of operations to perform on the goals.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__GoalOperation"
          },
          "type": "array"
        },
        "partialFailure": {
          "type": "boolean",
          "description": "Optional. If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "validateOnly": {
          "description": "Optional. If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        }
      },
      "description": "Request message for GoalService.MutateGoals.",
      "id": "GoogleAdsGoogleadsV23Services__MutateGoalsRequest"
    },
    "GoogleAdsGoogleadsV23Common__MobileAppCategoryInfo": {
      "id": "GoogleAdsGoogleadsV23Common__MobileAppCategoryInfo",
      "description": "A mobile app category criterion.",
      "type": "object",
      "properties": {
        "mobileAppCategoryConstant": {
          "description": "The mobile app category constant resource name.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_ResponsiveSearchAdAssetParameters": {
      "id": "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_ResponsiveSearchAdAssetParameters",
      "description": "Parameters to use when applying a responsive search ad asset recommendation.",
      "type": "object",
      "properties": {
        "updatedAd": {
          "$ref": "GoogleAdsGoogleadsV23Resources__Ad",
          "description": "Updated ad. The current ad's content will be replaced."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__BatchJobOperation": {
      "description": "A single operation on a batch job.",
      "id": "GoogleAdsGoogleadsV23Services__BatchJobOperation",
      "properties": {
        "create": {
          "$ref": "GoogleAdsGoogleadsV23Resources__BatchJob",
          "description": "Create operation: No resource name is expected for the new batch job."
        },
        "remove": {
          "description": "Remove operation: The batch job must not have been run. A resource name for the removed batch job is expected, in this format: `customers/{customer_id}/batchJobs/{batch_job_id}`",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common_PolicyTopicEvidence_DestinationMismatch": {
      "description": "Evidence of mismatches between the URLs of a resource.",
      "type": "object",
      "properties": {
        "urlTypes": {
          "items": {
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "DISPLAY_URL",
              "FINAL_URL",
              "FINAL_MOBILE_URL",
              "TRACKING_URL",
              "MOBILE_TRACKING_URL"
            ],
            "enumDescriptions": [
              "No value has been specified.",
              "The received value is not known in this version. This is a response-only value.",
              "The display url.",
              "The final url.",
              "The final mobile url.",
              "The tracking url template, with substituted desktop url.",
              "The tracking url template, with substituted mobile url."
            ],
            "type": "string"
          },
          "type": "array",
          "description": "The set of URLs that did not match each other."
        }
      },
      "id": "GoogleAdsGoogleadsV23Common_PolicyTopicEvidence_DestinationMismatch"
    },
    "GoogleAdsGoogleadsV23Services__MutateAdGroupCriterionCustomizersResponse": {
      "description": "Response message for an ad group criterion customizer mutate.",
      "id": "GoogleAdsGoogleadsV23Services__MutateAdGroupCriterionCustomizersResponse",
      "type": "object",
      "properties": {
        "results": {
          "description": "All results for the mutate.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateAdGroupCriterionCustomizerResult"
          }
        },
        "partialFailureError": {
          "$ref": "GoogleRpc__Status",
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error."
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__CustomerSearchTermInsight": {
      "properties": {
        "id": {
          "readOnly": true,
          "format": "int64",
          "type": "string",
          "description": "Output only. The ID of the insight."
        },
        "resourceName": {
          "description": "Output only. The resource name of the customer level search term insight. Customer level search term insight resource names have the form: `customers/{customer_id}/customerSearchTermInsights/{category_id}`",
          "readOnly": true,
          "type": "string"
        },
        "categoryLabel": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The label for the search category. An empty string denotes the catch-all category for search terms that didn't fit into another category."
        }
      },
      "description": "This report provides a high-level view of search demand at the customer level by grouping similar search terms into categories and showing their search volume. Historical data is available starting March 2023.",
      "id": "GoogleAdsGoogleadsV23Resources__CustomerSearchTermInsight",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateConversionGoalCampaignConfigResult": {
      "id": "GoogleAdsGoogleadsV23Services__MutateConversionGoalCampaignConfigResult",
      "type": "object",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        },
        "conversionGoalCampaignConfig": {
          "description": "The mutated ConversionGoalCampaignConfig with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV23Resources__ConversionGoalCampaignConfig"
        }
      },
      "description": "The result for the conversion goal campaign config mutate."
    },
    "GoogleAdsGoogleadsV23Resources_Recommendation_DisplayExpansionOptInRecommendation": {
      "type": "object",
      "properties": {},
      "description": "The Display Expansion opt-in recommendation.",
      "id": "GoogleAdsGoogleadsV23Resources_Recommendation_DisplayExpansionOptInRecommendation"
    },
    "GoogleAdsGoogleadsV23Common__AdVideoAssetLinkFeatureControl": {
      "id": "GoogleAdsGoogleadsV23Common__AdVideoAssetLinkFeatureControl",
      "properties": {
        "allowYoutubeComments": {
          "description": "Defines if YouTube comments should be enabled for the creative using this YouTube video asset served on YouTube Shorts.",
          "type": "boolean"
        }
      },
      "description": "YouTube Video Asset feature controls.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services_GenerateRecommendationsRequest_BudgetInfo": {
      "properties": {
        "currentBudget": {
          "type": "string",
          "description": "Required. Current budget amount in micros. This field is necessary for the following recommendation_types if budget_info is set: CAMPAIGN_BUDGET",
          "format": "int64"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services_GenerateRecommendationsRequest_BudgetInfo",
      "description": "Current budget information of the campaign."
    },
    "GoogleAdsGoogleadsV23Services__MutateConversionValueRuleSetsResponse": {
      "id": "GoogleAdsGoogleadsV23Services__MutateConversionValueRuleSetsResponse",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "description": "All results for the mutate.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateConversionValueRuleSetResult"
          }
        }
      },
      "description": "Response message for ConversionValueRuleSetService.MutateConversionValueRuleSets.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__MatchedLocationInterestView": {
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the matched location interest view. Matched location interest view resource names have the form: `customers/{customer_id}/matchedLocationInterestViews/{country_criterion_id}`",
          "readOnly": true
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__MatchedLocationInterestView",
      "description": "A view that reports metrics for locations where users showed interest, and which matched the advertiser's location interest targeting (defined as geo targets at the AdGroup level). The data is aggregated at the country level by default. This view is currently only available for AI Max campaigns.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources_Recommendation_TargetAdjustmentInfo": {
      "id": "GoogleAdsGoogleadsV23Resources_Recommendation_TargetAdjustmentInfo",
      "properties": {
        "sharedSet": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The shared set resource name of the portfolio bidding strategy where the target is defined. Only populated if the recommendation is portfolio level."
        },
        "currentAverageTargetMicros": {
          "description": "Output only. The current average target of the campaign or portfolio targeted by this recommendation.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "recommendedTargetMultiplier": {
          "format": "double",
          "readOnly": true,
          "description": "Output only. The factor by which we recommend the target to be adjusted by.",
          "type": "number"
        }
      },
      "description": "Information of a target adjustment recommendation.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__CustomerUserAccessInvitation": {
      "id": "GoogleAdsGoogleadsV23Resources__CustomerUserAccessInvitation",
      "properties": {
        "resourceName": {
          "description": "Immutable. Name of the resource. Resource names have the form: `customers/{customer_id}/customerUserAccessInvitations/{invitation_id}`",
          "type": "string"
        },
        "emailAddress": {
          "description": "Immutable. Email address the invitation was sent to. This can differ from the email address of the account that accepts the invite.",
          "type": "string"
        },
        "invitationId": {
          "format": "int64",
          "type": "string",
          "description": "Output only. The ID of the invitation. This field is read-only.",
          "readOnly": true
        },
        "accessRole": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADMIN",
            "STANDARD",
            "READ_ONLY",
            "EMAIL_ONLY"
          ],
          "type": "string",
          "description": "Immutable. Access role of the user.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Owns its account and can control the addition of other users.",
            "Can modify campaigns, but can't affect other users.",
            "Can view campaigns and account changes, but cannot make edits.",
            "Role for \\\"email only\\\" access. Represents an email recipient rather than a true User entity."
          ]
        },
        "creationDateTime": {
          "readOnly": true,
          "description": "Output only. Time invitation was created. This field is read-only. The format is \"YYYY-MM-DD HH:MM:SS\". Examples: \"2018-03-05 09:15:00\" or \"2018-02-01 14:34:30\"",
          "type": "string"
        },
        "invitationStatus": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PENDING",
            "DECLINED",
            "EXPIRED"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The initial state of an invitation, before being acted upon by anyone.",
            "Invitation process was terminated by the email recipient. No new user was created.",
            "Invitation URLs expired without being acted upon. No new user can be created. Invitations expire 20 days after creation."
          ],
          "type": "string",
          "readOnly": true,
          "description": "Output only. Invitation status of the user."
        }
      },
      "description": "Represent an invitation to a new user on this customer account.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__FinalUrlImageGenerationInput": {
      "type": "object",
      "description": "Input for guiding image asset generation with a final url.",
      "id": "GoogleAdsGoogleadsV23Services__FinalUrlImageGenerationInput",
      "properties": {
        "finalUrl": {
          "type": "string",
          "description": "Required. A final url to guide the image generation process. Required."
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__CriterionCategoryLocaleAvailability": {
      "id": "GoogleAdsGoogleadsV23Common__CriterionCategoryLocaleAvailability",
      "type": "object",
      "description": "Information about which locales a category is available in.",
      "properties": {
        "availabilityMode": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The category is available to campaigns of all locales.",
            "The category is available to campaigns within a list of countries, regardless of language.",
            "The category is available to campaigns within a list of languages, regardless of country.",
            "The category is available to campaigns within a list of country, language pairs."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ALL_LOCALES",
            "COUNTRY_AND_ALL_LANGUAGES",
            "LANGUAGE_AND_ALL_COUNTRIES",
            "COUNTRY_AND_LANGUAGE"
          ],
          "description": "Format of the locale availability. Can be LAUNCHED_TO_ALL (both country and language will be empty), COUNTRY (only country will be set), LANGUAGE (only language wil be set), COUNTRY_AND_LANGUAGE (both country and language will be set).",
          "type": "string"
        },
        "countryCode": {
          "description": "The ISO-3166-1 alpha-2 country code associated with the category.",
          "type": "string"
        },
        "languageCode": {
          "description": "ISO 639-1 code of the language associated with the category.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateCustomerNegativeCriteriaResult": {
      "id": "GoogleAdsGoogleadsV23Services__MutateCustomerNegativeCriteriaResult",
      "description": "The result for the criterion mutate.",
      "properties": {
        "customerNegativeCriterion": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CustomerNegativeCriterion",
          "description": "The mutated criterion with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\"."
        },
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateAdGroupsRequest": {
      "id": "GoogleAdsGoogleadsV23Services__MutateAdGroupsRequest",
      "description": "Request message for AdGroupService.MutateAdGroups.",
      "properties": {
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "responseContentType": {
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "type": "string",
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation."
        },
        "operations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__AdGroupOperation"
          },
          "description": "Required. The list of operations to perform on individual ad groups.",
          "type": "array"
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_LeadFormAssetParameters": {
      "type": "object",
      "description": "Parameters to use when applying a lead form asset recommendation.",
      "properties": {
        "setSubmitLeadFormAssetCampaignGoal": {
          "description": "If true, the \"Submit Lead Form\" goal will be set on the target campaign. As a result, ads will be shown as lead form creative ads. If false, the \"Submit Lead Form\" goal will not be set on the campaign and ads will contain lead form assets.",
          "type": "boolean"
        },
        "adAssetApplyParameters": {
          "$ref": "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_AdAssetApplyParameters",
          "description": "Required. Lead form assets to be added. This is a required field."
        }
      },
      "id": "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_LeadFormAssetParameters"
    },
    "GoogleAdsGoogleadsV23Resources_Recommendation_ResponsiveSearchAdRecommendation": {
      "id": "GoogleAdsGoogleadsV23Resources_Recommendation_ResponsiveSearchAdRecommendation",
      "properties": {
        "ad": {
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV23Resources__Ad",
          "description": "Output only. Recommended ad."
        }
      },
      "description": "The add responsive search ad recommendation.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__AndroidPrivacySharedKeyGoogleNetworkType": {
      "properties": {
        "campaignId": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The campaign ID used in the share key encoding."
        },
        "sharedNetworkTypeKey": {
          "type": "string",
          "description": "Output only. 128 bit hex string of the encoded shared network type key, including a '0x' prefix. This key can be used to do a bitwise OR operator with the aggregate conversion key to create a full aggregation key to retrieve the Aggregate API Report in Android Privacy Sandbox.",
          "readOnly": true
        },
        "androidPrivacyNetworkType": {
          "description": "Output only. The network type enum used in the share key encoding.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Search Network.",
            "Display Network.",
            "YouTube Network."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SEARCH",
            "DISPLAY",
            "YOUTUBE"
          ],
          "readOnly": true
        },
        "androidPrivacyInteractionDate": {
          "description": "Output only. The interaction date used in the shared key encoding in the format of \"YYYY-MM-DD\" in UTC timezone.",
          "readOnly": true,
          "type": "string"
        },
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the Android privacy shared key. Android privacy shared key resource names have the form: `customers/{customer_id}/androidPrivacySharedKeyGoogleNetworkTypes/{campaign_id}~{android_privacy_interaction_type}~{android_privacy_network_type}~{android_privacy_interaction_date(yyyy-mm-dd)}`",
          "readOnly": true
        },
        "androidPrivacyInteractionType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "The physical click interaction type.",
            "The 10 seconds engaged view interaction type.",
            "The view (ad impression) interaction type."
          ],
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CLICK",
            "ENGAGED_VIEW",
            "VIEW"
          ],
          "description": "Output only. The interaction type enum used in the share key encoding."
        }
      },
      "description": "An Android privacy shared key view for Google network type key.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__AndroidPrivacySharedKeyGoogleNetworkType"
    },
    "GoogleAdsGoogleadsV23Common__VideoAdInfo": {
      "description": "A video ad.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__VideoAdInfo",
      "properties": {
        "outStream": {
          "$ref": "GoogleAdsGoogleadsV23Common__VideoOutstreamAdInfo",
          "description": "Video out-stream ad format."
        },
        "inStream": {
          "description": "Video TrueView in-stream ad format.",
          "$ref": "GoogleAdsGoogleadsV23Common__VideoTrueViewInStreamAdInfo"
        },
        "video": {
          "description": "The YouTube video assets used for the ad.",
          "$ref": "GoogleAdsGoogleadsV23Common__AdVideoAsset"
        },
        "audio": {
          "description": "YouTube Audio ad format.",
          "$ref": "GoogleAdsGoogleadsV23Common__YouTubeAudioAdInfo"
        },
        "bumper": {
          "$ref": "GoogleAdsGoogleadsV23Common__VideoBumperInStreamAdInfo",
          "description": "Video bumper in-stream ad format."
        },
        "nonSkippable": {
          "$ref": "GoogleAdsGoogleadsV23Common__VideoNonSkippableInStreamAdInfo",
          "description": "Video non-skippable in-stream ad format."
        },
        "inFeed": {
          "description": "In-feed video ad format.",
          "$ref": "GoogleAdsGoogleadsV23Common__InFeedVideoAdInfo"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__CustomInterestOperation": {
      "properties": {
        "create": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CustomInterest",
          "description": "Create operation: No resource name is expected for the new custom interest."
        },
        "update": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CustomInterest",
          "description": "Update operation: The custom interest is expected to have a valid resource name."
        },
        "updateMask": {
          "format": "google-fieldmask",
          "type": "string",
          "description": "FieldMask that determines which resource fields are modified in an update."
        }
      },
      "description": "A single operation (create, update) on a custom interest.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__CustomInterestOperation"
    },
    "GoogleAdsGoogleadsV23Resources__HotelCenterLinkInvitationIdentifier": {
      "id": "GoogleAdsGoogleadsV23Resources__HotelCenterLinkInvitationIdentifier",
      "properties": {
        "hotelCenterId": {
          "format": "int64",
          "description": "Output only. The hotel center id of the hotel account. This field is read only",
          "type": "string",
          "readOnly": true
        }
      },
      "type": "object",
      "description": "The identifier for Hotel account."
    },
    "GoogleAdsGoogleadsV23Services_SmartCampaignSuggestionInfo_BusinessContext": {
      "properties": {
        "businessName": {
          "description": "Optional. The name of the business.",
          "type": "string"
        }
      },
      "description": "A context that describes a business.",
      "id": "GoogleAdsGoogleadsV23Services_SmartCampaignSuggestionInfo_BusinessContext",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__OfflineConversionAlert": {
      "description": "Alert for offline conversion client summary.",
      "id": "GoogleAdsGoogleadsV23Resources__OfflineConversionAlert",
      "properties": {
        "errorPercentage": {
          "readOnly": true,
          "format": "double",
          "description": "Output only. Percentage of the error, the range of this field should be [0, 1.0].",
          "type": "number"
        },
        "error": {
          "$ref": "GoogleAdsGoogleadsV23Resources__OfflineConversionError",
          "readOnly": true,
          "description": "Output only. Error for offline conversion client alert."
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__RegenerateShareableLinkIdResponse": {
      "properties": {},
      "description": "Response message for ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId.",
      "id": "GoogleAdsGoogleadsV23Services__RegenerateShareableLinkIdResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateCustomerRequest": {
      "properties": {
        "responseContentType": {
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "type": "string",
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation."
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "operation": {
          "description": "Required. The operation to perform on the customer",
          "$ref": "GoogleAdsGoogleadsV23Services__CustomerOperation"
        }
      },
      "description": "Request message for CustomerService.MutateCustomer.",
      "id": "GoogleAdsGoogleadsV23Services__MutateCustomerRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services_SuggestSmartCampaignBudgetOptionsResponse_Metrics": {
      "description": "Performance metrics for a given budget option.",
      "id": "GoogleAdsGoogleadsV23Services_SuggestSmartCampaignBudgetOptionsResponse_Metrics",
      "properties": {
        "maxDailyClicks": {
          "type": "string",
          "format": "int64",
          "description": "The estimated max daily clicks."
        },
        "minDailyClicks": {
          "format": "int64",
          "description": "The estimated min daily clicks.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__UserLocationView": {
      "type": "object",
      "properties": {
        "countryCriterionId": {
          "format": "int64",
          "type": "string",
          "readOnly": true,
          "description": "Output only. Criterion Id for the country."
        },
        "targetingLocation": {
          "type": "boolean",
          "readOnly": true,
          "description": "Output only. Indicates whether location was targeted or not."
        },
        "resourceName": {
          "readOnly": true,
          "description": "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}`",
          "type": "string"
        }
      },
      "description": "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.",
      "id": "GoogleAdsGoogleadsV23Resources__UserLocationView"
    },
    "GoogleAdsGoogleadsV23Common__ManualCpv": {
      "id": "GoogleAdsGoogleadsV23Common__ManualCpv",
      "type": "object",
      "properties": {},
      "description": "View based bidding where user pays per video view."
    },
    "GoogleAdsGoogleadsV23Resources__CallView": {
      "description": "A call view that includes data for call tracking of call-only ads or call extensions.",
      "id": "GoogleAdsGoogleadsV23Resources__CallView",
      "type": "object",
      "properties": {
        "callStatus": {
          "type": "string",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MISSED",
            "RECEIVED"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The call was missed.",
            "The call was received."
          ],
          "description": "Output only. The status of the call."
        },
        "startCallDateTime": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The advertiser-provided call start date time."
        },
        "callTrackingDisplayLocation": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The phone call placed from the ad.",
            "The phone call placed from the landing page ad points to."
          ],
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AD",
            "LANDING_PAGE"
          ],
          "description": "Output only. The call tracking display location."
        },
        "callerAreaCode": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. Area code of the caller. Null if the call duration is shorter than 15 seconds."
        },
        "callerCountryCode": {
          "description": "Output only. Country code of the caller.",
          "readOnly": true,
          "type": "string"
        },
        "type": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The phone call was manually dialed.",
            "The phone call was a mobile click-to-call."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MANUALLY_DIALED",
            "HIGH_END_MOBILE_SEARCH"
          ],
          "description": "Output only. The type of the call.",
          "readOnly": true
        },
        "resourceName": {
          "description": "Output only. The resource name of the call view. Call view resource names have the form: `customers/{customer_id}/callViews/{call_detail_id}`",
          "type": "string",
          "readOnly": true
        },
        "endCallDateTime": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The advertiser-provided call end date time."
        },
        "callDurationSeconds": {
          "format": "int64",
          "readOnly": true,
          "description": "Output only. The advertiser-provided call duration in seconds.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_TargetCpaOptInParameters": {
      "description": "Parameters to use when applying Target CPA recommendation.",
      "properties": {
        "newCampaignBudgetAmountMicros": {
          "description": "Optional, budget amount to set for the campaign.",
          "type": "string",
          "format": "int64"
        },
        "targetCpaMicros": {
          "format": "int64",
          "description": "Average CPA to use for Target CPA bidding strategy. This is a required field.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_TargetCpaOptInParameters"
    },
    "GoogleAdsGoogleadsV23Services__GenerateInsightsFinderReportResponse": {
      "description": "The response message for AudienceInsightsService.GenerateInsightsFinderReport, containing the shareable URL for the report.",
      "id": "GoogleAdsGoogleadsV23Services__GenerateInsightsFinderReportResponse",
      "type": "object",
      "properties": {
        "savedReportUrl": {
          "description": "An HTTPS URL providing a deep link into the Insights Finder UI with the report inputs filled in according to the request.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateCustomInterestsResponse": {
      "properties": {
        "results": {
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomInterestResult"
          },
          "type": "array"
        }
      },
      "description": "Response message for custom interest mutate.",
      "id": "GoogleAdsGoogleadsV23Services__MutateCustomInterestsResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateCustomerAssetSetsRequest": {
      "type": "object",
      "description": "Request message for CustomerAssetSetService.MutateCustomerAssetSets.",
      "id": "GoogleAdsGoogleadsV23Services__MutateCustomerAssetSetsRequest",
      "properties": {
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "responseContentType": {
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "type": "string"
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "operations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__CustomerAssetSetOperation"
          },
          "description": "Required. The list of operations to perform on individual customer asset sets.",
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateOperation": {
      "description": "A single operation (create, update, remove) on a resource.",
      "properties": {
        "adGroupAdOperation": {
          "description": "An ad group ad mutate operation.",
          "$ref": "GoogleAdsGoogleadsV23Services__AdGroupAdOperation"
        },
        "conversionGoalCampaignConfigOperation": {
          "description": "A conversion goal campaign config mutate operation.",
          "$ref": "GoogleAdsGoogleadsV23Services__ConversionGoalCampaignConfigOperation"
        },
        "campaignDraftOperation": {
          "description": "A campaign draft mutate operation.",
          "$ref": "GoogleAdsGoogleadsV23Services__CampaignDraftOperation"
        },
        "experimentArmOperation": {
          "$ref": "GoogleAdsGoogleadsV23Services__ExperimentArmOperation",
          "description": "An experiment arm mutate operation."
        },
        "customerNegativeCriterionOperation": {
          "description": "A customer negative criterion mutate operation.",
          "$ref": "GoogleAdsGoogleadsV23Services__CustomerNegativeCriterionOperation"
        },
        "keywordPlanAdGroupOperation": {
          "$ref": "GoogleAdsGoogleadsV23Services__KeywordPlanAdGroupOperation",
          "description": "A keyword plan ad group operation."
        },
        "campaignConversionGoalOperation": {
          "description": "A campaign conversion goal mutate operation.",
          "$ref": "GoogleAdsGoogleadsV23Services__CampaignConversionGoalOperation"
        },
        "assetGroupSignalOperation": {
          "$ref": "GoogleAdsGoogleadsV23Services__AssetGroupSignalOperation",
          "description": "An asset group signal mutate operation."
        },
        "assetGroupListingGroupFilterOperation": {
          "$ref": "GoogleAdsGoogleadsV23Services__AssetGroupListingGroupFilterOperation",
          "description": "An asset group listing group filter mutate operation."
        },
        "campaignCriterionOperation": {
          "$ref": "GoogleAdsGoogleadsV23Services__CampaignCriterionOperation",
          "description": "A campaign criterion mutate operation."
        },
        "campaignBidModifierOperation": {
          "$ref": "GoogleAdsGoogleadsV23Services__CampaignBidModifierOperation",
          "description": "A campaign bid modifier mutate operation."
        },
        "campaignOperation": {
          "$ref": "GoogleAdsGoogleadsV23Services__CampaignOperation",
          "description": "A campaign mutate operation."
        },
        "customerAssetOperation": {
          "$ref": "GoogleAdsGoogleadsV23Services__CustomerAssetOperation",
          "description": "A customer asset mutate operation."
        },
        "remarketingActionOperation": {
          "$ref": "GoogleAdsGoogleadsV23Services__RemarketingActionOperation",
          "description": "A remarketing action mutate operation."
        },
        "assetGroupAssetOperation": {
          "description": "An asset group asset mutate operation.",
          "$ref": "GoogleAdsGoogleadsV23Services__AssetGroupAssetOperation"
        },
        "customerCustomizerOperation": {
          "description": "A customer customizer mutate operation.",
          "$ref": "GoogleAdsGoogleadsV23Services__CustomerCustomizerOperation"
        },
        "adGroupCustomizerOperation": {
          "description": "An ad group customizer mutate operation.",
          "$ref": "GoogleAdsGoogleadsV23Services__AdGroupCustomizerOperation"
        },
        "customizerAttributeOperation": {
          "description": "A customizer attribute mutate operation.",
          "$ref": "GoogleAdsGoogleadsV23Services__CustomizerAttributeOperation"
        },
        "adParameterOperation": {
          "$ref": "GoogleAdsGoogleadsV23Services__AdParameterOperation",
          "description": "An ad parameter mutate operation."
        },
        "experimentOperation": {
          "description": "An experiment mutate operation.",
          "$ref": "GoogleAdsGoogleadsV23Services__ExperimentOperation"
        },
        "campaignAssetOperation": {
          "description": "A campaign asset mutate operation.",
          "$ref": "GoogleAdsGoogleadsV23Services__CampaignAssetOperation"
        },
        "biddingDataExclusionOperation": {
          "description": "A bidding data exclusion mutate operation.",
          "$ref": "GoogleAdsGoogleadsV23Services__BiddingDataExclusionOperation"
        },
        "conversionActionOperation": {
          "$ref": "GoogleAdsGoogleadsV23Services__ConversionActionOperation",
          "description": "A conversion action mutate operation."
        },
        "adGroupAssetOperation": {
          "description": "An ad group asset mutate operation.",
          "$ref": "GoogleAdsGoogleadsV23Services__AdGroupAssetOperation"
        },
        "assetSetAssetOperation": {
          "$ref": "GoogleAdsGoogleadsV23Services__AssetSetAssetOperation",
          "description": "An asset set asset mutate operation."
        },
        "biddingSeasonalityAdjustmentOperation": {
          "description": "A bidding seasonality adjustment mutate operation.",
          "$ref": "GoogleAdsGoogleadsV23Services__BiddingSeasonalityAdjustmentOperation"
        },
        "adGroupCriterionCustomizerOperation": {
          "description": "An ad group criterion customizer mutate operation.",
          "$ref": "GoogleAdsGoogleadsV23Services__AdGroupCriterionCustomizerOperation"
        },
        "adGroupCriterionOperation": {
          "$ref": "GoogleAdsGoogleadsV23Services__AdGroupCriterionOperation",
          "description": "An ad group criterion mutate operation."
        },
        "campaignBudgetOperation": {
          "description": "A campaign budget mutate operation.",
          "$ref": "GoogleAdsGoogleadsV23Services__CampaignBudgetOperation"
        },
        "assetOperation": {
          "$ref": "GoogleAdsGoogleadsV23Services__AssetOperation",
          "description": "An asset mutate operation."
        },
        "customConversionGoalOperation": {
          "$ref": "GoogleAdsGoogleadsV23Services__CustomConversionGoalOperation",
          "description": "A custom conversion goal mutate operation."
        },
        "keywordPlanOperation": {
          "description": "A keyword plan operation.",
          "$ref": "GoogleAdsGoogleadsV23Services__KeywordPlanOperation"
        },
        "keywordPlanCampaignKeywordOperation": {
          "description": "A keyword plan campaign keyword operation.",
          "$ref": "GoogleAdsGoogleadsV23Services__KeywordPlanCampaignKeywordOperation"
        },
        "conversionValueRuleSetOperation": {
          "description": "A conversion value rule set mutate operation.",
          "$ref": "GoogleAdsGoogleadsV23Services__ConversionValueRuleSetOperation"
        },
        "adOperation": {
          "description": "An ad mutate operation.",
          "$ref": "GoogleAdsGoogleadsV23Services__AdOperation"
        },
        "customerConversionGoalOperation": {
          "description": "A customer conversion goal mutate operation.",
          "$ref": "GoogleAdsGoogleadsV23Services__CustomerConversionGoalOperation"
        },
        "adGroupBidModifierOperation": {
          "$ref": "GoogleAdsGoogleadsV23Services__AdGroupBidModifierOperation",
          "description": "An ad group bid modifier mutate operation."
        },
        "sharedCriterionOperation": {
          "description": "A shared criterion mutate operation.",
          "$ref": "GoogleAdsGoogleadsV23Services__SharedCriterionOperation"
        },
        "customerLabelOperation": {
          "description": "A customer label mutate operation.",
          "$ref": "GoogleAdsGoogleadsV23Services__CustomerLabelOperation"
        },
        "campaignSharedSetOperation": {
          "$ref": "GoogleAdsGoogleadsV23Services__CampaignSharedSetOperation",
          "description": "A campaign shared set mutate operation."
        },
        "conversionValueRuleOperation": {
          "description": "A conversion value rule mutate operation.",
          "$ref": "GoogleAdsGoogleadsV23Services__ConversionValueRuleOperation"
        },
        "customerOperation": {
          "description": "A customer mutate operation.",
          "$ref": "GoogleAdsGoogleadsV23Services__CustomerOperation"
        },
        "campaignAssetSetOperation": {
          "description": "A campaign asset mutate operation.",
          "$ref": "GoogleAdsGoogleadsV23Services__CampaignAssetSetOperation"
        },
        "labelOperation": {
          "description": "A label mutate operation.",
          "$ref": "GoogleAdsGoogleadsV23Services__LabelOperation"
        },
        "recommendationSubscriptionOperation": {
          "description": "A recommendation subscription mutate operation.",
          "$ref": "GoogleAdsGoogleadsV23Services__RecommendationSubscriptionOperation"
        },
        "userListOperation": {
          "description": "A user list mutate operation.",
          "$ref": "GoogleAdsGoogleadsV23Services__UserListOperation"
        },
        "adGroupOperation": {
          "$ref": "GoogleAdsGoogleadsV23Services__AdGroupOperation",
          "description": "An ad group mutate operation."
        },
        "campaignCustomizerOperation": {
          "$ref": "GoogleAdsGoogleadsV23Services__CampaignCustomizerOperation",
          "description": "A campaign customizer mutate operation."
        },
        "smartCampaignSettingOperation": {
          "$ref": "GoogleAdsGoogleadsV23Services__SmartCampaignSettingOperation",
          "description": "A Smart campaign setting mutate operation."
        },
        "assetSetOperation": {
          "description": "An asset set mutate operation.",
          "$ref": "GoogleAdsGoogleadsV23Services__AssetSetOperation"
        },
        "adGroupAdLabelOperation": {
          "$ref": "GoogleAdsGoogleadsV23Services__AdGroupAdLabelOperation",
          "description": "An ad group ad label mutate operation."
        },
        "conversionCustomVariableOperation": {
          "description": "A conversion custom variable mutate operation.",
          "$ref": "GoogleAdsGoogleadsV23Services__ConversionCustomVariableOperation"
        },
        "keywordPlanCampaignOperation": {
          "$ref": "GoogleAdsGoogleadsV23Services__KeywordPlanCampaignOperation",
          "description": "A keyword plan campaign operation."
        },
        "biddingStrategyOperation": {
          "$ref": "GoogleAdsGoogleadsV23Services__BiddingStrategyOperation",
          "description": "A bidding strategy mutate operation."
        },
        "sharedSetOperation": {
          "description": "A shared set mutate operation.",
          "$ref": "GoogleAdsGoogleadsV23Services__SharedSetOperation"
        },
        "audienceOperation": {
          "description": "An audience mutate operation.",
          "$ref": "GoogleAdsGoogleadsV23Services__AudienceOperation"
        },
        "campaignGroupOperation": {
          "description": "A campaign group mutate operation.",
          "$ref": "GoogleAdsGoogleadsV23Services__CampaignGroupOperation"
        },
        "adGroupLabelOperation": {
          "$ref": "GoogleAdsGoogleadsV23Services__AdGroupLabelOperation",
          "description": "An ad group label mutate operation."
        },
        "adGroupCriterionLabelOperation": {
          "description": "An ad group criterion label mutate operation.",
          "$ref": "GoogleAdsGoogleadsV23Services__AdGroupCriterionLabelOperation"
        },
        "assetGroupOperation": {
          "$ref": "GoogleAdsGoogleadsV23Services__AssetGroupOperation",
          "description": "An asset group mutate operation."
        },
        "keywordPlanAdGroupKeywordOperation": {
          "description": "A keyword plan ad group keyword operation.",
          "$ref": "GoogleAdsGoogleadsV23Services__KeywordPlanAdGroupKeywordOperation"
        },
        "campaignLabelOperation": {
          "$ref": "GoogleAdsGoogleadsV23Services__CampaignLabelOperation",
          "description": "A campaign label mutate operation."
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__ManualCpa": {
      "type": "object",
      "properties": {},
      "id": "GoogleAdsGoogleadsV23Common__ManualCpa",
      "description": "Manual bidding strategy that allows advertiser to set the bid per advertiser-specified action."
    },
    "GoogleAdsGoogleadsV23Services__ListPlannableUserInterestsRequest": {
      "id": "GoogleAdsGoogleadsV23Services__ListPlannableUserInterestsRequest",
      "properties": {
        "customerId": {
          "description": "Required. The ID of the customer.",
          "type": "string"
        },
        "reachApplicationInfo": {
          "$ref": "GoogleAdsGoogleadsV23Common__AdditionalApplicationInfo",
          "description": "Optional. Additional information on the application issuing the request."
        },
        "pathQuery": {
          "description": "A filter by user interest path. If set, only user interests with a path containing the literal string (case insensitive) in the filter will be returned. Maximum length is 200 characters.",
          "type": "string"
        },
        "userInterestTaxonomyTypes": {
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "The affinity for this user interest.",
              "The market for this user interest.",
              "Users known to have installed applications in the specified categories.",
              "The geographical location of the interest-based vertical.",
              "User interest criteria for new smart phone users."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "AFFINITY",
              "IN_MARKET",
              "MOBILE_APP_INSTALL_USER",
              "VERTICAL_GEO",
              "NEW_SMART_PHONE_USER"
            ]
          },
          "description": "Optional. A filter by user interest type. If set, only user interests with a type listed in the filter will be returned. If not set, user interests of all supported types will be returned. Supported user interest types are AFFINITY and IN_MARKET. Each type must be specified at most once."
        },
        "nameQuery": {
          "description": "A filter by user interest name. If set, only user interests with a name containing the literal string (case insensitive) in the filter will be returned. Maximum length is 200 characters.",
          "type": "string"
        }
      },
      "type": "object",
      "description": "Request message for ReachPlanService.ListPlannableUserInterests."
    },
    "GoogleAdsGoogleadsV23Services__MutateAdParameterResult": {
      "type": "object",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "The resource name returned for successful operations."
        },
        "adParameter": {
          "description": "The mutated AdParameter with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV23Resources__AdParameter"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateAdParameterResult",
      "description": "The result for the ad parameter mutate."
    },
    "GoogleAdsGoogleadsV23Errors__GoogleAdsError": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Errors__GoogleAdsError",
      "properties": {
        "trigger": {
          "description": "The value that triggered the error.",
          "$ref": "GoogleAdsGoogleadsV23Common__Value"
        },
        "location": {
          "description": "Describes the part of the request proto that caused the error.",
          "$ref": "GoogleAdsGoogleadsV23Errors__ErrorLocation"
        },
        "errorCode": {
          "description": "An enum value that indicates which error occurred.",
          "$ref": "GoogleAdsGoogleadsV23Errors__ErrorCode"
        },
        "message": {
          "description": "A human-readable description of the error.",
          "type": "string"
        },
        "details": {
          "description": "Additional error details, which are returned by certain error codes. Most error codes do not include details.",
          "$ref": "GoogleAdsGoogleadsV23Errors__ErrorDetails"
        }
      },
      "description": "GoogleAds-specific error."
    },
    "GoogleAdsGoogleadsV23Services__MutateConversionValueRulesRequest": {
      "description": "Request message for ConversionValueRuleService.MutateConversionValueRules.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateConversionValueRulesRequest",
      "properties": {
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "responseContentType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation."
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "operations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__ConversionValueRuleOperation"
          },
          "type": "array",
          "description": "Required. The list of operations to perform on individual conversion value rules."
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__UserListRuleItemInfo": {
      "id": "GoogleAdsGoogleadsV23Common__UserListRuleItemInfo",
      "type": "object",
      "properties": {
        "name": {
          "description": "Rule variable name. It should match the corresponding key name fired by the pixel. A name must begin with US-ascii letters or underscore or UTF8 code that is greater than 127 and consist of US-ascii letters or digits or underscore or UTF8 code that is greater than 127. For websites, there are two built-in variable URL (name = 'url__') and referrer URL (name = 'ref_url__'). This field must be populated when creating a new rule item.",
          "type": "string"
        },
        "numberRuleItem": {
          "$ref": "GoogleAdsGoogleadsV23Common__UserListNumberRuleItemInfo",
          "description": "An atomic rule item composed of a number operation."
        },
        "dateRuleItem": {
          "description": "An atomic rule item composed of a date operation.",
          "$ref": "GoogleAdsGoogleadsV23Common__UserListDateRuleItemInfo"
        },
        "stringRuleItem": {
          "$ref": "GoogleAdsGoogleadsV23Common__UserListStringRuleItemInfo",
          "description": "An atomic rule item composed of a string operation."
        }
      },
      "description": "An atomic rule item."
    },
    "GoogleAdsGoogleadsV23Resources__CustomerConversionGoal": {
      "type": "object",
      "properties": {
        "biddable": {
          "description": "The biddability of the customer conversion goal.",
          "type": "boolean"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the customer conversion goal. Customer conversion goal resource names have the form: `customers/{customer_id}/customerConversionGoals/{category}~{origin}`"
        },
        "origin": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "WEBSITE",
            "GOOGLE_HOSTED",
            "APP",
            "CALL_FROM_ADS",
            "STORE",
            "YOUTUBE_HOSTED"
          ],
          "type": "string",
          "enumDescriptions": [
            "The conversion origin has not been specified.",
            "The conversion origin is not known in this version.",
            "Conversion that occurs when a user visits a website or takes an action there after viewing an ad.",
            "Conversions reported by an offline pipeline which collects local actions from Google-hosted pages (for example, Google Maps, Google Place Page, etc) and attributes them to relevant ad events.",
            "Conversion that occurs when a user performs an action through any app platforms.",
            "Conversion that occurs when a user makes a call from ads.",
            "Conversion that occurs when a user visits or makes a purchase at a physical store.",
            "Conversion that occurs on YouTube."
          ],
          "description": "The conversion origin of this customer conversion goal. Only conversion actions that have this conversion origin will be included in this goal."
        },
        "category": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Default category.",
            "User visiting a page.",
            "Purchase, sales, or \"order placed\" event.",
            "Signup user action.",
            "Software download action (as for an app).",
            "The addition of items to a shopping cart or bag on an advertiser site.",
            "When someone enters the checkout flow on an advertiser site.",
            "The start of a paid subscription for a product or service.",
            "A call to indicate interest in an advertiser's offering.",
            "A lead conversion imported from an external source into Google Ads.",
            "A submission of a form on an advertiser site indicating business interest.",
            "A booking of an appointment with an advertiser's business.",
            "A quote or price estimate request.",
            "A search for an advertiser's business location with intention to visit.",
            "A click to an advertiser's partner's site.",
            "A call, SMS, email, chat or other type of contact to an advertiser.",
            "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.",
            "A visit to a physical store location.",
            "A sale occurring in a physical store.",
            "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\".",
            "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DEFAULT",
            "PAGE_VIEW",
            "PURCHASE",
            "SIGNUP",
            "DOWNLOAD",
            "ADD_TO_CART",
            "BEGIN_CHECKOUT",
            "SUBSCRIBE_PAID",
            "PHONE_CALL_LEAD",
            "IMPORTED_LEAD",
            "SUBMIT_LEAD_FORM",
            "BOOK_APPOINTMENT",
            "REQUEST_QUOTE",
            "GET_DIRECTIONS",
            "OUTBOUND_CLICK",
            "CONTACT",
            "ENGAGEMENT",
            "STORE_VISIT",
            "STORE_SALE",
            "QUALIFIED_LEAD",
            "CONVERTED_LEAD"
          ],
          "description": "The conversion category of this customer conversion goal. Only conversion actions that have this category will be included in this goal."
        }
      },
      "description": "Biddability control for conversion actions with a matching category and origin.",
      "id": "GoogleAdsGoogleadsV23Resources__CustomerConversionGoal"
    },
    "GoogleAdsGoogleadsV23Services__AdGroupCustomizerOperation": {
      "description": "A single operation (create, remove) on a customizer attribute.",
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new ad group customizer",
          "$ref": "GoogleAdsGoogleadsV23Resources__AdGroupCustomizer"
        },
        "remove": {
          "description": "Remove operation: A resource name for the removed ad group customizer is expected, in this format: `customers/{customer_id}/adGroupCustomizers/{ad_group_id}~{customizer_attribute_id}`",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__AdGroupCustomizerOperation"
    },
    "GoogleAdsGoogleadsV23Services__ApplyRecommendationResponse": {
      "id": "GoogleAdsGoogleadsV23Services__ApplyRecommendationResponse",
      "description": "Response message for RecommendationService.ApplyRecommendation.",
      "type": "object",
      "properties": {
        "partialFailureError": {
          "$ref": "GoogleRpc__Status",
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors) we return the RPC level error."
        },
        "results": {
          "description": "Results of operations to apply recommendations.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__ApplyRecommendationResult"
          },
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources_ConversionValueRule_ValueRuleDeviceCondition": {
      "id": "GoogleAdsGoogleadsV23Resources_ConversionValueRule_ValueRuleDeviceCondition",
      "description": "Condition on Device dimension.",
      "type": "object",
      "properties": {
        "deviceTypes": {
          "type": "array",
          "items": {
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "MOBILE",
              "DESKTOP",
              "TABLET"
            ],
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "Mobile device.",
              "Desktop device.",
              "Tablet device."
            ]
          },
          "description": "Value for device type condition."
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__UniversityDegree": {
      "description": "A list of degrees this employee has obtained, and wants to feature.",
      "properties": {
        "institutionName": {
          "description": "Output only. Name of the university at which the degree was obtained.",
          "readOnly": true,
          "type": "string"
        },
        "graduationYear": {
          "readOnly": true,
          "description": "Output only. Year of graduation.",
          "type": "integer",
          "format": "int32"
        },
        "degree": {
          "description": "Output only. Name of the degree obtained.",
          "type": "string",
          "readOnly": true
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__UniversityDegree"
    },
    "GoogleAdsGoogleadsV23Common__CampaignThirdPartyIntegrationPartners": {
      "description": "Container for Campaign level third party integration partners.",
      "type": "object",
      "properties": {
        "brandSafetyIntegrationPartners": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__CampaignThirdPartyBrandSafetyIntegrationPartner"
          },
          "description": "Third party integration partners for brand safety verification for this Campaign.",
          "type": "array"
        },
        "viewabilityIntegrationPartners": {
          "description": "Third party integration partners for YouTube viewability verification for this Campaign.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__CampaignThirdPartyViewabilityIntegrationPartner"
          },
          "type": "array"
        },
        "brandLiftIntegrationPartners": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__CampaignThirdPartyBrandLiftIntegrationPartner"
          },
          "type": "array",
          "description": "Third party integration partners for Brand Lift verification for this Campaign."
        },
        "reachIntegrationPartners": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__CampaignThirdPartyReachIntegrationPartner"
          },
          "description": "Third party integration partners for reach verification for this Campaign."
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__CampaignThirdPartyIntegrationPartners"
    },
    "GoogleAdsGoogleadsV23Services__MutateBiddingStrategiesResponse": {
      "properties": {
        "results": {
          "type": "array",
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateBiddingStrategyResult"
          }
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateBiddingStrategiesResponse",
      "description": "Response message for bidding strategy mutate."
    },
    "GoogleAdsGoogleadsV23Services__ConversionRateSuggestion": {
      "description": "A conversion rate suggestion.",
      "id": "GoogleAdsGoogleadsV23Services__ConversionRateSuggestion",
      "type": "object",
      "properties": {
        "conversionRateModel": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CUSTOMER_HISTORY",
            "INVENTORY_AGGRESSIVE",
            "INVENTORY_CONSERVATIVE",
            "INVENTORY_MEDIAN"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Suggested conversion rate for the authenticated customer based on the previous 70 days.",
            "Suggested conversion rate based on an aggressive rate for the entire inventory.",
            "Suggested conversion rate based on a conservative rate for the entire inventory.",
            "Suggested conversion rate based on the median rate for the entire inventory."
          ],
          "description": "Model type used to calculate the suggested conversion rate."
        },
        "surfaceTargeting": {
          "$ref": "GoogleAdsGoogleadsV23Services__SurfaceTargeting",
          "description": "The surfaces associated with the plannable product. If not present, the conversion rate is considered surface agnostic for this product."
        },
        "conversionRate": {
          "type": "number",
          "description": "The suggested conversion rate. The value is between 0 and 1 (exclusive).",
          "format": "double"
        },
        "plannableProductCode": {
          "description": "The code associated with the plannable product (for example: DEMAND_GEN). To list all plannable product codes, use ReachPlanService.ListPlannableProducts.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__PaymentsAccount": {
      "properties": {
        "name": {
          "description": "Output only. The name of the payments account.",
          "type": "string",
          "readOnly": true
        },
        "currencyCode": {
          "description": "Output only. The currency code of the payments account. A subset of the currency codes derived from the ISO 4217 standard is supported.",
          "readOnly": true,
          "type": "string"
        },
        "paymentsProfileId": {
          "description": "Output only. A 12 digit ID used to identify the payments profile associated with the payments account.",
          "type": "string",
          "readOnly": true
        },
        "resourceName": {
          "description": "Output only. The resource name of the payments account. PaymentsAccount resource names have the form: `customers/{customer_id}/paymentsAccounts/{payments_account_id}`",
          "readOnly": true,
          "type": "string"
        },
        "payingManagerCustomer": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. Paying manager of this payment account."
        },
        "secondaryPaymentsProfileId": {
          "type": "string",
          "description": "Output only. A secondary payments profile ID present in uncommon situations, for example, when a sequential liability agreement has been arranged.",
          "readOnly": true
        },
        "paymentsAccountId": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. A 16 digit ID used to identify a payments account."
        }
      },
      "description": "A payments account, which can be used to set up billing for an Ads customer.",
      "id": "GoogleAdsGoogleadsV23Resources__PaymentsAccount",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__HotelClassInfo": {
      "properties": {
        "value": {
          "description": "Long value of the hotel class.",
          "type": "string",
          "format": "int64"
        }
      },
      "type": "object",
      "description": "Class of the hotel as a number of stars 1 to 5.",
      "id": "GoogleAdsGoogleadsV23Common__HotelClassInfo"
    },
    "GoogleAdsGoogleadsV23Services__AddBatchJobOperationsRequest": {
      "id": "GoogleAdsGoogleadsV23Services__AddBatchJobOperationsRequest",
      "type": "object",
      "properties": {
        "mutateOperations": {
          "type": "array",
          "description": "Required. The list of mutates being added. Operations can use negative integers as temp ids to signify dependencies between entities created in this batch job. For example, a customer with id = 1234 can create a campaign and an ad group in that same campaign by creating a campaign in the first operation with the resource name explicitly set to \"customers/1234/campaigns/-1\", and creating an ad group in the second operation with the campaign field also set to \"customers/1234/campaigns/-1\".",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateOperation"
          }
        },
        "sequenceToken": {
          "type": "string",
          "description": "A token used to enforce sequencing. The first AddBatchJobOperations request for a batch job should not set sequence_token. Subsequent requests must set sequence_token to the value of next_sequence_token received in the previous AddBatchJobOperations response."
        }
      },
      "description": "Request message for BatchJobService.AddBatchJobOperations."
    },
    "GoogleAdsGoogleadsV23Errors__PolicyFindingDetails": {
      "properties": {
        "policyTopicEntries": {
          "type": "array",
          "description": "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).",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__PolicyTopicEntry"
          }
        }
      },
      "description": "Error returned as part of a mutate response. This error indicates one or more policy findings in the fields of a resource.",
      "id": "GoogleAdsGoogleadsV23Errors__PolicyFindingDetails",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__ExpandedDynamicSearchAdInfo": {
      "properties": {
        "description2": {
          "type": "string",
          "description": "The second description of the ad."
        },
        "description": {
          "description": "The description of the ad.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__ExpandedDynamicSearchAdInfo",
      "description": "An expanded dynamic search ad."
    },
    "GoogleAdsGoogleadsV23Common__TargetCpaSimulationPointList": {
      "type": "object",
      "properties": {
        "points": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__TargetCpaSimulationPoint"
          },
          "type": "array",
          "description": "Projected metrics for a series of target CPA amounts."
        }
      },
      "description": "A container for simulation points for simulations of type TARGET_CPA.",
      "id": "GoogleAdsGoogleadsV23Common__TargetCpaSimulationPointList"
    },
    "GoogleAdsGoogleadsV23Services__MutateCustomerUserAccessInvitationResult": {
      "id": "GoogleAdsGoogleadsV23Services__MutateCustomerUserAccessInvitationResult",
      "description": "The result for the access invitation mutate.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__CampaignLabel": {
      "description": "Represents a relationship between a campaign and a label.",
      "type": "object",
      "properties": {
        "campaign": {
          "description": "Immutable. The campaign to which the label is attached.",
          "type": "string"
        },
        "label": {
          "type": "string",
          "description": "Immutable. The label assigned to the campaign."
        },
        "resourceName": {
          "description": "Immutable. Name of the resource. Campaign label resource names have the form: `customers/{customer_id}/campaignLabels/{campaign_id}~{label_id}`",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__CampaignLabel"
    },
    "GoogleAdsGoogleadsV23Services__ListCampaignDraftAsyncErrorsResponse": {
      "id": "GoogleAdsGoogleadsV23Services__ListCampaignDraftAsyncErrorsResponse",
      "description": "Response message for CampaignDraftService.ListCampaignDraftAsyncErrors.",
      "properties": {
        "nextPageToken": {
          "type": "string",
          "description": "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."
        },
        "errors": {
          "type": "array",
          "description": "Details of the errors when performing the asynchronous operation.",
          "items": {
            "$ref": "GoogleRpc__Status"
          }
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__LocationView": {
      "id": "GoogleAdsGoogleadsV23Resources__LocationView",
      "description": "A location view summarizes the performance of campaigns by a Location criterion. If no Location criterion is set, no results are returned; instead, use geographic_view or user_location_view for visitor location data.",
      "type": "object",
      "properties": {
        "resourceName": {
          "description": "Output only. The resource name of the location view. Location view resource names have the form: `customers/{customer_id}/locationViews/{campaign_id}~{criterion_id}`",
          "type": "string",
          "readOnly": true
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__OperatingSystemVersionInfo": {
      "properties": {
        "operatingSystemVersionConstant": {
          "description": "The operating system version constant resource name.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__OperatingSystemVersionInfo",
      "description": "Represents an operating system version to be targeted.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateCustomerAssetSetsResponse": {
      "properties": {
        "results": {
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomerAssetSetResult"
          },
          "type": "array"
        },
        "partialFailureError": {
          "$ref": "GoogleRpc__Status",
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (e.g. auth errors), we return an RPC level error."
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateCustomerAssetSetsResponse",
      "description": "Response message for a customer asset set mutate.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__LeadFormDeliveryMethod": {
      "description": "A configuration of how leads are delivered to the advertiser.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__LeadFormDeliveryMethod",
      "properties": {
        "webhook": {
          "description": "Webhook method of delivery.",
          "$ref": "GoogleAdsGoogleadsV23Common__WebhookDelivery"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateSmartCampaignSettingsRequest": {
      "id": "GoogleAdsGoogleadsV23Services__MutateSmartCampaignSettingsRequest",
      "description": "Request message for SmartCampaignSettingService.MutateSmartCampaignSettings.",
      "properties": {
        "responseContentType": {
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ]
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "operations": {
          "description": "Required. The list of operations to perform on individual Smart campaign settings.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__SmartCampaignSettingOperation"
          }
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__AssetOperation": {
      "type": "object",
      "description": "A single operation to create an asset. Supported asset types are YoutubeVideoAsset, MediaBundleAsset, ImageAsset, LeadFormAsset, LocationAsset, and ImageAsset. TextAsset can be created with an Ad inline, but it can also be created apart from an Ad like other assets.",
      "properties": {
        "update": {
          "description": "Update operation: The asset is expected to have a valid resource name in this format: `customers/{customer_id}/assets/{asset_id}`",
          "$ref": "GoogleAdsGoogleadsV23Resources__Asset"
        },
        "updateMask": {
          "format": "google-fieldmask",
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new asset.",
          "$ref": "GoogleAdsGoogleadsV23Resources__Asset"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__AssetOperation"
    },
    "GoogleAdsGoogleadsV23Common__AppEngagementAdInfo": {
      "id": "GoogleAdsGoogleadsV23Common__AppEngagementAdInfo",
      "properties": {
        "videos": {
          "description": "List of video assets that may be displayed with the ad.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdVideoAsset"
          },
          "type": "array"
        },
        "headlines": {
          "description": "List of text assets for headlines. When the ad serves the headlines will be selected from this list.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdTextAsset"
          },
          "type": "array"
        },
        "descriptions": {
          "description": "List of text assets for descriptions. When the ad serves the descriptions will be selected from this list.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdTextAsset"
          }
        },
        "images": {
          "description": "List of image assets that may be displayed with the ad.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdImageAsset"
          },
          "type": "array"
        }
      },
      "description": "App engagement ads allow you to write text encouraging a specific action in the app, like checking in, making a purchase, or booking a flight. They allow you to send users to a specific part of your app where they can find what they're looking for easier and faster.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__AdditionalApplicationInfo": {
      "type": "object",
      "properties": {
        "applicationInstance": {
          "type": "string",
          "description": "The instance type of the application sending the request.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DEVELOPMENT_AND_TESTING",
            "PRODUCTION"
          ],
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "The instance is for development and testing purposes.",
            "The instance is for production purposes."
          ]
        },
        "applicationId": {
          "description": "The unique identifier of the agency proprietary application. This identifier is generated by Google. Reach out to your Google representative to request an application_id for each new application being integrated.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__AdditionalApplicationInfo",
      "description": "Additional information about the application/tool issuing the request. This field is only used by [ContentCreatorInsightsService], [AudienceInsightsService], and [ReachPlanService] APIs."
    },
    "GoogleAdsGoogleadsV23Services__MutateExperimentResult": {
      "id": "GoogleAdsGoogleadsV23Services__MutateExperimentResult",
      "type": "object",
      "description": "The result for the campaign experiment mutate.",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__CpcBidSimulationPointList": {
      "id": "GoogleAdsGoogleadsV23Common__CpcBidSimulationPointList",
      "type": "object",
      "description": "A container for simulation points for simulations of type CPC_BID.",
      "properties": {
        "points": {
          "description": "Projected metrics for a series of CPC bid amounts.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__CpcBidSimulationPoint"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__AdGroupBidModifierOperation": {
      "type": "object",
      "description": "A single operation (create, remove, update) on an ad group bid modifier.",
      "properties": {
        "create": {
          "$ref": "GoogleAdsGoogleadsV23Resources__AdGroupBidModifier",
          "description": "Create operation: No resource name is expected for the new ad group bid modifier."
        },
        "update": {
          "description": "Update operation: The ad group bid modifier is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV23Resources__AdGroupBidModifier"
        },
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string",
          "format": "google-fieldmask"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed ad group bid modifier is expected, in this format: `customers/{customer_id}/adGroupBidModifiers/{ad_group_id}~{criterion_id}`"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__AdGroupBidModifierOperation"
    },
    "GoogleAdsGoogleadsV23Resources__LanguageConstant": {
      "id": "GoogleAdsGoogleadsV23Resources__LanguageConstant",
      "type": "object",
      "description": "A language.",
      "properties": {
        "name": {
          "description": "Output only. The full name of the language in English, for example, \"English (US)\", \"Spanish\", etc.",
          "readOnly": true,
          "type": "string"
        },
        "resourceName": {
          "readOnly": true,
          "description": "Output only. The resource name of the language constant. Language constant resource names have the form: `languageConstants/{criterion_id}`",
          "type": "string"
        },
        "code": {
          "description": "Output only. The language code, for example, \"en_US\", \"en_AU\", \"es\", \"fr\", etc.",
          "readOnly": true,
          "type": "string"
        },
        "id": {
          "type": "string",
          "description": "Output only. The ID of the language constant.",
          "readOnly": true,
          "format": "int64"
        },
        "targetable": {
          "readOnly": true,
          "type": "boolean",
          "description": "Output only. Whether the language is targetable."
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__CampaignAssetSet": {
      "type": "object",
      "description": "CampaignAssetSet is the linkage between a campaign and an asset set. Adding a CampaignAssetSet links an asset set with a campaign.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "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}`"
        },
        "status": {
          "description": "Output only. The status of the campaign asset set asset. Read-only.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "type": "string",
          "readOnly": true,
          "enumDescriptions": [
            "The status has not been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The linkage between asset set and its container is enabled.",
            "The linkage between asset set and its container is removed."
          ]
        },
        "campaign": {
          "description": "Immutable. The campaign to which this asset set is linked.",
          "type": "string"
        },
        "assetSet": {
          "type": "string",
          "description": "Immutable. The asset set which is linked to the campaign."
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__CampaignAssetSet"
    },
    "GoogleAdsGoogleadsV23Common__BasicUserListInfo": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__BasicUserListInfo",
      "properties": {
        "actions": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__UserListActionInfo"
          },
          "description": "Actions associated with this user list.",
          "type": "array"
        }
      },
      "description": "User list targeting as a collection of conversions or remarketing actions."
    },
    "GoogleAdsGoogleadsV23Services__MutateUserListsRequest": {
      "id": "GoogleAdsGoogleadsV23Services__MutateUserListsRequest",
      "type": "object",
      "properties": {
        "operations": {
          "description": "Required. The list of operations to perform on individual user lists.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__UserListOperation"
          },
          "type": "array"
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        }
      },
      "description": "Request message for UserListService.MutateUserLists."
    },
    "GoogleAdsGoogleadsV23Resources__AdParameter": {
      "description": "An ad parameter that is used to update numeric values (such as prices or inventory levels) in any text line of an ad (including URLs). There can be a maximum of two AdParameters per ad group criterion. (One with parameter_index = 1 and one with parameter_index = 2.) In the ad the parameters are referenced by a placeholder of the form \"{param#:value}\". For example, \"{param1:$17}\"",
      "properties": {
        "insertionText": {
          "description": "Numeric value to insert into the ad text. The following restrictions apply: - Can use comma or period as a separator, with an optional period or comma (respectively) for fractional values. For example, 1,000,000.00 and 2.000.000,10 are valid. - Can be prepended or appended with a currency symbol. For example, $99.99 is valid. - Can be prepended or appended with a currency code. For example, 99.99USD and EUR200 are valid. - Can use '%'. For example, 1.0% and 1,0% are valid. - Can use plus or minus. For example, -10.99 and 25+ are valid. - Can use '/' between two numbers. For example 4/1 and 0.95/0.45 are valid.",
          "type": "string"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the ad parameter. Ad parameter resource names have the form: `customers/{customer_id}/adParameters/{ad_group_id}~{criterion_id}~{parameter_index}`"
        },
        "parameterIndex": {
          "format": "int64",
          "type": "string",
          "description": "Immutable. The unique index of this ad parameter. Must be either 1 or 2."
        },
        "adGroupCriterion": {
          "description": "Immutable. The ad group criterion that this ad parameter belongs to.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__AdParameter"
    },
    "GoogleAdsGoogleadsV23Common__LifecycleGoalValueSettings": {
      "description": "Lifecycle goal value settings.",
      "id": "GoogleAdsGoogleadsV23Common__LifecycleGoalValueSettings",
      "properties": {
        "value": {
          "format": "double",
          "type": "number",
          "description": "Value of the lifecycle goal. For example, for customer acquisition goal, value is the incremental conversion value for new customers who are not of high value."
        },
        "highLifetimeValue": {
          "description": "High lifetime value of the lifecycle goal. For example, for customer acquisition goal, high lifetime value is the incremental conversion value for new customers who are of high value. High lifetime value should be greater than value, if set.",
          "format": "double",
          "type": "number"
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateRemarketingActionResult": {
      "description": "The result for the remarketing action mutate.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateRemarketingActionResult",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__AccountBudgetProposalOperation": {
      "id": "GoogleAdsGoogleadsV23Services__AccountBudgetProposalOperation",
      "properties": {
        "updateMask": {
          "description": "FieldMask that determines which budget fields are modified. While budgets may be modified, proposals that propose such modifications are final. Therefore, update operations are not supported for proposals. Proposals that modify budgets have the 'update' proposal type. Specifying a mask for any other proposal type is considered an error.",
          "format": "google-fieldmask",
          "type": "string"
        },
        "remove": {
          "description": "Remove operation: A resource name for the removed proposal is expected, in this format: `customers/{customer_id}/accountBudgetProposals/{account_budget_proposal_id}` A request may be cancelled iff it is pending.",
          "type": "string"
        },
        "create": {
          "description": "Create operation: A new proposal to create a new budget, edit an existing budget, end an actively running budget, or remove an approved budget scheduled to start in the future. No resource name is expected for the new proposal.",
          "$ref": "GoogleAdsGoogleadsV23Resources__AccountBudgetProposal"
        }
      },
      "type": "object",
      "description": "A single operation to propose the creation of a new account-level budget or edit/end/remove an existing one."
    },
    "GoogleAdsGoogleadsV23Common__AddressInfo": {
      "properties": {
        "cityName": {
          "type": "string",
          "description": "Name of the city."
        },
        "streetAddress": {
          "description": "Street address line 1.",
          "type": "string"
        },
        "postalCode": {
          "type": "string",
          "description": "Postal code."
        },
        "provinceCode": {
          "type": "string",
          "description": "Province or state code."
        },
        "streetAddress2": {
          "type": "string",
          "description": "Street address line 2. This field is write-only. It is only used for calculating the longitude and latitude of an address when geo_point is empty."
        },
        "countryCode": {
          "type": "string",
          "description": "Country code."
        },
        "provinceName": {
          "description": "Province or state name.",
          "type": "string"
        }
      },
      "description": "Address for proximity criterion.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__AddressInfo"
    },
    "GoogleAdsGoogleadsV23Resources__LocalServicesVerificationArtifact": {
      "id": "GoogleAdsGoogleadsV23Resources__LocalServicesVerificationArtifact",
      "properties": {
        "artifactType": {
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Background check verification artifact.",
            "Insurance verification artifact.",
            "License verification artifact.",
            "Business registration check verification artifact."
          ],
          "description": "Output only. The type of the verification artifact.",
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BACKGROUND_CHECK",
            "INSURANCE",
            "LICENSE",
            "BUSINESS_REGISTRATION_CHECK"
          ]
        },
        "backgroundCheckVerificationArtifact": {
          "$ref": "GoogleAdsGoogleadsV23Resources__BackgroundCheckVerificationArtifact",
          "description": "Output only. A background check verification artifact.",
          "readOnly": true
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the Local Services Verification. Local Services Verification resource names have the form: `customers/{customer_id}/localServicesVerificationArtifacts/{verification_artifact_id}`"
        },
        "businessRegistrationCheckVerificationArtifact": {
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV23Resources__BusinessRegistrationCheckVerificationArtifact",
          "description": "Output only. A business registration check verification artifact."
        },
        "insuranceVerificationArtifact": {
          "description": "Output only. An insurance verification artifact.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV23Resources__InsuranceVerificationArtifact"
        },
        "licenseVerificationArtifact": {
          "$ref": "GoogleAdsGoogleadsV23Resources__LicenseVerificationArtifact",
          "readOnly": true,
          "description": "Output only. A license verification artifact."
        },
        "status": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PASSED",
            "FAILED",
            "PENDING",
            "NO_SUBMISSION",
            "CANCELLED"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Artifact has passed verification.",
            "Artifact has failed verification.",
            "Artifact is in the process of verification.",
            "Artifact needs user to upload information before it is verified.",
            "Artifact has been cancelled by the user."
          ],
          "description": "Output only. The status of the verification artifact.",
          "readOnly": true
        },
        "id": {
          "format": "int64",
          "type": "string",
          "readOnly": true,
          "description": "Output only. The ID of the verification artifact."
        },
        "creationDateTime": {
          "description": "Output only. The timestamp when this verification artifact was created. The format is \"YYYY-MM-DD HH:MM:SS\" in the Google Ads account's timezone. Examples: \"2018-03-05 09:15:00\" or \"2018-02-01 14:34:30\"",
          "type": "string",
          "readOnly": true
        }
      },
      "description": "A local services verification resource.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__RemoveCampaignAutomaticallyCreatedAssetRequest": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__RemoveCampaignAutomaticallyCreatedAssetRequest",
      "description": "Request message for AutomaticallyCreatedAssetRemovalService.RemoveCampaignAutomaticallyCreatedAsset.",
      "properties": {
        "partialFailure": {
          "type": "boolean",
          "description": "Required. If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid."
        },
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__RemoveCampaignAutomaticallyCreatedAssetOperation"
          },
          "description": "Required. The list of operations."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateAudienceResult": {
      "type": "object",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        },
        "audience": {
          "description": "The mutated Audience with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV23Resources__Audience"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateAudienceResult",
      "description": "The result for the audience mutate."
    },
    "GoogleAdsGoogleadsV23Resources_Campaign_LocalCampaignSetting": {
      "properties": {
        "locationSourceType": {
          "description": "The location source type for this local campaign.",
          "type": "string",
          "enumDescriptions": [
            "No value has been specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Locations associated with the customer's linked Business Profile.",
            "Affiliate (chain) store locations. For example, Best Buy store locations."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "GOOGLE_MY_BUSINESS",
            "AFFILIATE"
          ]
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources_Campaign_LocalCampaignSetting",
      "description": "Campaign setting for local campaigns.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources_Invoice_InvalidActivitySummary": {
      "id": "GoogleAdsGoogleadsV23Resources_Invoice_InvalidActivitySummary",
      "type": "object",
      "description": "Details about the invalid activity for the invoice that contain additional details about invoice against which corrections are made.",
      "properties": {
        "originalYearOfService": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. Original year of service related to this invalid activity credit."
        },
        "originalAccountBudgetName": {
          "type": "string",
          "description": "Output only. Original account budget name related to this invalid activity credit.",
          "readOnly": true
        },
        "amountMicros": {
          "type": "string",
          "format": "int64",
          "readOnly": true,
          "description": "Output only. Invalid activity amount in micros."
        },
        "originalMonthOfService": {
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "January.",
            "February.",
            "March.",
            "April.",
            "May.",
            "June.",
            "July.",
            "August.",
            "September.",
            "October.",
            "November.",
            "December."
          ],
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "JANUARY",
            "FEBRUARY",
            "MARCH",
            "APRIL",
            "MAY",
            "JUNE",
            "JULY",
            "AUGUST",
            "SEPTEMBER",
            "OCTOBER",
            "NOVEMBER",
            "DECEMBER"
          ],
          "description": "Output only. Original month of service related to this invalid activity credit.",
          "type": "string"
        },
        "originalInvoiceId": {
          "description": "Output only. Original invoice number related to this invalid activity credit.",
          "readOnly": true,
          "type": "string"
        },
        "originalPurchaseOrderNumber": {
          "type": "string",
          "description": "Output only. Original purchase order number related to this invalid activity credit.",
          "readOnly": true
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__CustomAffinityInfo": {
      "id": "GoogleAdsGoogleadsV23Common__CustomAffinityInfo",
      "properties": {
        "customAffinity": {
          "description": "The CustomInterest resource name.",
          "type": "string"
        }
      },
      "description": "A custom affinity criterion. A criterion of this type is only targetable.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__AssetGenerationExistingContext": {
      "id": "GoogleAdsGoogleadsV23Services__AssetGenerationExistingContext",
      "properties": {
        "existingAssetGroup": {
          "type": "string",
          "description": "Resource name of an existing AssetGroup for which these assets are being generated."
        },
        "existingAdGroupAd": {
          "description": "Resource name of an existing AdGroupAd for which these assets are being generated.",
          "type": "string"
        }
      },
      "description": "The context for which assets are being generated, such as an existing AssetGroup or AdGroupAd.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateBiddingDataExclusionsResult": {
      "type": "object",
      "properties": {
        "biddingDataExclusion": {
          "description": "The mutated bidding data exclusion with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV23Resources__BiddingDataExclusion"
        },
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateBiddingDataExclusionsResult",
      "description": "The result for the data exclusion mutate."
    },
    "GoogleAdsGoogleadsV23Common__BookOnGoogleAsset": {
      "type": "object",
      "description": "A Book on Google asset. Used to redirect user to book through Google. Book on Google will change the redirect url to book directly through Google.",
      "properties": {},
      "id": "GoogleAdsGoogleadsV23Common__BookOnGoogleAsset"
    },
    "GoogleAdsGoogleadsV23Services__GenerateCreatorInsightsResponse": {
      "description": "Response message for ContentCreatorInsightsService.GenerateCreatorInsights.",
      "type": "object",
      "properties": {
        "creatorInsights": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__YouTubeCreatorInsights"
          },
          "description": "A collection of YouTube Creators, each containing a collection of YouTube Channels maintained by the YouTube Creator.",
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__GenerateCreatorInsightsResponse"
    },
    "GoogleAdsGoogleadsV23Services__MutateCustomAudiencesResponse": {
      "properties": {
        "results": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomAudienceResult"
          },
          "type": "array",
          "description": "All results for the mutate."
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateCustomAudiencesResponse",
      "description": "Response message for custom audience mutate.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateAudiencesRequest": {
      "type": "object",
      "properties": {
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "operations": {
          "description": "Required. The list of operations to perform on individual audiences.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__AudienceOperation"
          },
          "type": "array"
        },
        "responseContentType": {
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation."
        }
      },
      "description": "Request message for AudienceService.MutateAudiences.",
      "id": "GoogleAdsGoogleadsV23Services__MutateAudiencesRequest"
    },
    "GoogleAdsGoogleadsV23Common__VideoLineupInfo": {
      "properties": {
        "videoLineupId": {
          "description": "ID for a Video lineup. Contact your Google business development representative for details.",
          "format": "int64",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__VideoLineupInfo",
      "description": "A Video lineup criterion.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__UserListRuleItemGroupInfo": {
      "properties": {
        "ruleItems": {
          "type": "array",
          "description": "Rule items that will be grouped together based on rule_type.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__UserListRuleItemInfo"
          }
        }
      },
      "description": "A group of rule items.",
      "id": "GoogleAdsGoogleadsV23Common__UserListRuleItemGroupInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__UserListCustomerType": {
      "description": "A user list customer type",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__UserListCustomerType",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the user list customer type User list customer type resource names have the form: `customers/{customer_id}/userListCustomerTypes/{user_list_id}~{customer_type_category}`"
        },
        "customerTypeCategory": {
          "description": "Immutable. The user list customer type category",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Unknown type.",
            "Customer type category for all customers.",
            "Customer type category for all purchasers.",
            "Customer type category for high value purchasers.",
            "Customer type category for disengaged purchasers.",
            "Customer type category for qualified leads.",
            "Customer type category for converted leads.",
            "Customer type category for paid subscribers.",
            "Customer type category for loyalty signups.",
            "Customer type category for cart abandoners.",
            "Customer type category for loyalty tier 1 members.",
            "Customer type category for loyalty tier 2 members.",
            "Customer type category for loyalty tier 3 members.",
            "Customer type category for loyalty tier 4 members.",
            "Customer type category for loyalty tier 5 members.",
            "Customer type category for loyalty tier 6 members.",
            "Customer type category for loyalty tier 7 members."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ALL_CUSTOMERS",
            "PURCHASERS",
            "HIGH_VALUE_CUSTOMERS",
            "DISENGAGED_CUSTOMERS",
            "QUALIFIED_LEADS",
            "CONVERTED_LEADS",
            "PAID_SUBSCRIBERS",
            "LOYALTY_SIGN_UPS",
            "CART_ABANDONERS",
            "LOYALTY_TIER_1_MEMBERS",
            "LOYALTY_TIER_2_MEMBERS",
            "LOYALTY_TIER_3_MEMBERS",
            "LOYALTY_TIER_4_MEMBERS",
            "LOYALTY_TIER_5_MEMBERS",
            "LOYALTY_TIER_6_MEMBERS",
            "LOYALTY_TIER_7_MEMBERS"
          ]
        },
        "userList": {
          "type": "string",
          "description": "Immutable. The resource name for the user list this user list customer type is associated with"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__SearchGoogleAdsFieldsResponse": {
      "properties": {
        "nextPageToken": {
          "type": "string",
          "description": "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."
        },
        "results": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Resources__GoogleAdsField"
          },
          "type": "array",
          "description": "The list of fields that matched the query."
        },
        "totalResultsCount": {
          "description": "Total number of results that match the query ignoring the LIMIT clause.",
          "format": "int64",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__SearchGoogleAdsFieldsResponse",
      "description": "Response message for GoogleAdsFieldService.SearchGoogleAdsFields.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__SmartCampaignAdInfo": {
      "description": "A Smart campaign ad.",
      "type": "object",
      "properties": {
        "headlines": {
          "description": "List of text assets, each of which corresponds to a headline when the ad serves. This list consists of a minimum of 3 and up to 15 text assets.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdTextAsset"
          },
          "type": "array"
        },
        "descriptions": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdTextAsset"
          },
          "description": "List of text assets, each of which corresponds to a description when the ad serves. This list consists of a minimum of 2 and up to 4 text assets."
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__SmartCampaignAdInfo"
    },
    "GoogleAdsGoogleadsV23Services__UnusableAdGroup": {
      "id": "GoogleAdsGoogleadsV23Services__UnusableAdGroup",
      "properties": {
        "campaign": {
          "type": "string",
          "description": "The Campaign resource name. Resource name format: `customers/{customer_id}/campaigns/{campaign_id}`"
        },
        "adGroup": {
          "type": "string",
          "description": "The AdGroup resource name. Resource name format: `customers/{customer_id}/adGroups/{ad_group_id}`"
        }
      },
      "type": "object",
      "description": "An AdGroup/Campaign pair that could not be used as a suggestion for keywords. AdGroups may not be usable if the AdGroup * belongs to a Campaign that is not ENABLED or PAUSED * is itself not ENABLED"
    },
    "GoogleAdsGoogleadsV23Services__MutateAdGroupLabelsResponse": {
      "properties": {
        "results": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateAdGroupLabelResult"
          },
          "type": "array",
          "description": "All results for the mutate."
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateAdGroupLabelsResponse",
      "type": "object",
      "description": "Response message for an ad group labels mutate."
    },
    "GoogleAdsGoogleadsV23Resources__DataLink": {
      "description": "Represents the data sharing connection between a Google Ads customer and another product's data.",
      "type": "object",
      "properties": {
        "resourceName": {
          "description": "Immutable. Resource name of the product data link. DataLink resource names have the form: `customers/{customer_id}/datalinks/{product_link_id}~{data_link_id}}",
          "type": "string"
        },
        "productLinkId": {
          "description": "Output only. The ID of the link. This field is read only.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "type": {
          "description": "Output only. The type of the data.",
          "readOnly": true,
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "VIDEO"
          ],
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "A data link to YouTube video."
          ]
        },
        "dataLinkId": {
          "type": "string",
          "format": "int64",
          "readOnly": true,
          "description": "Output only. The ID of the data link. This field is read only."
        },
        "status": {
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Link has been requested by one party, but not confirmed by the other party.",
            "Link is waiting for the customer to approve.",
            "Link is established and can be used as needed.",
            "Link is no longer valid and should be ignored.",
            "Link request has been cancelled by the requester and further cleanup may be needed.",
            "Link request has been rejected by the approver."
          ],
          "type": "string",
          "description": "Output only. The status of the data link.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "REQUESTED",
            "PENDING_APPROVAL",
            "ENABLED",
            "DISABLED",
            "REVOKED",
            "REJECTED"
          ],
          "readOnly": true
        },
        "youtubeVideo": {
          "description": "Immutable. A data link to YouTube video.",
          "$ref": "GoogleAdsGoogleadsV23Resources__YoutubeVideoIdentifier"
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__DataLink"
    },
    "GoogleAdsGoogleadsV23Resources__RemarketingSetting": {
      "properties": {
        "googleGlobalSiteTag": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The Google tag."
        }
      },
      "description": "Remarketing setting for a customer.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__RemarketingSetting"
    },
    "GoogleAdsGoogleadsV23Services__ListBenchmarksSourcesRequest": {
      "type": "object",
      "description": "Request message for BenchmarksService.ListBenchmarksSources.",
      "properties": {
        "benchmarksSources": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "INDUSTRY_VERTICAL"
            ],
            "enumDescriptions": [
              "Not specified.",
              "The value is unknown in this version.",
              "The classification of ad categories for benchmarking. (for example, \"Technology\" or \"Finance\")."
            ]
          },
          "description": "Required. The types of benchmarks sources to be returned (for example, INDUSTRY_VERTICAL)."
        },
        "applicationInfo": {
          "description": "Additional information on the application issuing the request.",
          "$ref": "GoogleAdsGoogleadsV23Common__AdditionalApplicationInfo"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__ListBenchmarksSourcesRequest"
    },
    "GoogleAdsGoogleadsV23Resources_Recommendation_ShoppingAddProductsToCampaignRecommendation": {
      "id": "GoogleAdsGoogleadsV23Resources_Recommendation_ShoppingAddProductsToCampaignRecommendation",
      "description": "The shopping recommendation to add products to a Shopping Campaign Inventory.",
      "type": "object",
      "properties": {
        "feedLabel": {
          "type": "string",
          "description": "Output only. The feed label for the campaign.",
          "readOnly": true
        },
        "merchant": {
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_MerchantInfo",
          "description": "Output only. The details of the Merchant Center account."
        },
        "reason": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The Merchant Center account does not have any submitted products.",
            "The Merchant Center account does not have any submitted products in the feed.",
            "The Google Ads account has active campaign filters that prevents inclusion of offers in the campaign.",
            "All products available have been explicitly excluded from being targeted by the campaign."
          ],
          "type": "string",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MERCHANT_CENTER_ACCOUNT_HAS_NO_SUBMITTED_PRODUCTS",
            "MERCHANT_CENTER_ACCOUNT_HAS_NO_SUBMITTED_PRODUCTS_IN_FEED",
            "ADS_ACCOUNT_EXCLUDES_OFFERS_FROM_CAMPAIGN",
            "ALL_PRODUCTS_ARE_EXCLUDED_FROM_CAMPAIGN"
          ],
          "description": "Output only. The reason why no products are attached to the campaign."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateBatchJobResponse": {
      "type": "object",
      "properties": {
        "result": {
          "description": "The result for the mutate.",
          "$ref": "GoogleAdsGoogleadsV23Services__MutateBatchJobResult"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateBatchJobResponse",
      "description": "Response message for BatchJobService.MutateBatchJob."
    },
    "GoogleAdsGoogleadsV23Resources__ProductLinkInvitation": {
      "properties": {
        "hotelCenter": {
          "description": "Output only. Hotel link invitation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV23Resources__HotelCenterLinkInvitationIdentifier"
        },
        "productLinkInvitationId": {
          "description": "Output only. The ID of the product link invitation. This field is read only.",
          "format": "int64",
          "readOnly": true,
          "type": "string"
        },
        "status": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The invitation is accepted.",
            "An invitation has been sent to the other account. A user on the other account may now accept the invitation by setting the status to ACCEPTED.",
            "This invitation has been sent by a user on the other account. It may be accepted by a user on this account by setting the status to ACCEPTED.",
            "The invitation is revoked by the user who sent the invitation.",
            "The invitation has been rejected by the invitee.",
            "The invitation has timed out before being accepted by the invitee."
          ],
          "description": "Output only. The status of the product link invitation. This field is read only.",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ACCEPTED",
            "REQUESTED",
            "PENDING_APPROVAL",
            "REVOKED",
            "REJECTED",
            "EXPIRED"
          ],
          "type": "string"
        },
        "resourceName": {
          "description": "Immutable. The resource name of a product link invitation. Product link invitation resource names have the form: `customers/{customer_id}/productLinkInvitations/{product_link_invitation_id}`",
          "type": "string"
        },
        "advertisingPartner": {
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV23Resources__AdvertisingPartnerLinkInvitationIdentifier",
          "description": "Output only. Advertising Partner link invitation."
        },
        "merchantCenter": {
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV23Resources__MerchantCenterLinkInvitationIdentifier",
          "description": "Output only. Merchant Center link invitation."
        },
        "type": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DATA_PARTNER",
            "GOOGLE_ADS",
            "HOTEL_CENTER",
            "MERCHANT_CENTER",
            "ADVERTISING_PARTNER"
          ],
          "type": "string",
          "description": "Output only. The type of the invited account. This field is read only and can be used for filtering invitations with {@code GoogleAdsService.SearchGoogleAdsRequest}.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "A link to Data partner.",
            "A link to Google Ads.",
            "A link to Hotel Center.",
            "A link to Google Merchant Center.",
            "A link to the Google Ads account of the advertising partner."
          ],
          "readOnly": true
        }
      },
      "description": "Represents an invitation for data sharing connection between a Google Ads account and another account.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__ProductLinkInvitation"
    },
    "GoogleAdsGoogleadsV23Common_PolicyTopicEvidence_WebsiteList": {
      "id": "GoogleAdsGoogleadsV23Common_PolicyTopicEvidence_WebsiteList",
      "description": "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": "object",
      "properties": {
        "websites": {
          "description": "Websites that caused the policy finding.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__UploadClickConversionsResponse": {
      "properties": {
        "partialFailureError": {
          "$ref": "GoogleRpc__Status",
          "description": "Errors that pertain to conversion failures in the partial failure mode. Returned when all errors occur inside the conversions. If any errors occur outside the conversions (for example, auth errors), we return an RPC level error. See https://developers.google.com/google-ads/api/docs/best-practices/partial-failures for more information about partial failure."
        },
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__ClickConversionResult"
          },
          "description": "Returned for successfully processed conversions. Proto will be empty for rows that received an error. Results are not returned when validate_only is true."
        },
        "jobId": {
          "description": "Job ID for the upload batch.",
          "type": "string",
          "format": "int64"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__UploadClickConversionsResponse",
      "type": "object",
      "description": "Response message for ConversionUploadService.UploadClickConversions."
    },
    "GoogleAdsGoogleadsV23Resources__MediaImage": {
      "id": "GoogleAdsGoogleadsV23Resources__MediaImage",
      "description": "Encapsulates an Image.",
      "properties": {
        "data": {
          "format": "byte",
          "description": "Immutable. Raw image data.",
          "type": "string"
        },
        "fullSizeImageUrl": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The url to the full size version of the image."
        },
        "previewSizeImageUrl": {
          "description": "Output only. The url to the preview size version of the image.",
          "type": "string",
          "readOnly": true
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__GenerateConversionRatesRequest": {
      "type": "object",
      "description": "Request message for ReachPlanService.GenerateConversionRates.",
      "properties": {
        "customerReachGroup": {
          "description": "The name of the customer being planned for. This is a user-defined value.",
          "type": "string"
        },
        "customerId": {
          "description": "Required. The ID of the customer. A conversion rate based on the historical data of this customer may be suggested.",
          "type": "string"
        },
        "reachApplicationInfo": {
          "$ref": "GoogleAdsGoogleadsV23Common__AdditionalApplicationInfo",
          "description": "Optional. Additional information on the application issuing the request."
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__GenerateConversionRatesRequest"
    },
    "GoogleAdsGoogleadsV23Services__MutateCustomerUserAccessRequest": {
      "type": "object",
      "properties": {
        "operation": {
          "description": "Required. The operation to perform on the customer",
          "$ref": "GoogleAdsGoogleadsV23Services__CustomerUserAccessOperation"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateCustomerUserAccessRequest",
      "description": "Mutate Request for CustomerUserAccessService.MutateCustomerUserAccess."
    },
    "GoogleAdsGoogleadsV23Common__OfflineUserAddressInfo": {
      "type": "object",
      "properties": {
        "hashedLastName": {
          "type": "string",
          "description": "Last name of the user, which is hashed as SHA-256 after normalized (lower case only and no punctuation)."
        },
        "hashedFirstName": {
          "description": "First name of the user, which is hashed as SHA-256 after normalized (Lowercase all characters; Remove any extra spaces before, after, and in between).",
          "type": "string"
        },
        "hashedStreetAddress": {
          "description": "The street address of the user hashed using SHA-256 hash function after normalization (lower case only). Only accepted for ConversionAdjustmentUploadService.",
          "type": "string"
        },
        "city": {
          "description": "City of the address. Only accepted for Store Sales and ConversionAdjustmentUploadService.",
          "type": "string"
        },
        "countryCode": {
          "description": "2-letter country code in ISO-3166-1 alpha-2 of the user's address.",
          "type": "string"
        },
        "postalCode": {
          "description": "Postal code of the user's address.",
          "type": "string"
        },
        "state": {
          "type": "string",
          "description": "State code of the address. Only accepted for Store Sales and ConversionAdjustmentUploadService."
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__OfflineUserAddressInfo",
      "description": "Address identifier of offline data."
    },
    "GoogleAdsGoogleadsV23Common__BusinessProfileLocation": {
      "id": "GoogleAdsGoogleadsV23Common__BusinessProfileLocation",
      "type": "object",
      "description": "Business Profile location data synced from the linked Business Profile account.",
      "properties": {
        "storeCode": {
          "type": "string",
          "description": "Business Profile store code of this location. This is synced from the Business Profile account."
        },
        "labels": {
          "items": {
            "type": "string"
          },
          "description": "Advertiser specified label for the location on the Business Profile account. This is synced from the Business Profile account.",
          "type": "array"
        },
        "listingId": {
          "type": "string",
          "description": "Listing ID of this Business Profile location. This is synced from the linked Business Profile account.",
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__BudgetCampaignAssociationStatus": {
      "id": "GoogleAdsGoogleadsV23Common__BudgetCampaignAssociationStatus",
      "properties": {
        "status": {
          "type": "string",
          "description": "Budget campaign association status.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The campaign is currently using the budget.",
            "The campaign is no longer using the budget."
          ]
        },
        "campaign": {
          "description": "The campaign resource name.",
          "type": "string"
        }
      },
      "description": "A BudgetCampaignAssociationStatus segment.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__ChangeEvent": {
      "description": "Describes the granular change of returned resources of certain resource types. Changes made through the UI or API in the past 30 days are included. Previous and new values of the changed fields are shown. ChangeEvent could have up to 3 minutes delay to reflect a new change.",
      "id": "GoogleAdsGoogleadsV23Resources__ChangeEvent",
      "type": "object",
      "properties": {
        "changeResourceName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The Simply resource this change occurred on."
        },
        "oldResource": {
          "$ref": "GoogleAdsGoogleadsV23Resources_ChangeEvent_ChangedResource",
          "description": "Output only. The old resource before the change. Only changed fields will be populated.",
          "readOnly": true
        },
        "userEmail": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The email of the user who made this change."
        },
        "resourceName": {
          "description": "Output only. The resource name of the change event. Change event resource names have the form: `customers/{customer_id}/changeEvents/{timestamp_micros}~{command_index}~{mutate_index}`",
          "type": "string",
          "readOnly": true
        },
        "asset": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The Asset affected by this change."
        },
        "newResource": {
          "description": "Output only. The new resource after the change. Only changed fields will be populated.",
          "$ref": "GoogleAdsGoogleadsV23Resources_ChangeEvent_ChangedResource",
          "readOnly": true
        },
        "adGroup": {
          "readOnly": true,
          "description": "Output only. The AdGroup affected by this change.",
          "type": "string"
        },
        "changedFields": {
          "description": "Output only. A list of fields that are changed in the returned resource.",
          "type": "string",
          "readOnly": true,
          "format": "google-fieldmask"
        },
        "changeDateTime": {
          "description": "Output only. Time at which the change was committed on this resource.",
          "type": "string",
          "readOnly": true
        },
        "resourceChangeOperation": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CREATE",
            "UPDATE",
            "REMOVE"
          ],
          "type": "string",
          "enumDescriptions": [
            "No value has been specified.",
            "Used for return value only. Represents an unclassified operation unknown in this version.",
            "The resource was created.",
            "The resource was modified.",
            "The resource was removed."
          ],
          "description": "Output only. The operation on the changed resource."
        },
        "campaign": {
          "readOnly": true,
          "description": "Output only. The Campaign affected by this change.",
          "type": "string"
        },
        "clientType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "GOOGLE_ADS_WEB_CLIENT",
            "GOOGLE_ADS_AUTOMATED_RULE",
            "GOOGLE_ADS_SCRIPTS",
            "GOOGLE_ADS_BULK_UPLOAD",
            "GOOGLE_ADS_API",
            "GOOGLE_ADS_EDITOR",
            "GOOGLE_ADS_MOBILE_APP",
            "GOOGLE_ADS_RECOMMENDATIONS",
            "SEARCH_ADS_360_SYNC",
            "SEARCH_ADS_360_POST",
            "INTERNAL_TOOL",
            "OTHER",
            "GOOGLE_ADS_RECOMMENDATIONS_SUBSCRIPTION"
          ],
          "type": "string",
          "description": "Output only. Where the change was made through.",
          "enumDescriptions": [
            "No value has been specified.",
            "Used for return value only. Represents an unclassified client type unknown in this version.",
            "Changes made through the \"ads.google.com\". For example, changes made through campaign management.",
            "Changes made through Google Ads automated rules.",
            "Changes made through Google Ads scripts.",
            "Changes made by Google Ads bulk upload.",
            "Changes made by Google Ads API.",
            "Changes made by Google Ads Editor. This value is a placeholder. The API does not return these changes.",
            "Changes made by Google Ads mobile app.",
            "Changes made through Google Ads recommendations.",
            "Changes made through Search Ads 360 Sync.",
            "Changes made through Search Ads 360 Post.",
            "Changes made through internal tools. For example, when a user sets a URL template on an entity like a Campaign, it's automatically wrapped with the SA360 Clickserver URL.",
            "Types of changes that are not categorized, for example, changes made by coupon redemption through Google Ads.",
            "Changes made by subscribing to Google Ads recommendations."
          ],
          "readOnly": true
        },
        "changeResourceType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AD",
            "AD_GROUP",
            "AD_GROUP_CRITERION",
            "CAMPAIGN",
            "CAMPAIGN_BUDGET",
            "AD_GROUP_BID_MODIFIER",
            "CAMPAIGN_CRITERION",
            "FEED",
            "FEED_ITEM",
            "CAMPAIGN_FEED",
            "AD_GROUP_FEED",
            "AD_GROUP_AD",
            "ASSET",
            "CUSTOMER_ASSET",
            "CAMPAIGN_ASSET",
            "AD_GROUP_ASSET",
            "ASSET_SET",
            "ASSET_SET_ASSET",
            "CAMPAIGN_ASSET_SET"
          ],
          "description": "Output only. The type of the changed resource. This dictates what resource will be set in old_resource and new_resource.",
          "readOnly": true,
          "enumDescriptions": [
            "No value has been specified.",
            "Used for return value only. Represents an unclassified resource unknown in this version.",
            "An Ad resource change.",
            "An AdGroup resource change.",
            "An AdGroupCriterion resource change.",
            "A Campaign resource change.",
            "A CampaignBudget resource change.",
            "An AdGroupBidModifier resource change.",
            "A CampaignCriterion resource change.",
            "A Feed resource change.",
            "A FeedItem resource change.",
            "A CampaignFeed resource change.",
            "An AdGroupFeed resource change.",
            "An AdGroupAd resource change.",
            "An Asset resource change.",
            "A CustomerAsset resource change.",
            "A CampaignAsset resource change.",
            "An AdGroupAsset resource change.",
            "An AssetSet resource change.",
            "An AssetSetAsset resource change.",
            "A CampaignAssetSet resource change."
          ],
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__PlannedProduct": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__PlannedProduct",
      "properties": {
        "advancedProductTargeting": {
          "description": "Targeting settings for the selected product. To list the available targeting for each product use ReachPlanService.ListPlannableProducts.",
          "$ref": "GoogleAdsGoogleadsV23Services__AdvancedProductTargeting"
        },
        "budgetMicros": {
          "description": "Required. Maximum budget allocation in micros for the selected product. The value is specified in the selected planning currency_code. For example: 1 000 000$ = 1 000 000 000 000 micros.",
          "type": "string",
          "format": "int64"
        },
        "plannableProductCode": {
          "description": "Required. Selected product for planning. The code associated with the ad product (for example: Trueview, Bumper). To list the available plannable product codes use ReachPlanService.ListPlannableProducts.",
          "type": "string"
        },
        "conversionRate": {
          "type": "number",
          "format": "double",
          "description": "Conversion rate as a decimal between 0 and 1, exclusive. For example: if 2% of ad interactions are expected to lead to conversions, conversion_rate should be 0.02. This field is required for DEMAND_GEN plannable products. It is not supported for other plannable products."
        }
      },
      "description": "A product being planned for reach."
    },
    "GoogleAdsGoogleadsV23Resources__CampaignAudienceView": {
      "properties": {
        "resourceName": {
          "readOnly": true,
          "type": "string",
          "description": "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}`"
        }
      },
      "description": "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": "object",
      "id": "GoogleAdsGoogleadsV23Resources__CampaignAudienceView"
    },
    "GoogleAdsGoogleadsV23Common__AudienceSegment": {
      "properties": {
        "userInterest": {
          "description": "Affinity or In-market segment.",
          "$ref": "GoogleAdsGoogleadsV23Common__UserInterestSegment"
        },
        "detailedDemographic": {
          "description": "Detailed demographic segment.",
          "$ref": "GoogleAdsGoogleadsV23Common__DetailedDemographicSegment"
        },
        "userList": {
          "$ref": "GoogleAdsGoogleadsV23Common__UserListSegment",
          "description": "User list segment."
        },
        "customAudience": {
          "description": "Custom audience segment.",
          "$ref": "GoogleAdsGoogleadsV23Common__CustomAudienceSegment"
        },
        "lifeEvent": {
          "description": "Live-event audience segment.",
          "$ref": "GoogleAdsGoogleadsV23Common__LifeEventSegment"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__AudienceSegment",
      "description": "Positive audience segment.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__GeoTargetConstantSuggestion": {
      "properties": {
        "searchTerm": {
          "description": "If the request searched by location name, this is the location name that matched the geo target.",
          "type": "string"
        },
        "locale": {
          "description": "The language this GeoTargetConstantSuggestion is currently translated to. It affects the name of geo target fields. For example, if locale=en, then name=Spain. If locale=es, then name=España. The default locale will be returned if no translation exists for the locale in the request.",
          "type": "string"
        },
        "reach": {
          "description": "Approximate user population that will be targeted, rounded to the nearest 100.",
          "type": "string",
          "format": "int64"
        },
        "geoTargetConstant": {
          "description": "The GeoTargetConstant result.",
          "$ref": "GoogleAdsGoogleadsV23Resources__GeoTargetConstant"
        },
        "geoTargetConstantParents": {
          "description": "The list of parents of the geo target constant.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Resources__GeoTargetConstant"
          }
        }
      },
      "description": "A geo target constant suggestion.",
      "id": "GoogleAdsGoogleadsV23Services__GeoTargetConstantSuggestion",
      "type": "object"
    },
    "GoogleLongrunning__Operation": {
      "description": "This resource represents a long-running operation that is the result of a network API call.",
      "type": "object",
      "id": "GoogleLongrunning__Operation",
      "properties": {
        "metadata": {
          "type": "object",
          "description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.",
          "additionalProperties": {
            "description": "Properties of the object. Contains field @type with type URL.",
            "type": "any"
          }
        },
        "error": {
          "description": "The error result of the operation in case of failure or cancellation.",
          "$ref": "GoogleRpc__Status"
        },
        "done": {
          "type": "boolean",
          "description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available."
        },
        "response": {
          "description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.",
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object. Contains field @type with type URL."
          },
          "type": "object"
        },
        "name": {
          "type": "string",
          "description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`."
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__MobileDeviceConstant": {
      "type": "object",
      "properties": {
        "manufacturerName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The manufacturer of the mobile device."
        },
        "name": {
          "description": "Output only. The name of the mobile device.",
          "type": "string",
          "readOnly": true
        },
        "resourceName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the mobile device constant. Mobile device constant resource names have the form: `mobileDeviceConstants/{criterion_id}`"
        },
        "id": {
          "type": "string",
          "format": "int64",
          "readOnly": true,
          "description": "Output only. The ID of the mobile device constant."
        },
        "operatingSystemName": {
          "readOnly": true,
          "description": "Output only. The operating system of the mobile device.",
          "type": "string"
        },
        "type": {
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Mobile phones.",
            "Tablets."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MOBILE",
            "TABLET"
          ],
          "description": "Output only. The type of mobile device.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__MobileDeviceConstant",
      "description": "A mobile device constant."
    },
    "GoogleAdsGoogleadsV23Services__CustomerCustomizerOperation": {
      "properties": {
        "create": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CustomerCustomizer",
          "description": "Create operation: No resource name is expected for the new customer customizer"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed customer customizer is expected, in this format: `customers/{customer_id}/customerCustomizers/{customizer_attribute_id}`"
        }
      },
      "description": "A single operation (create, remove) on a customizer attribute.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__CustomerCustomizerOperation"
    },
    "GoogleAdsGoogleadsV23Common__ProductLabelsInfo": {
      "description": "Labels of a product offer. This listing dimension is deprecated and it is supported only in Display campaigns.",
      "id": "GoogleAdsGoogleadsV23Common__ProductLabelsInfo",
      "type": "object",
      "properties": {
        "value": {
          "description": "String value of the product labels.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__MapsLocationInfo": {
      "properties": {
        "placeId": {
          "description": "Place ID of the Maps location.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__MapsLocationInfo",
      "description": "Wrapper for place ids",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__ApplyRecommendationOperation": {
      "type": "object",
      "description": "Information about the operation to apply a recommendation and any parameters to customize it.",
      "id": "GoogleAdsGoogleadsV23Services__ApplyRecommendationOperation",
      "properties": {
        "campaignBudget": {
          "$ref": "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_CampaignBudgetParameters",
          "description": "Optional parameters to use when applying a campaign budget recommendation."
        },
        "sitelinkAsset": {
          "$ref": "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_SitelinkAssetParameters",
          "description": "Parameters to use when applying sitelink asset recommendation."
        },
        "keyword": {
          "$ref": "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_KeywordParameters",
          "description": "Optional parameters to use when applying keyword recommendation."
        },
        "forecastingSetTargetCpa": {
          "$ref": "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_ForecastingSetTargetCpaParameters",
          "description": "Parameters to use when applying forecasting set target CPA recommendation."
        },
        "resourceName": {
          "type": "string",
          "description": "The resource name of the recommendation to apply."
        },
        "sitelinkExtension": {
          "description": "Parameters to use when applying sitelink recommendation.",
          "$ref": "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_SitelinkExtensionParameters"
        },
        "callExtension": {
          "$ref": "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_CallExtensionParameters",
          "description": "Parameters to use when applying call extension recommendation."
        },
        "calloutExtension": {
          "$ref": "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_CalloutExtensionParameters",
          "description": "Parameters to use when applying callout extension recommendation."
        },
        "responsiveSearchAdImproveAdStrength": {
          "description": "Parameters to use when applying a responsive search ad improve ad strength recommendation.",
          "$ref": "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_ResponsiveSearchAdImproveAdStrengthParameters"
        },
        "callAsset": {
          "$ref": "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_CallAssetParameters",
          "description": "Parameters to use when applying call asset recommendation."
        },
        "responsiveSearchAdAsset": {
          "$ref": "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_ResponsiveSearchAdAssetParameters",
          "description": "Parameters to use when applying a responsive search ad asset recommendation."
        },
        "moveUnusedBudget": {
          "description": "Parameters to use when applying move unused budget recommendation.",
          "$ref": "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_MoveUnusedBudgetParameters"
        },
        "raiseTargetCpaBidTooLow": {
          "$ref": "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_RaiseTargetCpaBidTooLowParameters",
          "description": "Parameters to use when applying a raise target CPA bid too low recommendation. The apply is asynchronous and can take minutes depending on the number of ad groups there is in the related campaign."
        },
        "responsiveSearchAd": {
          "$ref": "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_ResponsiveSearchAdParameters",
          "description": "Parameters to use when applying a responsive search ad recommendation."
        },
        "textAd": {
          "description": "Optional parameters to use when applying a text ad recommendation.",
          "$ref": "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_TextAdParameters"
        },
        "raiseTargetCpa": {
          "$ref": "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_RaiseTargetCpaParameters",
          "description": "Parameters to use when applying raise Target CPA recommendation."
        },
        "useBroadMatchKeyword": {
          "$ref": "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_UseBroadMatchKeywordParameters",
          "description": "Parameters to use when applying a use broad match keyword recommendation."
        },
        "targetCpaOptIn": {
          "$ref": "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_TargetCpaOptInParameters",
          "description": "Optional parameters to use when applying target CPA opt-in recommendation."
        },
        "targetRoasOptIn": {
          "description": "Optional parameters to use when applying target ROAS opt-in recommendation.",
          "$ref": "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_TargetRoasOptInParameters"
        },
        "leadFormAsset": {
          "description": "Parameters to use when applying lead form asset recommendation.",
          "$ref": "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_LeadFormAssetParameters"
        },
        "forecastingSetTargetRoas": {
          "$ref": "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_ForecastingSetTargetRoasParameters",
          "description": "Parameters to use when applying a forecasting set target ROAS recommendation."
        },
        "lowerTargetRoas": {
          "$ref": "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_LowerTargetRoasParameters",
          "description": "Parameters to use when applying lower Target ROAS recommendation."
        },
        "setTargetCpa": {
          "description": "Parameters to use when applying set target CPA recommendation.",
          "$ref": "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_ForecastingSetTargetCpaParameters"
        },
        "calloutAsset": {
          "$ref": "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_CalloutAssetParameters",
          "description": "Parameters to use when applying callout asset recommendation."
        },
        "setTargetRoas": {
          "description": "Parameters to use when applying set target ROAS recommendation.",
          "$ref": "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_ForecastingSetTargetRoasParameters"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__CreateOfflineUserDataJobRequest": {
      "id": "GoogleAdsGoogleadsV23Services__CreateOfflineUserDataJobRequest",
      "properties": {
        "job": {
          "$ref": "GoogleAdsGoogleadsV23Resources__OfflineUserDataJob",
          "description": "Required. The offline user data job to be created."
        },
        "enableMatchRateRangePreview": {
          "description": "If true, match rate range for the offline user data job is calculated and made available in the resource.",
          "type": "boolean"
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        }
      },
      "type": "object",
      "description": "Request message for OfflineUserDataJobService.CreateOfflineUserDataJob."
    },
    "GoogleAdsGoogleadsV23Services__MutateBiddingStrategyResult": {
      "id": "GoogleAdsGoogleadsV23Services__MutateBiddingStrategyResult",
      "description": "The result for the bidding strategy mutate.",
      "type": "object",
      "properties": {
        "biddingStrategy": {
          "description": "The mutated bidding strategy with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV23Resources__BiddingStrategy"
        },
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__LanguageDistribution": {
      "id": "GoogleAdsGoogleadsV23Services__LanguageDistribution",
      "type": "object",
      "description": "Languages that pertain to a YouTube channel based on the channel content. Only languages above a certain proportion threshold are included.",
      "properties": {
        "languageCode": {
          "description": "[Language code](https://developers.google.com/google-ads/api/reference/data/codes-formats#languages) of the language for the YouTube channel.",
          "type": "string"
        },
        "proportion": {
          "type": "number",
          "format": "double",
          "description": "The proportion (between 0 and 1) of the channel's videos in the language."
        }
      }
    },
    "GoogleAdsGoogleadsV23Common_PolicyTopicConstraint_CountryConstraintList": {
      "description": "A list of countries where a resource's serving is constrained.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common_PolicyTopicConstraint_CountryConstraintList",
      "properties": {
        "totalTargetedCountries": {
          "format": "int32",
          "type": "integer",
          "description": "Total number of countries targeted by the resource."
        },
        "countries": {
          "description": "Countries in which serving is restricted.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common_PolicyTopicConstraint_CountryConstraint"
          },
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateBatchJobResult": {
      "id": "GoogleAdsGoogleadsV23Services__MutateBatchJobResult",
      "properties": {
        "resourceName": {
          "description": "The resource name of the batch job.",
          "type": "string"
        }
      },
      "type": "object",
      "description": "The result for the batch job mutate."
    },
    "GoogleAdsGoogleadsV23Services__AdGroupLabelOperation": {
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new ad group label.",
          "$ref": "GoogleAdsGoogleadsV23Resources__AdGroupLabel"
        },
        "remove": {
          "description": "Remove operation: A resource name for the ad group label being removed, in this format: `customers/{customer_id}/adGroupLabels/{ad_group_id}~{label_id}`",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__AdGroupLabelOperation",
      "description": "A single operation (create, remove) on an ad group label.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__ListingGroupFilterDimension": {
      "properties": {
        "productBrand": {
          "description": "Brand of a product offer.",
          "$ref": "GoogleAdsGoogleadsV23Resources_ListingGroupFilterDimension_ProductBrand"
        },
        "productChannel": {
          "$ref": "GoogleAdsGoogleadsV23Resources_ListingGroupFilterDimension_ProductChannel",
          "description": "Locality of a product offer."
        },
        "productCategory": {
          "$ref": "GoogleAdsGoogleadsV23Resources_ListingGroupFilterDimension_ProductCategory",
          "description": "Category of a product offer."
        },
        "productItemId": {
          "description": "Item id of a product offer.",
          "$ref": "GoogleAdsGoogleadsV23Resources_ListingGroupFilterDimension_ProductItemId"
        },
        "productType": {
          "$ref": "GoogleAdsGoogleadsV23Resources_ListingGroupFilterDimension_ProductType",
          "description": "Type of a product offer."
        },
        "productCondition": {
          "description": "Condition of a product offer.",
          "$ref": "GoogleAdsGoogleadsV23Resources_ListingGroupFilterDimension_ProductCondition"
        },
        "webpage": {
          "description": "Filters for URLs in a page feed and URLs from the advertiser web domain.",
          "$ref": "GoogleAdsGoogleadsV23Resources_ListingGroupFilterDimension_Webpage"
        },
        "productCustomAttribute": {
          "$ref": "GoogleAdsGoogleadsV23Resources_ListingGroupFilterDimension_ProductCustomAttribute",
          "description": "Custom attribute of a product offer."
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__ListingGroupFilterDimension",
      "description": "Listing dimensions for the asset group listing group filter."
    },
    "GoogleAdsGoogleadsV23Services__GenerateKeywordIdeasRequest": {
      "description": "Request message for KeywordPlanIdeaService.GenerateKeywordIdeas.",
      "id": "GoogleAdsGoogleadsV23Services__GenerateKeywordIdeasRequest",
      "properties": {
        "keywordAndUrlSeed": {
          "description": "A Keyword and a specific Url to generate ideas from for example, cars, www.example.com/cars.",
          "$ref": "GoogleAdsGoogleadsV23Services__KeywordAndUrlSeed"
        },
        "keywordPlanNetwork": {
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Google Search.",
            "Google Search + Search partners."
          ],
          "type": "string",
          "description": "Targeting network. If not set, Google Search And Partners Network will be used.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "GOOGLE_SEARCH",
            "GOOGLE_SEARCH_AND_PARTNERS"
          ]
        },
        "geoTargetConstants": {
          "type": "array",
          "description": "The resource names of the location to target. Maximum is 10. An empty list MAY be used to specify all targeting geos.",
          "items": {
            "type": "string"
          }
        },
        "pageToken": {
          "description": "Token of the page to retrieve. If not specified, the first page of results will be returned. To request next page of results use the value obtained from `next_page_token` in the previous response. The request fields must match across pages.",
          "type": "string"
        },
        "historicalMetricsOptions": {
          "$ref": "GoogleAdsGoogleadsV23Common__HistoricalMetricsOptions",
          "description": "The options for historical metrics data."
        },
        "aggregateMetrics": {
          "description": "The aggregate fields to include in response.",
          "$ref": "GoogleAdsGoogleadsV23Common__KeywordPlanAggregateMetrics"
        },
        "language": {
          "description": "The resource name of the language to target. Each keyword belongs to some set of languages; a keyword is included if language is one of its languages. If not set, all keywords will be included.",
          "type": "string"
        },
        "urlSeed": {
          "$ref": "GoogleAdsGoogleadsV23Services__UrlSeed",
          "description": "A specific url to generate ideas from, for example, www.example.com/cars."
        },
        "siteSeed": {
          "description": "The site to generate ideas from, for example, www.example.com.",
          "$ref": "GoogleAdsGoogleadsV23Services__SiteSeed"
        },
        "keywordSeed": {
          "$ref": "GoogleAdsGoogleadsV23Services__KeywordSeed",
          "description": "A Keyword or phrase to generate ideas from, for example, cars."
        },
        "pageSize": {
          "format": "int32",
          "type": "integer",
          "description": "Number of results to retrieve in a single page. A maximum of 10,000 results may be returned, if the page_size exceeds this, it is ignored. If unspecified, at most 10,000 results will be returned. The server may decide to further limit the number of returned resources. If the response contains fewer than 10,000 results it may not be assumed as last page of results."
        },
        "includeAdultKeywords": {
          "type": "boolean",
          "description": "If true, adult keywords will be included in response. The default value is false."
        },
        "keywordAnnotation": {
          "description": "The keyword annotations to include in response.",
          "items": {
            "enumDescriptions": [
              "Not specified.",
              "The value is unknown in this version.",
              "Return the keyword concept and concept group data."
            ],
            "type": "string",
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "KEYWORD_CONCEPT"
            ]
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__SearchThemeInfo": {
      "type": "object",
      "properties": {
        "text": {
          "description": "Each Search Theme has a value of a simple string, like keywords. There are limits on overall length, allowed characters, and number of words.",
          "type": "string"
        }
      },
      "description": "A Search Theme criterion only on Performance Max campaign. Represents a keyword-like advertiser input.",
      "id": "GoogleAdsGoogleadsV23Common__SearchThemeInfo"
    },
    "GoogleAdsGoogleadsV23Services__MutateCustomerResponse": {
      "id": "GoogleAdsGoogleadsV23Services__MutateCustomerResponse",
      "type": "object",
      "properties": {
        "result": {
          "description": "Result for the mutate.",
          "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomerResult"
        }
      },
      "description": "Response message for customer mutate."
    },
    "GoogleAdsGoogleadsV23Common__AdScheduleInfo": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__AdScheduleInfo",
      "properties": {
        "dayOfWeek": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Monday.",
            "Tuesday.",
            "Wednesday.",
            "Thursday.",
            "Friday.",
            "Saturday.",
            "Sunday."
          ],
          "description": "Day of the week the schedule applies to. This field is required for CREATE operations and is prohibited on UPDATE operations.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MONDAY",
            "TUESDAY",
            "WEDNESDAY",
            "THURSDAY",
            "FRIDAY",
            "SATURDAY",
            "SUNDAY"
          ]
        },
        "endHour": {
          "description": "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.",
          "type": "integer",
          "format": "int32"
        },
        "endMinute": {
          "description": "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.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Zero minutes past the hour.",
            "Fifteen minutes past the hour.",
            "Thirty minutes past the hour.",
            "Forty-five minutes past the hour."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ZERO",
            "FIFTEEN",
            "THIRTY",
            "FORTY_FIVE"
          ]
        },
        "startMinute": {
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Zero minutes past the hour.",
            "Fifteen minutes past the hour.",
            "Thirty minutes past the hour.",
            "Forty-five minutes past the hour."
          ],
          "description": "Minutes after the start hour at which this schedule starts. This field is required for CREATE operations and is prohibited on UPDATE operations.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ZERO",
            "FIFTEEN",
            "THIRTY",
            "FORTY_FIVE"
          ],
          "type": "string"
        },
        "startHour": {
          "format": "int32",
          "type": "integer",
          "description": "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."
        }
      },
      "description": "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."
    },
    "GoogleAdsGoogleadsV23Resources__AssetGroupListingGroupFilter": {
      "description": "AssetGroupListingGroupFilter represents a listing group filter tree node in an asset group.",
      "id": "GoogleAdsGoogleadsV23Resources__AssetGroupListingGroupFilter",
      "properties": {
        "assetGroup": {
          "type": "string",
          "description": "Immutable. The asset group which this asset group listing group filter is part of."
        },
        "type": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SUBDIVISION",
            "UNIT_INCLUDED",
            "UNIT_EXCLUDED"
          ],
          "description": "Immutable. Type of a listing group filter node.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Subdivision of products along some listing dimensions.",
            "An included listing group filter leaf node.",
            "An excluded listing group filter leaf node."
          ]
        },
        "parentListingGroupFilter": {
          "description": "Immutable. Resource name of the parent listing group subdivision. Null for the root listing group filter node.",
          "type": "string"
        },
        "id": {
          "readOnly": true,
          "description": "Output only. The ID of the ListingGroupFilter.",
          "type": "string",
          "format": "int64"
        },
        "caseValue": {
          "description": "Dimension value with which this listing group is refining its parent. Undefined for the root group.",
          "$ref": "GoogleAdsGoogleadsV23Resources__ListingGroupFilterDimension"
        },
        "listingSource": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SHOPPING",
            "WEBPAGE"
          ],
          "description": "Immutable. The source of listings filtered by this listing group filter.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Listings from a Shopping source, like products from Google Merchant Center.",
            "Listings from a webpage source, like URLs from a page feed or from the advertiser web domain."
          ]
        },
        "resourceName": {
          "description": "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}~{listing_group_filter_id}`",
          "type": "string"
        },
        "path": {
          "description": "Output only. The path of dimensions defining this listing group filter.",
          "$ref": "GoogleAdsGoogleadsV23Resources__ListingGroupFilterDimensionPath",
          "readOnly": true
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateKeywordPlanAdGroupKeywordsRequest": {
      "type": "object",
      "properties": {
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "operations": {
          "type": "array",
          "description": "Required. The list of operations to perform on individual Keyword Plan ad group keywords.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__KeywordPlanAdGroupKeywordOperation"
          }
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateKeywordPlanAdGroupKeywordsRequest",
      "description": "Request message for KeywordPlanAdGroupKeywordService.MutateKeywordPlanAdGroupKeywords."
    },
    "GoogleAdsGoogleadsV23Common__TargetingSetting": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__TargetingSetting",
      "description": "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",
      "properties": {
        "targetRestrictions": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__TargetRestriction"
          },
          "type": "array",
          "description": "The per-targeting-dimension setting to restrict the reach of your campaign or ad group."
        },
        "targetRestrictionOperations": {
          "description": "The list of operations changing the target restrictions. Adding a target restriction with a targeting dimension that already exists causes the existing target restriction to be replaced with the new value.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__TargetRestrictionOperation"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV23Services_Incentive_Requirement": {
      "properties": {
        "spend": {
          "$ref": "GoogleAdsGoogleadsV23Services_IncentiveRequirement_Spend",
          "description": "Optional. Spend requirement for an incentive."
        }
      },
      "type": "object",
      "description": "Requirement for an incentive.",
      "id": "GoogleAdsGoogleadsV23Services_Incentive_Requirement"
    },
    "GoogleAdsGoogleadsV23Services__Forecast": {
      "description": "Forecasted traffic metrics for the planned products and targeting.",
      "properties": {
        "onTargetCoviewReach": {
          "format": "int64",
          "description": "Number of unique people reached that exactly matches the Targeting including co-viewers.",
          "type": "string"
        },
        "effectiveFrequencyBreakdowns": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__EffectiveFrequencyBreakdown"
          },
          "description": "A list of effective frequency forecasts. The list is ordered starting with 1+ and ending with the value set in GenerateReachForecastRequest.effective_frequency_limit. If no effective_frequency_limit was set, this list will be empty."
        },
        "totalReach": {
          "format": "int64",
          "type": "string",
          "description": "Total number of unique people reached at least GenerateReachForecastRequest.min_effective_frequency or GenerateReachForecastRequest.effective_frequency_limit times. This includes people that may fall outside the specified Targeting. Note that a minimum number of unique people must be reached in order for data to be reported. If the minimum number is not met, the total_reach value will be rounded to 0."
        },
        "onTargetCoviewImpressions": {
          "description": "Number of ad impressions that exactly matches the Targeting including co-viewers.",
          "format": "int64",
          "type": "string"
        },
        "totalImpressions": {
          "format": "int64",
          "description": "Total number of ad impressions. This includes impressions that may fall outside the specified Targeting, due to insufficient information on signed-in users.",
          "type": "string"
        },
        "viewableImpressions": {
          "format": "int64",
          "description": "Number of times the ad's impressions were considered viewable. See https://support.google.com/google-ads/answer/7029393 for more information about what makes an ad viewable and how viewability is measured.",
          "type": "string"
        },
        "trueviewViews": {
          "type": "string",
          "format": "int64",
          "description": "Number of ad views forecasted for the specified product and targeting. A TrueView View is counted when a viewer views a larger portion or the entirety of an ad beyond an impression. See https://support.google.com/google-ads/answer/2375431 for more information on TrueView Views."
        },
        "conversions": {
          "type": "number",
          "format": "double",
          "description": "The number of conversions. This metric is only available for DEMAND_GEN plannable products. See https://support.google.com/google-ads/answer/2375431 for more information on conversions."
        },
        "onTargetImpressions": {
          "description": "Number of ad impressions that exactly matches the Targeting.",
          "format": "int64",
          "type": "string"
        },
        "onTargetReach": {
          "description": "Number of unique people reached at least GenerateReachForecastRequest.min_effective_frequency or GenerateReachForecastRequest.effective_frequency_limit times that exactly matches the Targeting. Note that a minimum number of unique people must be reached in order for data to be reported. If the minimum number is not met, the on_target_reach value will be rounded to 0.",
          "type": "string",
          "format": "int64"
        },
        "totalCoviewReach": {
          "description": "Number of unique people reached including co-viewers. This includes people that may fall outside the specified Targeting.",
          "format": "int64",
          "type": "string"
        },
        "totalCoviewImpressions": {
          "description": "Total number of ad impressions including co-viewers. This includes impressions that may fall outside the specified Targeting, due to insufficient information on signed-in users.",
          "type": "string",
          "format": "int64"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__Forecast",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources_CampaignVideoCampaignSettings_VideoAdSequenceStep": {
      "type": "object",
      "properties": {
        "previousStepId": {
          "type": "string",
          "description": "The ID of the previous step. This field is required for all steps except the first one. It must point to a step that appears in the step definition list before this step.",
          "format": "int64"
        },
        "videoAdSequenceStepId": {
          "description": "The ID of this sequence step.",
          "format": "int64",
          "type": "string"
        },
        "previousStepInteractionType": {
          "description": "Type of interaction *on the previous step* required in order for the user to advance to this step. As with the previous step ID, it's required for every step except for the first one.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The viewer engaged with or watched at least 30 seconds of the ad (or the entire ad, if it was less than 30 seconds). Only available for campaigns using Target CPM as the bidding strategy and skippable in-stream ads as the ad format.",
            "The viewer skipped the ad. Only available for campaigns using Target CPM as the bidding strategy and skippable in-stream ads as the ad format.",
            "The ad was shown to the viewer.",
            "An ad impression that was not immediately skipped, but didn't reach the billable event either."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PAID_VIEW",
            "SKIP",
            "IMPRESSION",
            "ENGAGED_IMPRESSION"
          ]
        },
        "adGroupType": {
          "enumDescriptions": [
            "The type has not been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The default ad group type for Search campaigns.",
            "The default ad group type for Display campaigns.",
            "The ad group type for Shopping campaigns serving standard product ads.",
            "The default ad group type for Hotel campaigns.",
            "The type for ad groups in Smart Shopping campaigns.",
            "Short unskippable in-stream video ads.",
            "TrueView (skippable) in-stream video ads.",
            "TrueView in-display video ads.",
            "Unskippable in-stream video ads.",
            "Ad group type for Dynamic Search Ads ad groups.",
            "The type for ad groups in Shopping Comparison Listing campaigns.",
            "The ad group type for Promoted Hotel ad groups.",
            "Video responsive ad groups.",
            "Video efficient reach ad groups.",
            "Ad group type for Smart campaigns.",
            "Ad group type for Travel campaigns.",
            "Ad group type for YouTube Audio campaigns."
          ],
          "description": "The ad group type for this step (denoting the video format).",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SEARCH_STANDARD",
            "DISPLAY_STANDARD",
            "SHOPPING_PRODUCT_ADS",
            "HOTEL_ADS",
            "SHOPPING_SMART_ADS",
            "VIDEO_BUMPER",
            "VIDEO_TRUE_VIEW_IN_STREAM",
            "VIDEO_TRUE_VIEW_IN_DISPLAY",
            "VIDEO_NON_SKIPPABLE_IN_STREAM",
            "SEARCH_DYNAMIC_ADS",
            "SHOPPING_COMPARISON_LISTING_ADS",
            "PROMOTED_HOTEL_ADS",
            "VIDEO_RESPONSIVE",
            "VIDEO_EFFICIENT_REACH",
            "SMART_CAMPAIGN_ADS",
            "TRAVEL_ADS",
            "YOUTUBE_AUDIO"
          ],
          "type": "string"
        },
        "assetId": {
          "description": "The ID of the Asset for this step. The asset must be type YOUTUBE_VIDEO.",
          "format": "int64",
          "type": "string"
        }
      },
      "description": "Information about a step within a video sequence.",
      "id": "GoogleAdsGoogleadsV23Resources_CampaignVideoCampaignSettings_VideoAdSequenceStep"
    },
    "GoogleAdsGoogleadsV23Resources__AndroidPrivacySharedKeyGoogleAdGroup": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__AndroidPrivacySharedKeyGoogleAdGroup",
      "description": "An Android privacy shared key view for Google ad group key.",
      "properties": {
        "androidPrivacyInteractionType": {
          "description": "Output only. The interaction type enum used in the share key encoding.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "The physical click interaction type.",
            "The 10 seconds engaged view interaction type.",
            "The view (ad impression) interaction type."
          ],
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CLICK",
            "ENGAGED_VIEW",
            "VIEW"
          ]
        },
        "campaignId": {
          "type": "string",
          "readOnly": true,
          "format": "int64",
          "description": "Output only. The campaign ID used in the share key encoding."
        },
        "resourceName": {
          "readOnly": true,
          "description": "Output only. The resource name of the Android privacy shared key. Android privacy shared key resource names have the form: `customers/{customer_id}/androidPrivacySharedKeyGoogleAdGroups/{campaign_id}~{ad_group_id}~{android_privacy_interaction_type}~{android_privacy_network_type}~{android_privacy_interaction_date(yyyy-mm-dd)}`",
          "type": "string"
        },
        "androidPrivacyInteractionDate": {
          "type": "string",
          "description": "Output only. The interaction date used in the shared key encoding in the format of \"YYYY-MM-DD\" in UTC timezone.",
          "readOnly": true
        },
        "adGroupId": {
          "readOnly": true,
          "format": "int64",
          "description": "Output only. The ad group ID used in the share key encoding.",
          "type": "string"
        },
        "androidPrivacyNetworkType": {
          "type": "string",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Search Network.",
            "Display Network.",
            "YouTube Network."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SEARCH",
            "DISPLAY",
            "YOUTUBE"
          ],
          "description": "Output only. The network type enum used in the share key encoding."
        },
        "sharedAdGroupKey": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. 128 bit hex string of the encoded shared ad group key, including a '0x' prefix. This key can be used to do a bitwise OR operator with the aggregate conversion key to create a full aggregation key to retrieve the Aggregate API Report in Android Privacy Sandbox."
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources_ConversionAction_FirebaseSettings": {
      "type": "object",
      "properties": {
        "propertyName": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The GA property name of the conversion."
        },
        "propertyId": {
          "description": "Output only. The GA property ID of the conversion.",
          "readOnly": true,
          "type": "string",
          "format": "int64"
        },
        "eventName": {
          "type": "string",
          "description": "Output only. The event name of a Firebase conversion.",
          "readOnly": true
        },
        "projectId": {
          "readOnly": true,
          "description": "Output only. The Firebase project ID of the conversion.",
          "type": "string"
        }
      },
      "description": "Settings related to a Firebase conversion action.",
      "id": "GoogleAdsGoogleadsV23Resources_ConversionAction_FirebaseSettings"
    },
    "GoogleAdsGoogleadsV23Services__MutateAudiencesResponse": {
      "id": "GoogleAdsGoogleadsV23Services__MutateAudiencesResponse",
      "description": "Response message for an audience mutate.",
      "type": "object",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateAudienceResult"
          },
          "type": "array",
          "description": "All results for the mutate."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MoveManagerLinkRequest": {
      "id": "GoogleAdsGoogleadsV23Services__MoveManagerLinkRequest",
      "properties": {
        "previousCustomerManagerLink": {
          "type": "string",
          "description": "Required. The resource name of the previous CustomerManagerLink. The resource name has the form: `customers/{customer_id}/customerManagerLinks/{manager_customer_id}~{manager_link_id}`"
        },
        "newManager": {
          "type": "string",
          "description": "Required. The resource name of the new manager customer that the client wants to move to. Customer resource names have the format: \"customers/{customer_id}\""
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        }
      },
      "description": "Request message for CustomerManagerLinkService.MoveManagerLink.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateAdGroupCriterionLabelResult": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateAdGroupCriterionLabelResult",
      "description": "The result for an ad group criterion label mutate.",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__AdGroupCriterionSimulation": {
      "description": "An ad group criterion simulation. Supported combinations of advertising channel type, criterion type, simulation type, and simulation modification method are detailed below respectively. Hotel AdGroupCriterion simulation operations starting in V5. 1. DISPLAY - KEYWORD - CPC_BID - UNIFORM 2. SEARCH - KEYWORD - CPC_BID - UNIFORM 3. SHOPPING - LISTING_GROUP - CPC_BID - UNIFORM 4. HOTEL - LISTING_GROUP - CPC_BID - UNIFORM 5. HOTEL - LISTING_GROUP - PERCENT_CPC_BID - UNIFORM",
      "properties": {
        "endDate": {
          "description": "Output only. Last day on which the simulation is based, in YYYY-MM-DD format.",
          "readOnly": true,
          "type": "string"
        },
        "adGroupId": {
          "description": "Output only. AdGroup ID of the simulation.",
          "type": "string",
          "readOnly": true,
          "format": "int64"
        },
        "percentCpcBidPointList": {
          "$ref": "GoogleAdsGoogleadsV23Common__PercentCpcBidSimulationPointList",
          "readOnly": true,
          "description": "Output only. Simulation points if the simulation type is PERCENT_CPC_BID."
        },
        "startDate": {
          "description": "Output only. First day on which the simulation is based, in YYYY-MM-DD format.",
          "type": "string",
          "readOnly": true
        },
        "modificationMethod": {
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The values in a simulation were applied to all children of a given resource uniformly. Overrides on child resources were not respected.",
            "The values in a simulation were applied to the given resource. Overrides on child resources were respected, and traffic estimates do not include these resources.",
            "The values in a simulation were all scaled by the same factor. For example, in a simulated TargetCpa campaign, the campaign target and all ad group targets were scaled by a factor of X."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "UNIFORM",
            "DEFAULT",
            "SCALING"
          ],
          "description": "Output only. How the simulation modifies the field."
        },
        "cpcBidPointList": {
          "description": "Output only. Simulation points if the simulation type is CPC_BID.",
          "$ref": "GoogleAdsGoogleadsV23Common__CpcBidSimulationPointList",
          "readOnly": true
        },
        "resourceName": {
          "readOnly": true,
          "description": "Output only. The resource name of the ad group criterion simulation. Ad group criterion simulation resource names have the form: `customers/{customer_id}/adGroupCriterionSimulations/{ad_group_id}~{criterion_id}~{type}~{modification_method}~{start_date}~{end_date}`",
          "type": "string"
        },
        "type": {
          "description": "Output only. The field that the simulation modifies.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The simulation is for a CPC bid.",
            "The simulation is for a CPV bid.",
            "The simulation is for a CPA target.",
            "The simulation is for a bid modifier.",
            "The simulation is for a ROAS target.",
            "The simulation is for a percent CPC bid.",
            "The simulation is for an impression share target.",
            "The simulation is for a budget."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CPC_BID",
            "CPV_BID",
            "TARGET_CPA",
            "BID_MODIFIER",
            "TARGET_ROAS",
            "PERCENT_CPC_BID",
            "TARGET_IMPRESSION_SHARE",
            "BUDGET"
          ],
          "type": "string"
        },
        "criterionId": {
          "description": "Output only. Criterion ID of the simulation.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__AdGroupCriterionSimulation"
    },
    "GoogleAdsGoogleadsV23Resources__AssetSetTypeView": {
      "description": "An asset set type view. This view reports non-overcounted metrics for each asset set type. Child asset set types are not included in this report. Their stats are aggregated under the parent asset set type.",
      "properties": {
        "assetSetType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Page asset set.",
            "Dynamic education asset set.",
            "Google Merchant Center asset set.",
            "Dynamic real estate asset set.",
            "Dynamic custom asset set.",
            "Dynamic hotels and rentals asset set.",
            "Dynamic flights asset set.",
            "Dynamic travel asset set.",
            "Dynamic local asset set.",
            "Dynamic jobs asset set.",
            "Location sync level asset set.",
            "Business Profile location group asset set.",
            "Chain location group asset set which can be used for both owned locations and affiliate locations.",
            "Static location group asset set which can be used for both owned locations and affiliate locations.",
            "Hotel Property asset set which is used to link a hotel property feed to Performance Max for travel goals campaigns.",
            "Travel Feed asset set type. Can represent either a Hotel feed or a Things to Do (activities) feed."
          ],
          "description": "Output only. The asset set type of the asset set type view.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PAGE_FEED",
            "DYNAMIC_EDUCATION",
            "MERCHANT_CENTER_FEED",
            "DYNAMIC_REAL_ESTATE",
            "DYNAMIC_CUSTOM",
            "DYNAMIC_HOTELS_AND_RENTALS",
            "DYNAMIC_FLIGHTS",
            "DYNAMIC_TRAVEL",
            "DYNAMIC_LOCAL",
            "DYNAMIC_JOBS",
            "LOCATION_SYNC",
            "BUSINESS_PROFILE_DYNAMIC_LOCATION_GROUP",
            "CHAIN_DYNAMIC_LOCATION_GROUP",
            "STATIC_LOCATION_GROUP",
            "HOTEL_PROPERTY",
            "TRAVEL_FEED"
          ],
          "readOnly": true
        },
        "resourceName": {
          "readOnly": true,
          "description": "Output only. The resource name of the asset set type view. Asset set type view resource names have the form: `customers/{customer_id}/assetSetTypeViews/{asset_set_type}`",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__AssetSetTypeView"
    },
    "GoogleAdsGoogleadsV23Services__MutateGoalResult": {
      "type": "object",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      },
      "description": "The result for the goal mutate.",
      "id": "GoogleAdsGoogleadsV23Services__MutateGoalResult"
    },
    "GoogleAdsGoogleadsV23Services__GenerateKeywordHistoricalMetricsResponse": {
      "properties": {
        "aggregateMetricResults": {
          "description": "The aggregate metrics for all keywords.",
          "$ref": "GoogleAdsGoogleadsV23Common__KeywordPlanAggregateMetricResults"
        },
        "results": {
          "description": "List of keywords and their historical metrics.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__GenerateKeywordHistoricalMetricsResult"
          }
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__GenerateKeywordHistoricalMetricsResponse",
      "description": "Response message for KeywordPlanIdeaService.GenerateKeywordHistoricalMetrics."
    },
    "GoogleAdsGoogleadsV23Services__ListInsightsEligibleDatesResponse": {
      "properties": {
        "dataMonths": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The months for which AudienceInsights data is currently available, each represented as a string in the form \"YYYY-MM\"."
        },
        "lastThirtyDays": {
          "description": "The actual dates covered by the \"last 30 days\" date range that will be used implicitly for AudienceInsightsService.GenerateAudienceCompositionInsights requests that have no data_month set.",
          "$ref": "GoogleAdsGoogleadsV23Common__DateRange"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__ListInsightsEligibleDatesResponse",
      "description": "Response message for AudienceInsightsService.ListInsightsEligibleDates."
    },
    "GoogleAdsGoogleadsV23Resources__CustomAudienceMember": {
      "id": "GoogleAdsGoogleadsV23Resources__CustomAudienceMember",
      "type": "object",
      "properties": {
        "memberType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "KEYWORD",
            "URL",
            "PLACE_CATEGORY",
            "APP"
          ],
          "description": "The type of custom audience member, KEYWORD, URL, PLACE_CATEGORY or APP.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Users whose interests or actions are described by a keyword.",
            "Users who have interests related to the website's content.",
            "Users who visit place types described by a place category.",
            "Users who have installed a mobile app."
          ],
          "type": "string"
        },
        "url": {
          "description": "An HTTP URL, protocol-included — at most 2048 characters, which includes contents users have interests in.",
          "type": "string"
        },
        "keyword": {
          "description": "A keyword or keyword phrase — at most 10 words and 80 characters. Languages with double-width characters such as Chinese, Japanese, or Korean, are allowed 40 characters, which describes the user's interests or actions.",
          "type": "string"
        },
        "app": {
          "description": "A package name of Android apps which users installed such as com.google.example.",
          "type": "string"
        },
        "placeCategory": {
          "description": "A place type described by a place category users visit.",
          "type": "string",
          "format": "int64"
        }
      },
      "description": "A member of custom audience. A member can be a KEYWORD, URL, PLACE_CATEGORY or APP. It can only be created or removed but not changed."
    },
    "GoogleAdsGoogleadsV23Resources_ConversionAction_ThirdPartyAppAnalyticsSettings": {
      "properties": {
        "eventName": {
          "description": "Output only. The event name of a third-party app analytics conversion.",
          "readOnly": true,
          "type": "string"
        },
        "providerName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Name of the third-party app analytics provider."
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources_ConversionAction_ThirdPartyAppAnalyticsSettings",
      "description": "Settings related to a third party app analytics conversion action.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services_SuggestGeoTargetConstantsRequest_LocationNames": {
      "id": "GoogleAdsGoogleadsV23Services_SuggestGeoTargetConstantsRequest_LocationNames",
      "type": "object",
      "properties": {
        "names": {
          "items": {
            "type": "string"
          },
          "description": "A list of location names.",
          "type": "array"
        }
      },
      "description": "A list of location names."
    },
    "GoogleAdsGoogleadsV23Services__MutateCustomerSkAdNetworkConversionValueSchemaRequest": {
      "id": "GoogleAdsGoogleadsV23Services__MutateCustomerSkAdNetworkConversionValueSchemaRequest",
      "description": "Request message for CustomerSkAdNetworkConversionValueSchemaService.MutateCustomerSkAdNetworkConversionValueSchema.",
      "type": "object",
      "properties": {
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "operation": {
          "description": "The operation to perform.",
          "$ref": "GoogleAdsGoogleadsV23Services__CustomerSkAdNetworkConversionValueSchemaOperation"
        },
        "enableWarnings": {
          "type": "boolean",
          "description": "Optional. If true, enables returning warnings. Warnings return error messages and error codes without blocking the execution of the mutate operation."
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__TargetImpressionShare": {
      "id": "GoogleAdsGoogleadsV23Common__TargetImpressionShare",
      "description": "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).",
      "properties": {
        "locationFractionMicros": {
          "type": "string",
          "format": "int64",
          "description": "The chosen fraction of ads to be shown in the targeted location in micros. For example, 1% equals 10,000."
        },
        "location": {
          "description": "The targeted location on the search results page.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Any location on the web page.",
            "Top box of ads.",
            "Top slot in the top box of ads."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ANYWHERE_ON_PAGE",
            "TOP_OF_PAGE",
            "ABSOLUTE_TOP_OF_PAGE"
          ]
        },
        "cpcBidCeilingMicros": {
          "description": "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.",
          "type": "string",
          "format": "int64"
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__AudienceOperation": {
      "properties": {
        "update": {
          "description": "Update operation: The audience is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV23Resources__Audience"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new audience",
          "$ref": "GoogleAdsGoogleadsV23Resources__Audience"
        },
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string",
          "format": "google-fieldmask"
        }
      },
      "description": "A single operation (create, update) on an audience.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__AudienceOperation"
    },
    "GoogleAdsGoogleadsV23Services__ShareablePreviewOrError": {
      "description": "Result of the generate shareable preview.",
      "id": "GoogleAdsGoogleadsV23Services__ShareablePreviewOrError",
      "properties": {
        "partialFailureError": {
          "$ref": "GoogleRpc__Status",
          "description": "The shareable preview partial failure error."
        },
        "shareablePreviewResult": {
          "$ref": "GoogleAdsGoogleadsV23Services__ShareablePreviewResult",
          "description": "The shareable preview result."
        },
        "assetGroupIdentifier": {
          "description": "The asset group of the shareable preview.",
          "$ref": "GoogleAdsGoogleadsV23Services__AssetGroupIdentifier"
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__PlannableUserList": {
      "type": "object",
      "description": "A plannable user list.",
      "id": "GoogleAdsGoogleadsV23Services__PlannableUserList",
      "properties": {
        "userListType": {
          "description": "The user list type.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "UserList represented as a collection of conversion types.",
            "UserList represented as a combination of other user lists/interests.",
            "UserList created in the Google Ad Manager platform.",
            "UserList associated with a rule.",
            "UserList with users similar to users of another UserList.",
            "UserList of first-party CRM data provided by advertiser in the form of emails or other formats.",
            "LookalikeUserlist, composed of users similar to those of a configurable seed (set of UserLists)"
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "REMARKETING",
            "LOGICAL",
            "EXTERNAL_REMARKETING",
            "RULE_BASED",
            "SIMILAR",
            "CRM_BASED",
            "LOOKALIKE"
          ]
        },
        "plannableStatus": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PLANNABLE",
            "UNPLANNABLE"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The user list is plannable.",
            "The user list is not plannable."
          ],
          "description": "The plannable status of the user list."
        },
        "userListInfo": {
          "$ref": "GoogleAdsGoogleadsV23Common__UserListInfo",
          "description": "The user list ID."
        },
        "plannableUserListMetadata": {
          "description": "The relevant metadata for this user list.",
          "$ref": "GoogleAdsGoogleadsV23Services__PlannableUserListMetadata"
        },
        "displayName": {
          "description": "The name of the user list.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateSharedSetResult": {
      "properties": {
        "sharedSet": {
          "$ref": "GoogleAdsGoogleadsV23Resources__SharedSet",
          "description": "The mutated shared set with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\"."
        },
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateSharedSetResult",
      "type": "object",
      "description": "The result for the shared set mutate."
    },
    "GoogleAdsGoogleadsV23Resources__KeywordPlanForecastPeriod": {
      "description": "The forecasting period associated with the keyword plan.",
      "type": "object",
      "properties": {
        "dateInterval": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NEXT_WEEK",
            "NEXT_MONTH",
            "NEXT_QUARTER"
          ],
          "description": "A future date range relative to the current date used for forecasting.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "The next week date range for keyword plan. The next week is based on the default locale of the user's account and is mostly SUN-SAT or MON-SUN. This can be different from next-7 days.",
            "The next month date range for keyword plan.",
            "The next quarter date range for keyword plan."
          ],
          "type": "string"
        },
        "dateRange": {
          "$ref": "GoogleAdsGoogleadsV23Common__DateRange",
          "description": "The custom date range used for forecasting. It cannot be greater than a year. The start and end dates must be in the future. Otherwise, an error will be returned when the forecasting action is performed. The start and end dates are inclusive."
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__KeywordPlanForecastPeriod"
    },
    "GoogleAdsGoogleadsV23Services__ConversionValueRuleSetOperation": {
      "description": "A single operation (create, update, remove) on a conversion value rule set.",
      "properties": {
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed conversion value rule set is expected, in this format: `customers/{customer_id}/conversionValueRuleSets/{conversion_value_rule_set_id}`"
        },
        "update": {
          "$ref": "GoogleAdsGoogleadsV23Resources__ConversionValueRuleSet",
          "description": "Update operation: The conversion value rule set is expected to have a valid resource name."
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new conversion value rule set.",
          "$ref": "GoogleAdsGoogleadsV23Resources__ConversionValueRuleSet"
        },
        "updateMask": {
          "type": "string",
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__ConversionValueRuleSetOperation"
    },
    "GoogleAdsGoogleadsV23Resources_Campaign_AppCampaignSetting": {
      "type": "object",
      "description": "Campaign-level settings for App Campaigns.",
      "properties": {
        "appStore": {
          "description": "Immutable. The application store that distributes this specific app.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Apple app store.",
            "Google play."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "APPLE_APP_STORE",
            "GOOGLE_APP_STORE"
          ]
        },
        "biddingStrategyGoalType": {
          "type": "string",
          "description": "Represents the goal which the bidding strategy of this app campaign should optimize towards.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Aim to maximize the number of app installs. The cpa bid is the target cost per install.",
            "Aim to maximize the long term number of selected in-app conversions from app installs. The cpa bid is the target cost per install.",
            "Aim to maximize the long term number of selected in-app conversions from app installs. The cpa bid is the target cost per in-app conversion. Note that the actual cpa may seem higher than the target cpa at first, since the long term conversions haven't happened yet.",
            "Aim to maximize all conversions' value, for example, install + selected in-app conversions while achieving or exceeding target return on advertising spend.",
            "Aim to maximize the pre-registration of the app.",
            "Aim to maximize installation of the app without target cost-per-install.",
            "Aim to maximize the selected in-app conversion's volume while spending the full budget. No advertiser-specific target CPA.",
            "Aim to maximize total conversion value, such as install and selected in-app conversions, while spending the full budget. No advertiser-specified target ROAS."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "OPTIMIZE_INSTALLS_TARGET_INSTALL_COST",
            "OPTIMIZE_IN_APP_CONVERSIONS_TARGET_INSTALL_COST",
            "OPTIMIZE_IN_APP_CONVERSIONS_TARGET_CONVERSION_COST",
            "OPTIMIZE_RETURN_ON_ADVERTISING_SPEND",
            "OPTIMIZE_PRE_REGISTRATION_CONVERSION_VOLUME",
            "OPTIMIZE_INSTALLS_WITHOUT_TARGET_INSTALL_COST",
            "OPTIMIZE_IN_APP_CONVERSIONS_WITHOUT_TARGET_CPA",
            "OPTIMIZE_TOTAL_VALUE_WITHOUT_TARGET_ROAS"
          ]
        },
        "appId": {
          "type": "string",
          "description": "Immutable. A string that uniquely identifies a mobile application."
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources_Campaign_AppCampaignSetting"
    },
    "GoogleAdsGoogleadsV23Resources__LicenseVerificationArtifact": {
      "description": "A proto holding information specific to a local services license.",
      "id": "GoogleAdsGoogleadsV23Resources__LicenseVerificationArtifact",
      "type": "object",
      "properties": {
        "licenseeFirstName": {
          "description": "Output only. First name of the licensee.",
          "readOnly": true,
          "type": "string"
        },
        "licenseNumber": {
          "type": "string",
          "description": "Output only. License number.",
          "readOnly": true
        },
        "licenseDocumentReadonly": {
          "readOnly": true,
          "description": "Output only. The readonly field containing the information for an uploaded license document.",
          "$ref": "GoogleAdsGoogleadsV23Common__LocalServicesDocumentReadOnly"
        },
        "licenseType": {
          "description": "Output only. License type / name.",
          "type": "string",
          "readOnly": true
        },
        "licenseeLastName": {
          "type": "string",
          "description": "Output only. Last name of the licensee.",
          "readOnly": true
        },
        "expirationDateTime": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The timestamp when this license expires. The format is \"YYYY-MM-DD HH:MM:SS\" in the Google Ads account's timezone. Examples: \"2018-03-05 09:15:00\" or \"2018-02-01 14:34:30\""
        },
        "rejectionReason": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Business name doesn't match business name for the Local Services Ad.",
            "License is unauthorized or been revoked.",
            "License is expired.",
            "License is poor quality - blurry images, illegible, etc...",
            "License cannot be verified due to a not legitimate image.",
            "License is not the requested document type or contains an invalid ID.",
            "License has another flaw not listed explicitly."
          ],
          "readOnly": true,
          "type": "string",
          "description": "Output only. License rejection reason.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BUSINESS_NAME_MISMATCH",
            "UNAUTHORIZED",
            "EXPIRED",
            "POOR_QUALITY",
            "UNVERIFIABLE",
            "WRONG_DOCUMENT_OR_ID",
            "OTHER"
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__CampaignOperation": {
      "properties": {
        "remove": {
          "description": "Remove operation: A resource name for the removed campaign is expected, in this format: `customers/{customer_id}/campaigns/{campaign_id}`",
          "type": "string"
        },
        "updateMask": {
          "format": "google-fieldmask",
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new campaign.",
          "$ref": "GoogleAdsGoogleadsV23Resources__Campaign"
        },
        "update": {
          "description": "Update operation: The campaign is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV23Resources__Campaign"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__CampaignOperation",
      "type": "object",
      "description": "A single operation (create, update, remove) on a campaign."
    },
    "GoogleAdsGoogleadsV23Resources_Recommendation_ImproveGoogleTagCoverageRecommendation": {
      "description": "Recommendation to deploy Google Tag on more pages.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources_Recommendation_ImproveGoogleTagCoverageRecommendation",
      "properties": {}
    },
    "GoogleAdsGoogleadsV23Common__ExclusionSegment": {
      "type": "object",
      "properties": {
        "userList": {
          "description": "User list segment to be excluded.",
          "$ref": "GoogleAdsGoogleadsV23Common__UserListSegment"
        }
      },
      "description": "An audience segment to be excluded from an audience.",
      "id": "GoogleAdsGoogleadsV23Common__ExclusionSegment"
    },
    "GoogleAdsGoogleadsV23Resources__CombinedAudience": {
      "type": "object",
      "description": "Describe a resource for combined audiences which includes different audiences.",
      "properties": {
        "id": {
          "type": "string",
          "format": "int64",
          "description": "Output only. ID of the combined audience.",
          "readOnly": true
        },
        "name": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Name of the combined audience. It should be unique across all combined audiences."
        },
        "resourceName": {
          "description": "Immutable. The resource name of the combined audience. Combined audience names have the form: `customers/{customer_id}/combinedAudience/{combined_audience_id}`",
          "type": "string"
        },
        "description": {
          "description": "Output only. Description of this combined audience.",
          "type": "string",
          "readOnly": true
        },
        "status": {
          "description": "Output only. Status of this combined audience. Indicates whether the combined audience is enabled or removed.",
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Enabled status - combined audience is enabled and can be targeted.",
            "Removed status - combined audience is removed and cannot be used for targeting."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ]
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__CombinedAudience"
    },
    "GoogleAdsGoogleadsV23Errors__PolicyViolationDetails": {
      "properties": {
        "isExemptible": {
          "description": "Whether user can file an exemption request for this violation.",
          "type": "boolean"
        },
        "key": {
          "$ref": "GoogleAdsGoogleadsV23Common__PolicyViolationKey",
          "description": "Unique identifier for this violation. If policy is exemptible, this key may be used to request exemption."
        },
        "externalPolicyDescription": {
          "description": "Human readable description of policy violation.",
          "type": "string"
        },
        "externalPolicyName": {
          "type": "string",
          "description": "Human readable name of the policy."
        }
      },
      "description": "Error returned as part of a mutate response. This error indicates single policy violation by some text in one of the fields.",
      "id": "GoogleAdsGoogleadsV23Errors__PolicyViolationDetails",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__BusinessProfileBusinessNameFilter": {
      "type": "object",
      "description": "Business Profile location group business name filter.",
      "properties": {
        "filterType": {
          "description": "The type of string matching to use when filtering with business_name.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The filter will use exact string matching."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EXACT"
          ]
        },
        "businessName": {
          "type": "string",
          "description": "Business name string to use for filtering."
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__BusinessProfileBusinessNameFilter"
    },
    "GoogleAdsGoogleadsV23Common__CpcBidSimulationPoint": {
      "properties": {
        "topSlotImpressions": {
          "description": "Projected number of top slot impressions. Only search advertising channel type supports this field.",
          "format": "int64",
          "type": "string"
        },
        "requiredBudgetAmountMicros": {
          "type": "string",
          "format": "int64",
          "description": "Projected required daily budget that the advertiser must set in order to receive the estimated traffic, in micros of advertiser currency."
        },
        "impressions": {
          "type": "string",
          "description": "Projected number of impressions.",
          "format": "int64"
        },
        "cpcBidMicros": {
          "type": "string",
          "format": "int64",
          "description": "The simulated CPC bid upon which projected metrics are based."
        },
        "biddableConversionsValue": {
          "description": "Projected total value of biddable conversions.",
          "type": "number",
          "format": "double"
        },
        "cpcBidScalingModifier": {
          "format": "double",
          "description": "The simulated scaling modifier upon which projected metrics are based. All CPC bids relevant to the simulated entity are scaled by this modifier.",
          "type": "number"
        },
        "costMicros": {
          "description": "Projected cost in micros.",
          "type": "string",
          "format": "int64"
        },
        "clicks": {
          "description": "Projected number of clicks.",
          "format": "int64",
          "type": "string"
        },
        "biddableConversions": {
          "type": "number",
          "description": "Projected number of biddable conversions.",
          "format": "double"
        }
      },
      "description": "Projected metrics for a specific CPC bid amount.",
      "id": "GoogleAdsGoogleadsV23Common__CpcBidSimulationPoint",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__TopicInfo": {
      "description": "A topic criterion. Use topics to target or exclude placements in the Google Display Network based on the category into which the placement falls (for example, \"Pets & Animals/Pets/Dogs\").",
      "type": "object",
      "properties": {
        "path": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "The category to target or exclude. Each subsequent element in the array describes a more specific sub-category. For example, \"Pets & Animals\", \"Pets\", \"Dogs\" represents the \"Pets & Animals/Pets/Dogs\" category."
        },
        "topicConstant": {
          "type": "string",
          "description": "The Topic Constant resource name."
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__TopicInfo"
    },
    "GoogleAdsGoogleadsV23Services__UpdateDataLinkResponse": {
      "description": "Response message for DataLinkService.UpdateDataLink.",
      "id": "GoogleAdsGoogleadsV23Services__UpdateDataLinkResponse",
      "type": "object",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations. Resource name of the data link.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__ListingScopeInfo": {
      "type": "object",
      "description": "A listing scope criterion.",
      "properties": {
        "dimensions": {
          "description": "Scope of the campaign criterion.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__ListingDimensionInfo"
          },
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__ListingScopeInfo"
    },
    "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_AdAssetApplyParameters": {
      "id": "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_AdAssetApplyParameters",
      "description": "Common parameters used when applying ad asset recommendations.",
      "type": "object",
      "properties": {
        "scope": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CUSTOMER",
            "CAMPAIGN"
          ],
          "enumDescriptions": [
            "The apply scope has not been specified.",
            "Unknown.",
            "Apply at the customer scope.",
            "Apply at the campaign scope."
          ],
          "description": "Required. The scope at which to apply the assets. Assets at the campaign scope level will be applied to the campaign associated with the recommendation. Assets at the customer scope will apply to the entire account. Assets at the campaign scope will override any attached at the customer scope."
        },
        "newAssets": {
          "description": "The assets to create and attach to a scope. This may be combined with existing_assets in the same call.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Resources__Asset"
          },
          "type": "array"
        },
        "existingAssets": {
          "description": "The resource names of existing assets to attach to a scope. This may be combined with new_assets in the same call.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateAdGroupAssetSetsResponse": {
      "description": "Response message for an ad group asset set mutate.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateAdGroupAssetSetsResponse",
      "properties": {
        "results": {
          "type": "array",
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateAdGroupAssetSetResult"
          }
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (e.g. auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services_MetricAttributes_Attribute": {
      "properties": {
        "value": {
          "description": "The value of the attribute.",
          "type": "string"
        },
        "key": {
          "description": "The key of the attribute.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services_MetricAttributes_Attribute",
      "description": "The attribute of the metric in key value pair format.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__ChangeStatus": {
      "properties": {
        "campaignAssetSet": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The CampaignAssetSet affected by this change."
        },
        "asset": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The Asset affected by this change."
        },
        "adGroupCriterion": {
          "description": "Output only. The AdGroupCriterion affected by this change.",
          "type": "string",
          "readOnly": true
        },
        "resourceStatus": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADDED",
            "CHANGED",
            "REMOVED"
          ],
          "type": "string",
          "description": "Output only. Represents the status of the changed resource.",
          "readOnly": true,
          "enumDescriptions": [
            "No value has been specified.",
            "Used for return value only. Represents an unclassified resource unknown in this version.",
            "The resource was created.",
            "The resource was modified.",
            "The resource was removed."
          ]
        },
        "resourceName": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The resource name of the change status. Change status resource names have the form: `customers/{customer_id}/changeStatus/{change_status_id}`"
        },
        "adGroupAsset": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The AdGroupAsset affected by this change."
        },
        "sharedSet": {
          "description": "Output only. The SharedSet affected by this change.",
          "type": "string",
          "readOnly": true
        },
        "combinedAudience": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The CombinedAudience affected by this change."
        },
        "customerAsset": {
          "description": "Output only. The CustomerAsset affected by this change.",
          "readOnly": true,
          "type": "string"
        },
        "campaignBudget": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The CampaignBudget affected by this change."
        },
        "assetSet": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The AssetSet affected by this change."
        },
        "resourceType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AD_GROUP",
            "AD_GROUP_AD",
            "AD_GROUP_CRITERION",
            "CAMPAIGN",
            "CAMPAIGN_CRITERION",
            "CAMPAIGN_BUDGET",
            "FEED",
            "FEED_ITEM",
            "AD_GROUP_FEED",
            "CAMPAIGN_FEED",
            "AD_GROUP_BID_MODIFIER",
            "SHARED_SET",
            "CAMPAIGN_SHARED_SET",
            "ASSET",
            "CUSTOMER_ASSET",
            "CAMPAIGN_ASSET",
            "AD_GROUP_ASSET",
            "COMBINED_AUDIENCE",
            "ASSET_GROUP",
            "ASSET_SET",
            "CAMPAIGN_ASSET_SET"
          ],
          "enumDescriptions": [
            "No value has been specified.",
            "Used for return value only. Represents an unclassified resource unknown in this version.",
            "An AdGroup resource change.",
            "An AdGroupAd resource change.",
            "An AdGroupCriterion resource change.",
            "A Campaign resource change.",
            "A CampaignCriterion resource change.",
            "A CampaignBudget resource change.",
            "A Feed resource change.",
            "A FeedItem resource change.",
            "An AdGroupFeed resource change.",
            "A CampaignFeed resource change.",
            "An AdGroupBidModifier resource change.",
            "A SharedSet resource change.",
            "A CampaignSharedSet resource change.",
            "An Asset resource change.",
            "A CustomerAsset resource change.",
            "A CampaignAsset resource change.",
            "An AdGroupAsset resource change.",
            "A CombinedAudience resource change.",
            "An AssetGroup resource change.",
            "An AssetSet resource change.",
            "A CampaignAssetSet resource change."
          ],
          "readOnly": true,
          "type": "string",
          "description": "Output only. Represents the type of the changed resource. This dictates what fields will be set. For example, for AD_GROUP, campaign and ad_group fields will be set."
        },
        "campaignCriterion": {
          "description": "Output only. The CampaignCriterion affected by this change.",
          "type": "string",
          "readOnly": true
        },
        "adGroup": {
          "readOnly": true,
          "description": "Output only. The AdGroup affected by this change.",
          "type": "string"
        },
        "campaign": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The Campaign affected by this change."
        },
        "campaignSharedSet": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The CampaignSharedSet affected by this change."
        },
        "adGroupBidModifier": {
          "type": "string",
          "description": "Output only. The AdGroupBidModifier affected by this change.",
          "readOnly": true
        },
        "lastChangeDateTime": {
          "description": "Output only. Time at which the most recent change has occurred on this resource.",
          "type": "string",
          "readOnly": true
        },
        "campaignAsset": {
          "type": "string",
          "description": "Output only. The CampaignAsset affected by this change.",
          "readOnly": true
        },
        "assetGroup": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The AssetGroup affected by this change."
        },
        "adGroupAd": {
          "description": "Output only. The AdGroupAd affected by this change.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__ChangeStatus",
      "description": "Describes the status of returned resource. ChangeStatus could have up to 3 minutes delay to reflect a new change.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__BudgetSimulationPoint": {
      "description": "Projected metrics for a specific budget amount.",
      "type": "object",
      "properties": {
        "clicks": {
          "description": "Projected number of clicks.",
          "format": "int64",
          "type": "string"
        },
        "biddableConversions": {
          "description": "Projected number of biddable conversions.",
          "format": "double",
          "type": "number"
        },
        "budgetAmountMicros": {
          "type": "string",
          "format": "int64",
          "description": "The simulated budget upon which projected metrics are based."
        },
        "interactions": {
          "description": "Projected number of interactions. Only discovery advertising channel type supports this field.",
          "type": "string",
          "format": "int64"
        },
        "impressions": {
          "format": "int64",
          "description": "Projected number of impressions.",
          "type": "string"
        },
        "biddableConversionsValue": {
          "description": "Projected total value of biddable conversions.",
          "format": "double",
          "type": "number"
        },
        "costMicros": {
          "format": "int64",
          "description": "Projected cost in micros.",
          "type": "string"
        },
        "requiredCpcBidCeilingMicros": {
          "type": "string",
          "format": "int64",
          "description": "Projected required daily cpc bid ceiling that the advertiser must set to realize this simulation, in micros of the advertiser currency. Only campaigns with the Target Spend bidding strategy support this field."
        },
        "topSlotImpressions": {
          "description": "Projected number of top slot impressions. Only search advertising channel type supports this field.",
          "format": "int64",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__BudgetSimulationPoint"
    },
    "GoogleAdsGoogleadsV23Services__CampaignLifecycleGoalOperation": {
      "properties": {
        "update": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CampaignLifecycleGoal",
          "description": "Update operation: Update an existing campaign lifecycle goal. The campaign field should not be set for this operation."
        },
        "updateMask": {
          "description": "Optional. FieldMask that determines which resource fields are modified in an update.",
          "type": "string",
          "format": "google-fieldmask"
        },
        "create": {
          "description": "Create operation: Create a new campaign lifecycle goal. The campaign field should be set for this operation.",
          "$ref": "GoogleAdsGoogleadsV23Resources__CampaignLifecycleGoal"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__CampaignLifecycleGoalOperation",
      "description": "A single operation on a campaign lifecycle goal.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateAdGroupAssetsRequest": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateAdGroupAssetsRequest",
      "properties": {
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "operations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__AdGroupAssetOperation"
          },
          "description": "Required. The list of operations to perform on individual ad group assets.",
          "type": "array"
        },
        "responseContentType": {
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "type": "string",
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation."
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        }
      },
      "description": "Request message for AdGroupAssetService.MutateAdGroupAssets."
    },
    "GoogleAdsGoogleadsV23Services__MutateAssetSetsRequest": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateAssetSetsRequest",
      "properties": {
        "responseContentType": {
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation."
        },
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__AssetSetOperation"
          },
          "description": "Required. The list of operations to perform on individual asset sets."
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        }
      },
      "description": "Request message for AssetSetService.MutateAssetSets."
    },
    "GoogleAdsGoogleadsV23Services__MutateAdGroupCriterionResult": {
      "type": "object",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        },
        "adGroupCriterion": {
          "description": "The mutated ad group criterion with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV23Resources__AdGroupCriterion"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateAdGroupCriterionResult",
      "description": "The result for the criterion mutate."
    },
    "GoogleAdsGoogleadsV23Services__SharedCriterionOperation": {
      "type": "object",
      "description": "A single operation (create, remove) on an shared criterion.",
      "id": "GoogleAdsGoogleadsV23Services__SharedCriterionOperation",
      "properties": {
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed shared criterion is expected, in this format: `customers/{customer_id}/sharedCriteria/{shared_set_id}~{criterion_id}`"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new shared criterion.",
          "$ref": "GoogleAdsGoogleadsV23Resources__SharedCriterion"
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__LogicalUserListInfo": {
      "properties": {
        "rules": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__UserListLogicalRuleInfo"
          },
          "description": "Logical list rules that define this user list. The rules are defined as a logical operator (ALL/ANY/NONE) and a list of user lists. All the rules are ANDed when they are evaluated. Required for creating a logical user list.",
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__LogicalUserListInfo",
      "description": "Represents a user list that is a custom combination of user lists.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__UserListAttributeMetadata": {
      "id": "GoogleAdsGoogleadsV23Common__UserListAttributeMetadata",
      "description": "Metadata associated with a User List attribute.",
      "type": "object",
      "properties": {
        "userListType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "REMARKETING",
            "LOGICAL",
            "EXTERNAL_REMARKETING",
            "RULE_BASED",
            "SIMILAR",
            "CRM_BASED",
            "LOOKALIKE"
          ],
          "description": "The user list type.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "UserList represented as a collection of conversion types.",
            "UserList represented as a combination of other user lists/interests.",
            "UserList created in the Google Ad Manager platform.",
            "UserList associated with a rule.",
            "UserList with users similar to users of another UserList.",
            "UserList of first-party CRM data provided by advertiser in the form of emails or other formats.",
            "LookalikeUserlist, composed of users similar to those of a configurable seed (set of UserLists)"
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__GenerateAudienceOverlapInsightsRequest": {
      "id": "GoogleAdsGoogleadsV23Services__GenerateAudienceOverlapInsightsRequest",
      "description": "Request message for AudienceInsightsService.GenerateAudienceOverlapInsights.",
      "properties": {
        "customerInsightsGroup": {
          "description": "The name of the customer being planned for. This is a user-defined value.",
          "type": "string"
        },
        "insightsApplicationInfo": {
          "description": "Optional. Additional information on the application issuing the request.",
          "$ref": "GoogleAdsGoogleadsV23Common__AdditionalApplicationInfo"
        },
        "dimensions": {
          "description": "Required. The types of attributes of which to calculate the overlap with the primary_attribute. The values must be a subset of AFFINITY_USER_INTEREST, IN_MARKET_USER_INTEREST, AGE_RANGE and GENDER.",
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "CATEGORY",
              "KNOWLEDGE_GRAPH",
              "GEO_TARGET_COUNTRY",
              "SUB_COUNTRY_LOCATION",
              "YOUTUBE_CHANNEL",
              "AFFINITY_USER_INTEREST",
              "IN_MARKET_USER_INTEREST",
              "PARENTAL_STATUS",
              "INCOME_RANGE",
              "AGE_RANGE",
              "GENDER",
              "YOUTUBE_VIDEO",
              "DEVICE",
              "YOUTUBE_LINEUP",
              "USER_LIST",
              "LIFE_EVENT_USER_INTEREST"
            ],
            "enumDescriptions": [
              "Not specified.",
              "The value is unknown in this version.",
              "A Product & Service category.",
              "A Knowledge Graph entity.",
              "A country, represented by a geo target.",
              "A geographic location within a country.",
              "A YouTube channel.",
              "An Affinity UserInterest.",
              "An In-Market UserInterest.",
              "A Parental Status value (parent, or not a parent).",
              "A household income percentile range.",
              "An age range.",
              "A gender.",
              "A YouTube video.",
              "A device type, such as Mobile, Desktop, Tablet, and Connected TV.",
              "A YouTube Lineup.",
              "A User List.",
              "A Life Event UserInterest."
            ]
          }
        },
        "primaryAttribute": {
          "description": "Required. The audience attribute that should be intersected with all other eligible audiences. This must be an Affinity or In-Market UserInterest, an AgeRange or a Gender.",
          "$ref": "GoogleAdsGoogleadsV23Common__AudienceInsightsAttribute"
        },
        "countryLocation": {
          "$ref": "GoogleAdsGoogleadsV23Common__LocationInfo",
          "description": "Required. The country in which to calculate the sizes and overlaps of audiences."
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__DynamicTravelAsset": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__DynamicTravelAsset",
      "properties": {
        "formattedPrice": {
          "type": "string",
          "description": "Formatted price which can be any characters. If set, this attribute will be used instead of 'price', for example, Starting at $100.00."
        },
        "formattedSalePrice": {
          "description": "Formatted sale price which can be any characters. If set, this attribute will be used instead of 'sale price', for example, On sale for $80.00.",
          "type": "string"
        },
        "destinationId": {
          "type": "string",
          "description": "Required. Destination ID which can be any sequence of letters and digits, and must be unique and match the values of remarketing tag. Required."
        },
        "category": {
          "description": "Category, for example, Express.",
          "type": "string"
        },
        "originName": {
          "description": "Origin name, for example, London.",
          "type": "string"
        },
        "salePrice": {
          "type": "string",
          "description": "Sale price which can be a number followed by the alphabetic currency code, ISO 4217 standard. Use '.' as the decimal mark, for example, 80.00 USD. Must be less than the 'price' field."
        },
        "destinationName": {
          "description": "Destination name, for example, Paris.",
          "type": "string"
        },
        "price": {
          "description": "Price which can be a number followed by the alphabetic currency code, ISO 4217 standard. Use '.' as the decimal mark, for example, 100.00 USD.",
          "type": "string"
        },
        "iosAppLink": {
          "description": "iOS deep link, for example, exampleApp://content/page.",
          "type": "string"
        },
        "title": {
          "description": "Required. Title, for example, Book your train ticket. Required.",
          "type": "string"
        },
        "imageUrl": {
          "description": "Image URL, for example, http://www.example.com/image.png. The image will not be uploaded as image asset.",
          "type": "string"
        },
        "contextualKeywords": {
          "items": {
            "type": "string"
          },
          "description": "Contextual keywords, for example, Paris trains.",
          "type": "array"
        },
        "originId": {
          "type": "string",
          "description": "Origin ID which can be any sequence of letters and digits. The ID sequence (destination ID + origin ID) must be unique."
        },
        "androidAppLink": {
          "type": "string",
          "description": "Android deep link, for example, android-app://com.example.android/http/example.com/gizmos?1234."
        },
        "iosAppStoreId": {
          "type": "string",
          "description": "iOS app store ID. This is used to check if the user has the app installed on their device before deep linking. If this field is set, then the ios_app_link field must also be present.",
          "format": "int64"
        },
        "destinationAddress": {
          "type": "string",
          "description": "Destination address which can be specified in one of the following formats. (1) City, state, code, country, for example, Mountain View, CA, USA. (2) Full address, for example, 123 Boulevard St, Mountain View, CA 94043. (3) Latitude-longitude in the DDD format, for example, 41.40338, 2.17403."
        },
        "similarDestinationIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Similar destination IDs, for example, NYC."
        }
      },
      "description": "A dynamic travel asset."
    },
    "GoogleAdsGoogleadsV23Services__YouTubeMetrics": {
      "id": "GoogleAdsGoogleadsV23Services__YouTubeMetrics",
      "type": "object",
      "description": "YouTube Channel metrics.",
      "properties": {
        "averageCommentsPerVideo": {
          "format": "double",
          "description": "The average number of comments per video in the last 28 days.",
          "type": "number"
        },
        "videoCount": {
          "description": "The total number of videos.",
          "format": "int64",
          "type": "string"
        },
        "averageViewsPerVideo": {
          "format": "double",
          "description": "The average number of views per video in the last 28 days.",
          "type": "number"
        },
        "likesCount": {
          "type": "string",
          "format": "int64",
          "description": "The total number of likes across all videos of this channel."
        },
        "subscriberCount": {
          "format": "int64",
          "type": "string",
          "description": "The number of subscribers."
        },
        "shortsVideoCount": {
          "type": "string",
          "format": "int64",
          "description": "The total number of Shorts videos."
        },
        "commentsCount": {
          "format": "int64",
          "type": "string",
          "description": "The total number of comments across all videos of this channel."
        },
        "shortsViewsCount": {
          "format": "int64",
          "description": "The total number of views across all Shorts videos of this channel.",
          "type": "string"
        },
        "isActiveShortsCreator": {
          "description": "When true, this channel has published a Shorts video in the last 90 days.",
          "type": "boolean"
        },
        "isBrandConnectCreator": {
          "description": "When true, this creator can be partnered with to create original branded content using the Google Ads creator partnership platform, BrandConnect. See https://support.google.com/google-ads/answer/13828964 for more information about BrandConnect.",
          "type": "boolean"
        },
        "averageLikesPerVideo": {
          "description": "The average number of likes per video in the last 28 days.",
          "format": "double",
          "type": "number"
        },
        "averageSharesPerVideo": {
          "format": "double",
          "description": "The average number of shares per video in the last 28 days.",
          "type": "number"
        },
        "viewsCount": {
          "description": "The total number of views.",
          "format": "int64",
          "type": "string"
        },
        "sharesCount": {
          "description": "The total number of shares across all videos of this channel.",
          "format": "int64",
          "type": "string"
        },
        "isActiveLiveStreamCreator": {
          "description": "When true, this channel has published a live stream in the last 90 days.",
          "type": "boolean"
        },
        "engagementRate": {
          "description": "The lifetime engagement rate of this channel. The value is computed as the total number of likes, shares, and comments across all videos divided by the total number of video views.",
          "format": "double",
          "type": "number"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__BrandSuggestion": {
      "id": "GoogleAdsGoogleadsV23Services__BrandSuggestion",
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Id for the brand. It would be CKG MID for verified/global scoped brands."
        },
        "name": {
          "type": "string",
          "description": "Name of the brand."
        },
        "urls": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Urls which uniquely identify the brand."
        },
        "state": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "DEPRECATED",
            "UNVERIFIED",
            "APPROVED",
            "CANCELLED",
            "REJECTED"
          ],
          "type": "string",
          "description": "Current state of the brand.",
          "enumDescriptions": [
            "No value has been specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Brand is verified and globally available for selection",
            "Brand was globally available in past but is no longer a valid brand (based on business criteria)",
            "Brand is unverified and customer scoped, but can be selected by customer (only who requested for same) for targeting",
            "Was a customer-scoped (unverified) brand, which got approved by business and added to the global list. Its assigned CKG MID should be used instead of this",
            "Was a customer-scoped (unverified) brand, but the request was canceled by customer and this brand id is no longer valid",
            "Was a customer-scoped (unverified) brand, but the request was rejected by internal business team and this brand id is no longer valid"
          ]
        }
      },
      "description": "Information of brand suggestion."
    },
    "GoogleAdsGoogleadsV23Services__InsightsAudienceAttributeGroup": {
      "description": "A list of AudienceInsightsAttributes.",
      "type": "object",
      "properties": {
        "attributes": {
          "type": "array",
          "description": "Required. A collection of audience attributes to be combined with logical OR. Attributes need not all be the same dimension. Only Knowledge Graph entities, Product & Service Categories, and Affinity and In-Market audiences are supported in this context.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AudienceInsightsAttribute"
          }
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__InsightsAudienceAttributeGroup"
    },
    "GoogleAdsGoogleadsV23Services__SuggestBrandsResponse": {
      "type": "object",
      "properties": {
        "brands": {
          "description": "Generated brand suggestions of verified brands for the given prefix.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__BrandSuggestion"
          },
          "type": "array"
        }
      },
      "description": "Response message for BrandSuggestionService.SuggestBrands.",
      "id": "GoogleAdsGoogleadsV23Services__SuggestBrandsResponse"
    },
    "GoogleAdsGoogleadsV23Services__CustomVariable": {
      "description": "A custom variable.",
      "type": "object",
      "properties": {
        "conversionCustomVariable": {
          "description": "Resource name of the custom variable associated with this conversion. Note: Although this resource name consists of a customer id and a conversion custom variable id, validation will ignore the customer id and use the conversion custom variable id as the sole identifier of the conversion custom variable.",
          "type": "string"
        },
        "value": {
          "type": "string",
          "description": "The value string of this custom variable. The value of the custom variable should not contain private customer data, such as email addresses or phone numbers."
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__CustomVariable"
    },
    "GoogleAdsGoogleadsV23Common__CampaignThirdPartyViewabilityIntegrationPartner": {
      "description": "Container for third party viewability integration data for Campaign.",
      "id": "GoogleAdsGoogleadsV23Common__CampaignThirdPartyViewabilityIntegrationPartner",
      "properties": {
        "viewabilityIntegrationPartnerData": {
          "$ref": "GoogleAdsGoogleadsV23Common__ThirdPartyIntegrationPartnerData",
          "description": "Third party partner data for YouTube viewability verification. This is optional metadata for partners to join or attach data to Ads campaigns."
        },
        "viewabilityIntegrationPartner": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DOUBLE_VERIFY",
            "INTEGRAL_AD_SCIENCE"
          ],
          "type": "string",
          "description": "Allowed third party integration partners for YouTube viewability verification.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "DoubleVerify.",
            "Integral Ad Science."
          ]
        },
        "shareCost": {
          "description": "If true, then cost data will be shared with this vendor.",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__YouTubeSelectSettings": {
      "description": "Request settings for YouTube Select Lineups",
      "properties": {
        "lineupId": {
          "description": "Lineup for YouTube Select Targeting.",
          "type": "string",
          "format": "int64"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__YouTubeSelectSettings"
    },
    "GoogleAdsGoogleadsV23Services__MutateCampaignCustomizerResult": {
      "properties": {
        "campaignCustomizer": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CampaignCustomizer",
          "description": "The mutated CampaignCustomizer with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\"."
        },
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateCampaignCustomizerResult",
      "description": "The result for the campaign customizer mutate."
    },
    "GoogleAdsGoogleadsV23Resources__CampaignLifecycleGoal": {
      "description": "Campaign level customer lifecycle goal settings.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__CampaignLifecycleGoal",
      "properties": {
        "customerAcquisitionGoalSettings": {
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV23Resources__CustomerAcquisitionGoalSettings",
          "description": "Output only. The customer acquisition goal settings for the campaign. The customer acquisition goal is described in this article: https://support.google.com/google-ads/answer/12080169"
        },
        "resourceName": {
          "description": "Immutable. The resource name of the customer lifecycle goal of a campaign. `customers/{customer_id}/campaignLifecycleGoal/{campaign_id}`",
          "type": "string"
        },
        "campaign": {
          "description": "Output only. The campaign where the goal is attached.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__SurfaceTargetingCombinations": {
      "type": "object",
      "description": "The surface targeting combinations available for an ad product.",
      "id": "GoogleAdsGoogleadsV23Services__SurfaceTargetingCombinations",
      "properties": {
        "defaultTargeting": {
          "$ref": "GoogleAdsGoogleadsV23Services__SurfaceTargeting",
          "description": "Default surface targeting applied to the ad product."
        },
        "availableTargetingCombinations": {
          "type": "array",
          "description": "Available surface target combinations for the ad product.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__SurfaceTargeting"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__AssetGroupProductGroupView": {
      "type": "object",
      "properties": {
        "resourceName": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The resource name of the asset group product group view. Asset group product group view resource names have the form: `customers/{customer_id}/assetGroupProductGroupViews/{asset_group_id}~{listing_group_filter_id}`"
        },
        "assetGroupListingGroupFilter": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the asset group listing group filter."
        },
        "assetGroup": {
          "type": "string",
          "description": "Output only. The asset group associated with the listing group filter.",
          "readOnly": true
        }
      },
      "description": "An asset group product group view.",
      "id": "GoogleAdsGoogleadsV23Resources__AssetGroupProductGroupView"
    },
    "GoogleAdsGoogleadsV23Services__UploadUserDataRequest": {
      "type": "object",
      "properties": {
        "customerMatchUserListMetadata": {
          "description": "Metadata for data updates to a Customer Match user list.",
          "$ref": "GoogleAdsGoogleadsV23Common__CustomerMatchUserListMetadata"
        },
        "operations": {
          "type": "array",
          "description": "Required. The list of operations to be done.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__UserDataOperation"
          }
        }
      },
      "description": "Request message for UserDataService.UploadUserData",
      "id": "GoogleAdsGoogleadsV23Services__UploadUserDataRequest"
    },
    "GoogleAdsGoogleadsV23Resources_Campaign_TravelCampaignSettings": {
      "description": "Settings for Travel campaign.",
      "id": "GoogleAdsGoogleadsV23Resources_Campaign_TravelCampaignSettings",
      "properties": {
        "travelAccountId": {
          "format": "int64",
          "description": "Immutable. The Travel account ID associated with the Travel campaign.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MoveManagerLinkResponse": {
      "description": "Response message for a CustomerManagerLink moveManagerLink.",
      "id": "GoogleAdsGoogleadsV23Services__MoveManagerLinkResponse",
      "type": "object",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations. Represents a CustomerManagerLink resource of the newly created link between client customer and new manager customer.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__BusinessRegistrationDocument": {
      "id": "GoogleAdsGoogleadsV23Resources__BusinessRegistrationDocument",
      "type": "object",
      "description": "A proto holding information specific to a local services business registration document.",
      "properties": {
        "documentReadonly": {
          "description": "Output only. The readonly field containing the information for an uploaded business registration document.",
          "$ref": "GoogleAdsGoogleadsV23Common__LocalServicesDocumentReadOnly",
          "readOnly": true
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__AdImageAsset": {
      "description": "An image asset used inside an ad.",
      "id": "GoogleAdsGoogleadsV23Common__AdImageAsset",
      "type": "object",
      "properties": {
        "asset": {
          "type": "string",
          "description": "The Asset resource name of this image."
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources_Campaign_ShoppingSetting": {
      "id": "GoogleAdsGoogleadsV23Resources_Campaign_ShoppingSetting",
      "properties": {
        "feedLabel": {
          "type": "string",
          "description": "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."
        },
        "campaignPriority": {
          "format": "int32",
          "type": "integer",
          "description": "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."
        },
        "disableProductFeed": {
          "description": "Disable the optional product feed. This field is currently supported only for Demand Gen campaigns. See https://support.google.com/google-ads/answer/13721750 to learn more about this feature.",
          "type": "boolean"
        },
        "merchantId": {
          "format": "int64",
          "description": "ID of the Merchant Center account. This field is required for create operations. This field is immutable for Shopping campaigns.",
          "type": "string"
        },
        "enableLocal": {
          "description": "Whether to include local products.",
          "type": "boolean"
        },
        "useVehicleInventory": {
          "type": "boolean",
          "description": "Immutable. Whether to target Vehicle Listing inventory. This field is supported only in Smart Shopping Campaigns. For setting Vehicle Listing inventory in Performance Max campaigns, use `listing_type` instead."
        },
        "advertisingPartnerIds": {
          "description": "The list of Google Ads accounts IDs of advertising partners cooperating within the campaign. This feature is currently available only for accounts having an advertising partner link. Once set, the field is immutable. This feature is currently supported only for Performance Max, Shopping, Search and Demand Gen campaign types.",
          "items": {
            "type": "string",
            "format": "int64"
          },
          "type": "array"
        }
      },
      "type": "object",
      "description": "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."
    },
    "GoogleAdsGoogleadsV23Services__Incentive": {
      "id": "GoogleAdsGoogleadsV23Services__Incentive",
      "properties": {
        "incentiveTermsAndConditionsUrl": {
          "type": "string",
          "description": "The URL of the terms and conditions for THIS incentive offer ONLY. This is different from the terms_and_conditions_url field in AcquisitionIncentiveOffer which is a combination of all the Incentive offers in a CYO offer."
        },
        "incentiveId": {
          "description": "The incentive ID of this incentive. This is used to identify which incentive is selected by the user in the CYO flow.",
          "type": "string",
          "format": "int64"
        },
        "type": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ACQUISITION"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Unknown incentive type. Should not be used as a value explicitly.",
            "An acquisition incentive."
          ],
          "description": "The type of the incentive."
        },
        "requirement": {
          "$ref": "GoogleAdsGoogleadsV23Services_Incentive_Requirement",
          "description": "The requirement for this incentive."
        }
      },
      "description": "An incentive that a user can claim for their account.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources_Recommendation_CampaignBudget": {
      "id": "GoogleAdsGoogleadsV23Resources_Recommendation_CampaignBudget",
      "type": "object",
      "description": "A campaign budget shared amongst various budget recommendation types.",
      "properties": {
        "recommendedNewAmountMicros": {
          "format": "int64",
          "description": "Output only. Recommended budget amount.",
          "type": "string",
          "readOnly": true
        },
        "currentAmountMicros": {
          "format": "int64",
          "description": "Output only. Current budget amount.",
          "readOnly": true,
          "type": "string"
        },
        "newStartDate": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The date when the new budget would start being used. This field will be set for the following recommendation types: FORECASTING_SET_TARGET_ROAS , FORECASTING_SET_TARGET_CPA YYYY-MM-DD format, for example, 2018-04-17."
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources_ConversionValueRule_ValueRuleAudienceCondition": {
      "description": "Condition on Audience dimension.",
      "properties": {
        "userInterests": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "User Interests."
        },
        "userLists": {
          "items": {
            "type": "string"
          },
          "description": "User Lists.",
          "type": "array"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources_ConversionValueRule_ValueRuleAudienceCondition"
    },
    "GoogleAdsGoogleadsV23Resources_Recommendation_RaiseTargetCpaBidTooLowRecommendation": {
      "properties": {
        "averageTargetCpaMicros": {
          "readOnly": true,
          "format": "int64",
          "type": "string",
          "description": "Output only. The current average target CPA of the campaign, in micros of customer local currency."
        },
        "recommendedTargetMultiplier": {
          "format": "double",
          "type": "number",
          "description": "Output only. A number greater than 1.0 indicating the factor by which we recommend the target CPA should be increased.",
          "readOnly": true
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources_Recommendation_RaiseTargetCpaBidTooLowRecommendation",
      "description": "The raise target CPA bid too low recommendation.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__AssetGroupSignal": {
      "properties": {
        "disapprovalReasons": {
          "type": "array",
          "readOnly": true,
          "description": "Output only. Computed for SearchTheme signals. When using Audience signal, this field is not used and will be absent.",
          "items": {
            "type": "string"
          }
        },
        "audience": {
          "description": "Immutable. The audience signal to be used by the performance max campaign.",
          "$ref": "GoogleAdsGoogleadsV23Common__AudienceInfo"
        },
        "resourceName": {
          "description": "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}`",
          "type": "string"
        },
        "approvalStatus": {
          "readOnly": true,
          "description": "Output only. Approval status is the output value for search theme signal after Google ads policy review. When using Audience signal, this field is not used and will be absent.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "APPROVED",
            "LIMITED",
            "DISAPPROVED",
            "UNDER_REVIEW"
          ],
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Search Theme is eligible to show ads.",
            "Low search volume; Below first page bid estimate.",
            "Search Theme is inactive and isn't showing ads. A disapproved Search Theme usually means there's an issue with one or more of our advertising policies.",
            "Search Theme is under review. It won’t be able to trigger ads until it's been reviewed."
          ],
          "type": "string"
        },
        "assetGroup": {
          "description": "Immutable. The asset group which this asset group signal belongs to.",
          "type": "string"
        },
        "searchTheme": {
          "description": "Immutable. The search_theme signal to be used by the performance max campaign. Mutate errors of search_theme criterion includes AssetGroupSignalError.UNSPECIFIED AssetGroupSignalError.UNKNOWN AssetGroupSignalError.TOO_MANY_WORDS AssetGroupSignalError.SEARCH_THEME_POLICY_VIOLATION FieldError.REQUIRED StringFormatError.ILLEGAL_CHARS StringLengthError.TOO_LONG ResourceCountLimitExceededError.RESOURCE_LIMIT",
          "$ref": "GoogleAdsGoogleadsV23Common__SearchThemeInfo"
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__AssetGroupSignal",
      "type": "object",
      "description": "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."
    },
    "GoogleAdsGoogleadsV23Resources__AdGroupAsset": {
      "description": "A link between an ad group and an asset.",
      "id": "GoogleAdsGoogleadsV23Resources__AdGroupAsset",
      "properties": {
        "resourceName": {
          "description": "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}`",
          "type": "string"
        },
        "fieldType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE",
            "DESCRIPTION",
            "MANDATORY_AD_TEXT",
            "MARKETING_IMAGE",
            "MEDIA_BUNDLE",
            "YOUTUBE_VIDEO",
            "BOOK_ON_GOOGLE",
            "LEAD_FORM",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "LONG_HEADLINE",
            "BUSINESS_NAME",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "VIDEO",
            "CALL_TO_ACTION_SELECTION",
            "AD_IMAGE",
            "BUSINESS_LOGO",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "TALL_PORTRAIT_MARKETING_IMAGE",
            "RELATED_YOUTUBE_VIDEOS",
            "LANDING_PAGE_PREVIEW",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is linked for use as a headline.",
            "The asset is linked for use as a description.",
            "The asset is linked for use as mandatory ad text.",
            "The asset is linked for use as a marketing image.",
            "The asset is linked for use as a media bundle.",
            "The asset is linked for use as a YouTube video.",
            "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
            "The asset is linked for use as a Lead Form extension.",
            "The asset is linked for use as a Promotion extension.",
            "The asset is linked for use as a Callout extension.",
            "The asset is linked for use as a Structured Snippet extension.",
            "The asset is linked for use as a Sitelink.",
            "The asset is linked for use as a Mobile App extension.",
            "The asset is linked for use as a Hotel Callout extension.",
            "The asset is linked for use as a Call extension.",
            "The asset is linked for use as a Price extension.",
            "The asset is linked for use as a long headline.",
            "The asset is linked for use as a business name.",
            "The asset is linked for use as a square marketing image.",
            "The asset is linked for use as a portrait marketing image.",
            "The asset is linked for use as a logo.",
            "The asset is linked for use as a landscape logo.",
            "The asset is linked for use as a non YouTube logo.",
            "The asset is linked for use to select a call-to-action.",
            "The asset is linked for use to select an ad image.",
            "The asset is linked for use as a business logo.",
            "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
            "The asset is linked for use as a Demand Gen carousel card.",
            "The asset is linked for use as a Business Message.",
            "The asset is linked for use as a tall portrait marketing image.",
            "The asset is linked for use as related YouTube videos.",
            "The asset is linked for use as a landing page preview image.",
            "The asset is linked for use as a long description.",
            "The asset is linked for use as a call-to-action."
          ],
          "description": "Required. Immutable. Role that the asset takes under the linked ad group.",
          "type": "string"
        },
        "primaryStatus": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ELIGIBLE",
            "PAUSED",
            "REMOVED",
            "PENDING",
            "LIMITED",
            "NOT_ELIGIBLE"
          ],
          "readOnly": true,
          "description": "Output only. Provides the PrimaryStatus of this asset link. Primary status is meant essentially to differentiate between the plain \"status\" field, which has advertiser set values of enabled, paused, or removed. The primary status takes into account other signals (for assets its mainly policy and quality approvals) to come up with a more comprehensive status to indicate its serving state.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is eligible to serve.",
            "The user-specified asset link status is paused.",
            "The user-specified asset link status is removed.",
            "The asset may serve in the future.",
            "The asset is serving in a partial capacity.",
            "The asset is not eligible to serve."
          ]
        },
        "primaryStatusDetails": {
          "readOnly": true,
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AssetLinkPrimaryStatusDetails"
          },
          "type": "array",
          "description": "Output only. Provides the details of the primary status and its associated reasons."
        },
        "source": {
          "description": "Output only. Source of the adgroup asset link.",
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADVERTISER",
            "AUTOMATICALLY_CREATED"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset or asset link is provided by advertiser.",
            "The asset or asset link is generated by Google."
          ],
          "readOnly": true
        },
        "primaryStatusReasons": {
          "description": "Output only. Provides a list of reasons for why an asset is not serving or not serving at full capacity.",
          "readOnly": true,
          "items": {
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "The asset is paused for its linked rollup level. Contributes to a PrimaryStatus of PAUSED.",
              "The asset is removed for its linked rollup level. Contributes to a PrimaryStatus of REMOVED.",
              "The asset has been marked as disapproved. Contributes to a PrimaryStatus of NOT_ELIGIBLE",
              "The asset has not completed policy review. Contributes to a PrimaryStatus of PENDING.",
              "The asset is approved with policies applied. Contributes to a PrimaryStatus of LIMITED."
            ],
            "type": "string",
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "ASSET_LINK_PAUSED",
              "ASSET_LINK_REMOVED",
              "ASSET_DISAPPROVED",
              "ASSET_UNDER_REVIEW",
              "ASSET_APPROVED_LABELED"
            ]
          },
          "type": "array"
        },
        "status": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Asset link is enabled.",
            "Asset link has been removed.",
            "Asset link is paused."
          ],
          "description": "Status of the ad group asset.",
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED",
            "PAUSED"
          ]
        },
        "adGroup": {
          "type": "string",
          "description": "Required. Immutable. The ad group to which the asset is linked."
        },
        "asset": {
          "description": "Required. Immutable. The asset which is linked to the ad group.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_TargetRoasOptInParameters": {
      "properties": {
        "newCampaignBudgetAmountMicros": {
          "type": "string",
          "format": "int64",
          "description": "Optional, budget amount to set for the campaign."
        },
        "targetRoas": {
          "format": "double",
          "type": "number",
          "description": "Average ROAS (revenue per unit of spend) to use for Target ROAS bidding strategy. The value is between 0.01 and 1000.0, inclusive. This is a required field, unless new_campaign_budget_amount_micros is set."
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_TargetRoasOptInParameters",
      "description": "Parameters to use when applying a Target ROAS opt-in recommendation."
    },
    "GoogleAdsGoogleadsV23Resources__DetailPlacementView": {
      "description": "A view with metrics aggregated by ad group and URL or YouTube video. This view primarily surfaces placement data from the Google Display Network. While you can select segments like `segments.ad_network_type`, this view generally does not include placement data from other networks, such as the Search Partners network. To understand performance on Search Partners, consider other reports and segmentations.",
      "type": "object",
      "properties": {
        "groupPlacementTargetUrl": {
          "readOnly": true,
          "description": "Output only. URL of the group placement, for example, domain, link to the mobile application in app store, or a YouTube channel URL.",
          "type": "string"
        },
        "placementType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "WEBSITE",
            "MOBILE_APP_CATEGORY",
            "MOBILE_APPLICATION",
            "YOUTUBE_VIDEO",
            "YOUTUBE_CHANNEL",
            "GOOGLE_PRODUCTS"
          ],
          "readOnly": true,
          "description": "Output only. Type of the placement, for example, Website, YouTube Video, and Mobile Application.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Websites(for example, 'www.flowers4sale.com').",
            "Mobile application categories(for example, 'Games').",
            "mobile applications(for example, 'mobileapp::2-com.whatsthewordanswers').",
            "YouTube videos(for example, 'youtube.com/video/wtLJPvx7-ys').",
            "YouTube channels(for example, 'youtube.com::L8ZULXASCc1I_oaOT0NaOQ').",
            "Surfaces owned and operated by Google(for example, 'tv.google.com')."
          ]
        },
        "displayName": {
          "description": "Output only. The display name is URL name for websites, YouTube video name for YouTube videos, and translated mobile app name for mobile apps.",
          "type": "string",
          "readOnly": true
        },
        "resourceName": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The resource name of the detail placement view. Detail placement view resource names have the form: `customers/{customer_id}/detailPlacementViews/{ad_group_id}~{base64_placement}`"
        },
        "targetUrl": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. URL of the placement, for example, website, link to the mobile application in app store, or a YouTube video URL."
        },
        "placement": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The automatic placement string at detail level, e. g. website URL, mobile application ID, or a YouTube video ID."
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__DetailPlacementView"
    },
    "GoogleAdsGoogleadsV23Services__MaximizeClicksBiddingStrategy": {
      "description": "Maximize Clicks Bidding Strategy.",
      "id": "GoogleAdsGoogleadsV23Services__MaximizeClicksBiddingStrategy",
      "type": "object",
      "properties": {
        "dailyTargetSpendMicros": {
          "format": "int64",
          "description": "Required. The daily target spend in micros to be used for estimation. A minimum value is enforced for the local currency used in the campaign. An error will occur showing the minimum value if this field is set too low.",
          "type": "string"
        },
        "maxCpcBidCeilingMicros": {
          "type": "string",
          "description": "Ceiling on max CPC bids in micros.",
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_ForecastingSetTargetRoasParameters": {
      "description": "Parameters to use when applying a forecasting set target roas recommendation.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_ForecastingSetTargetRoasParameters",
      "properties": {
        "targetRoas": {
          "description": "New target ROAS (revenue per unit of spend) to set for a campaign resource. The value is between 0.01 and 1000.0, inclusive.",
          "type": "number",
          "format": "double"
        },
        "campaignBudgetAmountMicros": {
          "format": "int64",
          "description": "New campaign budget amount to set for a campaign resource.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__Ad": {
      "description": "An ad.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__Ad",
      "properties": {
        "finalMobileUrls": {
          "items": {
            "type": "string"
          },
          "description": "The list of possible final mobile URLs after all cross-domain redirects for the ad.",
          "type": "array"
        },
        "resourceName": {
          "description": "Immutable. The resource name of the ad. Ad resource names have the form: `customers/{customer_id}/ads/{ad_id}`",
          "type": "string"
        },
        "imageAd": {
          "description": "Immutable. Details pertaining to an Image ad.",
          "$ref": "GoogleAdsGoogleadsV23Common__ImageAdInfo"
        },
        "displayUploadAd": {
          "description": "Details pertaining to a display upload ad.",
          "$ref": "GoogleAdsGoogleadsV23Common__DisplayUploadAdInfo"
        },
        "videoResponsiveAd": {
          "description": "Details pertaining to a Video responsive ad.",
          "$ref": "GoogleAdsGoogleadsV23Common__VideoResponsiveAdInfo"
        },
        "textAd": {
          "$ref": "GoogleAdsGoogleadsV23Common__TextAdInfo",
          "description": "Immutable. Details pertaining to a text ad."
        },
        "demandGenProductAd": {
          "$ref": "GoogleAdsGoogleadsV23Common__DemandGenProductAdInfo",
          "description": "Details pertaining to a Demand Gen product ad."
        },
        "finalAppUrls": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__FinalAppUrl"
          },
          "description": "A list of final app URLs that will be used on mobile if the user has the specific app installed."
        },
        "responsiveSearchAd": {
          "$ref": "GoogleAdsGoogleadsV23Common__ResponsiveSearchAdInfo",
          "description": "Details pertaining to a responsive search ad."
        },
        "finalUrlSuffix": {
          "type": "string",
          "description": "The suffix to use when constructing a final URL."
        },
        "hotelAd": {
          "description": "Details pertaining to a hotel ad.",
          "$ref": "GoogleAdsGoogleadsV23Common__HotelAdInfo"
        },
        "shoppingProductAd": {
          "description": "Details pertaining to a Shopping product ad.",
          "$ref": "GoogleAdsGoogleadsV23Common__ShoppingProductAdInfo"
        },
        "finalUrls": {
          "description": "The list of possible final URLs after all cross-domain redirects for the ad.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "videoAd": {
          "$ref": "GoogleAdsGoogleadsV23Common__VideoAdInfo",
          "description": "Details pertaining to a Video ad."
        },
        "shoppingComparisonListingAd": {
          "$ref": "GoogleAdsGoogleadsV23Common__ShoppingComparisonListingAdInfo",
          "description": "Details pertaining to a Shopping Comparison Listing ad."
        },
        "addedByGoogleAds": {
          "type": "boolean",
          "readOnly": true,
          "description": "Output only. Indicates if this ad was automatically added by Google Ads and not by a user. For example, this could happen when ads are automatically created as suggestions for new ads based on knowledge of how existing ads are performing."
        },
        "urlCustomParameters": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__CustomParameter"
          },
          "description": "The list of mappings that can be used to substitute custom parameter tags in a `tracking_url_template`, `final_urls`, or `mobile_final_urls`. For mutates, use url custom parameter operations."
        },
        "systemManagedResourceSource": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Generated ad variations experiment ad."
          ],
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AD_VARIATIONS"
          ],
          "description": "Output only. If this ad is system managed, then this field will indicate the source. This field is read-only.",
          "type": "string"
        },
        "smartCampaignAd": {
          "$ref": "GoogleAdsGoogleadsV23Common__SmartCampaignAdInfo",
          "description": "Details pertaining to a Smart campaign ad."
        },
        "demandGenVideoResponsiveAd": {
          "description": "Details pertaining to a Demand Gen video responsive ad.",
          "$ref": "GoogleAdsGoogleadsV23Common__DemandGenVideoResponsiveAdInfo"
        },
        "appPreRegistrationAd": {
          "description": "Details pertaining to an app pre-registration ad.",
          "$ref": "GoogleAdsGoogleadsV23Common__AppPreRegistrationAdInfo"
        },
        "appEngagementAd": {
          "description": "Details pertaining to an app engagement ad.",
          "$ref": "GoogleAdsGoogleadsV23Common__AppEngagementAdInfo"
        },
        "id": {
          "format": "int64",
          "description": "Output only. The ID of the ad.",
          "type": "string",
          "readOnly": true
        },
        "displayUrl": {
          "type": "string",
          "description": "The URL that appears in the ad description for some ad formats."
        },
        "expandedDynamicSearchAd": {
          "description": "Immutable. Details pertaining to an Expanded Dynamic Search Ad. This type of ad has its headline, final URLs, and display URL auto-generated at serving time according to domain name specific information provided by `dynamic_search_ads_setting` linked at the campaign level.",
          "$ref": "GoogleAdsGoogleadsV23Common__ExpandedDynamicSearchAdInfo"
        },
        "shoppingSmartAd": {
          "description": "Details pertaining to a Smart Shopping ad.",
          "$ref": "GoogleAdsGoogleadsV23Common__ShoppingSmartAdInfo"
        },
        "urlCollections": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__UrlCollection"
          },
          "type": "array",
          "description": "Additional URLs for the ad that are tagged with a unique identifier that can be referenced from other fields in the ad."
        },
        "demandGenCarouselAd": {
          "$ref": "GoogleAdsGoogleadsV23Common__DemandGenCarouselAdInfo",
          "description": "Details pertaining to a Demand Gen carousel ad."
        },
        "expandedTextAd": {
          "$ref": "GoogleAdsGoogleadsV23Common__ExpandedTextAdInfo",
          "description": "Details pertaining to an expanded text ad."
        },
        "demandGenMultiAssetAd": {
          "description": "Details pertaining to a Demand Gen multi asset ad.",
          "$ref": "GoogleAdsGoogleadsV23Common__DemandGenMultiAssetAdInfo"
        },
        "name": {
          "type": "string",
          "description": "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. The name field is currently only supported for DisplayUploadAd, ImageAd, LegacyAppInstallAd, ShoppingComparisonListingAd, VideoAd, VideoResponsiveAd and DemandGen ads."
        },
        "responsiveDisplayAd": {
          "description": "Details pertaining to a responsive display ad.",
          "$ref": "GoogleAdsGoogleadsV23Common__ResponsiveDisplayAdInfo"
        },
        "travelAd": {
          "description": "Details pertaining to a travel ad.",
          "$ref": "GoogleAdsGoogleadsV23Common__TravelAdInfo"
        },
        "devicePreference": {
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Mobile devices with full browsers.",
            "Tablets with full browsers.",
            "Computers.",
            "Smart TVs and game consoles.",
            "Other device types."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MOBILE",
            "TABLET",
            "DESKTOP",
            "CONNECTED_TV",
            "OTHER"
          ],
          "type": "string",
          "description": "The device preference for the ad. You can only specify a preference for mobile devices. When this preference is set the ad will be preferred over other ads when being displayed on a mobile device. The ad can still be displayed on other device types, for example, if no other ads are available. If unspecified (no device preference), all devices are targeted. This is only supported by some ad types."
        },
        "legacyAppInstallAd": {
          "description": "Immutable. Details pertaining to a legacy app install ad.",
          "$ref": "GoogleAdsGoogleadsV23Common__LegacyAppInstallAdInfo"
        },
        "type": {
          "readOnly": true,
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The ad is a text ad.",
            "The ad is an expanded text ad.",
            "The ad is an expanded dynamic search ad.",
            "The ad is a hotel ad.",
            "The ad is a Smart Shopping ad.",
            "The ad is a standard Shopping ad.",
            "The ad is a video ad.",
            "This ad is an Image ad.",
            "The ad is a responsive search ad.",
            "The ad is a legacy responsive display ad.",
            "The ad is an app ad.",
            "The ad is a legacy app install ad.",
            "The ad is a responsive display ad.",
            "The ad is a local ad.",
            "The ad is a display upload ad with the HTML5_UPLOAD_AD product type.",
            "The ad is a display upload ad with one of the DYNAMIC_HTML5_* product types.",
            "The ad is an app engagement ad.",
            "The ad is a Shopping Comparison Listing ad.",
            "Video bumper ad.",
            "Video non-skippable in-stream ad.",
            "Video TrueView in-stream ad.",
            "Video responsive ad.",
            "Smart campaign ad.",
            "Call ad.",
            "Universal app pre-registration ad.",
            "In-feed video ad.",
            "Demand Gen multi asset ad.",
            "Demand Gen carousel ad.",
            "Travel ad.",
            "Demand Gen video responsive ad.",
            "Demand Gen product ad.",
            "YouTube Audio ad."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "TEXT_AD",
            "EXPANDED_TEXT_AD",
            "EXPANDED_DYNAMIC_SEARCH_AD",
            "HOTEL_AD",
            "SHOPPING_SMART_AD",
            "SHOPPING_PRODUCT_AD",
            "VIDEO_AD",
            "IMAGE_AD",
            "RESPONSIVE_SEARCH_AD",
            "LEGACY_RESPONSIVE_DISPLAY_AD",
            "APP_AD",
            "LEGACY_APP_INSTALL_AD",
            "RESPONSIVE_DISPLAY_AD",
            "LOCAL_AD",
            "HTML5_UPLOAD_AD",
            "DYNAMIC_HTML5_AD",
            "APP_ENGAGEMENT_AD",
            "SHOPPING_COMPARISON_LISTING_AD",
            "VIDEO_BUMPER_AD",
            "VIDEO_NON_SKIPPABLE_IN_STREAM_AD",
            "VIDEO_TRUEVIEW_IN_STREAM_AD",
            "VIDEO_RESPONSIVE_AD",
            "SMART_CAMPAIGN_AD",
            "CALL_AD",
            "APP_PRE_REGISTRATION_AD",
            "IN_FEED_VIDEO_AD",
            "DEMAND_GEN_MULTI_ASSET_AD",
            "DEMAND_GEN_CAROUSEL_AD",
            "TRAVEL_AD",
            "DEMAND_GEN_VIDEO_RESPONSIVE_AD",
            "DEMAND_GEN_PRODUCT_AD",
            "YOUTUBE_AUDIO_AD"
          ],
          "description": "Output only. The type of ad."
        },
        "localAd": {
          "description": "Details pertaining to a local ad.",
          "$ref": "GoogleAdsGoogleadsV23Common__LocalAdInfo"
        },
        "appAd": {
          "description": "Details pertaining to an app ad.",
          "$ref": "GoogleAdsGoogleadsV23Common__AppAdInfo"
        },
        "legacyResponsiveDisplayAd": {
          "description": "Details pertaining to a legacy responsive display ad.",
          "$ref": "GoogleAdsGoogleadsV23Common__LegacyResponsiveDisplayAdInfo"
        },
        "trackingUrlTemplate": {
          "description": "The URL template for constructing a tracking URL.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_ForecastingSetTargetCpaParameters": {
      "description": "Parameters to use when applying a set target CPA recommendation.",
      "id": "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_ForecastingSetTargetCpaParameters",
      "properties": {
        "campaignBudgetAmountMicros": {
          "format": "int64",
          "description": "New campaign budget amount to set for a campaign resource.",
          "type": "string"
        },
        "targetCpaMicros": {
          "type": "string",
          "format": "int64",
          "description": "Average CPA to use for Target CPA bidding strategy."
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__AdGroupKeywordSuggestion": {
      "properties": {
        "keywordText": {
          "description": "The original keyword text.",
          "type": "string"
        },
        "suggestedKeywordText": {
          "description": "The normalized version of keyword_text for BROAD/EXACT/PHRASE suggestions.",
          "type": "string"
        },
        "suggestedMatchType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EXACT",
            "PHRASE",
            "BROAD"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Exact match.",
            "Phrase match.",
            "Broad match."
          ],
          "description": "The suggested keyword match type.",
          "type": "string"
        },
        "suggestedAdGroup": {
          "type": "string",
          "description": "The suggested AdGroup for the keyword. Resource name format: `customers/{customer_id}/adGroups/{ad_group_id}`"
        },
        "suggestedCampaign": {
          "description": "The suggested Campaign for the keyword. Resource name format: `customers/{customer_id}/campaigns/{campaign_id}`",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__AdGroupKeywordSuggestion",
      "description": "The suggested text and AdGroup/Campaign pairing for a given keyword."
    },
    "GoogleAdsGoogleadsV23Resources_AdGroupCriterion_QualityInfo": {
      "properties": {
        "creativeQualityScore": {
          "type": "string",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BELOW_AVERAGE",
            "AVERAGE",
            "ABOVE_AVERAGE"
          ],
          "description": "Output only. The performance of the ad compared to other advertisers.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Quality of the creative is below average.",
            "Quality of the creative is average.",
            "Quality of the creative is above average."
          ]
        },
        "qualityScore": {
          "format": "int32",
          "type": "integer",
          "readOnly": true,
          "description": "Output only. The quality score. This field may not be populated if Google does not have enough information to determine a value."
        },
        "searchPredictedCtr": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Quality of the creative is below average.",
            "Quality of the creative is average.",
            "Quality of the creative is above average."
          ],
          "description": "Output only. The click-through rate compared to that of other advertisers.",
          "readOnly": true,
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BELOW_AVERAGE",
            "AVERAGE",
            "ABOVE_AVERAGE"
          ]
        },
        "postClickQualityScore": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The quality score of the landing page.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BELOW_AVERAGE",
            "AVERAGE",
            "ABOVE_AVERAGE"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Quality of the creative is below average.",
            "Quality of the creative is average.",
            "Quality of the creative is above average."
          ]
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources_AdGroupCriterion_QualityInfo",
      "description": "A container for ad group criterion quality information."
    },
    "GoogleAdsGoogleadsV23Services__CreateProductLinkInvitationRequest": {
      "type": "object",
      "properties": {
        "productLinkInvitation": {
          "$ref": "GoogleAdsGoogleadsV23Resources__ProductLinkInvitation",
          "description": "Required. The product link invitation to be created."
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__CreateProductLinkInvitationRequest",
      "description": "Request message for ProductLinkInvitationService.CreateProductLinkInvitation."
    },
    "GoogleAdsGoogleadsV23Resources_AdGroup_VideoAdGroupSettings": {
      "type": "object",
      "description": "Settings for video ad groups.",
      "id": "GoogleAdsGoogleadsV23Resources_AdGroup_VideoAdGroupSettings",
      "properties": {
        "videoAdSequence": {
          "description": "The video ads sequence step settings containing step ID.",
          "$ref": "GoogleAdsGoogleadsV23Resources_AdGroupVideoAdGroupSettings_VideoAdSequenceStepSetting"
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__CampaignCustomizer": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__CampaignCustomizer",
      "properties": {
        "resourceName": {
          "description": "Immutable. The resource name of the campaign customizer. Campaign customizer resource names have the form: `customers/{customer_id}/campaignCustomizers/{campaign_id}~{customizer_attribute_id}`",
          "type": "string"
        },
        "campaign": {
          "type": "string",
          "description": "Immutable. The campaign to which the customizer attribute is linked."
        },
        "customizerAttribute": {
          "type": "string",
          "description": "Required. Immutable. The customizer attribute which is linked to the campaign."
        },
        "status": {
          "readOnly": true,
          "enumDescriptions": [
            "The status has not been specified.",
            "The received value is not known in this version.",
            "The customizer value is enabled.",
            "The customizer value is removed."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "description": "Output only. The status of the campaign customizer."
        },
        "value": {
          "description": "Required. The value to associate with the customizer attribute at this level. The value must be of the type specified for the CustomizerAttribute.",
          "$ref": "GoogleAdsGoogleadsV23Common__CustomizerValue"
        }
      },
      "description": "A customizer value for the associated CustomizerAttribute at the Campaign level."
    },
    "GoogleAdsGoogleadsV23Services__GenerateCreatorInsightsRequest": {
      "id": "GoogleAdsGoogleadsV23Services__GenerateCreatorInsightsRequest",
      "description": "Request message for ContentCreatorInsightsService.GenerateCreatorInsights.",
      "properties": {
        "customerInsightsGroup": {
          "description": "Required. The name of the customer being planned for. This is a user-defined value.",
          "type": "string"
        },
        "countryLocations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__LocationInfo"
          },
          "description": "Required. The countries to search that apply to the criteria.",
          "type": "array"
        },
        "searchAttributes": {
          "description": "The attributes used to identify top creators. Data fetched is based on the list of countries or sub-country locations specified in country_locations or sub_country_locations.",
          "$ref": "GoogleAdsGoogleadsV23Services_GenerateCreatorInsightsRequest_SearchAttributes"
        },
        "subCountryLocations": {
          "description": "The sub-country geographic locations to search that apply to the criteria. Only supported for SearchAttributes criteria.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__LocationInfo"
          }
        },
        "searchChannels": {
          "description": "YouTube Channel IDs for Creator Insights. Data fetched for channels is based on the list of countries specified in country_locations.",
          "$ref": "GoogleAdsGoogleadsV23Services_GenerateCreatorInsightsRequest_YouTubeChannels"
        },
        "insightsApplicationInfo": {
          "description": "Optional. Additional information on the application issuing the request.",
          "$ref": "GoogleAdsGoogleadsV23Common__AdditionalApplicationInfo"
        },
        "searchBrand": {
          "$ref": "GoogleAdsGoogleadsV23Services_GenerateCreatorInsightsRequest_SearchBrand",
          "description": "A brand used to search for top creators. Data fetched is based on the list of countries specified in country_locations."
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateBiddingDataExclusionsResponse": {
      "description": "Response message for data exclusions mutate.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "description": "All results for the mutate.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateBiddingDataExclusionsResult"
          }
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateBiddingDataExclusionsResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__TrendInsightMetrics": {
      "description": "Metrics associated with a trend insight.",
      "id": "GoogleAdsGoogleadsV23Services__TrendInsightMetrics",
      "type": "object",
      "properties": {
        "viewsCount": {
          "format": "int64",
          "type": "string",
          "description": "The number of views for this trend. This is only populated for SearchTopics requests."
        },
        "trendChangePercent": {
          "description": "The percentage of the change in the trend's value over the comparison period, where 1.0 represents 100%. If this is not set, it means that the trend is emerging.",
          "type": "number",
          "format": "double"
        },
        "audienceShare": {
          "format": "double",
          "type": "number",
          "description": "The fraction (from 0 to 1 inclusive) of the requested audience that has has searched or viewed this trend. This is only populated for SearchAudience requests."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__AssetSetAssetOperation": {
      "type": "object",
      "description": "A single operation (create, remove) on an asset set asset.",
      "id": "GoogleAdsGoogleadsV23Services__AssetSetAssetOperation",
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new asset set asset",
          "$ref": "GoogleAdsGoogleadsV23Resources__AssetSetAsset"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed asset set asset is expected, in this format: `customers/{customer_id}/assetSetAssets/{asset_set_id}~{asset_id}`"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__CreateCustomerClientResponse": {
      "type": "object",
      "properties": {
        "invitationLink": {
          "type": "string",
          "description": "Link for inviting user to access the created customer. Accessible to allowlisted customers only."
        },
        "resourceName": {
          "description": "The resource name of the newly created customer. Customer resource names have the form: `customers/{customer_id}`.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__CreateCustomerClientResponse",
      "description": "Response message for CreateCustomerClient mutate."
    },
    "GoogleAdsGoogleadsV23Services__MutateCampaignCriterionResult": {
      "properties": {
        "campaignCriterion": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CampaignCriterion",
          "description": "The mutated campaign criterion with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\"."
        },
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateCampaignCriterionResult",
      "description": "The result for the criterion mutate."
    },
    "GoogleAdsGoogleadsV23Services__BiddingStrategyOperation": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__BiddingStrategyOperation",
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new bidding strategy.",
          "$ref": "GoogleAdsGoogleadsV23Resources__BiddingStrategy"
        },
        "remove": {
          "description": "Remove operation: A resource name for the removed bidding strategy is expected, in this format: `customers/{customer_id}/biddingStrategies/{bidding_strategy_id}`",
          "type": "string"
        },
        "update": {
          "description": "Update operation: The bidding strategy is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV23Resources__BiddingStrategy"
        },
        "updateMask": {
          "type": "string",
          "format": "google-fieldmask",
          "description": "FieldMask that determines which resource fields are modified in an update."
        }
      },
      "description": "A single operation (create, update, remove) on a bidding strategy."
    },
    "GoogleAdsGoogleadsV23Services__AppendLeadConversationResponse": {
      "description": "Response message for LocalServicesLeadService.AppendLeadConversation.",
      "properties": {
        "responses": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__ConversationOrError"
          },
          "type": "array",
          "description": "Required. List of append conversation operation results."
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__AppendLeadConversationResponse"
    },
    "GoogleAdsGoogleadsV23Services__AssetGroupListingGroupFilterOperation": {
      "id": "GoogleAdsGoogleadsV23Services__AssetGroupListingGroupFilterOperation",
      "properties": {
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask",
          "type": "string"
        },
        "update": {
          "description": "Update operation: The asset group listing group filter is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV23Resources__AssetGroupListingGroupFilter"
        },
        "remove": {
          "description": "Remove operation: A resource name for the removed asset group listing group filter is expected, in this format: `customers/{customer_id}/assetGroupListingGroupFilters/{asset_group_id}~{listing_group_filter_id}` An entity can be removed only if it's not referenced by other parent_listing_group_id. If multiple entities are being deleted, the mutates must be in the correct order.",
          "type": "string"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new asset group listing group filter.",
          "$ref": "GoogleAdsGoogleadsV23Resources__AssetGroupListingGroupFilter"
        }
      },
      "description": "A single operation (create, remove) on an asset group listing group filter.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__PolicySummary": {
      "id": "GoogleAdsGoogleadsV23Common__PolicySummary",
      "description": "Contains policy summary information.",
      "type": "object",
      "properties": {
        "reviewStatus": {
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "Currently under review.",
            "Primary review complete. Other reviews may be continuing.",
            "The resource has been resubmitted for approval or its policy decision has been appealed.",
            "The resource is eligible and may be serving but could still undergo further review."
          ],
          "description": "Where in the review process the resource is.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "REVIEW_IN_PROGRESS",
            "REVIEWED",
            "UNDER_APPEAL",
            "ELIGIBLE_MAY_SERVE"
          ],
          "type": "string"
        },
        "approvalStatus": {
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "Will not serve.",
            "Serves with restrictions.",
            "Serves without restrictions.",
            "Will not serve in targeted countries, but may serve for users who are searching for information about the targeted countries."
          ],
          "type": "string",
          "description": "The overall approval status, which is calculated based on the status of its individual policy topic entries.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DISAPPROVED",
            "APPROVED_LIMITED",
            "APPROVED",
            "AREA_OF_INTEREST_ONLY"
          ]
        },
        "policyTopicEntries": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__PolicyTopicEntry"
          },
          "type": "array",
          "description": "The list of policy findings."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateAdGroupAdResult": {
      "description": "The result for the ad mutate.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateAdGroupAdResult",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "The resource name returned for successful operations."
        },
        "adGroupAd": {
          "$ref": "GoogleAdsGoogleadsV23Resources__AdGroupAd",
          "description": "The mutated ad group ad with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\"."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__SurveySatisfied": {
      "id": "GoogleAdsGoogleadsV23Services__SurveySatisfied",
      "description": "Details about various factors for being satisfied with the lead.",
      "type": "object",
      "properties": {
        "surveySatisfiedReason": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Other reasons.",
            "Lead converted into a booked customer or client.",
            "Lead could convert into a booked customer or client soon.",
            "Lead was related to the services the business offers.",
            "Lead was for a service that generates high value for the business."
          ],
          "description": "Required. Provider's reason for being satisfied with the lead.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "OTHER_SATISFIED_REASON",
            "BOOKED_CUSTOMER",
            "LIKELY_BOOKED_CUSTOMER",
            "SERVICE_RELATED",
            "HIGH_VALUE_SERVICE"
          ]
        },
        "otherReasonComment": {
          "type": "string",
          "description": "Optional. Provider's free form comments. This field is required when OTHER_SATISFIED_REASON is selected as the reason."
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__CampaignSearchTermInsight": {
      "properties": {
        "id": {
          "description": "Output only. The ID of the insight.",
          "format": "int64",
          "type": "string",
          "readOnly": true
        },
        "campaignId": {
          "format": "int64",
          "readOnly": true,
          "description": "Output only. The ID of the campaign.",
          "type": "string"
        },
        "categoryLabel": {
          "readOnly": true,
          "description": "Output only. The label for the search category. An empty string denotes the catch-all category for search terms that didn't fit into another category.",
          "type": "string"
        },
        "resourceName": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The resource name of the campaign level search term insight. Campaign level search term insight resource names have the form: `customers/{customer_id}/campaignSearchTermInsights/{campaign_id}~{category_id}`"
        }
      },
      "description": "This report provides a high-level view of search demand at the campaign level by grouping similar search terms into categories and showing their search volume. Historical data is available starting March 2023.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__CampaignSearchTermInsight"
    },
    "GoogleAdsGoogleadsV23Resources_Recommendation_ResponsiveSearchAdAssetRecommendation": {
      "id": "GoogleAdsGoogleadsV23Resources_Recommendation_ResponsiveSearchAdAssetRecommendation",
      "type": "object",
      "description": "The add responsive search ad asset recommendation.",
      "properties": {
        "currentAd": {
          "$ref": "GoogleAdsGoogleadsV23Resources__Ad",
          "description": "Output only. The current ad to be updated.",
          "readOnly": true
        },
        "recommendedAssets": {
          "description": "Output only. The recommended assets. This is populated only with the new headlines and/or descriptions, and is otherwise empty.",
          "$ref": "GoogleAdsGoogleadsV23Resources__Ad",
          "readOnly": true
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__CustomerAsset": {
      "type": "object",
      "properties": {
        "resourceName": {
          "description": "Immutable. The resource name of the customer asset. CustomerAsset resource names have the form: `customers/{customer_id}/customerAssets/{asset_id}~{field_type}`",
          "type": "string"
        },
        "asset": {
          "description": "Required. Immutable. The asset which is linked to the customer.",
          "type": "string"
        },
        "primaryStatus": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ELIGIBLE",
            "PAUSED",
            "REMOVED",
            "PENDING",
            "LIMITED",
            "NOT_ELIGIBLE"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is eligible to serve.",
            "The user-specified asset link status is paused.",
            "The user-specified asset link status is removed.",
            "The asset may serve in the future.",
            "The asset is serving in a partial capacity.",
            "The asset is not eligible to serve."
          ],
          "description": "Output only. Provides the PrimaryStatus of this asset link. Primary status is meant essentially to differentiate between the plain \"status\" field, which has advertiser set values of enabled, paused, or removed. The primary status takes into account other signals (for assets its mainly policy and quality approvals) to come up with a more comprehensive status to indicate its serving state.",
          "type": "string",
          "readOnly": true
        },
        "primaryStatusReasons": {
          "items": {
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "ASSET_LINK_PAUSED",
              "ASSET_LINK_REMOVED",
              "ASSET_DISAPPROVED",
              "ASSET_UNDER_REVIEW",
              "ASSET_APPROVED_LABELED"
            ],
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "The asset is paused for its linked rollup level. Contributes to a PrimaryStatus of PAUSED.",
              "The asset is removed for its linked rollup level. Contributes to a PrimaryStatus of REMOVED.",
              "The asset has been marked as disapproved. Contributes to a PrimaryStatus of NOT_ELIGIBLE",
              "The asset has not completed policy review. Contributes to a PrimaryStatus of PENDING.",
              "The asset is approved with policies applied. Contributes to a PrimaryStatus of LIMITED."
            ]
          },
          "description": "Output only. Provides a list of reasons for why an asset is not serving or not serving at full capacity.",
          "type": "array",
          "readOnly": true
        },
        "fieldType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is linked for use as a headline.",
            "The asset is linked for use as a description.",
            "The asset is linked for use as mandatory ad text.",
            "The asset is linked for use as a marketing image.",
            "The asset is linked for use as a media bundle.",
            "The asset is linked for use as a YouTube video.",
            "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
            "The asset is linked for use as a Lead Form extension.",
            "The asset is linked for use as a Promotion extension.",
            "The asset is linked for use as a Callout extension.",
            "The asset is linked for use as a Structured Snippet extension.",
            "The asset is linked for use as a Sitelink.",
            "The asset is linked for use as a Mobile App extension.",
            "The asset is linked for use as a Hotel Callout extension.",
            "The asset is linked for use as a Call extension.",
            "The asset is linked for use as a Price extension.",
            "The asset is linked for use as a long headline.",
            "The asset is linked for use as a business name.",
            "The asset is linked for use as a square marketing image.",
            "The asset is linked for use as a portrait marketing image.",
            "The asset is linked for use as a logo.",
            "The asset is linked for use as a landscape logo.",
            "The asset is linked for use as a non YouTube logo.",
            "The asset is linked for use to select a call-to-action.",
            "The asset is linked for use to select an ad image.",
            "The asset is linked for use as a business logo.",
            "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
            "The asset is linked for use as a Demand Gen carousel card.",
            "The asset is linked for use as a Business Message.",
            "The asset is linked for use as a tall portrait marketing image.",
            "The asset is linked for use as related YouTube videos.",
            "The asset is linked for use as a landing page preview image.",
            "The asset is linked for use as a long description.",
            "The asset is linked for use as a call-to-action."
          ],
          "description": "Required. Immutable. Role that the asset takes for the customer link.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE",
            "DESCRIPTION",
            "MANDATORY_AD_TEXT",
            "MARKETING_IMAGE",
            "MEDIA_BUNDLE",
            "YOUTUBE_VIDEO",
            "BOOK_ON_GOOGLE",
            "LEAD_FORM",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "LONG_HEADLINE",
            "BUSINESS_NAME",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "VIDEO",
            "CALL_TO_ACTION_SELECTION",
            "AD_IMAGE",
            "BUSINESS_LOGO",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "TALL_PORTRAIT_MARKETING_IMAGE",
            "RELATED_YOUTUBE_VIDEOS",
            "LANDING_PAGE_PREVIEW",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION"
          ]
        },
        "source": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADVERTISER",
            "AUTOMATICALLY_CREATED"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset or asset link is provided by advertiser.",
            "The asset or asset link is generated by Google."
          ],
          "description": "Output only. Source of the customer asset link.",
          "readOnly": true
        },
        "status": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED",
            "PAUSED"
          ],
          "type": "string",
          "description": "Status of the customer asset.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Asset link is enabled.",
            "Asset link has been removed.",
            "Asset link is paused."
          ]
        },
        "primaryStatusDetails": {
          "readOnly": true,
          "description": "Output only. Provides the details of the primary status and its associated reasons.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AssetLinkPrimaryStatusDetails"
          }
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__CustomerAsset",
      "description": "A link between a customer and an asset."
    },
    "GoogleAdsGoogleadsV23Services_GenerateRecommendationsRequest_SeedInfo": {
      "properties": {
        "keywordSeeds": {
          "description": "Optional. Keywords or phrases to generate ideas from, for example: cars or \"car dealership near me\".",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "urlSeed": {
          "type": "string",
          "description": "A specific url to generate ideas from, for example: www.example.com/cars."
        }
      },
      "description": "A keyword seed and a specific url to generate keywords from.",
      "id": "GoogleAdsGoogleadsV23Services_GenerateRecommendationsRequest_SeedInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__KeywordThemeInfo": {
      "properties": {
        "freeFormKeywordTheme": {
          "description": "Free-form text to be matched to a Smart Campaign keyword theme constant on a best-effort basis.",
          "type": "string"
        },
        "keywordThemeConstant": {
          "type": "string",
          "description": "The resource name of a Smart Campaign keyword theme constant. `keywordThemeConstants/{keyword_theme_id}~{sub_keyword_theme_id}`"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__KeywordThemeInfo",
      "description": "A Smart Campaign keyword theme.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__CreateProductLinkRequest": {
      "type": "object",
      "properties": {
        "productLink": {
          "$ref": "GoogleAdsGoogleadsV23Resources__ProductLink",
          "description": "Required. The product link to be created."
        }
      },
      "description": "Request message for ProductLinkService.CreateProductLink.",
      "id": "GoogleAdsGoogleadsV23Services__CreateProductLinkRequest"
    },
    "GoogleAdsGoogleadsV23Services__MutateCustomerCustomizersResponse": {
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "type": "array",
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomerCustomizerResult"
          }
        }
      },
      "type": "object",
      "description": "Response message for a customizer attribute mutate.",
      "id": "GoogleAdsGoogleadsV23Services__MutateCustomerCustomizersResponse"
    },
    "GoogleAdsGoogleadsV23Resources__AccountLink": {
      "description": "Represents the data sharing connection between a Google Ads account and another account",
      "properties": {
        "accountLinkId": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The ID of the link. This field is read only."
        },
        "resourceName": {
          "description": "Immutable. Resource name of the account link. AccountLink resource names have the form: `customers/{customer_id}/accountLinks/{account_link_id}`",
          "type": "string"
        },
        "type": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "THIRD_PARTY_APP_ANALYTICS"
          ],
          "description": "Output only. The type of the linked account.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "A link to provide third party app analytics data."
          ],
          "type": "string"
        },
        "thirdPartyAppAnalytics": {
          "$ref": "GoogleAdsGoogleadsV23Resources__ThirdPartyAppAnalyticsLinkIdentifier",
          "description": "Immutable. A third party app analytics link."
        },
        "status": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The link is enabled.",
            "The link is removed/disabled.",
            "The link to the other account has been requested. A user on the other account may now approve the link by setting the status to ENABLED.",
            "This link has been requested by a user on the other account. It may be approved by a user on this account by setting the status to ENABLED.",
            "The link is rejected by the approver.",
            "The link is revoked by the user who requested the link."
          ],
          "description": "The status of the link.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED",
            "REQUESTED",
            "PENDING_APPROVAL",
            "REJECTED",
            "REVOKED"
          ],
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__AccountLink"
    },
    "GoogleAdsGoogleadsV23Services__GenerateKeywordIdeaResult": {
      "properties": {
        "keywordIdeaMetrics": {
          "$ref": "GoogleAdsGoogleadsV23Common__KeywordPlanHistoricalMetrics",
          "description": "The historical metrics for the keyword."
        },
        "text": {
          "type": "string",
          "description": "Text of the keyword idea. As in Keyword Plan historical metrics, this text may not be an actual keyword, but the canonical form of multiple keywords. See KeywordPlanKeywordHistoricalMetrics message in KeywordPlanService."
        },
        "keywordAnnotations": {
          "description": "The annotations for the keyword. The annotation data is only provided if requested.",
          "$ref": "GoogleAdsGoogleadsV23Common__KeywordAnnotations"
        },
        "closeVariants": {
          "type": "array",
          "description": "The list of close variants from the requested keywords that are combined into this GenerateKeywordIdeaResult. See https://support.google.com/google-ads/answer/9342105 for the definition of \"close variants\".",
          "items": {
            "type": "string"
          }
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__GenerateKeywordIdeaResult",
      "description": "The result of generating keyword ideas.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__LeadFormField": {
      "id": "GoogleAdsGoogleadsV23Common__LeadFormField",
      "description": "One input field instance within a form.",
      "properties": {
        "singleChoiceAnswers": {
          "description": "Answer configuration for a single choice question. Can be set only for pre-vetted question fields. Minimum of 2 answers required and maximum of 12 allowed.",
          "$ref": "GoogleAdsGoogleadsV23Common__LeadFormSingleChoiceAnswers"
        },
        "inputType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "FULL_NAME",
            "EMAIL",
            "PHONE_NUMBER",
            "POSTAL_CODE",
            "STREET_ADDRESS",
            "CITY",
            "REGION",
            "COUNTRY",
            "WORK_EMAIL",
            "COMPANY_NAME",
            "WORK_PHONE",
            "JOB_TITLE",
            "GOVERNMENT_ISSUED_ID_CPF_BR",
            "GOVERNMENT_ISSUED_ID_DNI_AR",
            "GOVERNMENT_ISSUED_ID_DNI_PE",
            "GOVERNMENT_ISSUED_ID_RUT_CL",
            "GOVERNMENT_ISSUED_ID_CC_CO",
            "GOVERNMENT_ISSUED_ID_CI_EC",
            "GOVERNMENT_ISSUED_ID_RFC_MX",
            "FIRST_NAME",
            "LAST_NAME",
            "VEHICLE_MODEL",
            "VEHICLE_TYPE",
            "PREFERRED_DEALERSHIP",
            "VEHICLE_PURCHASE_TIMELINE",
            "VEHICLE_OWNERSHIP",
            "VEHICLE_PAYMENT_TYPE",
            "VEHICLE_CONDITION",
            "COMPANY_SIZE",
            "ANNUAL_SALES",
            "YEARS_IN_BUSINESS",
            "JOB_DEPARTMENT",
            "JOB_ROLE",
            "OVER_18_AGE",
            "OVER_19_AGE",
            "OVER_20_AGE",
            "OVER_21_AGE",
            "OVER_22_AGE",
            "OVER_23_AGE",
            "OVER_24_AGE",
            "OVER_25_AGE",
            "OVER_26_AGE",
            "OVER_27_AGE",
            "OVER_28_AGE",
            "OVER_29_AGE",
            "OVER_30_AGE",
            "OVER_31_AGE",
            "OVER_32_AGE",
            "OVER_33_AGE",
            "OVER_34_AGE",
            "OVER_35_AGE",
            "OVER_36_AGE",
            "OVER_37_AGE",
            "OVER_38_AGE",
            "OVER_39_AGE",
            "OVER_40_AGE",
            "OVER_41_AGE",
            "OVER_42_AGE",
            "OVER_43_AGE",
            "OVER_44_AGE",
            "OVER_45_AGE",
            "OVER_46_AGE",
            "OVER_47_AGE",
            "OVER_48_AGE",
            "OVER_49_AGE",
            "OVER_50_AGE",
            "OVER_51_AGE",
            "OVER_52_AGE",
            "OVER_53_AGE",
            "OVER_54_AGE",
            "OVER_55_AGE",
            "OVER_56_AGE",
            "OVER_57_AGE",
            "OVER_58_AGE",
            "OVER_59_AGE",
            "OVER_60_AGE",
            "OVER_61_AGE",
            "OVER_62_AGE",
            "OVER_63_AGE",
            "OVER_64_AGE",
            "OVER_65_AGE",
            "EDUCATION_PROGRAM",
            "EDUCATION_COURSE",
            "PRODUCT",
            "SERVICE",
            "OFFER",
            "CATEGORY",
            "PREFERRED_CONTACT_METHOD",
            "PREFERRED_LOCATION",
            "PREFERRED_CONTACT_TIME",
            "PURCHASE_TIMELINE",
            "YEARS_OF_EXPERIENCE",
            "JOB_INDUSTRY",
            "LEVEL_OF_EDUCATION",
            "PROPERTY_TYPE",
            "REALTOR_HELP_GOAL",
            "PROPERTY_COMMUNITY",
            "PRICE_RANGE",
            "NUMBER_OF_BEDROOMS",
            "FURNISHED_PROPERTY",
            "PETS_ALLOWED_PROPERTY",
            "NEXT_PLANNED_PURCHASE",
            "EVENT_SIGNUP_INTEREST",
            "PREFERRED_SHOPPING_PLACES",
            "FAVORITE_BRAND",
            "TRANSPORTATION_COMMERCIAL_LICENSE_TYPE",
            "EVENT_BOOKING_INTEREST",
            "DESTINATION_COUNTRY",
            "DESTINATION_CITY",
            "DEPARTURE_COUNTRY",
            "DEPARTURE_CITY",
            "DEPARTURE_DATE",
            "RETURN_DATE",
            "NUMBER_OF_TRAVELERS",
            "TRAVEL_BUDGET",
            "TRAVEL_ACCOMMODATION"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The user will be asked to fill in their given and family name. This field cannot be set at the same time as GIVEN_NAME or FAMILY_NAME.",
            "The user will be asked to fill in their email address.",
            "The user will be asked to fill in their phone number.",
            "The user will be asked to fill in their zip code.",
            "The user will be asked to fill in their street address.",
            "The user will be asked to fill in their city.",
            "The user will be asked to fill in their region part of the address (for example, state for US, province for Canada).",
            "The user will be asked to fill in their country.",
            "The user will be asked to fill in their work email address.",
            "The user will be asked to fill in their company name.",
            "The user will be asked to fill in their work phone.",
            "The user will be asked to fill in their job title.",
            "The user will be asked to fill in their CPF for Brazil users.",
            "The user will be asked to fill in their DNI for Argentina users.",
            "The user will be asked to fill in their DNI for Peru users.",
            "The user will be asked to fill in their RUT for Chile users.",
            "The user will be asked to fill in their CC for Colombia users.",
            "The user will be asked to fill in their CI for Ecuador users.",
            "The user will be asked to fill in their RFC for Mexico users.",
            "The user will be asked to fill in their first name. This field can not be set at the same time as FULL_NAME.",
            "The user will be asked to fill in their last name. This field can not be set at the same time as FULL_NAME.",
            "Question: \"Which model are you interested in?\" Category: \"Auto\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Which type of vehicle are you interested in?\" Category: \"Auto\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your preferred dealership?\" Category: \"Auto\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"When do you plan on purchasing a vehicle?\" Category: \"Auto\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Do you own a vehicle?\" Category: \"Auto\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What vehicle ownership option are you interested in?\" Category: \"Auto\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What type of vehicle condition are you interested in?\" Category: \"Auto\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What size is your company?\" Category: \"Business\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your annual sales volume?\" Category: \"Business\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"How many years have you been in business?\" Category: \"Business\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your job department?\" Category: \"Business\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your job role?\" Category: \"Business\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 18 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 19 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 20 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 21 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 22 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 23 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 24 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 25 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 26 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 27 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 28 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 29 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 30 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 31 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 32 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 33 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 34 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 35 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 36 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 37 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 38 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 39 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 40 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 41 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 42 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 43 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 44 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 45 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 46 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 47 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 48 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 49 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 50 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 51 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 52 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 53 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 54 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 55 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 56 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 57 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 58 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 59 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 60 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 61 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 62 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 63 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 64 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 65 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Which program are you interested in?\" Category: \"Education\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Which course are you interested in?\" Category: \"Education\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Which product are you interested in?\" Category: \"General\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Which service are you interested in?\" Category: \"General\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Which offer are you interested in?\" Category: \"General\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Which category are you interested in?\" Category: \"General\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your preferred method of contact?\" Category: \"General\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your preferred location?\" Category: \"General\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is the best time to contact you?\" Category: \"General\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"When are you looking to make a purchase?\" Category: \"General\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"How many years of work experience do you have?\" Category: \"Jobs\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What industry do you work in?\" Category: \"Jobs\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your highest level of education?\" Category: \"Jobs\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What type of property are you looking for?\" Category: \"Real Estate\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What do you need a realtor's help with?\" Category: \"Real Estate\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What neighborhood are you interested in?\" Category: \"Real Estate\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What price range are you looking for?\" Category: \"Real Estate\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"How many bedrooms are you looking for?\" Category: \"Real Estate\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you looking for a fully furnished property?\" Category: \"Real Estate\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you looking for properties that allow pets?\" Category: \"Real Estate\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is the next product you plan to purchase?\" Category: \"Retail\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Would you like to sign up for an event?\" Category: \"Retail\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Where are you interested in shopping?\" Category: \"Retail\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your favorite brand?\" Category: \"Retail\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Which type of valid commercial license do you have?\" Category: \"Transportation\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Interested in booking an event?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your destination country?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your destination city?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your departure country?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your departure city?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your departure date?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your return date?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"How many people are you traveling with?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your travel budget?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Where do you want to stay during your travel?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields."
          ],
          "description": "Describes the input type, which may be a predefined type such as \"full name\" or a pre-vetted question like \"What kind of vehicle do you have?\"."
        },
        "hasLocationAnswer": {
          "type": "boolean",
          "description": "Answer configuration for location question. If true, campaign/account level location data (state, city, business name etc) will be rendered on the Lead Form. Starting V13.1, has_location_answer can only be set for \"What is your preferred dealership?\" question, for advertisers with Location Assets setup at campaign/account level."
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__DynamicEducationAsset": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__DynamicEducationAsset",
      "description": "A Dynamic Education asset.",
      "properties": {
        "iosAppStoreId": {
          "description": "iOS app store ID. This is used to check if the user has the app installed on their device before deep linking. If this field is set, then the ios_app_link field must also be present.",
          "type": "string",
          "format": "int64"
        },
        "thumbnailImageUrl": {
          "description": "Thumbnail image url, for example, http://www.example.com/thumbnail.png. The thumbnail image will not be uploaded as image asset.",
          "type": "string"
        },
        "similarProgramIds": {
          "type": "array",
          "description": "Similar program IDs.",
          "items": {
            "type": "string"
          }
        },
        "imageUrl": {
          "description": "Image url, for example, http://www.example.com/image.png. The image will not be uploaded as image asset.",
          "type": "string"
        },
        "locationId": {
          "type": "string",
          "description": "Location ID which can be any sequence of letters and digits and must be unique."
        },
        "contextualKeywords": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Contextual keywords, for example, Nursing certification, Health, Mountain View."
        },
        "schoolName": {
          "description": "School name, for example, Mountain View School of Nursing.",
          "type": "string"
        },
        "programId": {
          "type": "string",
          "description": "Required. Program ID which can be any sequence of letters and digits, and must be unique and match the values of remarketing tag. Required."
        },
        "subject": {
          "type": "string",
          "description": "Subject of study, for example, Health."
        },
        "address": {
          "description": "School address which can be specified in one of the following formats. (1) City, state, code, country, for example, Mountain View, CA, USA. (2) Full address, for example, 123 Boulevard St, Mountain View, CA 94043. (3) Latitude-longitude in the DDD format, for example, 41.40338, 2.17403",
          "type": "string"
        },
        "androidAppLink": {
          "type": "string",
          "description": "Android deep link, for example, android-app://com.example.android/http/example.com/gizmos?1234."
        },
        "iosAppLink": {
          "type": "string",
          "description": "iOS deep link, for example, exampleApp://content/page."
        },
        "programDescription": {
          "type": "string",
          "description": "Program description, for example, Nursing Certification."
        },
        "programName": {
          "type": "string",
          "description": "Required. Program name, for example, Nursing. Required."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__GenerateTargetingSuggestionMetricsResponse": {
      "properties": {
        "suggestions": {
          "description": "Suggested targetable audiences. There will be one suggestion for each GenerateTargetingSuggestionMetricsRequest.audiences requested, matching the order requested.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__TargetingSuggestionMetrics"
          },
          "type": "array"
        }
      },
      "description": "Response message for AudienceInsightsService.GenerateTargetingSuggestionMetrics.",
      "id": "GoogleAdsGoogleadsV23Services__GenerateTargetingSuggestionMetricsResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__UrlCollection": {
      "properties": {
        "finalUrls": {
          "items": {
            "type": "string"
          },
          "description": "A list of possible final URLs.",
          "type": "array"
        },
        "urlCollectionId": {
          "description": "Unique identifier for this UrlCollection instance.",
          "type": "string"
        },
        "finalMobileUrls": {
          "type": "array",
          "description": "A list of possible final mobile URLs.",
          "items": {
            "type": "string"
          }
        },
        "trackingUrlTemplate": {
          "description": "URL template for constructing a tracking URL.",
          "type": "string"
        }
      },
      "description": "Collection of urls that is tagged with a unique identifier.",
      "id": "GoogleAdsGoogleadsV23Common__UrlCollection",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__SkAdNetworkSourceApp": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__SkAdNetworkSourceApp",
      "description": "A SkAdNetworkSourceApp segment.",
      "properties": {
        "skAdNetworkSourceAppId": {
          "type": "string",
          "description": "App id where the ad that drove the iOS Store Kit Ad Network install was shown."
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__CriterionCategoryAvailability": {
      "type": "object",
      "properties": {
        "locale": {
          "type": "array",
          "description": "Locales that are available to the category for the channel.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__CriterionCategoryLocaleAvailability"
          }
        },
        "channel": {
          "description": "Channel types and subtypes that are available to the category.",
          "$ref": "GoogleAdsGoogleadsV23Common__CriterionCategoryChannelAvailability"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__CriterionCategoryAvailability",
      "description": "Information of category availability, per advertising channel."
    },
    "GoogleAdsGoogleadsV23Services__GenerateAudienceCompositionInsightsResponse": {
      "properties": {
        "sections": {
          "description": "The contents of the insights report, organized into sections. Each section is associated with one of the AudienceInsightsDimension values in the request. There may be more than one section per dimension.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__AudienceCompositionSection"
          },
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__GenerateAudienceCompositionInsightsResponse",
      "type": "object",
      "description": "Response message for AudienceInsightsService.GenerateAudienceCompositionInsights."
    },
    "GoogleAdsGoogleadsV23Common__AudienceInfo": {
      "properties": {
        "audience": {
          "type": "string",
          "description": "The Audience resource name."
        }
      },
      "type": "object",
      "description": "An audience criterion.",
      "id": "GoogleAdsGoogleadsV23Common__AudienceInfo"
    },
    "GoogleAdsGoogleadsV23Services__MutateAssetSetAssetsRequest": {
      "type": "object",
      "description": "Request message for AssetSetAssetService.MutateAssetSetAssets.",
      "properties": {
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__AssetSetAssetOperation"
          },
          "description": "Required. The list of operations to perform on individual asset set assets."
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "responseContentType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation."
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateAssetSetAssetsRequest"
    },
    "GoogleAdsGoogleadsV23Resources__KeywordPlanCampaign": {
      "description": "A Keyword Plan campaign. Max number of keyword plan campaigns per plan allowed: 1.",
      "properties": {
        "cpcBidMicros": {
          "type": "string",
          "format": "int64",
          "description": "A default max cpc bid in micros, and in the account currency, for all ad groups under the campaign. This field is required and should not be empty when creating Keyword Plan campaigns."
        },
        "languageConstants": {
          "description": "The languages targeted for the Keyword Plan campaign. Max allowed: 1.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "name": {
          "description": "The name of the Keyword Plan campaign. This field is required and should not be empty when creating Keyword Plan campaigns.",
          "type": "string"
        },
        "resourceName": {
          "description": "Immutable. The resource name of the Keyword Plan campaign. KeywordPlanCampaign resource names have the form: `customers/{customer_id}/keywordPlanCampaigns/{kp_campaign_id}`",
          "type": "string"
        },
        "keywordPlanNetwork": {
          "description": "Targeting network. This field is required and should not be empty when creating Keyword Plan campaigns.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "GOOGLE_SEARCH",
            "GOOGLE_SEARCH_AND_PARTNERS"
          ],
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Google Search.",
            "Google Search + Search partners."
          ],
          "type": "string"
        },
        "geoTargets": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Resources__KeywordPlanGeoTarget"
          },
          "description": "The geo targets. Max number allowed: 20.",
          "type": "array"
        },
        "keywordPlan": {
          "type": "string",
          "description": "The keyword plan this campaign belongs to."
        },
        "id": {
          "format": "int64",
          "type": "string",
          "readOnly": true,
          "description": "Output only. The ID of the Keyword Plan campaign."
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__KeywordPlanCampaign"
    },
    "GoogleAdsGoogleadsV23Common__MaximizeConversions": {
      "type": "object",
      "description": "An automated bidding strategy to help get the most conversions for your campaigns while spending your budget.",
      "properties": {
        "targetCpaMicros": {
          "type": "string",
          "format": "int64",
          "description": "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."
        },
        "cpcBidFloorMicros": {
          "description": "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.",
          "format": "int64",
          "type": "string"
        },
        "cpcBidCeilingMicros": {
          "format": "int64",
          "type": "string",
          "description": "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."
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__MaximizeConversions"
    },
    "GoogleAdsGoogleadsV23Resources_Recommendation_PerformanceMaxOptInRecommendation": {
      "description": "The Performance Max Opt In recommendation.",
      "properties": {},
      "id": "GoogleAdsGoogleadsV23Resources_Recommendation_PerformanceMaxOptInRecommendation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__IdentityVerificationRequirement": {
      "id": "GoogleAdsGoogleadsV23Services__IdentityVerificationRequirement",
      "type": "object",
      "properties": {
        "verificationStartDeadlineTime": {
          "description": "The deadline to start verification in \"yyyy-MM-dd HH:mm:ss\" format.",
          "type": "string"
        },
        "verificationCompletionDeadlineTime": {
          "description": "The deadline to submit verification.",
          "type": "string"
        }
      },
      "description": "Information regarding the verification requirement for a verification program type."
    },
    "GoogleAdsGoogleadsV23Services__InsightsAudience": {
      "type": "object",
      "properties": {
        "lineups": {
          "type": "array",
          "description": "Lineups representing the YouTube content viewed by the audience.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AudienceInsightsLineup"
          }
        },
        "countryLocations": {
          "type": "array",
          "description": "Required. The countries for the audience.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__LocationInfo"
          }
        },
        "subCountryLocations": {
          "description": "Sub-country geographic location attributes. If present, each of these must be contained in one of the countries in this audience. If absent, the audience is geographically to the country_locations and no further.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__LocationInfo"
          },
          "type": "array"
        },
        "parentalStatus": {
          "$ref": "GoogleAdsGoogleadsV23Common__ParentalStatusInfo",
          "description": "Parental status for the audience. If absent, the audience does not restrict by parental status."
        },
        "incomeRanges": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__IncomeRangeInfo"
          },
          "description": "Household income percentile ranges for the audience. If absent, the audience does not restrict by household income range."
        },
        "topicAudienceCombinations": {
          "type": "array",
          "description": "A combination of entity, category and user interest attributes defining the audience. The combination has a logical AND-of-ORs structure: Attributes within each InsightsAudienceAttributeGroup are combined with OR, and the combinations themselves are combined together with AND. For example, the expression (Entity OR Affinity) AND (In-Market OR Category) can be formed using two InsightsAudienceAttributeGroups with two Attributes each.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__InsightsAudienceAttributeGroup"
          }
        },
        "ageRanges": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AgeRangeInfo"
          },
          "type": "array",
          "description": "Age ranges for the audience. If absent, the audience represents all people over 18 that match the other attributes."
        },
        "userList": {
          "$ref": "GoogleAdsGoogleadsV23Common__UserListInfo",
          "description": "User list to be targeted by the audience."
        },
        "gender": {
          "description": "Gender for the audience. If absent, the audience does not restrict by gender.",
          "$ref": "GoogleAdsGoogleadsV23Common__GenderInfo"
        }
      },
      "description": "A set of users, defined by various characteristics, for which insights can be requested in AudienceInsightsService.",
      "id": "GoogleAdsGoogleadsV23Services__InsightsAudience"
    },
    "GoogleAdsGoogleadsV23Services__YouTubeSelectLineUp": {
      "id": "GoogleAdsGoogleadsV23Services__YouTubeSelectLineUp",
      "properties": {
        "lineupId": {
          "format": "int64",
          "description": "The ID of the YouTube Select Lineup.",
          "type": "string"
        },
        "lineupName": {
          "description": "The unique name of the YouTube Select Lineup.",
          "type": "string"
        }
      },
      "description": "A Plannable YouTube Select Lineup for product targeting.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__ListExperimentAsyncErrorsResponse": {
      "properties": {
        "errors": {
          "description": "details of the errors when performing the asynchronous operation.",
          "type": "array",
          "items": {
            "$ref": "GoogleRpc__Status"
          }
        },
        "nextPageToken": {
          "description": "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.",
          "type": "string"
        }
      },
      "type": "object",
      "description": "Response message for ExperimentService.ListExperimentAsyncErrors.",
      "id": "GoogleAdsGoogleadsV23Services__ListExperimentAsyncErrorsResponse"
    },
    "GoogleAdsGoogleadsV23Resources_Campaign_PmaxCampaignSettings": {
      "description": "Settings for Performance Max campaigns.",
      "id": "GoogleAdsGoogleadsV23Resources_Campaign_PmaxCampaignSettings",
      "type": "object",
      "properties": {
        "brandTargetingOverrides": {
          "description": "Overrides of brand targeting for various ad types.",
          "$ref": "GoogleAdsGoogleadsV23Resources_CampaignPmaxCampaignSettings_BrandTargetingOverrides"
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__CustomerThirdPartyBrandSafetyIntegrationPartner": {
      "description": "Container for third party brand safety integration data for Customer.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__CustomerThirdPartyBrandSafetyIntegrationPartner",
      "properties": {
        "brandSafetyIntegrationPartner": {
          "description": "Allowed third party integration partners for brand safety verification.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "DoubleVerify.",
            "Integral Ad Science.",
            "Zefr."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DOUBLE_VERIFY",
            "INTEGRAL_AD_SCIENCE",
            "ZEFR"
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__GranularLicenseStatus": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__GranularLicenseStatus",
      "description": "License status at geo + vertical level.",
      "properties": {
        "geoCriterionId": {
          "type": "string",
          "readOnly": true,
          "format": "int64",
          "description": "Output only. Geotarget criterion ID associated with the status. Can be on country or state/province geo level, depending on requirements and location. See https://developers.google.com/google-ads/api/data/geotargets for more information."
        },
        "verificationStatus": {
          "enumDescriptions": [
            "Not specified.",
            "Unknown verification status.",
            "Verification has started, but has not finished.",
            "Verification has failed.",
            "Verification has passed.",
            "Verification is not applicable.",
            "Verification is required but pending submission.",
            "Not all required verification has been submitted.",
            "Verification needs review by Local Services Ads Ops Specialist."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NEEDS_REVIEW",
            "FAILED",
            "PASSED",
            "NOT_APPLICABLE",
            "NO_SUBMISSION",
            "PARTIAL_SUBMISSION",
            "PENDING_ESCALATION"
          ],
          "description": "Output only. Granular license status, per geo + vertical.",
          "type": "string",
          "readOnly": true
        },
        "categoryId": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Service category associated with the status. For example, xcat:service_area_business_plumber. For more details see: https://developers.google.com/google-ads/api/data/codes-formats#local_services_ids"
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__SearchTermView": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__SearchTermView",
      "description": "A search term view with metrics aggregated by search term at the ad group level. This view does not include Performance Max data. If you are looking for Performance Max search term data, use the CampaignSearchTermView instead.",
      "properties": {
        "resourceName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the search term view. Search term view resource names have the form: `customers/{customer_id}/searchTermViews/{campaign_id}~{ad_group_id}~{URL-base64_search_term}`"
        },
        "searchTerm": {
          "type": "string",
          "description": "Output only. The search term.",
          "readOnly": true
        },
        "adGroup": {
          "description": "Output only. The ad group the search term served in.",
          "type": "string",
          "readOnly": true
        },
        "status": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADDED",
            "EXCLUDED",
            "ADDED_EXCLUDED",
            "NONE"
          ],
          "description": "Output only. Indicates whether the search term is currently one of your targeted or excluded keywords.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Search term is added to targeted keywords.",
            "Search term matches a negative keyword.",
            "Search term has been both added and excluded.",
            "Search term is neither targeted nor excluded."
          ],
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateCustomerLabelsResponse": {
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomerLabelResult"
          },
          "description": "All results for the mutate."
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateCustomerLabelsResponse",
      "description": "Response message for a customer labels mutate."
    },
    "GoogleAdsGoogleadsV23Resources_Recommendation_MaximizeConversionValueOptInRecommendation": {
      "description": "Recommendation to opt into Maximize Conversion Value bidding strategy.",
      "type": "object",
      "properties": {},
      "id": "GoogleAdsGoogleadsV23Resources_Recommendation_MaximizeConversionValueOptInRecommendation"
    },
    "GoogleAdsGoogleadsV23Services__AssetGroupOperation": {
      "description": "A single operation (create, remove) on an asset group.",
      "properties": {
        "updateMask": {
          "format": "google-fieldmask",
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string"
        },
        "remove": {
          "description": "Remove operation: A resource name for the removed asset group is expected, in this format: `customers/{customer_id}/assetGroups/{asset_group_id}`",
          "type": "string"
        },
        "create": {
          "$ref": "GoogleAdsGoogleadsV23Resources__AssetGroup",
          "description": "Create operation: No resource name is expected for the new asset group"
        },
        "update": {
          "description": "Update operation: The asset group is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV23Resources__AssetGroup"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__AssetGroupOperation"
    },
    "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_UseBroadMatchKeywordParameters": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_UseBroadMatchKeywordParameters",
      "description": "Parameters to use when applying a use broad match keyword recommendation.",
      "properties": {
        "newBudgetAmountMicros": {
          "type": "string",
          "description": "New budget amount to set for target budget resource.",
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__Asset": {
      "id": "GoogleAdsGoogleadsV23Resources__Asset",
      "type": "object",
      "properties": {
        "dynamicRealEstateAsset": {
          "$ref": "GoogleAdsGoogleadsV23Common__DynamicRealEstateAsset",
          "description": "A dynamic real estate asset."
        },
        "source": {
          "description": "Output only. Source of the asset.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset or asset link is provided by advertiser.",
            "The asset or asset link is generated by Google."
          ],
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADVERTISER",
            "AUTOMATICALLY_CREATED"
          ]
        },
        "dynamicJobsAsset": {
          "description": "A dynamic jobs asset.",
          "$ref": "GoogleAdsGoogleadsV23Common__DynamicJobsAsset"
        },
        "mobileAppAsset": {
          "$ref": "GoogleAdsGoogleadsV23Common__MobileAppAsset",
          "description": "A mobile app asset."
        },
        "dynamicFlightsAsset": {
          "$ref": "GoogleAdsGoogleadsV23Common__DynamicFlightsAsset",
          "description": "A dynamic flights asset."
        },
        "dynamicLocalAsset": {
          "$ref": "GoogleAdsGoogleadsV23Common__DynamicLocalAsset",
          "description": "A dynamic local asset."
        },
        "orientation": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "LANDSCAPE",
            "PORTRAIT",
            "SQUARE"
          ],
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Landscape orientation.",
            "Portrait orientation.",
            "Square orientation."
          ],
          "type": "string",
          "readOnly": true,
          "description": "Output only. Orientation of the asset. This is only supported for image and video assets."
        },
        "callToActionAsset": {
          "description": "Immutable. A call to action asset.",
          "$ref": "GoogleAdsGoogleadsV23Common__CallToActionAsset"
        },
        "fieldTypePolicySummaries": {
          "description": "Output only. Policy information for the asset for each FieldType.",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Resources__AssetFieldTypePolicySummary"
          }
        },
        "businessMessageAsset": {
          "description": "A business message asset.",
          "$ref": "GoogleAdsGoogleadsV23Common__BusinessMessageAsset"
        },
        "dynamicHotelsAndRentalsAsset": {
          "description": "A dynamic hotels and rentals asset.",
          "$ref": "GoogleAdsGoogleadsV23Common__DynamicHotelsAndRentalsAsset"
        },
        "hotelPropertyAsset": {
          "description": "Immutable. A hotel property asset.",
          "$ref": "GoogleAdsGoogleadsV23Common__HotelPropertyAsset"
        },
        "urlCustomParameters": {
          "type": "array",
          "description": "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.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__CustomParameter"
          }
        },
        "leadFormAsset": {
          "description": "A lead form asset.",
          "$ref": "GoogleAdsGoogleadsV23Common__LeadFormAsset"
        },
        "pageFeedAsset": {
          "$ref": "GoogleAdsGoogleadsV23Common__PageFeedAsset",
          "description": "A page feed asset."
        },
        "priceAsset": {
          "description": "A price asset.",
          "$ref": "GoogleAdsGoogleadsV23Common__PriceAsset"
        },
        "id": {
          "readOnly": true,
          "description": "Output only. The ID of the asset.",
          "format": "int64",
          "type": "string"
        },
        "dynamicCustomAsset": {
          "description": "A dynamic custom asset.",
          "$ref": "GoogleAdsGoogleadsV23Common__DynamicCustomAsset"
        },
        "callAsset": {
          "$ref": "GoogleAdsGoogleadsV23Common__CallAsset",
          "description": "A call asset."
        },
        "finalMobileUrls": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of possible final mobile URLs after all cross domain redirects."
        },
        "dynamicEducationAsset": {
          "$ref": "GoogleAdsGoogleadsV23Common__DynamicEducationAsset",
          "description": "A dynamic education asset."
        },
        "sitelinkAsset": {
          "description": "A sitelink asset.",
          "$ref": "GoogleAdsGoogleadsV23Common__SitelinkAsset"
        },
        "mediaBundleAsset": {
          "description": "Immutable. A media bundle asset.",
          "$ref": "GoogleAdsGoogleadsV23Common__MediaBundleAsset"
        },
        "promotionAsset": {
          "$ref": "GoogleAdsGoogleadsV23Common__PromotionAsset",
          "description": "A promotion asset."
        },
        "youtubeVideoListAsset": {
          "description": "Immutable. A YouTube video list asset.",
          "$ref": "GoogleAdsGoogleadsV23Common__YouTubeVideoListAsset"
        },
        "hotelCalloutAsset": {
          "description": "A hotel callout asset.",
          "$ref": "GoogleAdsGoogleadsV23Common__HotelCalloutAsset"
        },
        "demandGenCarouselCardAsset": {
          "$ref": "GoogleAdsGoogleadsV23Common__DemandGenCarouselCardAsset",
          "description": "Immutable. A Demand Gen carousel card asset."
        },
        "calloutAsset": {
          "description": "A callout asset.",
          "$ref": "GoogleAdsGoogleadsV23Common__CalloutAsset"
        },
        "locationAsset": {
          "$ref": "GoogleAdsGoogleadsV23Common__LocationAsset",
          "description": "Output only. A location asset.",
          "readOnly": true
        },
        "dynamicTravelAsset": {
          "$ref": "GoogleAdsGoogleadsV23Common__DynamicTravelAsset",
          "description": "A dynamic travel asset."
        },
        "textAsset": {
          "description": "Immutable. A text asset.",
          "$ref": "GoogleAdsGoogleadsV23Common__TextAsset"
        },
        "finalUrlSuffix": {
          "description": "URL template for appending params to landing page URLs served with parallel tracking.",
          "type": "string"
        },
        "policySummary": {
          "$ref": "GoogleAdsGoogleadsV23Resources__AssetPolicySummary",
          "readOnly": true,
          "description": "Output only. Policy information for the asset."
        },
        "name": {
          "type": "string",
          "description": "Optional name of the asset."
        },
        "bookOnGoogleAsset": {
          "$ref": "GoogleAdsGoogleadsV23Common__BookOnGoogleAsset",
          "description": "A book on google asset."
        },
        "finalUrls": {
          "description": "A list of possible final URLs after all cross domain redirects.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "trackingUrlTemplate": {
          "description": "URL template for constructing a tracking URL.",
          "type": "string"
        },
        "youtubeVideoAsset": {
          "$ref": "GoogleAdsGoogleadsV23Common__YoutubeVideoAsset",
          "description": "Immutable. A YouTube video asset."
        },
        "structuredSnippetAsset": {
          "$ref": "GoogleAdsGoogleadsV23Common__StructuredSnippetAsset",
          "description": "A structured snippet asset."
        },
        "appDeepLinkAsset": {
          "description": "Immutable. An app deep link asset.",
          "$ref": "GoogleAdsGoogleadsV23Common__AppDeepLinkAsset"
        },
        "resourceName": {
          "description": "Immutable. The resource name of the asset. Asset resource names have the form: `customers/{customer_id}/assets/{asset_id}`",
          "type": "string"
        },
        "type": {
          "readOnly": true,
          "description": "Output only. Type of the asset.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "YouTube video asset.",
            "Media bundle asset.",
            "Image asset.",
            "Text asset.",
            "Lead form asset.",
            "Book on Google asset.",
            "Promotion asset.",
            "Callout asset.",
            "Structured Snippet asset.",
            "Sitelink asset.",
            "Page Feed asset.",
            "Dynamic Education asset.",
            "Mobile app asset.",
            "Hotel callout asset.",
            "Call asset.",
            "Price asset.",
            "Call to action asset.",
            "Dynamic real estate asset.",
            "Dynamic custom asset.",
            "Dynamic hotels and rentals asset.",
            "Dynamic flights asset.",
            "Dynamic travel asset.",
            "Dynamic local asset.",
            "Dynamic jobs asset.",
            "Location asset.",
            "Hotel property asset.",
            "Demand Gen Carousel Card asset.",
            "Business message asset.",
            "App deep link asset.",
            "YouTube video list asset."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "YOUTUBE_VIDEO",
            "MEDIA_BUNDLE",
            "IMAGE",
            "TEXT",
            "LEAD_FORM",
            "BOOK_ON_GOOGLE",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "PAGE_FEED",
            "DYNAMIC_EDUCATION",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "CALL_TO_ACTION",
            "DYNAMIC_REAL_ESTATE",
            "DYNAMIC_CUSTOM",
            "DYNAMIC_HOTELS_AND_RENTALS",
            "DYNAMIC_FLIGHTS",
            "DYNAMIC_TRAVEL",
            "DYNAMIC_LOCAL",
            "DYNAMIC_JOBS",
            "LOCATION",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "APP_DEEP_LINK",
            "YOUTUBE_VIDEO_LIST"
          ]
        },
        "imageAsset": {
          "$ref": "GoogleAdsGoogleadsV23Common__ImageAsset",
          "description": "Output only. An image asset.",
          "readOnly": true
        }
      },
      "description": "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."
    },
    "GoogleAdsGoogleadsV23Services_DismissRecommendationRequest_DismissRecommendationOperation": {
      "type": "object",
      "description": "Operation to dismiss a single recommendation identified by resource_name.",
      "id": "GoogleAdsGoogleadsV23Services_DismissRecommendationRequest_DismissRecommendationOperation",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "The resource name of the recommendation to dismiss."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__AdGroupCriterionOperation": {
      "properties": {
        "remove": {
          "description": "Remove operation: A resource name for the removed criterion is expected, in this format: `customers/{customer_id}/adGroupCriteria/{ad_group_id}~{criterion_id}`",
          "type": "string"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new criterion.",
          "$ref": "GoogleAdsGoogleadsV23Resources__AdGroupCriterion"
        },
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string",
          "format": "google-fieldmask"
        },
        "update": {
          "description": "Update operation: The criterion is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV23Resources__AdGroupCriterion"
        },
        "exemptPolicyViolationKeys": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__PolicyViolationKey"
          },
          "description": "The list of policy violation keys that should not cause a PolicyViolationError to be reported. Not all policy violations are exemptable, refer to the is_exemptible field in the returned PolicyViolationError. Resources violating these polices will be saved, but will not be eligible to serve. They may begin serving at a later time due to a change in policies, re-review of the resource, or a change in advertiser certificates.",
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__AdGroupCriterionOperation",
      "description": "A single operation (create, remove, update) on an ad group criterion.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateCampaignDraftsRequest": {
      "type": "object",
      "properties": {
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "responseContentType": {
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "type": "string",
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation."
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "operations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__CampaignDraftOperation"
          },
          "type": "array",
          "description": "Required. The list of operations to perform on individual campaign drafts."
        }
      },
      "description": "Request message for CampaignDraftService.MutateCampaignDrafts.",
      "id": "GoogleAdsGoogleadsV23Services__MutateCampaignDraftsRequest"
    },
    "GoogleAdsGoogleadsV23Services__IdentityVerificationProgress": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__IdentityVerificationProgress",
      "description": "Information regarding the verification progress for a verification program type.",
      "properties": {
        "programStatus": {
          "description": "Current Status (PENDING_USER_ACTION, SUCCESS, FAILURE etc)",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PENDING_USER_ACTION",
            "PENDING_REVIEW",
            "SUCCESS",
            "FAILURE"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Verification is pending on user action to proceed.",
            "Verification is pending on review.",
            "Verification succeeded.",
            "Verification failed."
          ]
        },
        "invitationLinkExpirationTime": {
          "type": "string",
          "description": "The timestamp when the action url will expire in \"yyyy-MM-dd HH:mm:ss\" format."
        },
        "actionUrl": {
          "type": "string",
          "description": "Action URL for user to complete verification for the given verification program type."
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__ProductLegacyConditionInfo": {
      "description": "Legacy condition of a product offer. This listing dimension is deprecated and it is supported only in Display campaigns.",
      "properties": {
        "value": {
          "type": "string",
          "description": "String value of the product legacy condition."
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__ProductLegacyConditionInfo"
    },
    "GoogleAdsGoogleadsV23Services__MutateConversionActionsRequest": {
      "properties": {
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "responseContentType": {
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "type": "string"
        },
        "operations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__ConversionActionOperation"
          },
          "type": "array",
          "description": "Required. The list of operations to perform on individual conversion actions."
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateConversionActionsRequest",
      "type": "object",
      "description": "Request message for ConversionActionService.MutateConversionActions."
    },
    "GoogleAdsGoogleadsV23Services_CampaignToForecast_CampaignBiddingStrategy": {
      "description": "Supported bidding strategies for new campaign forecasts.",
      "id": "GoogleAdsGoogleadsV23Services_CampaignToForecast_CampaignBiddingStrategy",
      "properties": {
        "maximizeConversionsBiddingStrategy": {
          "$ref": "GoogleAdsGoogleadsV23Services__MaximizeConversionsBiddingStrategy",
          "description": "Use maximize conversions bidding strategy for forecasting."
        },
        "manualCpcBiddingStrategy": {
          "description": "Use manual CPC bidding strategy for forecasting.",
          "$ref": "GoogleAdsGoogleadsV23Services__ManualCpcBiddingStrategy"
        },
        "maximizeClicksBiddingStrategy": {
          "$ref": "GoogleAdsGoogleadsV23Services__MaximizeClicksBiddingStrategy",
          "description": "Use maximize clicks bidding strategy for forecasting."
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__KeywordSeed": {
      "id": "GoogleAdsGoogleadsV23Services__KeywordSeed",
      "description": "Keyword Seed",
      "type": "object",
      "properties": {
        "keywords": {
          "items": {
            "type": "string"
          },
          "description": "Requires at least one keyword and no more than 20 keywords.",
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__CustomerAcquisitionGoalSettings": {
      "id": "GoogleAdsGoogleadsV23Resources__CustomerAcquisitionGoalSettings",
      "type": "object",
      "properties": {
        "optimizationMode": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The mode is used when campaign is optimizing equally for existing and new customers, which is the default value.",
            "The mode is used when campaign is bidding higher for new customers than existing customer.",
            "The mode is used when campaign is only optimizing for new customers."
          ],
          "description": "Output only. Customer acquisition optimization mode of this campaign.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "TARGET_ALL_EQUALLY",
            "BID_HIGHER_FOR_NEW_CUSTOMER",
            "TARGET_NEW_CUSTOMER"
          ],
          "readOnly": true
        },
        "valueSettings": {
          "readOnly": true,
          "description": "Output only. Campaign specific values for the customer acquisition goal.",
          "$ref": "GoogleAdsGoogleadsV23Common__LifecycleGoalValueSettings"
        }
      },
      "description": "The customer acquisition goal settings for the campaign."
    },
    "GoogleAdsGoogleadsV23Services__SuggestKeywordThemeConstantsRequest": {
      "id": "GoogleAdsGoogleadsV23Services__SuggestKeywordThemeConstantsRequest",
      "description": "Request message for KeywordThemeConstantService.SuggestKeywordThemeConstants.",
      "type": "object",
      "properties": {
        "queryText": {
          "description": "The query text of a keyword theme that will be used to map to similar keyword themes. For example, \"plumber\" or \"roofer\".",
          "type": "string"
        },
        "languageCode": {
          "description": "The two letter language code for get corresponding keyword theme for refining the scope of the query, default to 'en' if not set.",
          "type": "string"
        },
        "countryCode": {
          "description": "Upper-case, two-letter country code as defined by ISO-3166. This for refining the scope of the query, default to 'US' if not set.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__DynamicLocalAsset": {
      "properties": {
        "subtitle": {
          "description": "Subtitle, for example, Groceries.",
          "type": "string"
        },
        "address": {
          "description": "Address which can be specified in one of the following formats. (1) City, state, code, country, for example, Mountain View, CA, USA. (2) Full address, for example, 123 Boulevard St, Mountain View, CA 94043. (3) Latitude-longitude in the DDD format, for example, 41.40338, 2.17403.",
          "type": "string"
        },
        "description": {
          "description": "Description, for example, Save on your weekly bill.",
          "type": "string"
        },
        "contextualKeywords": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Contextual keywords, for example, Save groceries coupons."
        },
        "iosAppLink": {
          "description": "iOS deep link, for example, exampleApp://content/page.",
          "type": "string"
        },
        "formattedSalePrice": {
          "type": "string",
          "description": "Formatted sale price which can be any characters. If set, this attribute will be used instead of 'sale price', for example, On sale for $80.00."
        },
        "similarDealIds": {
          "items": {
            "type": "string"
          },
          "description": "Similar deal IDs, for example, 1275.",
          "type": "array"
        },
        "dealId": {
          "description": "Required. Deal ID which can be any sequence of letters and digits, and must be unique and match the values of remarketing tag. Required.",
          "type": "string"
        },
        "price": {
          "type": "string",
          "description": "Price which can be a number followed by the alphabetic currency code, ISO 4217 standard. Use '.' as the decimal mark, for example, 100.00 USD."
        },
        "formattedPrice": {
          "type": "string",
          "description": "Formatted price which can be any characters. If set, this attribute will be used instead of 'price', for example, Starting at $100.00."
        },
        "category": {
          "description": "Category, for example, Food.",
          "type": "string"
        },
        "androidAppLink": {
          "description": "Android deep link, for example, android-app://com.example.android/http/example.com/gizmos?1234.",
          "type": "string"
        },
        "dealName": {
          "description": "Required. Deal name, for example, 50% off at Mountain View Grocers. Required.",
          "type": "string"
        },
        "iosAppStoreId": {
          "description": "iOS app store ID. This is used to check if the user has the app installed on their device before deep linking. If this field is set, then the ios_app_link field must also be present.",
          "type": "string",
          "format": "int64"
        },
        "imageUrl": {
          "description": "Image URL, for example, http://www.example.com/image.png. The image will not be uploaded as image asset.",
          "type": "string"
        },
        "salePrice": {
          "type": "string",
          "description": "Sale price which can be number followed by the alphabetic currency code, ISO 4217 standard. Use '.' as the decimal mark, for example, 80.00 USD. Must be less than the 'price' field."
        }
      },
      "description": "A dynamic local asset.",
      "id": "GoogleAdsGoogleadsV23Common__DynamicLocalAsset",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateOperationResponse": {
      "id": "GoogleAdsGoogleadsV23Services__MutateOperationResponse",
      "type": "object",
      "properties": {
        "assetGroupResult": {
          "$ref": "GoogleAdsGoogleadsV23Services__MutateAssetGroupResult",
          "description": "The result for the asset group mutate."
        },
        "experimentResult": {
          "description": "The result for the experiment mutate.",
          "$ref": "GoogleAdsGoogleadsV23Services__MutateExperimentResult"
        },
        "keywordPlanCampaignKeywordResult": {
          "description": "The result for the keyword plan campaign keyword mutate.",
          "$ref": "GoogleAdsGoogleadsV23Services__MutateKeywordPlanCampaignKeywordResult"
        },
        "assetGroupListingGroupFilterResult": {
          "description": "The result for the asset group listing group filter mutate.",
          "$ref": "GoogleAdsGoogleadsV23Services__MutateAssetGroupListingGroupFilterResult"
        },
        "customerNegativeCriterionResult": {
          "description": "The result for the customer negative criterion mutate.",
          "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomerNegativeCriteriaResult"
        },
        "assetGroupSignalResult": {
          "description": "The result for the asset group signal mutate.",
          "$ref": "GoogleAdsGoogleadsV23Services__MutateAssetGroupSignalResult"
        },
        "campaignConversionGoalResult": {
          "description": "The result for the campaign conversion goal mutate.",
          "$ref": "GoogleAdsGoogleadsV23Services__MutateCampaignConversionGoalResult"
        },
        "adGroupResult": {
          "$ref": "GoogleAdsGoogleadsV23Services__MutateAdGroupResult",
          "description": "The result for the ad group mutate."
        },
        "campaignBidModifierResult": {
          "$ref": "GoogleAdsGoogleadsV23Services__MutateCampaignBidModifierResult",
          "description": "The result for the campaign bid modifier mutate."
        },
        "conversionActionResult": {
          "description": "The result for the conversion action mutate.",
          "$ref": "GoogleAdsGoogleadsV23Services__MutateConversionActionResult"
        },
        "conversionValueRuleSetResult": {
          "$ref": "GoogleAdsGoogleadsV23Services__MutateConversionValueRuleSetResult",
          "description": "The result for the conversion value rule set mutate."
        },
        "sharedCriterionResult": {
          "$ref": "GoogleAdsGoogleadsV23Services__MutateSharedCriterionResult",
          "description": "The result for the shared criterion mutate."
        },
        "audienceResult": {
          "description": "The result for the audience mutate.",
          "$ref": "GoogleAdsGoogleadsV23Services__MutateAudienceResult"
        },
        "customerConversionGoalResult": {
          "description": "The result for the customer conversion goal mutate.",
          "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomerConversionGoalResult"
        },
        "adGroupCriterionLabelResult": {
          "$ref": "GoogleAdsGoogleadsV23Services__MutateAdGroupCriterionLabelResult",
          "description": "The result for the ad group criterion label mutate."
        },
        "adGroupAdResult": {
          "description": "The result for the ad group ad mutate.",
          "$ref": "GoogleAdsGoogleadsV23Services__MutateAdGroupAdResult"
        },
        "campaignCustomizerResult": {
          "description": "The result for the campaign customizer mutate.",
          "$ref": "GoogleAdsGoogleadsV23Services__MutateCampaignCustomizerResult"
        },
        "adGroupCriterionCustomizerResult": {
          "$ref": "GoogleAdsGoogleadsV23Services__MutateAdGroupCriterionCustomizerResult",
          "description": "The result for the ad group criterion customizer mutate."
        },
        "conversionValueRuleResult": {
          "$ref": "GoogleAdsGoogleadsV23Services__MutateConversionValueRuleResult",
          "description": "The result for the conversion value rule mutate."
        },
        "adResult": {
          "$ref": "GoogleAdsGoogleadsV23Services__MutateAdResult",
          "description": "The result for the ad mutate."
        },
        "recommendationSubscriptionResult": {
          "description": "The result for the recommendation subscription mutate.",
          "$ref": "GoogleAdsGoogleadsV23Services__MutateRecommendationSubscriptionResult"
        },
        "assetSetResult": {
          "$ref": "GoogleAdsGoogleadsV23Services__MutateAssetSetResult",
          "description": "The result for the asset set mutate."
        },
        "biddingDataExclusionResult": {
          "description": "The result for the bidding data exclusion mutate.",
          "$ref": "GoogleAdsGoogleadsV23Services__MutateBiddingDataExclusionsResult"
        },
        "customizerAttributeResult": {
          "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomizerAttributeResult",
          "description": "The result for the customizer attribute mutate."
        },
        "assetResult": {
          "$ref": "GoogleAdsGoogleadsV23Services__MutateAssetResult",
          "description": "The result for the asset mutate."
        },
        "campaignGroupResult": {
          "description": "The result for the campaign group mutate.",
          "$ref": "GoogleAdsGoogleadsV23Services__MutateCampaignGroupResult"
        },
        "campaignBudgetResult": {
          "$ref": "GoogleAdsGoogleadsV23Services__MutateCampaignBudgetResult",
          "description": "The result for the campaign budget mutate."
        },
        "customerAssetResult": {
          "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomerAssetResult",
          "description": "The result for the customer asset mutate."
        },
        "keywordPlanAdGroupKeywordResult": {
          "description": "The result for the keyword plan ad group keyword mutate.",
          "$ref": "GoogleAdsGoogleadsV23Services__MutateKeywordPlanAdGroupKeywordResult"
        },
        "remarketingActionResult": {
          "description": "The result for the remarketing action mutate.",
          "$ref": "GoogleAdsGoogleadsV23Services__MutateRemarketingActionResult"
        },
        "userListResult": {
          "description": "The result for the user list mutate.",
          "$ref": "GoogleAdsGoogleadsV23Services__MutateUserListResult"
        },
        "sharedSetResult": {
          "description": "The result for the shared set mutate.",
          "$ref": "GoogleAdsGoogleadsV23Services__MutateSharedSetResult"
        },
        "biddingStrategyResult": {
          "$ref": "GoogleAdsGoogleadsV23Services__MutateBiddingStrategyResult",
          "description": "The result for the bidding strategy mutate."
        },
        "campaignAssetSetResult": {
          "$ref": "GoogleAdsGoogleadsV23Services__MutateCampaignAssetSetResult",
          "description": "The result for the campaign asset set mutate."
        },
        "campaignAssetResult": {
          "$ref": "GoogleAdsGoogleadsV23Services__MutateCampaignAssetResult",
          "description": "The result for the campaign asset mutate."
        },
        "adGroupAssetResult": {
          "description": "The result for the ad group asset mutate.",
          "$ref": "GoogleAdsGoogleadsV23Services__MutateAdGroupAssetResult"
        },
        "campaignLabelResult": {
          "description": "The result for the campaign label mutate.",
          "$ref": "GoogleAdsGoogleadsV23Services__MutateCampaignLabelResult"
        },
        "adGroupCustomizerResult": {
          "description": "The result for the ad group customizer mutate.",
          "$ref": "GoogleAdsGoogleadsV23Services__MutateAdGroupCustomizerResult"
        },
        "adParameterResult": {
          "description": "The result for the ad parameter mutate.",
          "$ref": "GoogleAdsGoogleadsV23Services__MutateAdParameterResult"
        },
        "labelResult": {
          "description": "The result for the label mutate.",
          "$ref": "GoogleAdsGoogleadsV23Services__MutateLabelResult"
        },
        "experimentArmResult": {
          "$ref": "GoogleAdsGoogleadsV23Services__MutateExperimentArmResult",
          "description": "The result for the experiment arm mutate."
        },
        "conversionCustomVariableResult": {
          "description": "The result for the conversion custom variable mutate.",
          "$ref": "GoogleAdsGoogleadsV23Services__MutateConversionCustomVariableResult"
        },
        "customerLabelResult": {
          "description": "The result for the customer label mutate.",
          "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomerLabelResult"
        },
        "keywordPlanAdGroupResult": {
          "description": "The result for the keyword plan ad group mutate.",
          "$ref": "GoogleAdsGoogleadsV23Services__MutateKeywordPlanAdGroupResult"
        },
        "conversionGoalCampaignConfigResult": {
          "description": "The result for the conversion goal campaign config mutate.",
          "$ref": "GoogleAdsGoogleadsV23Services__MutateConversionGoalCampaignConfigResult"
        },
        "customerResult": {
          "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomerResult",
          "description": "The result for the customer mutate."
        },
        "adGroupAdLabelResult": {
          "$ref": "GoogleAdsGoogleadsV23Services__MutateAdGroupAdLabelResult",
          "description": "The result for the ad group ad label mutate."
        },
        "smartCampaignSettingResult": {
          "description": "The result for the Smart campaign setting mutate.",
          "$ref": "GoogleAdsGoogleadsV23Services__MutateSmartCampaignSettingResult"
        },
        "campaignSharedSetResult": {
          "description": "The result for the campaign shared set mutate.",
          "$ref": "GoogleAdsGoogleadsV23Services__MutateCampaignSharedSetResult"
        },
        "campaignDraftResult": {
          "$ref": "GoogleAdsGoogleadsV23Services__MutateCampaignDraftResult",
          "description": "The result for the campaign draft mutate."
        },
        "assetSetAssetResult": {
          "description": "The result for the asset set asset mutate.",
          "$ref": "GoogleAdsGoogleadsV23Services__MutateAssetSetAssetResult"
        },
        "keywordPlanResult": {
          "$ref": "GoogleAdsGoogleadsV23Services__MutateKeywordPlansResult",
          "description": "The result for the keyword plan mutate."
        },
        "keywordPlanCampaignResult": {
          "description": "The result for the keyword plan campaign mutate.",
          "$ref": "GoogleAdsGoogleadsV23Services__MutateKeywordPlanCampaignResult"
        },
        "customConversionGoalResult": {
          "description": "The result for the custom conversion goal mutate.",
          "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomConversionGoalResult"
        },
        "adGroupCriterionResult": {
          "description": "The result for the ad group criterion mutate.",
          "$ref": "GoogleAdsGoogleadsV23Services__MutateAdGroupCriterionResult"
        },
        "assetGroupAssetResult": {
          "description": "The result for the asset group asset mutate.",
          "$ref": "GoogleAdsGoogleadsV23Services__MutateAssetGroupAssetResult"
        },
        "campaignCriterionResult": {
          "$ref": "GoogleAdsGoogleadsV23Services__MutateCampaignCriterionResult",
          "description": "The result for the campaign criterion mutate."
        },
        "adGroupBidModifierResult": {
          "description": "The result for the ad group bid modifier mutate.",
          "$ref": "GoogleAdsGoogleadsV23Services__MutateAdGroupBidModifierResult"
        },
        "campaignResult": {
          "$ref": "GoogleAdsGoogleadsV23Services__MutateCampaignResult",
          "description": "The result for the campaign mutate."
        },
        "customerCustomizerResult": {
          "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomerCustomizerResult",
          "description": "The result for the customer customizer mutate."
        },
        "biddingSeasonalityAdjustmentResult": {
          "$ref": "GoogleAdsGoogleadsV23Services__MutateBiddingSeasonalityAdjustmentsResult",
          "description": "The result for the bidding seasonality adjustment mutate."
        },
        "adGroupLabelResult": {
          "$ref": "GoogleAdsGoogleadsV23Services__MutateAdGroupLabelResult",
          "description": "The result for the ad group label mutate."
        }
      },
      "description": "Response message for the resource mutate."
    },
    "GoogleAdsGoogleadsV23Resources__AssetFieldTypeView": {
      "properties": {
        "resourceName": {
          "description": "Output only. The resource name of the asset field type view. Asset field type view resource names have the form: `customers/{customer_id}/assetFieldTypeViews/{field_type}`",
          "readOnly": true,
          "type": "string"
        },
        "fieldType": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is linked for use as a headline.",
            "The asset is linked for use as a description.",
            "The asset is linked for use as mandatory ad text.",
            "The asset is linked for use as a marketing image.",
            "The asset is linked for use as a media bundle.",
            "The asset is linked for use as a YouTube video.",
            "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
            "The asset is linked for use as a Lead Form extension.",
            "The asset is linked for use as a Promotion extension.",
            "The asset is linked for use as a Callout extension.",
            "The asset is linked for use as a Structured Snippet extension.",
            "The asset is linked for use as a Sitelink.",
            "The asset is linked for use as a Mobile App extension.",
            "The asset is linked for use as a Hotel Callout extension.",
            "The asset is linked for use as a Call extension.",
            "The asset is linked for use as a Price extension.",
            "The asset is linked for use as a long headline.",
            "The asset is linked for use as a business name.",
            "The asset is linked for use as a square marketing image.",
            "The asset is linked for use as a portrait marketing image.",
            "The asset is linked for use as a logo.",
            "The asset is linked for use as a landscape logo.",
            "The asset is linked for use as a non YouTube logo.",
            "The asset is linked for use to select a call-to-action.",
            "The asset is linked for use to select an ad image.",
            "The asset is linked for use as a business logo.",
            "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
            "The asset is linked for use as a Demand Gen carousel card.",
            "The asset is linked for use as a Business Message.",
            "The asset is linked for use as a tall portrait marketing image.",
            "The asset is linked for use as related YouTube videos.",
            "The asset is linked for use as a landing page preview image.",
            "The asset is linked for use as a long description.",
            "The asset is linked for use as a call-to-action."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE",
            "DESCRIPTION",
            "MANDATORY_AD_TEXT",
            "MARKETING_IMAGE",
            "MEDIA_BUNDLE",
            "YOUTUBE_VIDEO",
            "BOOK_ON_GOOGLE",
            "LEAD_FORM",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "LONG_HEADLINE",
            "BUSINESS_NAME",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "VIDEO",
            "CALL_TO_ACTION_SELECTION",
            "AD_IMAGE",
            "BUSINESS_LOGO",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "TALL_PORTRAIT_MARKETING_IMAGE",
            "RELATED_YOUTUBE_VIDEOS",
            "LANDING_PAGE_PREVIEW",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION"
          ],
          "readOnly": true,
          "description": "Output only. The asset field type of the asset field type view."
        }
      },
      "description": "An asset field type view. This view reports non-overcounted metrics for each asset field type when the asset is used as extension.",
      "id": "GoogleAdsGoogleadsV23Resources__AssetFieldTypeView",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources_Recommendation_ShoppingFixDisapprovedProductsRecommendation": {
      "type": "object",
      "properties": {
        "merchant": {
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_MerchantInfo",
          "description": "Output only. The details of the Merchant Center account.",
          "readOnly": true
        },
        "feedLabel": {
          "type": "string",
          "description": "Output only. The feed label for the campaign.",
          "readOnly": true
        },
        "productsCount": {
          "format": "int64",
          "readOnly": true,
          "description": "Output only. The number of products of the campaign.",
          "type": "string"
        },
        "disapprovedProductsCount": {
          "format": "int64",
          "description": "Output only. The numbers of products of the campaign that are disapproved.",
          "readOnly": true,
          "type": "string"
        }
      },
      "description": "The shopping recommendation to fix disapproved products in a Shopping Campaign Inventory.",
      "id": "GoogleAdsGoogleadsV23Resources_Recommendation_ShoppingFixDisapprovedProductsRecommendation"
    },
    "GoogleAdsGoogleadsV23Services__SourceImage": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__SourceImage",
      "description": "A source image to be used in the generation process.",
      "properties": {
        "imageData": {
          "type": "string",
          "format": "byte",
          "description": "Optional. Raw bytes of the image to use."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateCustomerUserAccessInvitationRequest": {
      "properties": {
        "operation": {
          "description": "Required. The operation to perform on the access invitation",
          "$ref": "GoogleAdsGoogleadsV23Services__CustomerUserAccessInvitationOperation"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateCustomerUserAccessInvitationRequest",
      "type": "object",
      "description": "Request message for CustomerUserAccessInvitationService.MutateCustomerUserAccessInvitation"
    },
    "GoogleAdsGoogleadsV23Services__MutateKeywordPlanCampaignKeywordsRequest": {
      "properties": {
        "operations": {
          "type": "array",
          "description": "Required. The list of operations to perform on individual Keyword Plan campaign keywords.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__KeywordPlanCampaignKeywordOperation"
          }
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        }
      },
      "description": "Request message for KeywordPlanCampaignKeywordService.MutateKeywordPlanCampaignKeywords.",
      "id": "GoogleAdsGoogleadsV23Services__MutateKeywordPlanCampaignKeywordsRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__CarrierInfo": {
      "properties": {
        "carrierConstant": {
          "type": "string",
          "description": "The Carrier constant resource name."
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__CarrierInfo",
      "description": "Represents a Carrier Criterion.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__LocalServicesDocumentReadOnly": {
      "id": "GoogleAdsGoogleadsV23Common__LocalServicesDocumentReadOnly",
      "description": "A Local Services Document with read only accessible data.",
      "type": "object",
      "properties": {
        "documentUrl": {
          "description": "URL to access an already uploaded Local Services document.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__CustomerUserAccess": {
      "properties": {
        "inviterUserEmailAddress": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The email address of the inviter user. Read only field"
        },
        "accessRole": {
          "description": "Access role of the user.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADMIN",
            "STANDARD",
            "READ_ONLY",
            "EMAIL_ONLY"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Owns its account and can control the addition of other users.",
            "Can modify campaigns, but can't affect other users.",
            "Can view campaigns and account changes, but cannot make edits.",
            "Role for \\\"email only\\\" access. Represents an email recipient rather than a true User entity."
          ],
          "type": "string"
        },
        "emailAddress": {
          "readOnly": true,
          "description": "Output only. Email address of the user. Read only field",
          "type": "string"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. Name of the resource. Resource names have the form: `customers/{customer_id}/customerUserAccesses/{user_id}`"
        },
        "accessCreationDateTime": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The customer user access creation time. Read only field The format is \"YYYY-MM-DD HH:MM:SS\". Examples: \"2018-03-05 09:15:00\" or \"2018-02-01 14:34:30\""
        },
        "userId": {
          "type": "string",
          "description": "Output only. User id of the user with the customer access. Read only field",
          "format": "int64",
          "readOnly": true
        }
      },
      "description": "Represents the permission of a single user onto a single customer.",
      "id": "GoogleAdsGoogleadsV23Resources__CustomerUserAccess",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__ProvideLeadFeedbackResponse": {
      "description": "Response message for LocalServicesLeadService.ProvideLeadFeedback.",
      "type": "object",
      "properties": {
        "creditIssuanceDecision": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Bonus credit is issued successfully and bonus credit cap has not reached the threshold after issuing this bonus credit.",
            "Bonus credit is issued successfully and bonus credit cap has reached the threshold after issuing this bonus credit.",
            "Bonus credit is not issued because the provider has reached the bonus credit cap.",
            "Bonus credit is not issued because this lead is not eligible for bonus credit."
          ],
          "description": "Required. Decision of bonus credit issued or rejected. If a bonus credit is issued, it will be available for use in about two months.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SUCCESS_NOT_REACHED_THRESHOLD",
            "SUCCESS_REACHED_THRESHOLD",
            "FAIL_OVER_THRESHOLD",
            "FAIL_NOT_ELIGIBLE"
          ]
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__ProvideLeadFeedbackResponse"
    },
    "GoogleAdsGoogleadsV23Services__MutateSharedCriterionResult": {
      "id": "GoogleAdsGoogleadsV23Services__MutateSharedCriterionResult",
      "type": "object",
      "description": "The result for the shared criterion mutate.",
      "properties": {
        "sharedCriterion": {
          "description": "The mutated shared criterion with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV23Resources__SharedCriterion"
        },
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateRemarketingActionsRequest": {
      "description": "Request message for RemarketingActionService.MutateRemarketingActions.",
      "id": "GoogleAdsGoogleadsV23Services__MutateRemarketingActionsRequest",
      "properties": {
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "operations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__RemarketingActionOperation"
          },
          "description": "Required. The list of operations to perform on individual remarketing actions.",
          "type": "array"
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources_Recommendation_ShoppingOfferAttributeRecommendation": {
      "type": "object",
      "properties": {
        "demotedOffersCount": {
          "type": "string",
          "readOnly": true,
          "format": "int64",
          "description": "Output only. The number of online, servable offers that are demoted for missing attributes. Visit the Merchant Center for more details."
        },
        "merchant": {
          "readOnly": true,
          "description": "Output only. The details of the Merchant Center account.",
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_MerchantInfo"
        },
        "offersCount": {
          "readOnly": true,
          "description": "Output only. The number of online, servable offers.",
          "type": "string",
          "format": "int64"
        },
        "feedLabel": {
          "type": "string",
          "description": "Output only. The campaign feed label.",
          "readOnly": true
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources_Recommendation_ShoppingOfferAttributeRecommendation",
      "description": "The shopping recommendation to add an attribute to offers that are demoted because it is missing."
    },
    "GoogleAdsGoogleadsV23Services__MutateAdGroupCustomizersRequest": {
      "type": "object",
      "properties": {
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "operations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__AdGroupCustomizerOperation"
          },
          "description": "Required. The list of operations to perform on individual ad group customizers.",
          "type": "array"
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "responseContentType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation."
        }
      },
      "description": "Request message for AdGroupCustomizerService.MutateAdGroupCustomizers.",
      "id": "GoogleAdsGoogleadsV23Services__MutateAdGroupCustomizersRequest"
    },
    "GoogleAdsGoogleadsV23Services__AdParameterOperation": {
      "description": "A single operation (create, update, remove) on ad parameter.",
      "id": "GoogleAdsGoogleadsV23Services__AdParameterOperation",
      "type": "object",
      "properties": {
        "update": {
          "description": "Update operation: The ad parameter is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV23Resources__AdParameter"
        },
        "updateMask": {
          "format": "google-fieldmask",
          "type": "string",
          "description": "FieldMask that determines which resource fields are modified in an update."
        },
        "create": {
          "$ref": "GoogleAdsGoogleadsV23Resources__AdParameter",
          "description": "Create operation: No resource name is expected for the new ad parameter."
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the ad parameter to remove is expected in this format: `customers/{customer_id}/adParameters/{ad_group_id}~{criterion_id}~{parameter_index}`"
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__MediaBundle": {
      "id": "GoogleAdsGoogleadsV23Resources__MediaBundle",
      "properties": {
        "data": {
          "format": "byte",
          "type": "string",
          "description": "Immutable. Raw zipped data."
        },
        "url": {
          "type": "string",
          "description": "Output only. The url to access the uploaded zipped data. For example, https://tpc.googlesyndication.com/simgad/123 This field is read-only.",
          "readOnly": true
        }
      },
      "type": "object",
      "description": "Represents a ZIP archive media the content of which contains HTML5 assets."
    },
    "GoogleAdsGoogleadsV23Common__PlacementInfo": {
      "type": "object",
      "description": "A placement criterion. This can be used to modify bids for sites when targeting the content network.",
      "id": "GoogleAdsGoogleadsV23Common__PlacementInfo",
      "properties": {
        "url": {
          "type": "string",
          "description": "URL of the placement. For example, \"http://www.domain.com\"."
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__SimilarUserListInfo": {
      "type": "object",
      "description": "SimilarUserList is a list of users which are similar to users from another UserList. These lists are read-only and automatically created by Google.",
      "id": "GoogleAdsGoogleadsV23Common__SimilarUserListInfo",
      "properties": {
        "seedUserList": {
          "type": "string",
          "description": "Seed UserList from which this list is derived."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateAssetGroupResult": {
      "type": "object",
      "description": "The result for the asset group mutate.",
      "id": "GoogleAdsGoogleadsV23Services__MutateAssetGroupResult",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__StructuredSnippetAsset": {
      "type": "object",
      "description": "A Structured Snippet asset.",
      "properties": {
        "values": {
          "type": "array",
          "description": "Required. The values in the snippet. The size of this collection should be between 3 and 10, inclusive. The length of each value should be between 1 and 25 characters, inclusive.",
          "items": {
            "type": "string"
          }
        },
        "header": {
          "type": "string",
          "description": "Required. The header of the snippet. This string should be one of the predefined values at https://developers.google.com/google-ads/api/reference/data/structured-snippet-headers"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__StructuredSnippetAsset"
    },
    "GoogleAdsGoogleadsV23Services__RemoveDataLinkResponse": {
      "properties": {
        "resourceName": {
          "description": "Result for the remove request.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__RemoveDataLinkResponse",
      "description": "Response message for DataLinkService.RemoveDataLink.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateKeywordPlanAdGroupKeywordsResponse": {
      "id": "GoogleAdsGoogleadsV23Services__MutateKeywordPlanAdGroupKeywordsResponse",
      "type": "object",
      "description": "Response message for a Keyword Plan ad group keyword mutate.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateKeywordPlanAdGroupKeywordResult"
          },
          "description": "All results for the mutate."
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__ItemAttribute": {
      "type": "object",
      "properties": {
        "merchantId": {
          "description": "ID of the Merchant Center Account. Required.",
          "type": "string",
          "format": "int64"
        },
        "itemId": {
          "description": "A unique identifier of a product. It must be the exact same Merchant Center Item ID you use in your Google Merchant Center for this product. Required.",
          "type": "string"
        },
        "countryCode": {
          "description": "Common Locale Data Repository (CLDR) territory code of the country associated with the feed where your items are uploaded. See https://developers.google.com/google-ads/api/reference/data/codes-formats#country-codes for more information. This information is useful to differentiate product information in cases where a product (identified by item_id) is associated with multiple countries.",
          "type": "string"
        },
        "quantity": {
          "format": "int64",
          "type": "string",
          "description": "The number of items sold. Defaults to 1 if not set."
        },
        "languageCode": {
          "description": "ISO 639-1 code of the language associated with the feed where your items are uploaded. This information is useful to differentiate product information in cases where a product (identified by item_id) is associated with multiple languages.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__ItemAttribute",
      "description": "Item attributes of the transaction."
    },
    "GoogleAdsGoogleadsV23Services__MutateAdGroupCustomizersResponse": {
      "description": "Response message for an ad group customizer mutate.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateAdGroupCustomizersResponse",
      "properties": {
        "results": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateAdGroupCustomizerResult"
          },
          "description": "All results for the mutate.",
          "type": "array"
        },
        "partialFailureError": {
          "$ref": "GoogleRpc__Status",
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error."
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__GenderInfo": {
      "id": "GoogleAdsGoogleadsV23Common__GenderInfo",
      "description": "A gender criterion.",
      "type": "object",
      "properties": {
        "type": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MALE",
            "FEMALE",
            "UNDETERMINED"
          ],
          "description": "Type of the gender.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Male.",
            "Female.",
            "Undetermined gender."
          ],
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateAdGroupAssetSetResult": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateAdGroupAssetSetResult",
      "description": "The result for the ad group asset set mutate.",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        },
        "adGroupAssetSet": {
          "$ref": "GoogleAdsGoogleadsV23Resources__AdGroupAssetSet",
          "description": "The mutated ad group asset set with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\"."
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_PostbackMapping": {
      "properties": {
        "postbackSequenceIndex": {
          "type": "integer",
          "format": "int32",
          "readOnly": true,
          "description": "Output only. 0-based index that indicates the order of postback. Valid values are in the inclusive range [0,2]."
        },
        "lockWindowFineConversionValue": {
          "description": "Output only. Fine grained conversion value that triggers conversion window lock.",
          "format": "int32",
          "readOnly": true,
          "type": "integer"
        },
        "lockWindowEvent": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. Event name that triggers conversion window lock."
        },
        "lockWindowCoarseConversionValue": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "UNAVAILABLE",
            "LOW",
            "MEDIUM",
            "HIGH",
            "NONE"
          ],
          "type": "string",
          "description": "Output only. Coarse grained conversion value that triggers conversion window lock.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "The value was not present in the postback or we do not have this data for other reasons.",
            "A low coarse conversion value.",
            "A medium coarse conversion value.",
            "A high coarse conversion value.",
            "A coarse conversion value was not configured."
          ]
        },
        "coarseGrainedConversionValueMappings": {
          "$ref": "GoogleAdsGoogleadsV23Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_CoarseGrainedConversionValueMappings",
          "description": "Output only. Conversion value mappings for all coarse grained conversion values.",
          "readOnly": true
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_PostbackMapping",
      "type": "object",
      "description": "Mappings for each postback in multiple conversion windows."
    },
    "GoogleAdsGoogleadsV23Services__MutateAdParametersResponse": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateAdParametersResponse",
      "description": "Response message for an ad parameter mutate.",
      "properties": {
        "results": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateAdParameterResult"
          },
          "description": "All results for the mutate.",
          "type": "array"
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__BiddingDataExclusion": {
      "type": "object",
      "properties": {
        "status": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The seasonality event is enabled.",
            "The seasonality event is removed."
          ],
          "description": "Output only. The status of the data exclusion."
        },
        "endDateTime": {
          "description": "Required. The exclusive end time of the data exclusion in yyyy-MM-dd HH:mm:ss format. The length of [start_date_time, end_date_time) interval must be within (0, 14 days].",
          "type": "string"
        },
        "devices": {
          "items": {
            "type": "string",
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "MOBILE",
              "TABLET",
              "DESKTOP",
              "CONNECTED_TV",
              "OTHER"
            ],
            "enumDescriptions": [
              "Not specified.",
              "The value is unknown in this version.",
              "Mobile devices with full browsers.",
              "Tablets with full browsers.",
              "Computers.",
              "Smart TVs and game consoles.",
              "Other device types."
            ]
          },
          "description": "If not specified, all devices will be included in this exclusion. Otherwise, only the specified targeted devices will be included in this exclusion.",
          "type": "array"
        },
        "dataExclusionId": {
          "format": "int64",
          "description": "Output only. The ID of the data exclusion.",
          "type": "string",
          "readOnly": true
        },
        "description": {
          "type": "string",
          "description": "The description of the data exclusion. The description can be at most 2048 characters."
        },
        "startDateTime": {
          "description": "Required. The inclusive start time of the data exclusion in yyyy-MM-dd HH:mm:ss format. A data exclusion is backward looking and should be used for events that start in the past and end either in the past or future.",
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "The name of the data exclusion. The name can be at most 255 characters."
        },
        "scope": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CUSTOMER",
            "CAMPAIGN",
            "CHANNEL"
          ],
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The seasonality event is applied to all the customer's traffic for supported advertising channel types and device types. The CUSTOMER scope cannot be used in mutates.",
            "The seasonality event is applied to all specified campaigns.",
            "The seasonality event is applied to all campaigns that belong to specified channel types."
          ],
          "description": "The scope of the data exclusion.",
          "type": "string"
        },
        "advertisingChannelTypes": {
          "type": "array",
          "description": "The data_exclusion will apply to all the campaigns under the listed channels retroactively as well as going forward when the scope of this exclusion is CHANNEL. The supported advertising channel types are DISPLAY, SEARCH and SHOPPING. Note: a data exclusion with both advertising_channel_types and campaign_ids is not supported.",
          "items": {
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "SEARCH",
              "DISPLAY",
              "SHOPPING",
              "HOTEL",
              "VIDEO",
              "MULTI_CHANNEL",
              "LOCAL",
              "SMART",
              "PERFORMANCE_MAX",
              "LOCAL_SERVICES",
              "TRAVEL",
              "DEMAND_GEN"
            ],
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "Search Network. Includes display bundled, and Search+ campaigns.",
              "Google Display Network only.",
              "Shopping campaigns serve on the shopping property and on google.com search results.",
              "Hotel Ads campaigns.",
              "Video campaigns.",
              "App Campaigns, and App Campaigns for Engagement, that run across multiple channels.",
              "Local ads campaigns.",
              "Smart campaigns.",
              "Performance Max campaigns.",
              "Local services campaigns.",
              "Travel campaigns.",
              "Demand Gen campaigns."
            ],
            "type": "string"
          }
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the data exclusion. Data exclusion resource names have the form: `customers/{customer_id}/biddingDataExclusions/{data_exclusion_id}`"
        },
        "campaigns": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "The data exclusion will apply to the campaigns listed when the scope of this exclusion is CAMPAIGN. The maximum number of campaigns per event is 2000. Note: a data exclusion with both advertising_channel_types and campaign_ids is not supported."
        }
      },
      "description": "Represents a bidding data exclusion. Bidding data exclusions can be set in client accounts only, and cannot be used in manager accounts. See \"About data exclusions\" at https://support.google.com/google-ads/answer/10370710.",
      "id": "GoogleAdsGoogleadsV23Resources__BiddingDataExclusion"
    },
    "GoogleAdsGoogleadsV23Services__CustomerConversionGoalOperation": {
      "properties": {
        "update": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CustomerConversionGoal",
          "description": "Update operation: The customer conversion goal is expected to have a valid resource name."
        },
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask",
          "type": "string"
        }
      },
      "description": "A single operation (update) on a customer conversion goal.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__CustomerConversionGoalOperation"
    },
    "GoogleAdsGoogleadsV23Services__AudienceOverlapItem": {
      "properties": {
        "potentialYoutubeReachIntersection": {
          "type": "string",
          "format": "int64",
          "description": "The estimated size of the intersection of this audience attribute with the primary attribute, that is, the number of reachable YouTube users who match BOTH the primary attribute and this one."
        },
        "attributeMetadata": {
          "description": "The attribute and its metadata, including potential YouTube reach.",
          "$ref": "GoogleAdsGoogleadsV23Common__AudienceInsightsAttributeMetadata"
        }
      },
      "type": "object",
      "description": "An audience attribute, with metadata including the overlap between this attribute's potential YouTube reach and that of a primary attribute.",
      "id": "GoogleAdsGoogleadsV23Services__AudienceOverlapItem"
    },
    "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_LowerTargetRoasParameters": {
      "description": "Parameters to use when applying lower Target ROAS recommendations.",
      "id": "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_LowerTargetRoasParameters",
      "properties": {
        "targetRoasMultiplier": {
          "type": "number",
          "description": "Required. Target to set ROAS multiplier to. This is a required field.",
          "format": "double"
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__AccountBudget": {
      "description": "An account-level budget. It contains information about the budget itself, as well as the most recently approved changes to the budget and proposed changes that are pending approval. The proposed changes that are pending approval, if any, are found in 'pending_proposal'. Effective details about the budget are found in fields prefixed 'approved_', 'adjusted_' and those without a prefix. Since some effective details may differ from what the user had originally requested (for example, spending limit), these differences are juxtaposed through 'proposed_', 'approved_', and possibly 'adjusted_' fields. This resource is mutated using AccountBudgetProposal and cannot be mutated directly. A budget may have at most one pending proposal at any given time. It is read through pending_proposal. Once approved, a budget may be subject to adjustments, such as credit adjustments. Adjustments create differences between the 'approved' and 'adjusted' fields, which would otherwise be identical.",
      "properties": {
        "amountServedMicros": {
          "format": "int64",
          "type": "string",
          "readOnly": true,
          "description": "Output only. The value of Ads that have been served, in micros. This includes overdelivery costs, in which case a credit might be automatically applied to the budget (see total_adjustments_micros)."
        },
        "proposedEndDateTime": {
          "type": "string",
          "description": "Output only. The proposed end time in yyyy-MM-dd HH:mm:ss format.",
          "readOnly": true
        },
        "status": {
          "description": "Output only. The status of this account-level budget.",
          "readOnly": true,
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PENDING",
            "APPROVED",
            "CANCELLED"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The account budget is pending approval.",
            "The account budget has been approved.",
            "The account budget has been cancelled by the user."
          ]
        },
        "approvedSpendingLimitMicros": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The approved spending limit in micros. One million is equivalent to one unit. This will only be populated if the proposed spending limit is finite, and will always be greater than or equal to the proposed spending limit.",
          "format": "int64"
        },
        "billingSetup": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The resource name of the billing setup associated with this account-level budget. BillingSetup resource names have the form: `customers/{customer_id}/billingSetups/{billing_setup_id}`"
        },
        "approvedSpendingLimitType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Infinite, indicates unlimited spending power."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INFINITE"
          ],
          "description": "Output only. The approved spending limit as a well-defined type, for example, INFINITE. This will only be populated if the approved spending limit is INFINITE.",
          "readOnly": true
        },
        "proposedStartDateTime": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The proposed start time of the account-level budget in yyyy-MM-dd HH:mm:ss format. If a start time type of NOW was proposed, this is the time of request."
        },
        "purchaseOrderNumber": {
          "description": "Output only. A purchase order number is a value that helps users reference this budget in their monthly invoices.",
          "type": "string",
          "readOnly": true
        },
        "pendingProposal": {
          "$ref": "GoogleAdsGoogleadsV23Resources_AccountBudget_PendingAccountBudgetProposal",
          "readOnly": true,
          "description": "Output only. The pending proposal to modify this budget, if applicable."
        },
        "adjustedSpendingLimitType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INFINITE"
          ],
          "description": "Output only. The adjusted spending limit as a well-defined type, for example, INFINITE. This will only be populated if the adjusted spending limit is INFINITE, which is guaranteed to be true if the approved spending limit is INFINITE.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Infinite, indicates unlimited spending power."
          ],
          "type": "string",
          "readOnly": true
        },
        "approvedEndTimeType": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "As soon as possible.",
            "An infinite point in the future."
          ],
          "description": "Output only. The approved end time as a well-defined type, for example, FOREVER.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NOW",
            "FOREVER"
          ],
          "readOnly": true,
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "Output only. The name of the account-level budget.",
          "readOnly": true
        },
        "approvedEndDateTime": {
          "readOnly": true,
          "description": "Output only. The approved end time in yyyy-MM-dd HH:mm:ss format.",
          "type": "string"
        },
        "notes": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Notes associated with the budget."
        },
        "id": {
          "readOnly": true,
          "description": "Output only. The ID of the account-level budget.",
          "type": "string",
          "format": "int64"
        },
        "resourceName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the account-level budget. AccountBudget resource names have the form: `customers/{customer_id}/accountBudgets/{account_budget_id}`"
        },
        "adjustedSpendingLimitMicros": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The adjusted spending limit in micros. One million is equivalent to one unit. If the approved spending limit is finite, the adjusted spending limit may vary depending on the types of adjustments applied to this budget, if applicable. The different kinds of adjustments are described here: https://support.google.com/google-ads/answer/1704323 For example, a debit adjustment reduces how much the account is allowed to spend.",
          "format": "int64"
        },
        "proposedSpendingLimitMicros": {
          "type": "string",
          "format": "int64",
          "description": "Output only. The proposed spending limit in micros. One million is equivalent to one unit.",
          "readOnly": true
        },
        "totalAdjustmentsMicros": {
          "description": "Output only. The total adjustments amount. An example of an adjustment is courtesy credits.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "approvedStartDateTime": {
          "description": "Output only. The approved start time of the account-level budget in yyyy-MM-dd HH:mm:ss format. For example, if a new budget is approved after the proposed start time, the approved start time is the time of approval.",
          "readOnly": true,
          "type": "string"
        },
        "proposedSpendingLimitType": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INFINITE"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Infinite, indicates unlimited spending power."
          ],
          "type": "string",
          "description": "Output only. The proposed spending limit as a well-defined type, for example, INFINITE."
        },
        "proposedEndTimeType": {
          "description": "Output only. The proposed end time as a well-defined type, for example, FOREVER.",
          "type": "string",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NOW",
            "FOREVER"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "As soon as possible.",
            "An infinite point in the future."
          ]
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__AccountBudget",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__ListInvoicesResponse": {
      "properties": {
        "invoices": {
          "description": "The list of invoices that match the billing setup and time period.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Resources__Invoice"
          },
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__ListInvoicesResponse",
      "description": "Response message for InvoiceService.ListInvoices.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__FrequencyCapKey": {
      "description": "A group of fields used as keys for a frequency cap. There can be no more than one frequency cap with the same key.",
      "id": "GoogleAdsGoogleadsV23Common__FrequencyCapKey",
      "properties": {
        "eventType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "IMPRESSION",
            "VIDEO_VIEW"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The cap applies on ad impressions.",
            "The cap applies on video ad views."
          ],
          "description": "The type of event that the cap applies to (for example, impression)."
        },
        "timeUnit": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The cap would define limit per one day.",
            "The cap would define limit per one week.",
            "The cap would define limit per one month."
          ],
          "type": "string",
          "description": "Unit of time the cap is defined at (for example, day, week).",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DAY",
            "WEEK",
            "MONTH"
          ]
        },
        "timeLength": {
          "type": "integer",
          "format": "int32",
          "description": "Number of time units the cap lasts."
        },
        "level": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AD_GROUP_AD",
            "AD_GROUP",
            "CAMPAIGN"
          ],
          "description": "The level on which the cap is to be applied (for example, ad group ad, ad group). The cap is applied to all the entities of this level.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The cap is applied at the ad group ad level.",
            "The cap is applied at the ad group level.",
            "The cap is applied at the campaign level."
          ]
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__GetIdentityVerificationResponse": {
      "type": "object",
      "properties": {
        "identityVerification": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__IdentityVerification"
          },
          "description": "List of identity verifications for the customer.",
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__GetIdentityVerificationResponse",
      "description": "Response message for GetIdentityVerification."
    },
    "GoogleAdsGoogleadsV23Resources__CustomAudience": {
      "type": "object",
      "properties": {
        "status": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Enabled status - custom audience is enabled and can be targeted.",
            "Removed status - custom audience is removed and cannot be used for targeting."
          ],
          "readOnly": true,
          "description": "Output only. Status of this custom audience. Indicates whether the custom audience is enabled or removed."
        },
        "name": {
          "description": "Name of the custom audience. It should be unique for all custom audiences created by a customer. This field is required for creating operations.",
          "type": "string"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the custom audience. Custom audience resource names have the form: `customers/{customer_id}/customAudiences/{custom_audience_id}`"
        },
        "description": {
          "description": "Description of this custom audience.",
          "type": "string"
        },
        "id": {
          "type": "string",
          "description": "Output only. ID of the custom audience.",
          "format": "int64",
          "readOnly": true
        },
        "type": {
          "description": "Type of the custom audience. (\"INTEREST\" OR \"PURCHASE_INTENT\" is not allowed for newly created custom audience but kept for existing audiences)",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Google Ads will auto-select the best interpretation at serving time.",
            "Matches users by their interests.",
            "Matches users by topics they are researching or products they are considering for purchase.",
            "Matches users by what they searched on Google Search."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AUTO",
            "INTEREST",
            "PURCHASE_INTENT",
            "SEARCH"
          ]
        },
        "members": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Resources__CustomAudienceMember"
          },
          "description": "List of custom audience members that this custom audience is composed of. Members can be added during CustomAudience creation. If members are presented in UPDATE operation, existing members will be overridden.",
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__CustomAudience",
      "description": "A custom audience. This is a list of users by interest. The unique key of a custom audience consists of the following fields: name. Violating the unique key constraint produces error: CustomAudienceError.NAME_ALREADY_USED"
    },
    "GoogleAdsGoogleadsV23Resources__AdGroupCriterionCustomizer": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__AdGroupCriterionCustomizer",
      "properties": {
        "customizerAttribute": {
          "description": "Required. Immutable. The customizer attribute which is linked to the ad group criterion.",
          "type": "string"
        },
        "adGroupCriterion": {
          "description": "Immutable. The ad group criterion to which the customizer attribute is linked. It must be a keyword criterion.",
          "type": "string"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the ad group criterion customizer. Ad group criterion customizer resource names have the form: `customers/{customer_id}/adGroupCriterionCustomizers/{ad_group_id}~{criterion_id}~{customizer_attribute_id}`"
        },
        "value": {
          "$ref": "GoogleAdsGoogleadsV23Common__CustomizerValue",
          "description": "Required. The value to associate with the customizer attribute at this level. The value must be of the type specified for the CustomizerAttribute."
        },
        "status": {
          "readOnly": true,
          "description": "Output only. The status of the ad group criterion customizer.",
          "enumDescriptions": [
            "The status has not been specified.",
            "The received value is not known in this version.",
            "The customizer value is enabled.",
            "The customizer value is removed."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ]
        }
      },
      "description": "A customizer value for the associated CustomizerAttribute at the AdGroupCriterion level."
    },
    "GoogleAdsGoogleadsV23Services__ApplyRecommendationRequest": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__ApplyRecommendationRequest",
      "description": "Request message for RecommendationService.ApplyRecommendation.",
      "properties": {
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, operations will be carried out as a transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "operations": {
          "description": "Required. The list of operations to apply recommendations. If partial_failure=false all recommendations should be of the same type There is a limit of 100 operations per request.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__ApplyRecommendationOperation"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__UploadCallConversionsResponse": {
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to conversion failures in the partial failure mode. Returned when all errors occur inside the conversions. If any errors occur outside the conversions (for example, auth errors), we return an RPC level error. See https://developers.google.com/google-ads/api/docs/best-practices/partial-failures for more information about partial failure.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "type": "array",
          "description": "Returned for successfully processed conversions. Proto will be empty for rows that received an error. Results are not returned when validate_only is true.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__CallConversionResult"
          }
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__UploadCallConversionsResponse",
      "description": "Response message for ConversionUploadService.UploadCallConversions.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__CustomerLabelOperation": {
      "description": "A single operation (create, remove) on a customer-label relationship.",
      "id": "GoogleAdsGoogleadsV23Services__CustomerLabelOperation",
      "type": "object",
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new customer-label relationship.",
          "$ref": "GoogleAdsGoogleadsV23Resources__CustomerLabel"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the customer-label relationship being removed, in this format: `customers/{customer_id}/customerLabels/{label_id}`"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__GenerateAudienceDefinitionRequest": {
      "description": "Request message for AudienceInsightsService.GenerateAudienceDefinition.",
      "id": "GoogleAdsGoogleadsV23Services__GenerateAudienceDefinitionRequest",
      "type": "object",
      "properties": {
        "insightsApplicationInfo": {
          "description": "Optional. Additional information on the application issuing the request.",
          "$ref": "GoogleAdsGoogleadsV23Common__AdditionalApplicationInfo"
        },
        "customerInsightsGroup": {
          "type": "string",
          "description": "Optional. The name of the customer being planned for. This is a user-defined value."
        },
        "audienceDescription": {
          "description": "Required. Provide a text description of an audience to get AI-generated structured suggestions. This can take around 5 or more seconds to complete Supported marketing objectives are: AWARENESS, CONSIDERATION and RESEARCH. Supported dimensions are: AGE_RANGE, GENDER, PARENTAL_STATUS, AFFINITY_USER_INTEREST, IN_MARKET_USER_INTEREST, LIFE_EVENT_USER_INTEREST, CATEGORY and KNOWLEDGE_GRAPH.",
          "$ref": "GoogleAdsGoogleadsV23Services__InsightsAudienceDescription"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__AudienceCompositionAttributeCluster": {
      "type": "object",
      "description": "A collection of related attributes, with metadata and metrics, in an audience composition insights report.",
      "id": "GoogleAdsGoogleadsV23Services__AudienceCompositionAttributeCluster",
      "properties": {
        "clusterDisplayName": {
          "description": "The name of this cluster of attributes",
          "type": "string"
        },
        "attributes": {
          "description": "The individual attributes that make up this cluster, with metadata and metrics.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__AudienceCompositionAttribute"
          }
        },
        "clusterMetrics": {
          "description": "If the dimension associated with this cluster is YOUTUBE_CHANNEL, then cluster_metrics are metrics associated with the cluster as a whole. For other dimensions, this field is unset.",
          "$ref": "GoogleAdsGoogleadsV23Services__AudienceCompositionMetrics"
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__CustomLeadFormSubmissionField": {
      "id": "GoogleAdsGoogleadsV23Resources__CustomLeadFormSubmissionField",
      "description": "Fields in the submitted custom question",
      "properties": {
        "fieldValue": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. Field value for custom question response, maximum number of characters is 70."
        },
        "questionText": {
          "description": "Output only. Question text for custom question, maximum number of characters is 300.",
          "type": "string",
          "readOnly": true
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__HotelCountryRegionInfo": {
      "id": "GoogleAdsGoogleadsV23Common__HotelCountryRegionInfo",
      "type": "object",
      "description": "Country or Region the hotel is located in.",
      "properties": {
        "countryRegionCriterion": {
          "type": "string",
          "description": "The Geo Target Constant resource name."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__CampaignBudgetMapping": {
      "type": "object",
      "description": "The mapping of experiment campaign and budget to be graduated.",
      "id": "GoogleAdsGoogleadsV23Services__CampaignBudgetMapping",
      "properties": {
        "experimentCampaign": {
          "type": "string",
          "description": "Required. The experiment campaign to graduate."
        },
        "campaignBudget": {
          "description": "Required. The budget that should be attached to the graduating experiment campaign.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources_AdGroup_DemandGenAdGroupSettings": {
      "description": "Settings for Demand Gen ad groups.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources_AdGroup_DemandGenAdGroupSettings",
      "properties": {
        "channelControls": {
          "description": "Channel controls for Demand Gen ad groups.",
          "$ref": "GoogleAdsGoogleadsV23Resources_AdGroupDemandGenAdGroupSettings_DemandGenChannelControls"
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__DomainCategory": {
      "description": "A category generated automatically by crawling a domain. If a campaign uses the DynamicSearchAdsSetting, then domain categories will be generated for the domain. The categories can be targeted using WebpageConditionInfo. See: https://support.google.com/google-ads/answer/2471185",
      "properties": {
        "campaign": {
          "description": "Output only. The campaign this category is recommended for.",
          "type": "string",
          "readOnly": true
        },
        "category": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Recommended category for the website domain, for example, if you have a website about electronics, the categories could be \"cameras\", \"televisions\", etc."
        },
        "recommendedCpcBidMicros": {
          "readOnly": true,
          "format": "int64",
          "description": "Output only. The recommended cost per click for the category.",
          "type": "string"
        },
        "domain": {
          "readOnly": true,
          "description": "Output only. The domain for the website. The domain can be specified in the DynamicSearchAdsSetting required for dynamic search ads.",
          "type": "string"
        },
        "categoryRank": {
          "description": "Output only. The position of this category in the set of categories. Lower numbers indicate a better match for the domain. null indicates not recommended.",
          "type": "string",
          "readOnly": true,
          "format": "int64"
        },
        "languageCode": {
          "description": "Output only. The language code specifying the language of the website, for example, \"en\" for English. The language can be specified in the DynamicSearchAdsSetting required for dynamic search ads. This is the language of the pages from your website that you want Google Ads to find, create ads for, and match searches with.",
          "type": "string",
          "readOnly": true
        },
        "coverageFraction": {
          "description": "Output only. Fraction of pages on your site that this category matches.",
          "format": "double",
          "type": "number",
          "readOnly": true
        },
        "hasChildren": {
          "readOnly": true,
          "type": "boolean",
          "description": "Output only. Indicates whether this category has sub-categories."
        },
        "resourceName": {
          "readOnly": true,
          "description": "Output only. The resource name of the domain category. Domain category resource names have the form: `customers/{customer_id}/domainCategories/{campaign_id}~{category_base64}~{language_code}`",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__DomainCategory",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateAdGroupAssetResult": {
      "description": "The result for the ad group asset mutate.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateAdGroupAssetResult",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        },
        "adGroupAsset": {
          "description": "The mutated ad group asset with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV23Resources__AdGroupAsset"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__CampaignCustomizerOperation": {
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new campaign customizer",
          "$ref": "GoogleAdsGoogleadsV23Resources__CampaignCustomizer"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed campaign customizer is expected, in this format: `customers/{customer_id}/campaignCustomizers/{campaign_id}~{customizer_attribute_id}`"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__CampaignCustomizerOperation",
      "description": "A single operation (create, remove) on a customizer attribute."
    },
    "GoogleAdsGoogleadsV23Services__MutateAdGroupBidModifiersRequest": {
      "description": "Request message for AdGroupBidModifierService.MutateAdGroupBidModifiers.",
      "properties": {
        "responseContentType": {
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ]
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "operations": {
          "type": "array",
          "description": "Required. The list of operations to perform on individual ad group bid modifiers.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__AdGroupBidModifierOperation"
          }
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateAdGroupBidModifiersRequest"
    },
    "GoogleAdsGoogleadsV23Services__SessionAttributeKeyValuePair": {
      "properties": {
        "sessionAttributeKey": {
          "type": "string",
          "description": "Required. The name of the session attribute."
        },
        "sessionAttributeValue": {
          "description": "Required. The value of the session attribute.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__SessionAttributeKeyValuePair",
      "description": "Contains one session attribute of the conversion."
    },
    "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_CalloutExtensionParameters": {
      "properties": {
        "calloutExtensions": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__CalloutFeedItem"
          },
          "type": "array",
          "description": "Callout extensions to be added. This is a required field."
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_CalloutExtensionParameters",
      "description": "Parameters to use when applying callout extension recommendation."
    },
    "GoogleAdsGoogleadsV23Services__GenerateImagesResponse": {
      "properties": {
        "generatedImages": {
          "type": "array",
          "description": "Successfully generated images.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__GeneratedImage"
          }
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__GenerateImagesResponse",
      "description": "Response message for AssetGenerationService.GenerateImages"
    },
    "GoogleAdsGoogleadsV23Services__MutateCampaignConversionGoalResult": {
      "id": "GoogleAdsGoogleadsV23Services__MutateCampaignConversionGoalResult",
      "type": "object",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      },
      "description": "The result for the campaign conversion goal mutate."
    },
    "GoogleAdsGoogleadsV23Services__AddOfflineUserDataJobOperationsRequest": {
      "properties": {
        "enablePartialFailure": {
          "description": "True to enable partial failure for the offline user data job.",
          "type": "boolean"
        },
        "enableWarnings": {
          "description": "True to enable warnings for the offline user data job. When enabled, a warning will not block the OfflineUserDataJobOperation, and will also return warning messages about malformed field values.",
          "type": "boolean"
        },
        "operations": {
          "description": "Required. The list of operations to be done.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__OfflineUserDataJobOperation"
          }
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        }
      },
      "description": "Request message for OfflineUserDataJobService.AddOfflineUserDataJobOperations.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__AddOfflineUserDataJobOperationsRequest"
    },
    "GoogleAdsGoogleadsV23Services__MutateSharedCriteriaResponse": {
      "type": "object",
      "properties": {
        "results": {
          "type": "array",
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateSharedCriterionResult"
          }
        },
        "partialFailureError": {
          "$ref": "GoogleRpc__Status",
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error."
        }
      },
      "description": "Response message for a shared criterion mutate.",
      "id": "GoogleAdsGoogleadsV23Services__MutateSharedCriteriaResponse"
    },
    "GoogleAdsGoogleadsV23Services__AdGroupCriterionCustomizerOperation": {
      "description": "A single operation (create, remove) on a customizer attribute.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__AdGroupCriterionCustomizerOperation",
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new ad group criterion customizer.",
          "$ref": "GoogleAdsGoogleadsV23Resources__AdGroupCriterionCustomizer"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed ad group criterion customizer is expected, in this format: `customers/{customer_id}/adGroupCriterionCustomizers/{ad_group_id}~{criterion_id}~{customizer_attribute_id}`"
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__CpvBidSimulationPointList": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__CpvBidSimulationPointList",
      "properties": {
        "points": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__CpvBidSimulationPoint"
          },
          "description": "Projected metrics for a series of CPV bid amounts."
        }
      },
      "description": "A container for simulation points for simulations of type CPV_BID."
    },
    "GoogleAdsGoogleadsV23Common__Consent": {
      "id": "GoogleAdsGoogleadsV23Common__Consent",
      "description": "Consent",
      "properties": {
        "adUserData": {
          "description": "This represents consent for ad user data.",
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "GRANTED",
            "DENIED"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Output-only. Represents a format not yet defined in this enum.",
            "Granted.",
            "Denied."
          ]
        },
        "adPersonalization": {
          "enumDescriptions": [
            "Not specified.",
            "Output-only. Represents a format not yet defined in this enum.",
            "Granted.",
            "Denied."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "GRANTED",
            "DENIED"
          ],
          "description": "This represents consent for ad personalization. This can only be set for OfflineUserDataJobService and UserDataService.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__CreditDetails": {
      "id": "GoogleAdsGoogleadsV23Resources__CreditDetails",
      "properties": {
        "creditStateLastUpdateDateTime": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The date time when the credit state of the lead was last updated. The format is \"YYYY-MM-DD HH:MM:SS\" in the Google Ads account's timezone. Examples: \"2018-03-05 09:15:00\" or \"2018-02-01 14:34:30\""
        },
        "creditState": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Credit state of the lead.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "A credit has been filed and is being processed by Ads backend, but has not been applied to the account yet.",
            "The credit has been issued to the Ads account."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PENDING",
            "CREDITED"
          ]
        }
      },
      "description": "Represents the credit details of a lead.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateCampaignGroupResult": {
      "properties": {
        "resourceName": {
          "description": "Required. Returned for successful operations.",
          "type": "string"
        },
        "campaignGroup": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CampaignGroup",
          "description": "The mutated campaign group with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\"."
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateCampaignGroupResult",
      "description": "The result for the campaign group mutate.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__PlannableUserInterest": {
      "properties": {
        "userInterestDisplayName": {
          "description": "The user interest display name. For example, \"Autos & Vehicles\"",
          "type": "string"
        },
        "userInterestPath": {
          "type": "string",
          "description": "The user interest path. For example, \"/Autos & Vehicles/Motor Vehicles/Motor Vehicles by Type/Off-Road Vehicles\""
        },
        "userInterestType": {
          "description": "The user interest type.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AFFINITY",
            "IN_MARKET",
            "MOBILE_APP_INSTALL_USER",
            "VERTICAL_GEO",
            "NEW_SMART_PHONE_USER"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The affinity for this user interest.",
            "The market for this user interest.",
            "Users known to have installed applications in the specified categories.",
            "The geographical location of the interest-based vertical.",
            "User interest criteria for new smart phone users."
          ],
          "type": "string"
        },
        "userInterest": {
          "description": "The user interest id.",
          "$ref": "GoogleAdsGoogleadsV23Common__UserInterestInfo"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__PlannableUserInterest",
      "description": "A plannable user interest that can be targeted in a reach forecast using ReachPlanService.GenerateReachForecast.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__ConfigureCampaignLifecycleGoalsRequest": {
      "properties": {
        "operation": {
          "description": "Required. The operation to perform campaign lifecycle goal update.",
          "$ref": "GoogleAdsGoogleadsV23Services__CampaignLifecycleGoalOperation"
        },
        "validateOnly": {
          "description": "Optional. If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        }
      },
      "type": "object",
      "description": "Request message for CampaignLifecycleGoalService.ConfigureCampaignLifecycleGoals.",
      "id": "GoogleAdsGoogleadsV23Services__ConfigureCampaignLifecycleGoalsRequest"
    },
    "GoogleAdsGoogleadsV23Services__ConversionActionOperation": {
      "properties": {
        "updateMask": {
          "format": "google-fieldmask",
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string"
        },
        "create": {
          "$ref": "GoogleAdsGoogleadsV23Resources__ConversionAction",
          "description": "Create operation: No resource name is expected for the new conversion action."
        },
        "update": {
          "description": "Update operation: The conversion action is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV23Resources__ConversionAction"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed conversion action is expected, in this format: `customers/{customer_id}/conversionActions/{conversion_action_id}`"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__ConversionActionOperation",
      "description": "A single operation (create, update, remove) on a conversion action."
    },
    "GoogleAdsGoogleadsV23Common__LocationAttributeMetadata": {
      "properties": {
        "countryLocation": {
          "description": "The country location that this attribute’s sub country location is located in.",
          "$ref": "GoogleAdsGoogleadsV23Common__LocationInfo"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__LocationAttributeMetadata",
      "description": "Metadata associated with a Location attribute.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__CustomerManagerLinkOperation": {
      "properties": {
        "updateMask": {
          "format": "google-fieldmask",
          "type": "string",
          "description": "FieldMask that determines which resource fields are modified in an update."
        },
        "update": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CustomerManagerLink",
          "description": "Update operation: The link is expected to have a valid resource name."
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__CustomerManagerLinkOperation",
      "description": "Updates the status of a CustomerManagerLink. The following actions are possible: 1. Update operation with status ACTIVE accepts a pending invitation. 2. Update operation with status REFUSED declines a pending invitation. 3. Update operation with status INACTIVE terminates link to manager.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__TravelActivityPerformanceView": {
      "id": "GoogleAdsGoogleadsV23Resources__TravelActivityPerformanceView",
      "description": "A travel activity performance view.",
      "type": "object",
      "properties": {
        "resourceName": {
          "description": "Output only. The resource name of the travel activity performance view. Travel Activity performance view resource names have the form: `customers/{customer_id}/travelActivityPerformanceView`",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__CustomInterestMember": {
      "description": "A member of custom interest audience. A member can be a keyword or url. It is immutable, that is, it can only be created or removed but not changed.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__CustomInterestMember",
      "properties": {
        "parameter": {
          "description": "Keyword text when member_type is KEYWORD or URL string when member_type is URL.",
          "type": "string"
        },
        "memberType": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Custom interest member type KEYWORD.",
            "Custom interest member type URL."
          ],
          "description": "The type of custom interest member, KEYWORD or URL.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "KEYWORD",
            "URL"
          ],
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateCampaignCustomizersResponse": {
      "properties": {
        "partialFailureError": {
          "$ref": "GoogleRpc__Status",
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error."
        },
        "results": {
          "type": "array",
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateCampaignCustomizerResult"
          }
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateCampaignCustomizersResponse",
      "description": "Response message for a campaign customizer mutate."
    },
    "GoogleAdsGoogleadsV23Services_DismissRecommendationResponse_DismissRecommendationResult": {
      "description": "The result of dismissing a recommendation.",
      "id": "GoogleAdsGoogleadsV23Services_DismissRecommendationResponse_DismissRecommendationResult",
      "properties": {
        "resourceName": {
          "description": "Returned for successful dismissals.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__GeoPointInfo": {
      "description": "Geo point for proximity criterion.",
      "id": "GoogleAdsGoogleadsV23Common__GeoPointInfo",
      "properties": {
        "longitudeInMicroDegrees": {
          "type": "integer",
          "format": "int32",
          "description": "Micro degrees for the longitude."
        },
        "latitudeInMicroDegrees": {
          "format": "int32",
          "type": "integer",
          "description": "Micro degrees for the latitude."
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__AdGroupCriterionLabelOperation": {
      "description": "A single operation (create, remove) on an ad group criterion label.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__AdGroupCriterionLabelOperation",
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new ad group label.",
          "$ref": "GoogleAdsGoogleadsV23Resources__AdGroupCriterionLabel"
        },
        "remove": {
          "description": "Remove operation: A resource name for the ad group criterion label being removed, in this format: `customers/{customer_id}/adGroupCriterionLabels/{ad_group_id}~{criterion_id}~{label_id}`",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__GenerateKeywordHistoricalMetricsRequest": {
      "type": "object",
      "properties": {
        "historicalMetricsOptions": {
          "$ref": "GoogleAdsGoogleadsV23Common__HistoricalMetricsOptions",
          "description": "The options for historical metrics data."
        },
        "includeAdultKeywords": {
          "description": "If true, adult keywords will be included in response. The default value is false.",
          "type": "boolean"
        },
        "language": {
          "description": "The resource name of the language to target. Each keyword belongs to some set of languages; a keyword is included if language is one of its languages. If not set, all keywords will be included.",
          "type": "string"
        },
        "aggregateMetrics": {
          "description": "The aggregate fields to include in response.",
          "$ref": "GoogleAdsGoogleadsV23Common__KeywordPlanAggregateMetrics"
        },
        "keywordPlanNetwork": {
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Google Search.",
            "Google Search + Search partners."
          ],
          "description": "Targeting network. If not set, Google Search And Partners Network will be used.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "GOOGLE_SEARCH",
            "GOOGLE_SEARCH_AND_PARTNERS"
          ],
          "type": "string"
        },
        "geoTargetConstants": {
          "description": "The resource names of the location to target. Maximum is 10. An empty list MAY be used to specify all targeting geos.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "keywords": {
          "items": {
            "type": "string"
          },
          "description": "A list of keywords to get historical metrics. Not all inputs will be returned as a result of near-exact deduplication. For example, if stats for \"car\" and \"cars\" are requested, only \"car\" will be returned. A maximum of 10,000 keywords can be used.",
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__GenerateKeywordHistoricalMetricsRequest",
      "description": "Request message for KeywordPlanIdeaService.GenerateKeywordHistoricalMetrics."
    },
    "GoogleAdsGoogleadsV23Common__LifeEventInfo": {
      "properties": {
        "lifeEventId": {
          "description": "Taxonomy id of the life event.",
          "format": "int64",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__LifeEventInfo",
      "type": "object",
      "description": "Represents a life event criterion."
    },
    "GoogleAdsGoogleadsV23Services__MutateAdsRequest": {
      "description": "Request message for AdService.MutateAds.",
      "id": "GoogleAdsGoogleadsV23Services__MutateAdsRequest",
      "type": "object",
      "properties": {
        "responseContentType": {
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "type": "string"
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "operations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__AdOperation"
          },
          "type": "array",
          "description": "Required. The list of operations to perform on individual ads."
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__CustomerAssetSet": {
      "properties": {
        "resourceName": {
          "description": "Immutable. The resource name of the customer asset set. Asset set asset resource names have the form: `customers/{customer_id}/customerAssetSets/{asset_set_id}`",
          "type": "string"
        },
        "status": {
          "enumDescriptions": [
            "The status has not been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The linkage between asset set and its container is enabled.",
            "The linkage between asset set and its container is removed."
          ],
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "description": "Output only. The status of the customer asset set asset. Read-only.",
          "type": "string"
        },
        "customer": {
          "type": "string",
          "description": "Immutable. The customer to which this asset set is linked."
        },
        "assetSet": {
          "type": "string",
          "description": "Immutable. The asset set which is linked to the customer."
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__CustomerAssetSet",
      "description": "CustomerAssetSet is the linkage between a customer and an asset set. Adding a CustomerAssetSet links an asset set with a customer.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__AudienceCompositionMetrics": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__AudienceCompositionMetrics",
      "description": "The share and index metrics associated with an attribute in an audience composition insights report.",
      "properties": {
        "index": {
          "type": "number",
          "description": "The ratio of audience_share to baseline_audience_share, or zero if this ratio is undefined or is not meaningful.",
          "format": "double"
        },
        "audienceShare": {
          "type": "number",
          "description": "The fraction (from 0 to 1 inclusive) of the specific audience that match the attribute.",
          "format": "double"
        },
        "baselineAudienceShare": {
          "description": "The fraction (from 0 to 1 inclusive) of the baseline audience that match the attribute.",
          "format": "double",
          "type": "number"
        },
        "score": {
          "description": "A relevance score from 0 to 1 inclusive.",
          "type": "number",
          "format": "double"
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__TargetRestriction": {
      "id": "GoogleAdsGoogleadsV23Common__TargetRestriction",
      "type": "object",
      "properties": {
        "bidOnly": {
          "description": "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.",
          "type": "boolean"
        },
        "targetingDimension": {
          "description": "The targeting dimension that these settings apply to.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "KEYWORD",
            "AUDIENCE",
            "TOPIC",
            "GENDER",
            "AGE_RANGE",
            "PLACEMENT",
            "PARENTAL_STATUS",
            "INCOME_RANGE"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "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 criteria, which include user list, user interest, custom affinity, and custom in market.",
            "Topic criteria for targeting categories of content, for example, 'category::Animals>Pets' Used for Display and Video targeting.",
            "Criteria for targeting gender.",
            "Criteria for targeting age ranges.",
            "Placement criteria, which include websites like 'www.flowers4sale.com', as well as mobile applications, mobile app categories, YouTube videos, and YouTube channels.",
            "Criteria for parental status targeting.",
            "Criteria for income range targeting."
          ],
          "type": "string"
        }
      },
      "description": "The list of per-targeting-dimension targeting settings."
    },
    "GoogleAdsGoogleadsV23Resources__CustomizerAttribute": {
      "type": "object",
      "properties": {
        "id": {
          "format": "int64",
          "description": "Output only. The ID of the customizer attribute.",
          "readOnly": true,
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "Required. Immutable. Name of the customizer attribute. Required. It must have a minimum length of 1 and maximum length of 40. Name of an enabled customizer attribute must be unique (case insensitive)."
        },
        "resourceName": {
          "description": "Immutable. The resource name of the customizer attribute. Customizer Attribute resource names have the form: `customers/{customer_id}/customizerAttributes/{customizer_attribute_id}`",
          "type": "string"
        },
        "status": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "description": "Output only. The status of the customizer attribute.",
          "type": "string",
          "enumDescriptions": [
            "The status has not been specified.",
            "The received value is not known in this version.",
            "The customizer attribute is enabled.",
            "The customizer attribute is removed."
          ]
        },
        "type": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "TEXT",
            "NUMBER",
            "PRICE",
            "PERCENT"
          ],
          "type": "string",
          "enumDescriptions": [
            "The status has not been specified.",
            "The received value is not known in this version.",
            "Text customizer.",
            "Number customizer.",
            "Price customizer consisting of a number and a currency.",
            "Percentage customizer consisting of a number and a '%'."
          ],
          "description": "Immutable. The type of the customizer attribute."
        }
      },
      "description": "A customizer attribute. Use CustomerCustomizer, CampaignCustomizer, AdGroupCustomizer, or AdGroupCriterionCustomizer to associate a customizer attribute and set its value at the customer, campaign, ad group, or ad group criterion level, respectively.",
      "id": "GoogleAdsGoogleadsV23Resources__CustomizerAttribute"
    },
    "GoogleAdsGoogleadsV23Resources_Campaign_DynamicSearchAdsSetting": {
      "id": "GoogleAdsGoogleadsV23Resources_Campaign_DynamicSearchAdsSetting",
      "description": "The setting for controlling Dynamic Search Ads (DSA).",
      "properties": {
        "languageCode": {
          "description": "Required. The language code specifying the language of the domain, for example, \"en\".",
          "type": "string"
        },
        "useSuppliedUrlsOnly": {
          "type": "boolean",
          "description": "Whether the campaign uses advertiser supplied URLs exclusively."
        },
        "domainName": {
          "type": "string",
          "description": "Required. The Internet domain name that this setting represents, for example, \"google.com\" or \"www.google.com\"."
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__SmartCampaignSuggestionInfo": {
      "description": "Information needed to get suggestion for Smart Campaign. More information provided will help the system to derive better suggestions.",
      "properties": {
        "proximity": {
          "description": "Optional. The targeting geo location by proximity.",
          "$ref": "GoogleAdsGoogleadsV23Common__ProximityInfo"
        },
        "keywordThemes": {
          "type": "array",
          "description": "Optional. Smart campaign keyword themes. This field may greatly improve suggestion accuracy and we recommend always setting it if possible.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__KeywordThemeInfo"
          }
        },
        "locationList": {
          "description": "Optional. The targeting geo location by locations.",
          "$ref": "GoogleAdsGoogleadsV23Services_SmartCampaignSuggestionInfo_LocationList"
        },
        "businessContext": {
          "$ref": "GoogleAdsGoogleadsV23Services_SmartCampaignSuggestionInfo_BusinessContext",
          "description": "Optional. Context describing the business to advertise."
        },
        "businessProfileLocation": {
          "type": "string",
          "description": "Optional. The resource name of a Business Profile location. Business Profile location resource names can be fetched through the Business Profile API and adhere to the following format: `locations/{locationId}`. See the [Business Profile API] (https://developers.google.com/my-business/reference/businessinformation/rest/v1/accounts.locations) for additional details."
        },
        "languageCode": {
          "description": "Optional. The two letter advertising language for the Smart campaign to be constructed, default to 'en' if not set.",
          "type": "string"
        },
        "adSchedules": {
          "description": "Optional. The business ad schedule.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdScheduleInfo"
          },
          "type": "array"
        },
        "finalUrl": {
          "description": "Optional. Landing page URL of the campaign.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__SmartCampaignSuggestionInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__DataPartnerIdentifier": {
      "properties": {
        "dataPartnerId": {
          "type": "string",
          "description": "Immutable. The customer ID of the Data partner account. This field is required and should not be empty when creating a new data partner link. It is unable to be modified after the creation of the link.",
          "format": "int64"
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__DataPartnerIdentifier",
      "description": "The identifier for Data Partner account.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__GeneratedImage": {
      "id": "GoogleAdsGoogleadsV23Services__GeneratedImage",
      "type": "object",
      "properties": {
        "assetFieldType": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is linked for use as a headline.",
            "The asset is linked for use as a description.",
            "The asset is linked for use as mandatory ad text.",
            "The asset is linked for use as a marketing image.",
            "The asset is linked for use as a media bundle.",
            "The asset is linked for use as a YouTube video.",
            "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
            "The asset is linked for use as a Lead Form extension.",
            "The asset is linked for use as a Promotion extension.",
            "The asset is linked for use as a Callout extension.",
            "The asset is linked for use as a Structured Snippet extension.",
            "The asset is linked for use as a Sitelink.",
            "The asset is linked for use as a Mobile App extension.",
            "The asset is linked for use as a Hotel Callout extension.",
            "The asset is linked for use as a Call extension.",
            "The asset is linked for use as a Price extension.",
            "The asset is linked for use as a long headline.",
            "The asset is linked for use as a business name.",
            "The asset is linked for use as a square marketing image.",
            "The asset is linked for use as a portrait marketing image.",
            "The asset is linked for use as a logo.",
            "The asset is linked for use as a landscape logo.",
            "The asset is linked for use as a non YouTube logo.",
            "The asset is linked for use to select a call-to-action.",
            "The asset is linked for use to select an ad image.",
            "The asset is linked for use as a business logo.",
            "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
            "The asset is linked for use as a Demand Gen carousel card.",
            "The asset is linked for use as a Business Message.",
            "The asset is linked for use as a tall portrait marketing image.",
            "The asset is linked for use as related YouTube videos.",
            "The asset is linked for use as a landing page preview image.",
            "The asset is linked for use as a long description.",
            "The asset is linked for use as a call-to-action."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE",
            "DESCRIPTION",
            "MANDATORY_AD_TEXT",
            "MARKETING_IMAGE",
            "MEDIA_BUNDLE",
            "YOUTUBE_VIDEO",
            "BOOK_ON_GOOGLE",
            "LEAD_FORM",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "LONG_HEADLINE",
            "BUSINESS_NAME",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "VIDEO",
            "CALL_TO_ACTION_SELECTION",
            "AD_IMAGE",
            "BUSINESS_LOGO",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "TALL_PORTRAIT_MARKETING_IMAGE",
            "RELATED_YOUTUBE_VIDEOS",
            "LANDING_PAGE_PREVIEW",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION"
          ],
          "description": "The intended field type for this generated image.",
          "type": "string"
        },
        "imageTemporaryUrl": {
          "description": "A temporary URL for the generated image.",
          "type": "string"
        }
      },
      "description": "Generated image data and metadata."
    },
    "GoogleAdsGoogleadsV23Services__CustomerSkAdNetworkConversionValueSchemaOperation": {
      "id": "GoogleAdsGoogleadsV23Services__CustomerSkAdNetworkConversionValueSchemaOperation",
      "properties": {
        "update": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CustomerSkAdNetworkConversionValueSchema",
          "description": "Update operation: The schema is expected to have a valid resource name."
        }
      },
      "description": "A single update operation for a CustomerSkAdNetworkConversionValueSchema.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__SuggestGeoTargetConstantsResponse": {
      "description": "Response message for GeoTargetConstantService.SuggestGeoTargetConstants.",
      "properties": {
        "geoTargetConstantSuggestions": {
          "description": "Geo target constant suggestions.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__GeoTargetConstantSuggestion"
          }
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__SuggestGeoTargetConstantsResponse"
    },
    "GoogleAdsGoogleadsV23Services__RegenerateShareableLinkIdRequest": {
      "description": "Request message for ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId.",
      "id": "GoogleAdsGoogleadsV23Services__RegenerateShareableLinkIdRequest",
      "properties": {},
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__ShoppingSmartAdInfo": {
      "type": "object",
      "properties": {},
      "description": "A Smart Shopping ad.",
      "id": "GoogleAdsGoogleadsV23Common__ShoppingSmartAdInfo"
    },
    "GoogleAdsGoogleadsV23Resources__CampaignAsset": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__CampaignAsset",
      "properties": {
        "primaryStatus": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ELIGIBLE",
            "PAUSED",
            "REMOVED",
            "PENDING",
            "LIMITED",
            "NOT_ELIGIBLE"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is eligible to serve.",
            "The user-specified asset link status is paused.",
            "The user-specified asset link status is removed.",
            "The asset may serve in the future.",
            "The asset is serving in a partial capacity.",
            "The asset is not eligible to serve."
          ],
          "description": "Output only. Provides the PrimaryStatus of this asset link. Primary status is meant essentially to differentiate between the plain \"status\" field, which has advertiser set values of enabled, paused, or removed. The primary status takes into account other signals (for assets its mainly policy and quality approvals) to come up with a more comprehensive status to indicate its serving state.",
          "readOnly": true
        },
        "primaryStatusReasons": {
          "items": {
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "The asset is paused for its linked rollup level. Contributes to a PrimaryStatus of PAUSED.",
              "The asset is removed for its linked rollup level. Contributes to a PrimaryStatus of REMOVED.",
              "The asset has been marked as disapproved. Contributes to a PrimaryStatus of NOT_ELIGIBLE",
              "The asset has not completed policy review. Contributes to a PrimaryStatus of PENDING.",
              "The asset is approved with policies applied. Contributes to a PrimaryStatus of LIMITED."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "ASSET_LINK_PAUSED",
              "ASSET_LINK_REMOVED",
              "ASSET_DISAPPROVED",
              "ASSET_UNDER_REVIEW",
              "ASSET_APPROVED_LABELED"
            ],
            "type": "string"
          },
          "description": "Output only. Provides a list of reasons for why an asset is not serving or not serving at full capacity.",
          "readOnly": true,
          "type": "array"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the campaign asset. CampaignAsset resource names have the form: `customers/{customer_id}/campaignAssets/{campaign_id}~{asset_id}~{field_type}`"
        },
        "source": {
          "description": "Output only. Source of the campaign asset link.",
          "readOnly": true,
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADVERTISER",
            "AUTOMATICALLY_CREATED"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset or asset link is provided by advertiser.",
            "The asset or asset link is generated by Google."
          ]
        },
        "primaryStatusDetails": {
          "description": "Output only. Provides the details of the primary status and its associated reasons.",
          "type": "array",
          "readOnly": true,
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AssetLinkPrimaryStatusDetails"
          }
        },
        "campaign": {
          "type": "string",
          "description": "Immutable. The campaign to which the asset is linked."
        },
        "status": {
          "description": "Status of the campaign asset.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Asset link is enabled.",
            "Asset link has been removed.",
            "Asset link is paused."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED",
            "PAUSED"
          ]
        },
        "asset": {
          "description": "Immutable. The asset which is linked to the campaign.",
          "type": "string"
        },
        "fieldType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE",
            "DESCRIPTION",
            "MANDATORY_AD_TEXT",
            "MARKETING_IMAGE",
            "MEDIA_BUNDLE",
            "YOUTUBE_VIDEO",
            "BOOK_ON_GOOGLE",
            "LEAD_FORM",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "LONG_HEADLINE",
            "BUSINESS_NAME",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "VIDEO",
            "CALL_TO_ACTION_SELECTION",
            "AD_IMAGE",
            "BUSINESS_LOGO",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "TALL_PORTRAIT_MARKETING_IMAGE",
            "RELATED_YOUTUBE_VIDEOS",
            "LANDING_PAGE_PREVIEW",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is linked for use as a headline.",
            "The asset is linked for use as a description.",
            "The asset is linked for use as mandatory ad text.",
            "The asset is linked for use as a marketing image.",
            "The asset is linked for use as a media bundle.",
            "The asset is linked for use as a YouTube video.",
            "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
            "The asset is linked for use as a Lead Form extension.",
            "The asset is linked for use as a Promotion extension.",
            "The asset is linked for use as a Callout extension.",
            "The asset is linked for use as a Structured Snippet extension.",
            "The asset is linked for use as a Sitelink.",
            "The asset is linked for use as a Mobile App extension.",
            "The asset is linked for use as a Hotel Callout extension.",
            "The asset is linked for use as a Call extension.",
            "The asset is linked for use as a Price extension.",
            "The asset is linked for use as a long headline.",
            "The asset is linked for use as a business name.",
            "The asset is linked for use as a square marketing image.",
            "The asset is linked for use as a portrait marketing image.",
            "The asset is linked for use as a logo.",
            "The asset is linked for use as a landscape logo.",
            "The asset is linked for use as a non YouTube logo.",
            "The asset is linked for use to select a call-to-action.",
            "The asset is linked for use to select an ad image.",
            "The asset is linked for use as a business logo.",
            "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
            "The asset is linked for use as a Demand Gen carousel card.",
            "The asset is linked for use as a Business Message.",
            "The asset is linked for use as a tall portrait marketing image.",
            "The asset is linked for use as related YouTube videos.",
            "The asset is linked for use as a landing page preview image.",
            "The asset is linked for use as a long description.",
            "The asset is linked for use as a call-to-action."
          ],
          "description": "Immutable. Role that the asset takes under the linked campaign. Required."
        }
      },
      "description": "A link between a Campaign and an Asset."
    },
    "GoogleAdsGoogleadsV23Resources__CustomerClientLink": {
      "id": "GoogleAdsGoogleadsV23Resources__CustomerClientLink",
      "description": "Represents customer client link relationship.",
      "properties": {
        "managerLinkId": {
          "description": "Output only. This is uniquely identifies a customer client link. Read only.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "resourceName": {
          "description": "Immutable. Name of the resource. CustomerClientLink resource names have the form: `customers/{customer_id}/customerClientLinks/{client_customer_id}~{manager_link_id}`",
          "type": "string"
        },
        "hidden": {
          "type": "boolean",
          "description": "The visibility of the link. Users can choose whether or not to see hidden links in the Google Ads UI. Default value is false"
        },
        "status": {
          "type": "string",
          "description": "This is the status of the link between client and manager.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ACTIVE",
            "INACTIVE",
            "PENDING",
            "REFUSED",
            "CANCELED"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Indicates current in-effect relationship",
            "Indicates terminated relationship",
            "Indicates relationship has been requested by manager, but the client hasn't accepted yet.",
            "Relationship was requested by the manager, but the client has refused.",
            "Indicates relationship has been requested by manager, but manager canceled it."
          ]
        },
        "clientCustomer": {
          "type": "string",
          "description": "Immutable. The client customer linked to this customer."
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_CallAssetParameters": {
      "description": "Parameters to use when applying call asset recommendations.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_CallAssetParameters",
      "properties": {
        "adAssetApplyParameters": {
          "description": "Required. Call assets to be added. This is a required field.",
          "$ref": "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_AdAssetApplyParameters"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__ConversionGoalCampaignConfigOperation": {
      "description": "A single operation (update) on a conversion goal campaign config.",
      "id": "GoogleAdsGoogleadsV23Services__ConversionGoalCampaignConfigOperation",
      "type": "object",
      "properties": {
        "updateMask": {
          "format": "google-fieldmask",
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string"
        },
        "update": {
          "description": "Update operation: The conversion goal campaign config is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV23Resources__ConversionGoalCampaignConfig"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateAssetGroupSignalsResponse": {
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "type": "array",
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateAssetGroupSignalResult"
          }
        }
      },
      "description": "Response message for an asset group signal mutate.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateAssetGroupSignalsResponse"
    },
    "GoogleAdsGoogleadsV23Resources__CustomerSkAdNetworkConversionValueSchema": {
      "properties": {
        "resourceName": {
          "readOnly": true,
          "description": "Output only. The resource name of the schema. CustomerSkAdNetworkConversionValueSchema resource names have the form: customers/{customer_id}/customerSkAdNetworkConversionValueSchemas/{account_link_id}",
          "type": "string"
        },
        "schema": {
          "$ref": "GoogleAdsGoogleadsV23Resources_CustomerSkAdNetworkConversionValueSchema_SkAdNetworkConversionValueSchema",
          "readOnly": true,
          "description": "Output only. The schema for the specified resource."
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__CustomerSkAdNetworkConversionValueSchema",
      "description": "A CustomerSkAdNetworkConversionValueSchema.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__ListPaymentsAccountsResponse": {
      "id": "GoogleAdsGoogleadsV23Services__ListPaymentsAccountsResponse",
      "type": "object",
      "properties": {
        "paymentsAccounts": {
          "description": "The list of accessible payments accounts.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Resources__PaymentsAccount"
          }
        }
      },
      "description": "Response message for PaymentsAccountService.ListPaymentsAccounts."
    },
    "GoogleAdsGoogleadsV23Services__CreateProductLinkInvitationResponse": {
      "id": "GoogleAdsGoogleadsV23Services__CreateProductLinkInvitationResponse",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Resource name of the product link invitation."
        }
      },
      "description": "Response message for product link invitation create.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__GenerateRecommendationsRequest": {
      "id": "GoogleAdsGoogleadsV23Services__GenerateRecommendationsRequest",
      "type": "object",
      "properties": {
        "targetContentNetwork": {
          "type": "boolean",
          "description": "Optional. If true, the campaign is opted into serving ads on specified placements in the Google Display Network. This field is optional for the following recommendation_types: CAMPAIGN_BUDGET"
        },
        "campaignCallAssetCount": {
          "type": "integer",
          "format": "int32",
          "description": "Optional. Current campaign call asset count. This field is optional for the following recommendation_types: CAMPAIGN_BUDGET"
        },
        "adGroupInfo": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services_GenerateRecommendationsRequest_AdGroupInfo"
          },
          "type": "array",
          "description": "Optional. Current AdGroup Information. Supports information from a single AdGroup. This field is optional for the following recommendation_types: KEYWORD This field is required for the following recommendation_types: CAMPAIGN_BUDGET if AdvertisingChannelType is SEARCH"
        },
        "campaignSitelinkCount": {
          "description": "Optional. Number of sitelinks on the campaign. This field is necessary for the following recommendation_types: SITELINK_ASSET",
          "format": "int32",
          "type": "integer"
        },
        "negativeLocationsIds": {
          "items": {
            "type": "string",
            "format": "int64"
          },
          "type": "array",
          "description": "Optional. Current campaign negative location ids. One of this field OR positive_location_ids is required for the following recommendation_types: CAMPAIGN_BUDGET if AdvertisingChannelType is SEARCH"
        },
        "targetPartnerSearchNetwork": {
          "description": "Optional. If true, the campaign is opted into serving ads on the Google Partner Network. This field is optional for the following recommendation_types: CAMPAIGN_BUDGET",
          "type": "boolean"
        },
        "advertisingChannelType": {
          "type": "string",
          "description": "Required. Advertising channel type of the campaign. The following advertising_channel_types are supported for recommendation generation: PERFORMANCE_MAX and SEARCH",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SEARCH",
            "DISPLAY",
            "SHOPPING",
            "HOTEL",
            "VIDEO",
            "MULTI_CHANNEL",
            "LOCAL",
            "SMART",
            "PERFORMANCE_MAX",
            "LOCAL_SERVICES",
            "TRAVEL",
            "DEMAND_GEN"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Search Network. Includes display bundled, and Search+ campaigns.",
            "Google Display Network only.",
            "Shopping campaigns serve on the shopping property and on google.com search results.",
            "Hotel Ads campaigns.",
            "Video campaigns.",
            "App Campaigns, and App Campaigns for Engagement, that run across multiple channels.",
            "Local ads campaigns.",
            "Smart campaigns.",
            "Performance Max campaigns.",
            "Local services campaigns.",
            "Travel campaigns.",
            "Demand Gen campaigns."
          ]
        },
        "isNewCustomer": {
          "type": "boolean",
          "description": "Optional. Whether or not this customer should be treated as a \"new\" customer (that is, a customer who has not yet created a campaign). Setting this to `true` will cause the backend to generate recommendations using a dedicated recommendation model for onboarding new customers, as opposed to the default model for existing customers. This is only recommended for customers with 0 campaigns. This field is optional for the following recommendation_types: CAMPAIGN_BUDGET"
        },
        "conversionTrackingStatus": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Customer does not use any conversion tracking.",
            "The conversion actions are created and managed by this customer.",
            "The conversion actions are created and managed by the manager specified in the request's `login-customer-id`.",
            "The conversion actions are created and managed by a manager different from the customer or manager specified in the request's `login-customer-id`."
          ],
          "description": "Optional. Current conversion tracking status. This field is necessary for the following recommendation_types: MAXIMIZE_CLICKS_OPT_IN, MAXIMIZE_CONVERSIONS_OPT_IN, MAXIMIZE_CONVERSION_VALUE_OPT_IN, SET_TARGET_CPA, SET_TARGET_ROAS, TARGET_CPA_OPT_IN, TARGET_ROAS_OPT_IN",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NOT_CONVERSION_TRACKED",
            "CONVERSION_TRACKING_MANAGED_BY_SELF",
            "CONVERSION_TRACKING_MANAGED_BY_THIS_MANAGER",
            "CONVERSION_TRACKING_MANAGED_BY_ANOTHER_MANAGER"
          ]
        },
        "seedInfo": {
          "description": "Optional. Seed information for Keywords. This field is necessary for the following recommendation_types: KEYWORD",
          "$ref": "GoogleAdsGoogleadsV23Services_GenerateRecommendationsRequest_SeedInfo"
        },
        "languageCodes": {
          "description": "Optional. Current campaign language codes. This field is required for the following recommendation_types: CAMPAIGN_BUDGET if AdvertisingChannelType is SEARCH",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "biddingInfo": {
          "description": "Optional. Current bidding information of the campaign. This field is necessary for the following recommendation_types: CAMPAIGN_BUDGET, MAXIMIZE_CLICKS_OPT_IN, MAXIMIZE_CONVERSIONS_OPT_IN, MAXIMIZE_CONVERSION_VALUE_OPT_IN, SET_TARGET_CPA, SET_TARGET_ROAS, TARGET_CPA_OPT_IN, TARGET_ROAS_OPT_IN",
          "$ref": "GoogleAdsGoogleadsV23Services_GenerateRecommendationsRequest_BiddingInfo"
        },
        "assetGroupInfo": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services_GenerateRecommendationsRequest_AssetGroupInfo"
          },
          "description": "Optional. Current AssetGroup Information. This field is required for the following recommendation_types: CAMPAIGN_BUDGET",
          "type": "array"
        },
        "positiveLocationsIds": {
          "items": {
            "type": "string",
            "format": "int64"
          },
          "description": "Optional. Current campaign positive location ids. One of this field OR negative_location_ids is required for the following recommendation_types: CAMPAIGN_BUDGET if AdvertisingChannelType is SEARCH",
          "type": "array"
        },
        "countryCodes": {
          "description": "Optional. Current campaign country codes. This field is required for the following recommendation_types: CAMPAIGN_BUDGET if AdvertisingChannelType is SEARCH",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "merchantCenterAccountId": {
          "format": "int64",
          "description": "Optional. Merchant Center account ID. This field should only be set when advertising_channel_type is PERFORMANCE_MAX. Setting this field causes RecommendationService to generate recommendations for Performance Max for retail instead of standard Performance Max. This field is optional for the following recommendation_types: CAMPAIGN_BUDGET",
          "type": "string"
        },
        "campaignImageAssetCount": {
          "description": "Optional. Current campaign image asset count. This field is optional for the following recommendation_types: CAMPAIGN_BUDGET",
          "format": "int32",
          "type": "integer"
        },
        "recommendationTypes": {
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "Provides optimized budget recommendations for campaigns.",
              "Keyword recommendation.",
              "Recommendation to add a new text ad.",
              "Recommendation to update a campaign to use a Target CPA bidding strategy.",
              "Recommendation to update a campaign to use the Maximize Conversions bidding strategy.",
              "Recommendation to enable Enhanced Cost Per Click for a campaign.",
              "Recommendation to start showing your campaign's ads on Google Search Partners Websites.",
              "Recommendation to update a campaign to use a Maximize Clicks bidding strategy.",
              "Recommendation to start using the \"Optimize\" ad rotation setting for the given ad group.",
              "Recommendation to change an existing keyword from one match type to a broader match type.",
              "Recommendation to move unused budget from one budget to a constrained budget.",
              "Budget recommendation for campaigns that are expected to become budget-constrained in the future (as opposed to the CAMPAIGN_BUDGET recommendation, which applies to campaigns that are currently budget-constrained).",
              "Recommendation to update a campaign to use a Target ROAS bidding strategy.",
              "Recommendation to add a new responsive search ad.",
              "Budget recommendation for campaigns whose ROI is predicted to increase with a budget adjustment.",
              "Recommendation to add broad match versions of keywords for fully automated conversion-based bidding campaigns.",
              "Recommendation to add new responsive search ad assets.",
              "Recommendation to upgrade a Smart Shopping campaign to a Performance Max campaign.",
              "Recommendation to improve strength of responsive search ad.",
              "Recommendation to update a campaign to use Display Expansion.",
              "Recommendation to upgrade a Local campaign to a Performance Max campaign.",
              "Recommendation to raise target CPA when it is too low and there are very few or no conversions. It is applied asynchronously and can take minutes depending on the number of ad groups there are in the related campaign.",
              "Recommendation to raise the budget in advance of a seasonal event that is forecasted to increase traffic, and change bidding strategy from maximize conversion value to target ROAS.",
              "Recommendation to add callout assets to campaign or customer level.",
              "Recommendation to add sitelink assets to campaign or customer level.",
              "Recommendation to add call assets to campaign or customer level.",
              "Recommendation to add the age group attribute to offers that are demoted because of a missing age group.",
              "Recommendation to add a color to offers that are demoted because of a missing color.",
              "Recommendation to add a gender to offers that are demoted because of a missing gender.",
              "Recommendation to add a GTIN (Global Trade Item Number) to offers that are demoted because of a missing GTIN.",
              "Recommendation to add more identifiers to offers that are demoted because of missing identifiers.",
              "Recommendation to add the size to offers that are demoted because of a missing size.",
              "Recommendation informing a customer about a campaign that cannot serve because no products are being targeted.",
              "The shopping recommendation informing a customer about campaign with a high percentage of disapproved products.",
              "Recommendation to create a catch-all campaign that targets all offers.",
              "Recommendation to fix Merchant Center account suspension issues.",
              "Recommendation to fix Merchant Center account suspension warning issues.",
              "Recommendation to migrate offers targeted by Regular Shopping Campaigns to existing Performance Max campaigns.",
              "Recommendation to enable dynamic image extensions on the account, allowing Google to find the best images from ad landing pages and complement text ads.",
              "Recommendation to raise Target CPA based on Google predictions modeled from past conversions. It is applied asynchronously and can take minutes depending on the number of ad groups there are in the related campaign.",
              "Recommendation to lower Target ROAS.",
              "Recommendation to opt into Performance Max campaigns.",
              "Recommendation to improve the asset group strength of a Performance Max campaign to an \"Excellent\" rating.",
              "Recommendation to migrate Dynamic Search Ads to Performance Max campaigns.",
              "Recommendation to set a target CPA for campaigns that do not have one specified, in advance of a seasonal event that is forecasted to increase traffic.",
              "Recommendation to set a target CPA for campaigns that do not have one specified.",
              "Recommendation to set a target ROAS for campaigns that do not have one specified.",
              "Recommendation to update a campaign to use the Maximize Conversion Value bidding strategy.",
              "Recommendation to deploy Google Tag on more pages.",
              "Recommendation to turn on Final URL expansion for your Performance Max campaigns.",
              "Recommendation to update a customer list that hasn't been updated in the last 90 days.",
              "Recommendation to create a custom audience.",
              "Recommendation to add lead form assets to campaign or customer level.",
              "Recommendation to improve the strength of ads in Demand Gen campaigns."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "CAMPAIGN_BUDGET",
              "KEYWORD",
              "TEXT_AD",
              "TARGET_CPA_OPT_IN",
              "MAXIMIZE_CONVERSIONS_OPT_IN",
              "ENHANCED_CPC_OPT_IN",
              "SEARCH_PARTNERS_OPT_IN",
              "MAXIMIZE_CLICKS_OPT_IN",
              "OPTIMIZE_AD_ROTATION",
              "KEYWORD_MATCH_TYPE",
              "MOVE_UNUSED_BUDGET",
              "FORECASTING_CAMPAIGN_BUDGET",
              "TARGET_ROAS_OPT_IN",
              "RESPONSIVE_SEARCH_AD",
              "MARGINAL_ROI_CAMPAIGN_BUDGET",
              "USE_BROAD_MATCH_KEYWORD",
              "RESPONSIVE_SEARCH_AD_ASSET",
              "UPGRADE_SMART_SHOPPING_CAMPAIGN_TO_PERFORMANCE_MAX",
              "RESPONSIVE_SEARCH_AD_IMPROVE_AD_STRENGTH",
              "DISPLAY_EXPANSION_OPT_IN",
              "UPGRADE_LOCAL_CAMPAIGN_TO_PERFORMANCE_MAX",
              "RAISE_TARGET_CPA_BID_TOO_LOW",
              "FORECASTING_SET_TARGET_ROAS",
              "CALLOUT_ASSET",
              "SITELINK_ASSET",
              "CALL_ASSET",
              "SHOPPING_ADD_AGE_GROUP",
              "SHOPPING_ADD_COLOR",
              "SHOPPING_ADD_GENDER",
              "SHOPPING_ADD_GTIN",
              "SHOPPING_ADD_MORE_IDENTIFIERS",
              "SHOPPING_ADD_SIZE",
              "SHOPPING_ADD_PRODUCTS_TO_CAMPAIGN",
              "SHOPPING_FIX_DISAPPROVED_PRODUCTS",
              "SHOPPING_TARGET_ALL_OFFERS",
              "SHOPPING_FIX_SUSPENDED_MERCHANT_CENTER_ACCOUNT",
              "SHOPPING_FIX_MERCHANT_CENTER_ACCOUNT_SUSPENSION_WARNING",
              "SHOPPING_MIGRATE_REGULAR_SHOPPING_CAMPAIGN_OFFERS_TO_PERFORMANCE_MAX",
              "DYNAMIC_IMAGE_EXTENSION_OPT_IN",
              "RAISE_TARGET_CPA",
              "LOWER_TARGET_ROAS",
              "PERFORMANCE_MAX_OPT_IN",
              "IMPROVE_PERFORMANCE_MAX_AD_STRENGTH",
              "MIGRATE_DYNAMIC_SEARCH_ADS_CAMPAIGN_TO_PERFORMANCE_MAX",
              "FORECASTING_SET_TARGET_CPA",
              "SET_TARGET_CPA",
              "SET_TARGET_ROAS",
              "MAXIMIZE_CONVERSION_VALUE_OPT_IN",
              "IMPROVE_GOOGLE_TAG_COVERAGE",
              "PERFORMANCE_MAX_FINAL_URL_OPT_IN",
              "REFRESH_CUSTOMER_MATCH_LIST",
              "CUSTOM_AUDIENCE_OPT_IN",
              "LEAD_FORM_ASSET",
              "IMPROVE_DEMAND_GEN_AD_STRENGTH"
            ]
          },
          "description": "Required. List of eligible recommendation_types to generate. If the uploaded criteria isn't sufficient to make a recommendation, or the campaign is already in the recommended state, no recommendation will be returned for that type. Generally, a recommendation is returned if all required fields for that recommendation_type are uploaded, but there are cases where this is still not sufficient. The following recommendation_types are supported for recommendation generation: CAMPAIGN_BUDGET, KEYWORD, MAXIMIZE_CLICKS_OPT_IN, MAXIMIZE_CONVERSIONS_OPT_IN, MAXIMIZE_CONVERSION_VALUE_OPT_IN, SET_TARGET_CPA, SET_TARGET_ROAS, SITELINK_ASSET, TARGET_CPA_OPT_IN, TARGET_ROAS_OPT_IN"
        },
        "budgetInfo": {
          "$ref": "GoogleAdsGoogleadsV23Services_GenerateRecommendationsRequest_BudgetInfo",
          "description": "Optional. Current budget information. This field is optional for the following recommendation_types: CAMPAIGN_BUDGET"
        }
      },
      "description": "Request message for RecommendationService.GenerateRecommendations."
    },
    "GoogleAdsGoogleadsV23Resources__PerformanceMaxPlacementView": {
      "type": "object",
      "properties": {
        "targetUrl": {
          "description": "Output only. URL of the placement, for example, website, link to the mobile application in app store, or a YouTube video URL.",
          "type": "string",
          "readOnly": true
        },
        "displayName": {
          "type": "string",
          "description": "Output only. The name displayed to represent the placement, such as the URL name for websites, YouTube video name for YouTube videos, and translated mobile app name for mobile apps.",
          "readOnly": true
        },
        "resourceName": {
          "description": "Output only. The resource name of the Performance Max placement view. Performance Max placement view resource names have the form: `customers/{customer_id}/performanceMaxPlacementViews/{base_64_placement}`",
          "type": "string",
          "readOnly": true
        },
        "placement": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The default placement string, such as the website URL, mobile application ID, or a YouTube video ID."
        },
        "placementType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "WEBSITE",
            "MOBILE_APP_CATEGORY",
            "MOBILE_APPLICATION",
            "YOUTUBE_VIDEO",
            "YOUTUBE_CHANNEL",
            "GOOGLE_PRODUCTS"
          ],
          "readOnly": true,
          "description": "Output only. Type of the placement. Possible values for Performance Max placements are WEBSITE, MOBILE_APPLICATION, or YOUTUBE_VIDEO.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Websites(for example, 'www.flowers4sale.com').",
            "Mobile application categories(for example, 'Games').",
            "mobile applications(for example, 'mobileapp::2-com.whatsthewordanswers').",
            "YouTube videos(for example, 'youtube.com/video/wtLJPvx7-ys').",
            "YouTube channels(for example, 'youtube.com::L8ZULXASCc1I_oaOT0NaOQ').",
            "Surfaces owned and operated by Google(for example, 'tv.google.com')."
          ]
        }
      },
      "description": "A view with impression metrics for Performance Max campaign placements.",
      "id": "GoogleAdsGoogleadsV23Resources__PerformanceMaxPlacementView"
    },
    "GoogleAdsGoogleadsV23Resources_ConversionValueRule_ValueRuleItineraryCondition": {
      "id": "GoogleAdsGoogleadsV23Resources_ConversionValueRule_ValueRuleItineraryCondition",
      "properties": {
        "travelStartDay": {
          "$ref": "GoogleAdsGoogleadsV23Resources_ConversionValueRule_ValueRuleItineraryTravelStartDay",
          "description": "The days of the week on which this itinerary's travel can start."
        },
        "advanceBookingWindow": {
          "description": "Range for the number of days between the date of the booking and the start of the itinerary.",
          "$ref": "GoogleAdsGoogleadsV23Resources_ConversionValueRule_ValueRuleItineraryAdvanceBookingWindow"
        },
        "travelLength": {
          "$ref": "GoogleAdsGoogleadsV23Resources_ConversionValueRule_ValueRuleItineraryTravelLength",
          "description": "Range for the itinerary length in number of nights."
        }
      },
      "description": "Condition on Itinerary dimension.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__SuggestKeywordThemesRequest": {
      "id": "GoogleAdsGoogleadsV23Services__SuggestKeywordThemesRequest",
      "properties": {
        "suggestionInfo": {
          "description": "Required. Information to get keyword theme suggestions. Required fields: * suggestion_info.final_url * suggestion_info.language_code * suggestion_info.geo_target Recommended fields: * suggestion_info.business_setting",
          "$ref": "GoogleAdsGoogleadsV23Services__SmartCampaignSuggestionInfo"
        }
      },
      "type": "object",
      "description": "Request message for SmartCampaignSuggestService.SuggestKeywordThemes."
    },
    "GoogleAdsGoogleadsV23Services__MutateCustomerManagerLinkResponse": {
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomerManagerLinkResult"
          },
          "description": "A result that identifies the resource affected by the mutate request."
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateCustomerManagerLinkResponse",
      "description": "Response message for a CustomerManagerLink mutate."
    },
    "GoogleAdsGoogleadsV23Services__BenchmarksLocation": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__BenchmarksLocation",
      "properties": {
        "locationName": {
          "type": "string",
          "description": "The unique location name in English."
        },
        "locationType": {
          "description": "The location's type. Location types correspond to target_type returned by searching location type in GoogleAdsService.Search/SearchStream.",
          "type": "string"
        },
        "locationInfo": {
          "description": "Information on the geographic location, including the location ID.",
          "$ref": "GoogleAdsGoogleadsV23Common__LocationInfo"
        }
      },
      "description": "A location that supports benchmarks data."
    },
    "GoogleAdsGoogleadsV23Services__Conversation": {
      "description": "Details of the conversation that needs to be appended.",
      "properties": {
        "localServicesLead": {
          "description": "Required. The resource name of the local services lead that the conversation should be applied to.",
          "type": "string"
        },
        "text": {
          "description": "Required. Text message that user wanted to append to lead.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__Conversation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__ShoppingComparisonListingAdInfo": {
      "type": "object",
      "properties": {
        "headline": {
          "description": "Headline of the ad. This field is required. Allowed length is between 25 and 45 characters.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__ShoppingComparisonListingAdInfo",
      "description": "A Shopping Comparison Listing ad."
    },
    "GoogleAdsGoogleadsV23Services__MetricAttributes": {
      "properties": {
        "attributes": {
          "description": "The attributes of the metric.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services_MetricAttributes_Attribute"
          }
        },
        "name": {
          "description": "The name of the metric.",
          "type": "string"
        }
      },
      "description": "Indicates the attributes of metrics.",
      "id": "GoogleAdsGoogleadsV23Services__MetricAttributes",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__StoreSalesMetadata": {
      "id": "GoogleAdsGoogleadsV23Common__StoreSalesMetadata",
      "description": "Metadata for Store Sales Direct.",
      "properties": {
        "loyaltyFraction": {
          "format": "double",
          "type": "number",
          "description": "This is the fraction of all transactions that are identifiable (for example, associated with any form of customer information). Required. The fraction needs to be between 0 and 1 (excluding 0)."
        },
        "transactionUploadFraction": {
          "format": "double",
          "type": "number",
          "description": "This is the ratio of sales being uploaded compared to the overall sales that can be associated with a customer. Required. The fraction needs to be between 0 and 1 (excluding 0). For example, if you upload half the sales that you are able to associate with a customer, this would be 0.5."
        },
        "thirdPartyMetadata": {
          "description": "Metadata for a third party Store Sales upload.",
          "$ref": "GoogleAdsGoogleadsV23Common__StoreSalesThirdPartyMetadata"
        },
        "customKey": {
          "type": "string",
          "description": "Name of the store sales custom variable key. A predefined key that can be applied to the transaction and then later used for custom segmentation in reporting. Accessible only to customers on the allow-list."
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__PercentCpcBidSimulationPoint": {
      "id": "GoogleAdsGoogleadsV23Common__PercentCpcBidSimulationPoint",
      "description": "Projected metrics for a specific percent CPC amount. Only Hotel advertising channel type supports this field.",
      "type": "object",
      "properties": {
        "biddableConversions": {
          "description": "Projected number of biddable conversions.",
          "type": "number",
          "format": "double"
        },
        "impressions": {
          "format": "int64",
          "description": "Projected number of impressions.",
          "type": "string"
        },
        "topSlotImpressions": {
          "format": "int64",
          "type": "string",
          "description": "Projected number of top slot impressions."
        },
        "percentCpcBidMicros": {
          "format": "int64",
          "description": "The simulated percent CPC upon which projected metrics are based. Percent CPC expressed as fraction of the advertised price for some good or service. The value stored here is 1,000,000 * [fraction].",
          "type": "string"
        },
        "clicks": {
          "type": "string",
          "format": "int64",
          "description": "Projected number of clicks."
        },
        "costMicros": {
          "type": "string",
          "description": "Projected cost in micros.",
          "format": "int64"
        },
        "biddableConversionsValue": {
          "format": "double",
          "description": "Projected total value of biddable conversions in local currency.",
          "type": "number"
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__Commission": {
      "id": "GoogleAdsGoogleadsV23Common__Commission",
      "description": "Commission is an automatic bidding strategy in which the advertiser pays a certain portion of the conversion value.",
      "type": "object",
      "properties": {
        "commissionRateMicros": {
          "description": "Commission rate defines the portion of the conversion value that the advertiser will be billed. A commission rate of x should be passed into this field as (x * 1,000,000). For example, 106,000 represents a commission rate of 0.106 (10.6%).",
          "type": "string",
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__CampaignGoalConfigOperation": {
      "properties": {
        "updateMask": {
          "format": "google-fieldmask",
          "description": "FieldMask that determines which fields are modified in an update.",
          "type": "string"
        },
        "remove": {
          "description": "Remove an existing campaign goal config.",
          "type": "string"
        },
        "create": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CampaignGoalConfig",
          "description": "Create a new campaign goal config."
        },
        "update": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CampaignGoalConfig",
          "description": "Update an existing campaign goal config."
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__CampaignGoalConfigOperation",
      "description": "A single mutate operation on the campaign goal config."
    },
    "GoogleAdsGoogleadsV23Services__AudienceInsightsDimensions": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__AudienceInsightsDimensions",
      "description": "A collection of dimensions to be used for generating insights.",
      "properties": {
        "dimensions": {
          "description": "Required. A list of dimensions.",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "The value is unknown in this version.",
              "A Product & Service category.",
              "A Knowledge Graph entity.",
              "A country, represented by a geo target.",
              "A geographic location within a country.",
              "A YouTube channel.",
              "An Affinity UserInterest.",
              "An In-Market UserInterest.",
              "A Parental Status value (parent, or not a parent).",
              "A household income percentile range.",
              "An age range.",
              "A gender.",
              "A YouTube video.",
              "A device type, such as Mobile, Desktop, Tablet, and Connected TV.",
              "A YouTube Lineup.",
              "A User List.",
              "A Life Event UserInterest."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "CATEGORY",
              "KNOWLEDGE_GRAPH",
              "GEO_TARGET_COUNTRY",
              "SUB_COUNTRY_LOCATION",
              "YOUTUBE_CHANNEL",
              "AFFINITY_USER_INTEREST",
              "IN_MARKET_USER_INTEREST",
              "PARENTAL_STATUS",
              "INCOME_RANGE",
              "AGE_RANGE",
              "GENDER",
              "YOUTUBE_VIDEO",
              "DEVICE",
              "YOUTUBE_LINEUP",
              "USER_LIST",
              "LIFE_EVENT_USER_INTEREST"
            ]
          },
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources_SmartCampaignSetting_AdOptimizedBusinessProfileSetting": {
      "id": "GoogleAdsGoogleadsV23Resources_SmartCampaignSetting_AdOptimizedBusinessProfileSetting",
      "description": "Settings for configuring a business profile optimized for ads as this campaign's landing page.",
      "type": "object",
      "properties": {
        "includeLeadForm": {
          "type": "boolean",
          "description": "Enabling a lead form on your business profile enables prospective customers to contact your business by filling out a simple form, and you'll receive their information through email."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateCustomerSkAdNetworkConversionValueSchemaResponse": {
      "id": "GoogleAdsGoogleadsV23Services__MutateCustomerSkAdNetworkConversionValueSchemaResponse",
      "description": "Response message for MutateCustomerSkAdNetworkConversionValueSchema.",
      "properties": {
        "warning": {
          "description": "Non blocking errors that provides schema validation failure details. Returned only when enable_warnings = true.",
          "$ref": "GoogleRpc__Status"
        },
        "result": {
          "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomerSkAdNetworkConversionValueSchemaResult",
          "description": "All results for the mutate."
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__KeywordPlanOperation": {
      "description": "A single operation (create, update, remove) on a keyword plan.",
      "properties": {
        "remove": {
          "description": "Remove operation: A resource name for the removed keyword plan is expected in this format: `customers/{customer_id}/keywordPlans/{keyword_plan_id}`",
          "type": "string"
        },
        "update": {
          "$ref": "GoogleAdsGoogleadsV23Resources__KeywordPlan",
          "description": "Update operation: The keyword plan is expected to have a valid resource name."
        },
        "updateMask": {
          "format": "google-fieldmask",
          "type": "string",
          "description": "The FieldMask that determines which resource fields are modified in an update."
        },
        "create": {
          "$ref": "GoogleAdsGoogleadsV23Resources__KeywordPlan",
          "description": "Create operation: No resource name is expected for the new keyword plan."
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__KeywordPlanOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources_Recommendation_ResponsiveSearchAdImproveAdStrengthRecommendation": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources_Recommendation_ResponsiveSearchAdImproveAdStrengthRecommendation",
      "properties": {
        "currentAd": {
          "$ref": "GoogleAdsGoogleadsV23Resources__Ad",
          "description": "Output only. The current ad to be updated.",
          "readOnly": true
        },
        "recommendedAd": {
          "readOnly": true,
          "description": "Output only. The updated ad.",
          "$ref": "GoogleAdsGoogleadsV23Resources__Ad"
        }
      },
      "description": "The responsive search ad improve ad strength recommendation."
    },
    "GoogleAdsGoogleadsV23Services__KeywordPlanAdGroupOperation": {
      "id": "GoogleAdsGoogleadsV23Services__KeywordPlanAdGroupOperation",
      "description": "A single operation (create, update, remove) on a Keyword Plan ad group.",
      "type": "object",
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new Keyword Plan ad group.",
          "$ref": "GoogleAdsGoogleadsV23Resources__KeywordPlanAdGroup"
        },
        "update": {
          "$ref": "GoogleAdsGoogleadsV23Resources__KeywordPlanAdGroup",
          "description": "Update operation: The Keyword Plan ad group is expected to have a valid resource name."
        },
        "updateMask": {
          "description": "The FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask",
          "type": "string"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed Keyword Plan ad group is expected, in this format: `customers/{customer_id}/keywordPlanAdGroups/{kp_ad_group_id}`"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateConversionGoalCampaignConfigsResponse": {
      "properties": {
        "results": {
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateConversionGoalCampaignConfigResult"
          },
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateConversionGoalCampaignConfigsResponse",
      "type": "object",
      "description": "Response message for a conversion goal campaign config mutate."
    },
    "GoogleAdsGoogleadsV23Resources_ShoppingProduct_ProductIssue": {
      "description": "An issue affecting whether a product can show in ads.",
      "properties": {
        "adsSeverity": {
          "type": "string",
          "description": "Output only. The severity of the issue in Google Ads.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "WARNING",
            "ERROR"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The issue limits the performance of the product in ads.",
            "The issue prevents the product from showing in ads."
          ],
          "readOnly": true
        },
        "affectedRegions": {
          "readOnly": true,
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Output only. List of upper-case two-letter ISO 3166-1 codes of the regions affected by the issue. If empty, all regions are affected."
        },
        "description": {
          "readOnly": true,
          "description": "Output only. The short description of the issue in English.",
          "type": "string"
        },
        "detail": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The detailed description of the issue in English."
        },
        "documentation": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The URL of the Help Center article for the issue."
        },
        "errorCode": {
          "description": "Output only. The error code that identifies the issue.",
          "type": "string",
          "readOnly": true
        },
        "attributeName": {
          "description": "Output only. The name of the product's attribute, if any, that triggered the issue.",
          "readOnly": true,
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources_ShoppingProduct_ProductIssue"
    },
    "GoogleAdsGoogleadsV23Services__ListBenchmarksAvailableDatesRequest": {
      "type": "object",
      "description": "Request message for BenchmarksService.ListBenchmarksAvailableDates.",
      "id": "GoogleAdsGoogleadsV23Services__ListBenchmarksAvailableDatesRequest",
      "properties": {
        "applicationInfo": {
          "description": "Additional information on the application issuing the request.",
          "$ref": "GoogleAdsGoogleadsV23Common__AdditionalApplicationInfo"
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__YouTubeVideoAttributeMetadata": {
      "description": "Metadata for a YouTube video attribute.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__YouTubeVideoAttributeMetadata",
      "properties": {
        "videoUrl": {
          "description": "The URL of the video, prefixed by \"https://www.youtube.com/\".",
          "type": "string"
        },
        "viewsCount": {
          "description": "The total number of views.",
          "format": "int64",
          "type": "string"
        },
        "thumbnailUrl": {
          "type": "string",
          "description": "The URL of the video thumbnail, prefixed by \"https://img.youtube.com/\"."
        },
        "videoProperties": {
          "items": {
            "enumDescriptions": [
              "Not specified.",
              "The value is unknown in this version.",
              "Video is a live stream.",
              "Video is Shorts eligible."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "LIVE_STREAM",
              "SHORTS"
            ],
            "type": "string"
          },
          "description": "The properties of this video (such as shorts, live stream).",
          "type": "array"
        },
        "publishDate": {
          "type": "string",
          "description": "The date that the video was created. Formatted as \"yyyy-mm-dd\"."
        },
        "commentsCount": {
          "format": "int64",
          "description": "The total number of comments.",
          "type": "string"
        },
        "likesCount": {
          "format": "int64",
          "description": "The total number of likes.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources_ListingGroupFilterDimension_ProductCategory": {
      "id": "GoogleAdsGoogleadsV23Resources_ListingGroupFilterDimension_ProductCategory",
      "type": "object",
      "description": "One element of a 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).",
      "properties": {
        "categoryId": {
          "format": "int64",
          "type": "string",
          "description": "ID of the product category. This ID is equivalent to the google_product_category ID as described in this article: https://support.google.com/merchants/answer/6324436"
        },
        "level": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Level 1.",
            "Level 2.",
            "Level 3.",
            "Level 4.",
            "Level 5."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "LEVEL1",
            "LEVEL2",
            "LEVEL3",
            "LEVEL4",
            "LEVEL5"
          ],
          "description": "Indicates the level of the category in the taxonomy.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__OfflineConversionUploadConversionActionSummary": {
      "properties": {
        "resourceName": {
          "readOnly": true,
          "description": "Output only. The resource name of the offline conversion upload summary at conversion action level. Offline conversion upload conversion action summary resource names have the form: `customers/{customer_id}/offlineConversionUploadConversionActionSummaries/{conversion_action_id}~{client}`",
          "type": "string"
        },
        "alerts": {
          "description": "Output only. Details for each error code. Alerts are generated from most recent calendar day with upload stats.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Resources__OfflineConversionAlert"
          },
          "readOnly": true,
          "type": "array"
        },
        "client": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Google Ads API.",
            "Google Ads web client, which could include multiple sources like Ads UI, SFTP, etc.",
            "Connection platform."
          ],
          "description": "Output only. Client type of the upload event.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "GOOGLE_ADS_API",
            "GOOGLE_ADS_WEB_CLIENT",
            "ADS_DATA_CONNECTOR"
          ],
          "readOnly": true,
          "type": "string"
        },
        "totalEventCount": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Total count of uploaded events.",
          "format": "int64"
        },
        "successfulEventCount": {
          "description": "Output only. Total count of successful uploaded events.",
          "format": "int64",
          "type": "string",
          "readOnly": true
        },
        "pendingEventCount": {
          "format": "int64",
          "type": "string",
          "description": "Output only. Total count of pending uploaded events.",
          "readOnly": true
        },
        "status": {
          "description": "Output only. Overall status for offline conversion upload conversion action summary. Status is generated from most recent calendar day with upload stats.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Your offline data ingestion setup is active and optimal for downstream processing.",
            "Your offline ingestion setup is active, but there are further improvements you could make. See alerts.",
            "Your offline ingestion setup is active, but there are errors that require your attention. See alerts.",
            "Your offline ingestion setup has not received data in the last 28 days, there may be something wrong."
          ],
          "readOnly": true,
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EXCELLENT",
            "GOOD",
            "NEEDS_ATTENTION",
            "NO_RECENT_UPLOAD"
          ]
        },
        "jobSummaries": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Resources__OfflineConversionSummary"
          },
          "readOnly": true,
          "type": "array",
          "description": "Output only. Summary of history stats by last N jobs."
        },
        "dailySummaries": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Resources__OfflineConversionSummary"
          },
          "type": "array",
          "readOnly": true,
          "description": "Output only. Summary of history stats by last N days."
        },
        "conversionActionName": {
          "readOnly": true,
          "description": "Output only. The name of the conversion action.",
          "type": "string"
        },
        "conversionActionId": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. Conversion action id."
        },
        "lastUploadDateTime": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. Date for the latest upload batch. The format is \"yyyy-mm-dd hh:mm:ss\", and it's in the time zone of the Google Ads account."
        }
      },
      "description": "Offline conversion upload summary at conversion action level.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__OfflineConversionUploadConversionActionSummary"
    },
    "GoogleAdsGoogleadsV23Resources__MobileAppCategoryConstant": {
      "id": "GoogleAdsGoogleadsV23Resources__MobileAppCategoryConstant",
      "description": "A mobile application category constant.",
      "type": "object",
      "properties": {
        "resourceName": {
          "description": "Output only. The resource name of the mobile app category constant. Mobile app category constant resource names have the form: `mobileAppCategoryConstants/{mobile_app_category_id}`",
          "type": "string",
          "readOnly": true
        },
        "name": {
          "description": "Output only. Mobile app category name.",
          "readOnly": true,
          "type": "string"
        },
        "id": {
          "format": "int32",
          "type": "integer",
          "description": "Output only. The ID of the mobile app category constant.",
          "readOnly": true
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateBatchJobRequest": {
      "properties": {
        "operation": {
          "$ref": "GoogleAdsGoogleadsV23Services__BatchJobOperation",
          "description": "Required. The operation to perform on an individual batch job."
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateBatchJobRequest",
      "description": "Request message for BatchJobService.MutateBatchJob.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__GeographicView": {
      "type": "object",
      "properties": {
        "countryCriterionId": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. Criterion Id for the country."
        },
        "locationType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AREA_OF_INTEREST",
            "LOCATION_OF_PRESENCE"
          ],
          "type": "string",
          "description": "Output only. Type of the geo targeting of the campaign.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Location the user is interested in while making the query.",
            "Location of the user issuing the query."
          ],
          "readOnly": true
        },
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the geographic view. Geographic view resource names have the form: `customers/{customer_id}/geographicViews/{country_criterion_id}~{location_type}`",
          "readOnly": true
        }
      },
      "description": "A geographic view. Geographic View includes all metrics aggregated at the country level, one row per country. It reports metrics at either actual physical location of the user or an area of interest. If other segment fields are used, you may get more than one row per country.",
      "id": "GoogleAdsGoogleadsV23Resources__GeographicView"
    },
    "GoogleAdsGoogleadsV23Services__MutateAdGroupAdLabelResult": {
      "description": "The result for an ad group ad label mutate.",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateAdGroupAdLabelResult",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources_Recommendation_ImprovePerformanceMaxAdStrengthRecommendation": {
      "description": "Recommendation to improve the asset group strength of a Performance Max campaign to an \"Excellent\" rating.",
      "properties": {
        "assetGroup": {
          "type": "string",
          "description": "Output only. The asset group resource name.",
          "readOnly": true
        },
        "adStrength": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PENDING",
            "NO_ADS",
            "POOR",
            "AVERAGE",
            "GOOD",
            "EXCELLENT"
          ],
          "description": "Output only. The current ad strength score of the asset group.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The ad strength is currently pending.",
            "No ads could be generated.",
            "Poor strength.",
            "Average strength.",
            "Good strength.",
            "Excellent strength."
          ],
          "type": "string",
          "readOnly": true
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources_Recommendation_ImprovePerformanceMaxAdStrengthRecommendation"
    },
    "GoogleAdsGoogleadsV23Services__MutateCustomerSkAdNetworkConversionValueSchemaResult": {
      "id": "GoogleAdsGoogleadsV23Services__MutateCustomerSkAdNetworkConversionValueSchemaResult",
      "type": "object",
      "properties": {
        "appId": {
          "type": "string",
          "description": "App ID of the SkanConversionValue modified."
        },
        "resourceName": {
          "type": "string",
          "description": "Resource name of the customer that was modified."
        }
      },
      "description": "The result for the CustomerSkAdNetworkConversionValueSchema mutate."
    },
    "GoogleAdsGoogleadsV23Services__CampaignCriterionOperation": {
      "description": "A single operation (create, update, remove) on a campaign criterion.",
      "id": "GoogleAdsGoogleadsV23Services__CampaignCriterionOperation",
      "properties": {
        "remove": {
          "description": "Remove operation: A resource name for the removed criterion is expected, in this format: `customers/{customer_id}/campaignCriteria/{campaign_id}~{criterion_id}`",
          "type": "string"
        },
        "updateMask": {
          "type": "string",
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask"
        },
        "update": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CampaignCriterion",
          "description": "Update operation: The criterion is expected to have a valid resource name. Note that for smart campaigns, you cannot use the update method to edit the geolocation target."
        },
        "create": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CampaignCriterion",
          "description": "Create operation: No resource name is expected for the new criterion."
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateGoalsResponse": {
      "description": "Response message for a goal mutate.",
      "id": "GoogleAdsGoogleadsV23Services__MutateGoalsResponse",
      "type": "object",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateGoalResult"
          },
          "type": "array",
          "description": "All results for the mutate."
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__CustomConversionGoal": {
      "properties": {
        "conversionActions": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "Conversion actions that the custom conversion goal makes biddable."
        },
        "id": {
          "format": "int64",
          "description": "Immutable. The ID for this custom conversion goal.",
          "type": "string"
        },
        "name": {
          "description": "The name for this custom conversion goal.",
          "type": "string"
        },
        "resourceName": {
          "description": "Immutable. The resource name of the custom conversion goal. Custom conversion goal resource names have the form: `customers/{customer_id}/customConversionGoals/{goal_id}`",
          "type": "string"
        },
        "status": {
          "description": "The status of the custom conversion goal.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "type": "string",
          "enumDescriptions": [
            "The status has not been specified.",
            "The received value is not known in this version.",
            "The custom conversion goal is enabled.",
            "The custom conversion goal is removed."
          ]
        }
      },
      "description": "Custom conversion goal that can make arbitrary conversion actions biddable.",
      "id": "GoogleAdsGoogleadsV23Resources__CustomConversionGoal",
      "type": "object"
    },
    "GoogleRpc__Status": {
      "type": "object",
      "description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).",
      "id": "GoogleRpc__Status",
      "properties": {
        "code": {
          "format": "int32",
          "description": "The status code, which should be an enum value of google.rpc.Code.",
          "type": "integer"
        },
        "message": {
          "type": "string",
          "description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client."
        },
        "details": {
          "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.",
          "items": {
            "type": "object",
            "additionalProperties": {
              "type": "any",
              "description": "Properties of the object. Contains field @type with type URL."
            }
          },
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__ScheduleExperimentMetadata": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__ScheduleExperimentMetadata",
      "description": "The metadata of the scheduled experiment.",
      "properties": {
        "experiment": {
          "description": "Required. The scheduled experiment.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_CampaignBudgetParameters": {
      "id": "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_CampaignBudgetParameters",
      "properties": {
        "newBudgetAmountMicros": {
          "format": "int64",
          "type": "string",
          "description": "New budget amount to set for target budget resource. This is a required field."
        }
      },
      "description": "Parameters to use when applying a campaign budget recommendation.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__HistoricalMetricsOptions": {
      "description": "Historical metrics options.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__HistoricalMetricsOptions",
      "properties": {
        "yearMonthRange": {
          "description": "The year month range for historical metrics. If not specified, metrics for the past 12 months are returned. Search metrics are available for the past 4 years. If the search volume is not available for the entire year_month_range provided, the subset of the year month range for which search volume is available are returned.",
          "$ref": "GoogleAdsGoogleadsV23Common__YearMonthRange"
        },
        "includeAverageCpc": {
          "description": "Indicates whether to include average cost per click value. Average CPC is provided only for legacy support.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__SuggestKeywordThemesResponse": {
      "description": "Response message for SmartCampaignSuggestService.SuggestKeywordThemes.",
      "properties": {
        "keywordThemes": {
          "description": "Smart campaign keyword theme suggestions.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services_SuggestKeywordThemesResponse_KeywordTheme"
          },
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__SuggestKeywordThemesResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources_RecommendationTargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption": {
      "id": "GoogleAdsGoogleadsV23Resources_RecommendationTargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption",
      "properties": {
        "impact": {
          "description": "Output only. The impact estimate if this option is selected.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_RecommendationImpact"
        },
        "targetCpaMicros": {
          "description": "Output only. Average CPA target.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "requiredCampaignBudgetAmountMicros": {
          "format": "int64",
          "description": "Output only. The minimum campaign budget, in local currency for the account, required to achieve the target CPA. Amount is specified in micros, where one million is equivalent to one currency unit.",
          "type": "string",
          "readOnly": true
        },
        "goal": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Recommendation to set Target CPA to maintain the same cost.",
            "Recommendation to set Target CPA to maintain the same conversions.",
            "Recommendation to set Target CPA to maintain the same CPA.",
            "Recommendation to set Target CPA to a value that is as close as possible to, yet lower than, the actual CPA (computed for past 28 days)."
          ],
          "type": "string",
          "description": "Output only. The goal achieved by this option.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SAME_COST",
            "SAME_CONVERSIONS",
            "SAME_CPA",
            "CLOSEST_CPA"
          ],
          "readOnly": true
        }
      },
      "description": "The Target CPA opt-in option with impact estimate.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources_Campaign_LocalServicesCampaignSettings": {
      "id": "GoogleAdsGoogleadsV23Resources_Campaign_LocalServicesCampaignSettings",
      "description": "Settings for LocalServicesCampaign subresource.",
      "type": "object",
      "properties": {
        "categoryBids": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Resources_Campaign_CategoryBid"
          },
          "description": "Categorical level bids associated with MANUAL_CPA bidding strategy."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__Metrics": {
      "properties": {
        "averageRateMetrics": {
          "$ref": "GoogleAdsGoogleadsV23Services__RateMetrics",
          "description": "Average rate metrics calculated by dividing one metric by another."
        }
      },
      "type": "object",
      "description": "All metrics returned against a criteria.",
      "id": "GoogleAdsGoogleadsV23Services__Metrics"
    },
    "GoogleAdsGoogleadsV23Services__ProductMetadata": {
      "description": "The metadata associated with an available plannable product.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__ProductMetadata",
      "properties": {
        "plannableProductName": {
          "description": "The name associated with the ad product.",
          "type": "string"
        },
        "plannableTargeting": {
          "description": "The allowed plannable targeting for this product.",
          "$ref": "GoogleAdsGoogleadsV23Services__PlannableTargeting"
        },
        "plannableProductCode": {
          "description": "The code associated with the ad product (for example: BUMPER, TRUEVIEW_IN_STREAM). To list the available plannable product codes use ReachPlanService.ListPlannableProducts.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__Targeting": {
      "description": "The targeting for which traffic metrics will be reported.",
      "properties": {
        "audienceTargeting": {
          "description": "Targeted audiences. If not specified, does not target any specific audience.",
          "$ref": "GoogleAdsGoogleadsV23Services__AudienceTargeting"
        },
        "genders": {
          "description": "Targeted genders. An unset value is equivalent to targeting MALE and FEMALE.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__GenderInfo"
          }
        },
        "ageRange": {
          "description": "Targeted age range. An unset value is equivalent to targeting all ages.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AGE_RANGE_18_24",
            "AGE_RANGE_18_34",
            "AGE_RANGE_18_44",
            "AGE_RANGE_18_49",
            "AGE_RANGE_18_54",
            "AGE_RANGE_18_64",
            "AGE_RANGE_18_65_UP",
            "AGE_RANGE_21_34",
            "AGE_RANGE_25_34",
            "AGE_RANGE_25_44",
            "AGE_RANGE_25_49",
            "AGE_RANGE_25_54",
            "AGE_RANGE_25_64",
            "AGE_RANGE_25_65_UP",
            "AGE_RANGE_35_44",
            "AGE_RANGE_35_49",
            "AGE_RANGE_35_54",
            "AGE_RANGE_35_64",
            "AGE_RANGE_35_65_UP",
            "AGE_RANGE_45_54",
            "AGE_RANGE_45_64",
            "AGE_RANGE_45_65_UP",
            "AGE_RANGE_50_65_UP",
            "AGE_RANGE_55_64",
            "AGE_RANGE_55_65_UP",
            "AGE_RANGE_65_UP"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Between 18 and 24 years old.",
            "Between 18 and 34 years old.",
            "Between 18 and 44 years old.",
            "Between 18 and 49 years old.",
            "Between 18 and 54 years old.",
            "Between 18 and 64 years old.",
            "Between 18 and 65+ years old.",
            "Between 21 and 34 years old.",
            "Between 25 and 34 years old.",
            "Between 25 and 44 years old.",
            "Between 25 and 49 years old.",
            "Between 25 and 54 years old.",
            "Between 25 and 64 years old.",
            "Between 25 and 65+ years old.",
            "Between 35 and 44 years old.",
            "Between 35 and 49 years old.",
            "Between 35 and 54 years old.",
            "Between 35 and 64 years old.",
            "Between 35 and 65+ years old.",
            "Between 45 and 54 years old.",
            "Between 45 and 64 years old.",
            "Between 45 and 65+ years old.",
            "Between 50 and 65+ years old.",
            "Between 55 and 64 years old.",
            "Between 55 and 65+ years old.",
            "65 years old and beyond."
          ]
        },
        "network": {
          "description": "Targetable network for the ad product. If not specified, targets all applicable networks. Applicable networks vary by product and region and can be obtained from ReachPlanService.ListPlannableProducts.",
          "enumDescriptions": [
            "Not specified.",
            "Used as a return value only. Represents value unknown in this version.",
            "YouTube network.",
            "Google Video Partners (GVP) network.",
            "A combination of the YouTube network and the Google Video Partners network."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "YOUTUBE",
            "GOOGLE_VIDEO_PARTNERS",
            "YOUTUBE_AND_GOOGLE_VIDEO_PARTNERS"
          ],
          "type": "string"
        },
        "plannableLocationId": {
          "type": "string",
          "description": "The ID of the selected location. Plannable location IDs can be obtained from ReachPlanService.ListPlannableLocations. Requests must set either this field or `plannable_location_ids`. This field is deprecated as of V12 and will be removed in a future release. Use `plannable_location_ids` instead."
        },
        "plannableLocationIds": {
          "items": {
            "type": "string"
          },
          "description": "The list of plannable location IDs to target with this forecast. If more than one ID is provided, all IDs must have the same `parent_country_id`. Planning for more than `parent_county` is not supported. Plannable location IDs and their `parent_country_id` can be obtained from ReachPlanService.ListPlannableLocations. Requests must set either this field or `plannable_location_id`.",
          "type": "array"
        },
        "devices": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__DeviceInfo"
          },
          "description": "Targeted devices. If not specified, targets all applicable devices. Applicable devices vary by product and region and can be obtained from ReachPlanService.ListPlannableProducts.",
          "type": "array"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__Targeting"
    },
    "GoogleAdsGoogleadsV23Resources_AssetSet_HotelPropertyData": {
      "id": "GoogleAdsGoogleadsV23Resources_AssetSet_HotelPropertyData",
      "type": "object",
      "description": "For Performance Max for travel goals campaigns with a Hotel Center account link. Read-only.",
      "properties": {
        "partnerName": {
          "readOnly": true,
          "description": "Output only. Name of the hotel partner.",
          "type": "string"
        },
        "hotelCenterId": {
          "description": "Output only. The hotel center ID of the partner.",
          "format": "int64",
          "type": "string",
          "readOnly": true
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__CustomerAssetOperation": {
      "properties": {
        "updateMask": {
          "type": "string",
          "format": "google-fieldmask",
          "description": "FieldMask that determines which resource fields are modified in an update."
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new customer asset.",
          "$ref": "GoogleAdsGoogleadsV23Resources__CustomerAsset"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed customer asset is expected, in this format: `customers/{customer_id}/customerAssets/{asset_id}~{field_type}`"
        },
        "update": {
          "description": "Update operation: The customer asset is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV23Resources__CustomerAsset"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__CustomerAssetOperation",
      "type": "object",
      "description": "A single operation (create, update, remove) on a customer asset."
    },
    "GoogleAdsGoogleadsV23Resources__MediaVideo": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__MediaVideo",
      "properties": {
        "isciCode": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The Industry Standard Commercial Identifier code for this video, used mainly for television commercials."
        },
        "youtubeVideoId": {
          "description": "Immutable. The YouTube video ID (as seen in YouTube URLs). Adding prefix \"https://www.youtube.com/watch?v=\" to this ID will get the YouTube streaming URL for this video.",
          "type": "string"
        },
        "adDurationMillis": {
          "type": "string",
          "format": "int64",
          "readOnly": true,
          "description": "Output only. The duration of the Video in milliseconds."
        },
        "advertisingIdCode": {
          "description": "Output only. The Advertising Digital Identification code for this video, as defined by the American Association of Advertising Agencies, used mainly for television commercials.",
          "type": "string",
          "readOnly": true
        }
      },
      "description": "Encapsulates a Video."
    },
    "GoogleAdsGoogleadsV23Services__MutateCampaignGoalConfigsResponse": {
      "id": "GoogleAdsGoogleadsV23Services__MutateCampaignGoalConfigsResponse",
      "type": "object",
      "description": "Response message for a campaign goal config mutate.",
      "properties": {
        "results": {
          "description": "All results for the mutate.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateCampaignGoalConfigResult"
          }
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode.",
          "$ref": "GoogleRpc__Status"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__CreateDataLinkResponse": {
      "type": "object",
      "description": "Response message for DataLinkService.CreateDataLink.",
      "id": "GoogleAdsGoogleadsV23Services__CreateDataLinkResponse",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations. Resource name of the data link.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__UserInterestAttributeMetadata": {
      "properties": {
        "userInterestDescription": {
          "type": "string",
          "description": "English language text description of the user interest category (200 characters max)."
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__UserInterestAttributeMetadata",
      "type": "object",
      "description": "Metadata associated with a User Interest attribute."
    },
    "GoogleAdsGoogleadsV23Services__GenerateBenchmarksMetricsRequest": {
      "description": "Request message for BenchmarksService.GenerateBenchmarksMetrics.",
      "properties": {
        "productFilter": {
          "$ref": "GoogleAdsGoogleadsV23Services__ProductFilter",
          "description": "Required. The products to aggregate metrics over. Product filter settings support a list of product IDs or a list of marketing objectives."
        },
        "benchmarksSource": {
          "description": "Required. The source used to generate benchmarks metrics for.",
          "$ref": "GoogleAdsGoogleadsV23Services__BenchmarksSource"
        },
        "dateRange": {
          "description": "The date range to aggregate metrics over. If unset, data will be returned for the most recent quarter for which data is available. Dates can be retrieved using BenchmarksService.ListBenchmarksAvailableDates.",
          "$ref": "GoogleAdsGoogleadsV23Common__DateRange"
        },
        "customerBenchmarksGroup": {
          "type": "string",
          "description": "The name of the customer being planned for. This is a user-defined value."
        },
        "currencyCode": {
          "type": "string",
          "description": "Optional. The three-character ISO 4217 currency code. If unspecified, the default currency for monetary values is USD."
        },
        "location": {
          "description": "Required. The location to generate benchmarks metrics for.",
          "$ref": "GoogleAdsGoogleadsV23Common__LocationInfo"
        },
        "applicationInfo": {
          "description": "Additional information on the application issuing the request.",
          "$ref": "GoogleAdsGoogleadsV23Common__AdditionalApplicationInfo"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__GenerateBenchmarksMetricsRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__ForecastAdGroup": {
      "id": "GoogleAdsGoogleadsV23Services__ForecastAdGroup",
      "description": "An ad group that is part of a campaign to be forecasted.",
      "properties": {
        "biddableKeywords": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__BiddableKeyword"
          },
          "description": "Required. The list of biddable keywords to be used in the ad group when doing the forecast. Requires at least one keyword."
        },
        "negativeKeywords": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__KeywordInfo"
          },
          "description": "The details of the keyword. You should specify both the keyword text and match type."
        },
        "maxCpcBidMicros": {
          "format": "int64",
          "description": "The max cpc to use for the ad group when generating forecasted traffic. This value will override the max cpc value set in the bidding strategy. Only specify this field for bidding strategies that max cpc values.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__CreateAccountLinkResponse": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__CreateAccountLinkResponse",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations. Resource name of the account link."
        }
      },
      "description": "Response message for AccountLinkService.CreateAccountLink."
    },
    "GoogleAdsGoogleadsV23Common__VideoNonSkippableInStreamAdInfo": {
      "description": "Representation of video non-skippable in-stream ad format (15 second in-stream non-skippable video ad).",
      "properties": {
        "actionButtonLabel": {
          "description": "Label on the \"Call To Action\" button taking the user to the video ad's final URL.",
          "type": "string"
        },
        "companionBanner": {
          "$ref": "GoogleAdsGoogleadsV23Common__AdImageAsset",
          "description": "The image assets of the companion banner used with the ad."
        },
        "actionHeadline": {
          "description": "Additional text displayed with the \"Call To Action\" button to give context and encourage clicking on the button.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__VideoNonSkippableInStreamAdInfo"
    },
    "GoogleAdsGoogleadsV23Services__DimensionOverlapResult": {
      "description": "A list of audience attributes of a single dimension, including their overlap with a primary attribute, returned as part of a GenerateAudienceOverlapInsightsResponse.",
      "properties": {
        "dimension": {
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "A Product & Service category.",
            "A Knowledge Graph entity.",
            "A country, represented by a geo target.",
            "A geographic location within a country.",
            "A YouTube channel.",
            "An Affinity UserInterest.",
            "An In-Market UserInterest.",
            "A Parental Status value (parent, or not a parent).",
            "A household income percentile range.",
            "An age range.",
            "A gender.",
            "A YouTube video.",
            "A device type, such as Mobile, Desktop, Tablet, and Connected TV.",
            "A YouTube Lineup.",
            "A User List.",
            "A Life Event UserInterest."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CATEGORY",
            "KNOWLEDGE_GRAPH",
            "GEO_TARGET_COUNTRY",
            "SUB_COUNTRY_LOCATION",
            "YOUTUBE_CHANNEL",
            "AFFINITY_USER_INTEREST",
            "IN_MARKET_USER_INTEREST",
            "PARENTAL_STATUS",
            "INCOME_RANGE",
            "AGE_RANGE",
            "GENDER",
            "YOUTUBE_VIDEO",
            "DEVICE",
            "YOUTUBE_LINEUP",
            "USER_LIST",
            "LIFE_EVENT_USER_INTEREST"
          ],
          "description": "The dimension of all the attributes in this section.",
          "type": "string"
        },
        "items": {
          "type": "array",
          "description": "The attributes and their overlap with the primary attribute.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__AudienceOverlapItem"
          }
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__DimensionOverlapResult",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateAssetSetResult": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateAssetSetResult",
      "description": "The result for the asset set mutate.",
      "properties": {
        "assetSet": {
          "$ref": "GoogleAdsGoogleadsV23Resources__AssetSet",
          "description": "The mutated asset set with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\"."
        },
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__ExperimentArm": {
      "id": "GoogleAdsGoogleadsV23Resources__ExperimentArm",
      "type": "object",
      "properties": {
        "campaigns": {
          "description": "List of campaigns in the trial arm. The max length is one.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "inDesignCampaigns": {
          "description": "Output only. The in design campaigns in the treatment experiment arm.",
          "items": {
            "type": "string"
          },
          "type": "array",
          "readOnly": true
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the experiment arm. Experiment arm resource names have the form: `customers/{customer_id}/experimentArms/{TrialArm.trial_id}~{TrialArm.trial_arm_id}`"
        },
        "trafficSplit": {
          "format": "int64",
          "type": "string",
          "description": "Traffic split of the trial arm. The value should be between 1 and 100 and must total 100 between the two trial arms."
        },
        "name": {
          "description": "Required. The name of the experiment arm. It must have a minimum length of 1 and maximum length of 1024. It must be unique under an experiment.",
          "type": "string"
        },
        "control": {
          "type": "boolean",
          "description": "Whether this arm is a control arm. A control arm is the arm against which the other arms are compared."
        },
        "experiment": {
          "description": "Immutable. The experiment to which the ExperimentArm belongs.",
          "type": "string"
        }
      },
      "description": "A Google ads experiment for users to experiment changes on multiple campaigns, compare the performance, and apply the effective changes."
    },
    "GoogleAdsGoogleadsV23Services__SmartCampaignEndedDetails": {
      "type": "object",
      "properties": {
        "endDateTime": {
          "type": "string",
          "description": "The timestamp of when the campaign ended. The timestamp is in the customer’s timezone and in “yyyy-MM-dd HH:mm:ss” format."
        }
      },
      "description": "Details related to Smart campaigns that have ended.",
      "id": "GoogleAdsGoogleadsV23Services__SmartCampaignEndedDetails"
    },
    "GoogleAdsGoogleadsV23Services__ListPlannableUserListsResponse": {
      "properties": {
        "plannableUserLists": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__PlannableUserList"
          },
          "description": "The list of user lists available for planning and related targeting metadata.",
          "type": "array"
        }
      },
      "description": "A response with all available user lists with their plannable status.",
      "id": "GoogleAdsGoogleadsV23Services__ListPlannableUserListsResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateCustomConversionGoalsResponse": {
      "description": "Response message for a custom conversion goal mutate.",
      "properties": {
        "results": {
          "type": "array",
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomConversionGoalResult"
          }
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateCustomConversionGoalsResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__Fellowship": {
      "properties": {
        "institutionName": {
          "description": "Output only. Name of the instutition at which the fellowship was completed.",
          "type": "string",
          "readOnly": true
        },
        "completionYear": {
          "format": "int32",
          "type": "integer",
          "readOnly": true,
          "description": "Output only. Year of completion."
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__Fellowship",
      "type": "object",
      "description": "Details about the employee's medical Fellowship. Fellowship is a period of medical training that the professional undertakes after finishing their residency."
    },
    "GoogleAdsGoogleadsV23Resources__BackgroundCheckVerificationArtifact": {
      "properties": {
        "caseUrl": {
          "description": "Output only. URL to access background case.",
          "readOnly": true,
          "type": "string"
        },
        "finalAdjudicationDateTime": {
          "type": "string",
          "description": "Output only. The timestamp when this background check case result was adjudicated. The format is \"YYYY-MM-DD HH:MM:SS\" in the Google Ads account's timezone. Examples: \"2018-03-05 09:15:00\" or \"2018-02-01 14:34:30\"",
          "readOnly": true
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__BackgroundCheckVerificationArtifact",
      "type": "object",
      "description": "A proto holding information specific to local services background check."
    },
    "GoogleAdsGoogleadsV23Resources__HotelReconciliation": {
      "type": "object",
      "description": "A hotel reconciliation. It contains conversion information from Hotel bookings to reconcile with advertiser records. These rows may be updated or canceled before billing through Bulk Uploads.",
      "properties": {
        "orderId": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The order ID is the identifier for this booking as provided in the 'transaction_id' parameter of the conversion tracking tag."
        },
        "campaign": {
          "readOnly": true,
          "description": "Output only. The resource name for the Campaign associated with the conversion.",
          "type": "string"
        },
        "resourceName": {
          "description": "Immutable. The resource name of the hotel reconciliation. Hotel reconciliation resource names have the form: `customers/{customer_id}/hotelReconciliations/{commission_id}`",
          "type": "string"
        },
        "hotelId": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Unique identifier for the booked property, as provided in the Hotel Center feed. The hotel ID comes from the 'ID' parameter of the conversion tracking tag."
        },
        "status": {
          "description": "Required. Output only. Current status of a booking with regards to reconciliation and billing. Bookings should be reconciled within 45 days after the check-out date. Any booking not reconciled within 45 days will be billed at its original value.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "RESERVATION_ENABLED",
            "RECONCILIATION_NEEDED",
            "RECONCILED",
            "CANCELED"
          ],
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Bookings are for a future date, or a stay is underway but the check-out date hasn't passed. An active reservation can't be reconciled.",
            "Check-out has already taken place, or the booked dates have passed without cancellation. Bookings that are not reconciled within 45 days of the check-out date are billed based on the original booking price.",
            "These bookings have been reconciled. Reconciled bookings are billed 45 days after the check-out date.",
            "This booking was marked as canceled. Canceled stays with a value greater than zero (due to minimum stay rules or cancellation fees) are billed 45 days after the check-out date."
          ],
          "type": "string",
          "readOnly": true
        },
        "commissionId": {
          "description": "Required. Output only. The commission ID is Google's ID for this booking. Every booking event is assigned a Commission ID to help you match it to a guest stay.",
          "type": "string",
          "readOnly": true
        },
        "checkInDate": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Check-in date recorded when the booking is made. If the check-in date is modified at reconciliation, the revised date will then take the place of the original date in this column. Format is YYYY-MM-DD."
        },
        "hotelCenterId": {
          "format": "int64",
          "readOnly": true,
          "description": "Output only. Identifier for the Hotel Center account which provides the rates for the Hotel campaign.",
          "type": "string"
        },
        "billed": {
          "readOnly": true,
          "description": "Output only. Whether a given booking has been billed. Once billed, a booking can't be modified.",
          "type": "boolean"
        },
        "reconciledValueMicros": {
          "description": "Required. Output only. Reconciled value is the final value of a booking as paid by the guest. If original booking value changes for any reason, such as itinerary changes or room upsells, the reconciled value should be the full final amount collected. If a booking is canceled, the reconciled value should include the value of any cancellation fees or non-refundable nights charged. Value is in millionths of the base unit currency. For example, $12.35 would be represented as 12350000. Currency unit is in the default customer currency.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "checkOutDate": {
          "description": "Output only. Check-out date recorded when the booking is made. If the check-in date is modified at reconciliation, the revised date will then take the place of the original date in this column. Format is YYYY-MM-DD.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__HotelReconciliation"
    },
    "GoogleAdsGoogleadsV23Resources_CampaignPmaxCampaignSettings_BrandTargetingOverrides": {
      "description": "Overrides of brand targeting for various ad types.",
      "properties": {
        "ignoreExclusionsForShoppingAds": {
          "type": "boolean",
          "description": "If true, brand exclusions are ignored for Shopping ads."
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources_CampaignPmaxCampaignSettings_BrandTargetingOverrides",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__ConfigureCustomerLifecycleGoalsResult": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__ConfigureCustomerLifecycleGoalsResult",
      "description": "The result for the customer lifecycle goal configuration.",
      "properties": {
        "resourceName": {
          "description": "Returned for the successful operation.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__AssetGroupAssetOperation": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__AssetGroupAssetOperation",
      "properties": {
        "create": {
          "$ref": "GoogleAdsGoogleadsV23Resources__AssetGroupAsset",
          "description": "Create operation: No resource name is expected for the new asset group asset."
        },
        "update": {
          "$ref": "GoogleAdsGoogleadsV23Resources__AssetGroupAsset",
          "description": "Update operation: The asset group asset is expected to have a valid resource name."
        },
        "updateMask": {
          "type": "string",
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed asset group asset is expected, in this format: `customers/{customer_id}/assetGroupAssets/{asset_group_id}~{asset_id}~{field_type}`"
        }
      },
      "description": "A single operation (create, remove) on an asset group asset."
    },
    "GoogleAdsGoogleadsV23Services__CustomizerAttributeOperation": {
      "id": "GoogleAdsGoogleadsV23Services__CustomizerAttributeOperation",
      "type": "object",
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new customizer attribute",
          "$ref": "GoogleAdsGoogleadsV23Resources__CustomizerAttribute"
        },
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask",
          "type": "string"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed customizer attribute is expected, in this format: `customers/{customer_id}/customizerAttributes/{customizer_attribute_id}`"
        }
      },
      "description": "A single operation (create, remove) on a customizer attribute."
    },
    "GoogleAdsGoogleadsV23Resources__CampaignConversionGoal": {
      "properties": {
        "origin": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "WEBSITE",
            "GOOGLE_HOSTED",
            "APP",
            "CALL_FROM_ADS",
            "STORE",
            "YOUTUBE_HOSTED"
          ],
          "description": "The conversion origin of this campaign conversion goal.",
          "type": "string",
          "enumDescriptions": [
            "The conversion origin has not been specified.",
            "The conversion origin is not known in this version.",
            "Conversion that occurs when a user visits a website or takes an action there after viewing an ad.",
            "Conversions reported by an offline pipeline which collects local actions from Google-hosted pages (for example, Google Maps, Google Place Page, etc) and attributes them to relevant ad events.",
            "Conversion that occurs when a user performs an action through any app platforms.",
            "Conversion that occurs when a user makes a call from ads.",
            "Conversion that occurs when a user visits or makes a purchase at a physical store.",
            "Conversion that occurs on YouTube."
          ]
        },
        "campaign": {
          "description": "Immutable. The campaign with which this campaign conversion goal is associated.",
          "type": "string"
        },
        "category": {
          "description": "The conversion category of this campaign conversion goal.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DEFAULT",
            "PAGE_VIEW",
            "PURCHASE",
            "SIGNUP",
            "DOWNLOAD",
            "ADD_TO_CART",
            "BEGIN_CHECKOUT",
            "SUBSCRIBE_PAID",
            "PHONE_CALL_LEAD",
            "IMPORTED_LEAD",
            "SUBMIT_LEAD_FORM",
            "BOOK_APPOINTMENT",
            "REQUEST_QUOTE",
            "GET_DIRECTIONS",
            "OUTBOUND_CLICK",
            "CONTACT",
            "ENGAGEMENT",
            "STORE_VISIT",
            "STORE_SALE",
            "QUALIFIED_LEAD",
            "CONVERTED_LEAD"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Default category.",
            "User visiting a page.",
            "Purchase, sales, or \"order placed\" event.",
            "Signup user action.",
            "Software download action (as for an app).",
            "The addition of items to a shopping cart or bag on an advertiser site.",
            "When someone enters the checkout flow on an advertiser site.",
            "The start of a paid subscription for a product or service.",
            "A call to indicate interest in an advertiser's offering.",
            "A lead conversion imported from an external source into Google Ads.",
            "A submission of a form on an advertiser site indicating business interest.",
            "A booking of an appointment with an advertiser's business.",
            "A quote or price estimate request.",
            "A search for an advertiser's business location with intention to visit.",
            "A click to an advertiser's partner's site.",
            "A call, SMS, email, chat or other type of contact to an advertiser.",
            "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.",
            "A visit to a physical store location.",
            "A sale occurring in a physical store.",
            "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\".",
            "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."
          ],
          "type": "string"
        },
        "resourceName": {
          "description": "Immutable. The resource name of the campaign conversion goal. Campaign conversion goal resource names have the form: `customers/{customer_id}/campaignConversionGoals/{campaign_id}~{category}~{origin}`",
          "type": "string"
        },
        "biddable": {
          "type": "boolean",
          "description": "The biddability of the campaign conversion goal."
        }
      },
      "type": "object",
      "description": "The biddability setting for the specified campaign only for all conversion actions with a matching category and origin.",
      "id": "GoogleAdsGoogleadsV23Resources__CampaignConversionGoal"
    },
    "GoogleAdsGoogleadsV23Services__UserDataOperation": {
      "description": "Operation to be made for the UploadUserDataRequest.",
      "properties": {
        "create": {
          "$ref": "GoogleAdsGoogleadsV23Common__UserData",
          "description": "The list of user data to be appended to the user list."
        },
        "remove": {
          "description": "The list of user data to be removed from the user list.",
          "$ref": "GoogleAdsGoogleadsV23Common__UserData"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__UserDataOperation"
    },
    "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_ResponsiveSearchAdParameters": {
      "id": "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_ResponsiveSearchAdParameters",
      "description": "Parameters to use when applying a responsive search ad recommendation.",
      "properties": {
        "ad": {
          "description": "Required. New ad to add to recommended ad group.",
          "$ref": "GoogleAdsGoogleadsV23Resources__Ad"
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__UserAttribute": {
      "id": "GoogleAdsGoogleadsV23Common__UserAttribute",
      "description": "User attribute, can only be used with CUSTOMER_MATCH_WITH_ATTRIBUTES job type.",
      "type": "object",
      "properties": {
        "averagePurchaseCount": {
          "format": "int32",
          "description": "Advertiser defined average number of purchases that are made by the user in a 30 day period.",
          "type": "integer"
        },
        "lifecycleStage": {
          "description": "Optional. Advertiser defined lifecycle stage for the user. The accepted values are \"Lead\", \"Active\" and \"Churned\".",
          "type": "string"
        },
        "lifetimeValueMicros": {
          "description": "Advertiser defined lifetime value for the user.",
          "type": "string",
          "format": "int64"
        },
        "eventAttribute": {
          "type": "array",
          "description": "Optional. Advertiser defined events and their attributes. All the values in the nested fields are required. Currently this field is in beta.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__EventAttribute"
          }
        },
        "lifetimeValueBucket": {
          "description": "Advertiser defined lifetime value bucket for the user. The valid range for a lifetime value bucket is from 1 (low) to 10 (high), except for remove operation where 0 will also be accepted.",
          "format": "int32",
          "type": "integer"
        },
        "firstPurchaseDateTime": {
          "type": "string",
          "description": "Optional. Timestamp of the first purchase made by the user. The format is YYYY-MM-DD HH:MM:SS[+/-HH:MM], where [+/-HH:MM] is an optional timezone offset from UTC. If the offset is absent, the API will use the account's timezone as default."
        },
        "averagePurchaseValueMicros": {
          "type": "string",
          "description": "Advertiser defined average purchase value in micros for the user.",
          "format": "int64"
        },
        "lastPurchaseDateTime": {
          "type": "string",
          "description": "Timestamp of the last purchase made by the user. The format is YYYY-MM-DD HH:MM:SS[+/-HH:MM], where [+/-HH:MM] is an optional timezone offset from UTC. If the offset is absent, the API will use the account's timezone as default."
        },
        "acquisitionDateTime": {
          "type": "string",
          "description": "Timestamp when the user was acquired. The format is YYYY-MM-DD HH:MM:SS[+/-HH:MM], where [+/-HH:MM] is an optional timezone offset from UTC. If the offset is absent, the API will use the account's timezone as default."
        },
        "shoppingLoyalty": {
          "$ref": "GoogleAdsGoogleadsV23Common__ShoppingLoyalty",
          "description": "The shopping loyalty related data. Shopping utilizes this data to provide users with a better experience. Accessible only to merchants on the allow-list with the user's consent."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_KeywordParameters": {
      "type": "object",
      "description": "Parameters to use when applying keyword recommendation.",
      "id": "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_KeywordParameters",
      "properties": {
        "adGroup": {
          "type": "string",
          "description": "The ad group resource to add keyword to. This is a required field."
        },
        "cpcBidMicros": {
          "description": "Optional, CPC bid to set for the keyword. If not set, keyword will use bid based on bidding strategy used by target ad group.",
          "format": "int64",
          "type": "string"
        },
        "matchType": {
          "type": "string",
          "description": "The match type of the keyword. This is a required field.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Exact match.",
            "Phrase match.",
            "Broad match."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EXACT",
            "PHRASE",
            "BROAD"
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__BiddingSeasonalityAdjustment": {
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the seasonality adjustment. Seasonality adjustment resource names have the form: `customers/{customer_id}/biddingSeasonalityAdjustments/{seasonality_adjustment_id}`"
        },
        "seasonalityAdjustmentId": {
          "description": "Output only. The ID of the seasonality adjustment.",
          "type": "string",
          "readOnly": true,
          "format": "int64"
        },
        "campaigns": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "The seasonality adjustment will apply to the campaigns listed when the scope of this adjustment is CAMPAIGN. The maximum number of campaigns per event is 2000. Note: a seasonality adjustment with both advertising_channel_types and campaign_ids is not supported."
        },
        "description": {
          "type": "string",
          "description": "The description of the seasonality adjustment. The description can be at most 2048 characters."
        },
        "conversionRateModifier": {
          "format": "double",
          "type": "number",
          "description": "Conversion rate modifier estimated based on expected conversion rate changes. When this field is unset or set to 1.0 no adjustment will be applied to traffic. The allowed range is 0.1 to 10.0."
        },
        "advertisingChannelTypes": {
          "description": "The seasonality adjustment will apply to all the campaigns under the listed channels retroactively as well as going forward when the scope of this adjustment is CHANNEL. The supported advertising channel types are DISPLAY, SEARCH and SHOPPING. Note: a seasonality adjustment with both advertising_channel_types and campaign_ids is not supported.",
          "type": "array",
          "items": {
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "SEARCH",
              "DISPLAY",
              "SHOPPING",
              "HOTEL",
              "VIDEO",
              "MULTI_CHANNEL",
              "LOCAL",
              "SMART",
              "PERFORMANCE_MAX",
              "LOCAL_SERVICES",
              "TRAVEL",
              "DEMAND_GEN"
            ],
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "Search Network. Includes display bundled, and Search+ campaigns.",
              "Google Display Network only.",
              "Shopping campaigns serve on the shopping property and on google.com search results.",
              "Hotel Ads campaigns.",
              "Video campaigns.",
              "App Campaigns, and App Campaigns for Engagement, that run across multiple channels.",
              "Local ads campaigns.",
              "Smart campaigns.",
              "Performance Max campaigns.",
              "Local services campaigns.",
              "Travel campaigns.",
              "Demand Gen campaigns."
            ]
          }
        },
        "scope": {
          "type": "string",
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The seasonality event is applied to all the customer's traffic for supported advertising channel types and device types. The CUSTOMER scope cannot be used in mutates.",
            "The seasonality event is applied to all specified campaigns.",
            "The seasonality event is applied to all campaigns that belong to specified channel types."
          ],
          "description": "The scope of the seasonality adjustment.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CUSTOMER",
            "CAMPAIGN",
            "CHANNEL"
          ]
        },
        "startDateTime": {
          "type": "string",
          "description": "Required. The inclusive start time of the seasonality adjustment in yyyy-MM-dd HH:mm:ss format. A seasonality adjustment is forward looking and should be used for events that start and end in the future."
        },
        "endDateTime": {
          "type": "string",
          "description": "Required. The exclusive end time of the seasonality adjustment in yyyy-MM-dd HH:mm:ss format. The length of [start_date_time, end_date_time) interval must be within (0, 14 days]."
        },
        "devices": {
          "type": "array",
          "description": "If not specified, all devices will be included in this adjustment. Otherwise, only the specified targeted devices will be included in this adjustment.",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "The value is unknown in this version.",
              "Mobile devices with full browsers.",
              "Tablets with full browsers.",
              "Computers.",
              "Smart TVs and game consoles.",
              "Other device types."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "MOBILE",
              "TABLET",
              "DESKTOP",
              "CONNECTED_TV",
              "OTHER"
            ]
          }
        },
        "status": {
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The seasonality event is enabled.",
            "The seasonality event is removed."
          ],
          "description": "Output only. The status of the seasonality adjustment.",
          "readOnly": true,
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ]
        },
        "name": {
          "type": "string",
          "description": "The name of the seasonality adjustment. The name can be at most 255 characters."
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__BiddingSeasonalityAdjustment",
      "description": "Represents a bidding seasonality adjustment. Cannot be used in manager accounts. See \"About seasonality adjustments\" at https://support.google.com/google-ads/answer/10369906."
    },
    "GoogleAdsGoogleadsV23Resources__AdGroupAdAssetCombinationView": {
      "description": "A view on the usage of ad group ad asset combination. Now we only support AdGroupAdAssetCombinationView for Responsive Search Ads, with more ad types planned for the future.",
      "type": "object",
      "properties": {
        "servedAssets": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AssetUsage"
          },
          "readOnly": true,
          "type": "array",
          "description": "Output only. Served assets."
        },
        "resourceName": {
          "description": "Output only. The resource name of the ad group ad asset combination view. The combination ID is 128 bits long, where the upper 64 bits are stored in asset_combination_id_high, and the lower 64 bits are stored in asset_combination_id_low. AdGroupAd Asset Combination view resource names have the form: `customers/{customer_id}/adGroupAdAssetCombinationViews/{AdGroupAd.ad_group_id}~{AdGroupAd.ad.ad_id}~{AssetCombination.asset_combination_id_low}~{AssetCombination.asset_combination_id_high}`",
          "type": "string",
          "readOnly": true
        },
        "enabled": {
          "type": "boolean",
          "description": "Output only. The status between the asset combination and the latest version of the ad. If true, the asset combination is linked to the latest version of the ad. If false, it means the link once existed but has been removed and is no longer present in the latest version of the ad.",
          "readOnly": true
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__AdGroupAdAssetCombinationView"
    },
    "GoogleAdsGoogleadsV23Services__MutateAdGroupCriterionLabelsResponse": {
      "properties": {
        "results": {
          "description": "All results for the mutate.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateAdGroupCriterionLabelResult"
          }
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateAdGroupCriterionLabelsResponse",
      "type": "object",
      "description": "Response message for an ad group criterion labels mutate."
    },
    "GoogleAdsGoogleadsV23Resources_Recommendation_MaximizeClicksOptInRecommendation": {
      "description": "The Maximize Clicks opt-in recommendation.",
      "properties": {
        "recommendedBudgetAmountMicros": {
          "readOnly": true,
          "description": "Output only. The recommended new budget amount. Only set if the current budget is too high.",
          "type": "string",
          "format": "int64"
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources_Recommendation_MaximizeClicksOptInRecommendation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__ConfigureCampaignLifecycleGoalsResponse": {
      "id": "GoogleAdsGoogleadsV23Services__ConfigureCampaignLifecycleGoalsResponse",
      "type": "object",
      "properties": {
        "result": {
          "description": "Result for the campaign lifecycle goal configuration.",
          "$ref": "GoogleAdsGoogleadsV23Services__ConfigureCampaignLifecycleGoalsResult"
        }
      },
      "description": "Response message for CampaignLifecycleGoalService.ConfigureCampaignLifecycleGoals."
    },
    "GoogleAdsGoogleadsV23Services__ListAudienceInsightsAttributesResponse": {
      "id": "GoogleAdsGoogleadsV23Services__ListAudienceInsightsAttributesResponse",
      "description": "Response message for AudienceInsightsService.ListAudienceInsightsAttributes.",
      "type": "object",
      "properties": {
        "attributes": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AudienceInsightsAttributeMetadata"
          },
          "description": "The attributes matching the search query.",
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources_AccessibleBiddingStrategy_TargetCpa": {
      "id": "GoogleAdsGoogleadsV23Resources_AccessibleBiddingStrategy_TargetCpa",
      "type": "object",
      "description": "An automated bid strategy that sets bids to help get as many conversions as possible at the target cost-per-acquisition (CPA) you set.",
      "properties": {
        "targetCpaMicros": {
          "type": "string",
          "description": "Output only. Average CPA target. This target should be greater than or equal to minimum billable unit based on the currency for the account.",
          "format": "int64",
          "readOnly": true
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources_Recommendation_MigrateDynamicSearchAdsCampaignToPerformanceMaxRecommendation": {
      "properties": {
        "applyLink": {
          "type": "string",
          "description": "Output only. A link to the Google Ads UI where the customer can manually apply the recommendation.",
          "readOnly": true
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources_Recommendation_MigrateDynamicSearchAdsCampaignToPerformanceMaxRecommendation",
      "description": "The Dynamic Search Ads to Performance Max migration recommendation.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateAccountLinkResponse": {
      "description": "Response message for account link mutate.",
      "id": "GoogleAdsGoogleadsV23Services__MutateAccountLinkResponse",
      "type": "object",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "result": {
          "description": "Result for the mutate.",
          "$ref": "GoogleAdsGoogleadsV23Services__MutateAccountLinkResult"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__ShareablePreview": {
      "id": "GoogleAdsGoogleadsV23Services__ShareablePreview",
      "description": "A shareable preview with its identifier.",
      "type": "object",
      "properties": {
        "assetGroupIdentifier": {
          "$ref": "GoogleAdsGoogleadsV23Services__AssetGroupIdentifier",
          "description": "Required. Asset group of the shareable preview."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__UserListOperation": {
      "properties": {
        "update": {
          "description": "Update operation: The user list is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV23Resources__UserList"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed user list is expected, in this format: `customers/{customer_id}/userLists/{user_list_id}`"
        },
        "create": {
          "$ref": "GoogleAdsGoogleadsV23Resources__UserList",
          "description": "Create operation: No resource name is expected for the new user list."
        },
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string",
          "format": "google-fieldmask"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__UserListOperation",
      "description": "A single operation (create, update) on a user list.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources_CampaignVideoCampaignSettings_VideoAdFormatControl": {
      "id": "GoogleAdsGoogleadsV23Resources_CampaignVideoCampaignSettings_VideoAdFormatControl",
      "description": "Format-restricting control enabling usage of video responsive ads in format defined Video campaigns (for example, non-skippable).",
      "type": "object",
      "properties": {
        "formatRestriction": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NON_SKIPPABLE_IN_STREAM"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Non-skippable in-stream video responsive ad."
          ],
          "type": "string",
          "description": "All contained responsive ads are expected to respect this restriction."
        },
        "nonSkippableInStreamRestrictions": {
          "description": "Restrictions for non-skippable format.",
          "$ref": "GoogleAdsGoogleadsV23Resources_CampaignVideoCampaignSettings_NonSkippableInStreamRestrictions"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__RemoveCampaignAutomaticallyCreatedAssetOperation": {
      "properties": {
        "campaign": {
          "description": "Required. The resource name of the campaign.",
          "type": "string"
        },
        "fieldType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE",
            "DESCRIPTION",
            "MANDATORY_AD_TEXT",
            "MARKETING_IMAGE",
            "MEDIA_BUNDLE",
            "YOUTUBE_VIDEO",
            "BOOK_ON_GOOGLE",
            "LEAD_FORM",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "LONG_HEADLINE",
            "BUSINESS_NAME",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "VIDEO",
            "CALL_TO_ACTION_SELECTION",
            "AD_IMAGE",
            "BUSINESS_LOGO",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "TALL_PORTRAIT_MARKETING_IMAGE",
            "RELATED_YOUTUBE_VIDEOS",
            "LANDING_PAGE_PREVIEW",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is linked for use as a headline.",
            "The asset is linked for use as a description.",
            "The asset is linked for use as mandatory ad text.",
            "The asset is linked for use as a marketing image.",
            "The asset is linked for use as a media bundle.",
            "The asset is linked for use as a YouTube video.",
            "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
            "The asset is linked for use as a Lead Form extension.",
            "The asset is linked for use as a Promotion extension.",
            "The asset is linked for use as a Callout extension.",
            "The asset is linked for use as a Structured Snippet extension.",
            "The asset is linked for use as a Sitelink.",
            "The asset is linked for use as a Mobile App extension.",
            "The asset is linked for use as a Hotel Callout extension.",
            "The asset is linked for use as a Call extension.",
            "The asset is linked for use as a Price extension.",
            "The asset is linked for use as a long headline.",
            "The asset is linked for use as a business name.",
            "The asset is linked for use as a square marketing image.",
            "The asset is linked for use as a portrait marketing image.",
            "The asset is linked for use as a logo.",
            "The asset is linked for use as a landscape logo.",
            "The asset is linked for use as a non YouTube logo.",
            "The asset is linked for use to select a call-to-action.",
            "The asset is linked for use to select an ad image.",
            "The asset is linked for use as a business logo.",
            "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
            "The asset is linked for use as a Demand Gen carousel card.",
            "The asset is linked for use as a Business Message.",
            "The asset is linked for use as a tall portrait marketing image.",
            "The asset is linked for use as related YouTube videos.",
            "The asset is linked for use as a landing page preview image.",
            "The asset is linked for use as a long description.",
            "The asset is linked for use as a call-to-action."
          ],
          "type": "string",
          "description": "Required. The field type of the asset to remove."
        },
        "asset": {
          "description": "Required. The resource name of the asset to remove.",
          "type": "string"
        }
      },
      "type": "object",
      "description": "A single operation to remove an automatically created asset from a campaign.",
      "id": "GoogleAdsGoogleadsV23Services__RemoveCampaignAutomaticallyCreatedAssetOperation"
    },
    "GoogleAdsGoogleadsV23Services__MutateAccountLinkRequest": {
      "description": "Request message for AccountLinkService.MutateAccountLink.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateAccountLinkRequest",
      "properties": {
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "operation": {
          "description": "Required. The operation to perform on the link.",
          "$ref": "GoogleAdsGoogleadsV23Services__AccountLinkOperation"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateCampaignAssetSetsResponse": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateCampaignAssetSetsResponse",
      "description": "Response message for a campaign asset set mutate.",
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateCampaignAssetSetResult"
          },
          "description": "All results for the mutate."
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__CustomerLifecycleGoalOperation": {
      "properties": {
        "create": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CustomerLifecycleGoal",
          "description": "Create operation: Create a new customer lifecycle goal."
        },
        "updateMask": {
          "type": "string",
          "description": "Optional. FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask"
        },
        "update": {
          "description": "Update operation: Update an existing customer lifecycle goal.",
          "$ref": "GoogleAdsGoogleadsV23Resources__CustomerLifecycleGoal"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__CustomerLifecycleGoalOperation",
      "description": "A single operation on a customer lifecycle goal.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateConversionActionResult": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateConversionActionResult",
      "properties": {
        "conversionAction": {
          "description": "The mutated conversion action with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV23Resources__ConversionAction"
        },
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      },
      "description": "The result for the conversion action mutate."
    },
    "GoogleAdsGoogleadsV23Common__TargetRestrictionOperation": {
      "description": "Operation to be performed on a target restriction list in a mutate.",
      "properties": {
        "value": {
          "description": "The target restriction being added to or removed from the list.",
          "$ref": "GoogleAdsGoogleadsV23Common__TargetRestriction"
        },
        "operator": {
          "description": "Type of list operation to perform.",
          "enumDescriptions": [
            "Unspecified.",
            "Used for return value only. Represents value unknown in this version.",
            "Add the restriction to the existing restrictions.",
            "Remove the restriction from the existing restrictions."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADD",
            "REMOVE"
          ],
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__TargetRestrictionOperation"
    },
    "GoogleAdsGoogleadsV23Services__YouTubeChannelInsights": {
      "id": "GoogleAdsGoogleadsV23Services__YouTubeChannelInsights",
      "type": "object",
      "properties": {
        "displayName": {
          "description": "The name of the YouTube Channel.",
          "type": "string"
        },
        "channelAudienceAttributes": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AudienceInsightsAttributeMetadata"
          },
          "type": "array",
          "description": "The types of audiences and demographics linked to the channel's main audience. Audiences and demographics have a breakdown of subscriber share across dimensions of the same value, such as Age Range, Gender, and User Interest."
        },
        "channelAttributes": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AudienceInsightsAttributeMetadata"
          },
          "description": "The attributes associated with the content made by a channel.",
          "type": "array"
        },
        "topVideos": {
          "description": "The top 10 videos for the channel.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AudienceInsightsAttributeMetadata"
          }
        },
        "thumbnailUrl": {
          "description": "URL for a 240px by 240px thumbnail image of the channel.",
          "type": "string"
        },
        "handle": {
          "type": "string",
          "description": "The unique, short, and user-visible identifier for the channel starting with an \"@\" symbol (such as \"@youtubecreators\"). See https://support.google.com/youtube/answer/11585688 for more information."
        },
        "channelType": {
          "description": "Metadata string associated with the type of channel.",
          "type": "string"
        },
        "countryLocation": {
          "$ref": "GoogleAdsGoogleadsV23Common__LocationInfo",
          "description": "The country with which the channel is associated."
        },
        "channelMetrics": {
          "description": "The metrics for a YouTube Channel.",
          "$ref": "GoogleAdsGoogleadsV23Services__YouTubeMetrics"
        },
        "languageDistributions": {
          "description": "The languages associated with the content made by a channel.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__LanguageDistribution"
          }
        },
        "channelUrl": {
          "description": "URL for the channel in the form of https://www.youtube.com/channel/{channel_id}.",
          "type": "string"
        },
        "relevanceScore": {
          "format": "double",
          "description": "The relevance score of the channel to the topic being searched for weighted by views. The value is between 0 and 1, with 1 being the most relevant. Only populated for trends using search_topics.",
          "type": "number"
        },
        "publishDate": {
          "type": "string",
          "description": "The date that the channel was created. Formatted as \"yyyy-mm-dd\"."
        },
        "channelDescription": {
          "type": "string",
          "description": "Description of the channel."
        },
        "youtubeChannel": {
          "description": "The YouTube Channel ID.",
          "$ref": "GoogleAdsGoogleadsV23Common__YouTubeChannelInfo"
        }
      },
      "description": "YouTube Channel insights, and its metadata (such as channel name and channel ID), returned for a creator insights response."
    },
    "GoogleAdsGoogleadsV23Services_ProductFilter_ProductList": {
      "type": "object",
      "properties": {
        "productCodes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Required. Products to generate benchmarks metrics for."
        }
      },
      "id": "GoogleAdsGoogleadsV23Services_ProductFilter_ProductList",
      "description": "The list of products to generate benchmarks metrics for."
    },
    "GoogleAdsGoogleadsV23Common__WebpageListInfo": {
      "properties": {
        "sharedSet": {
          "type": "string",
          "description": "Shared set resource name of the webpage list."
        }
      },
      "description": "Represents a list of webpage criteria.",
      "id": "GoogleAdsGoogleadsV23Common__WebpageListInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__GenerateReachForecastRequest": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__GenerateReachForecastRequest",
      "properties": {
        "targeting": {
          "$ref": "GoogleAdsGoogleadsV23Services__Targeting",
          "description": "The targeting to be applied to all products selected in the product mix. This is planned targeting: execution details might vary based on the advertising product, consult an implementation specialist. See specific metrics for details on how targeting affects them."
        },
        "forecastMetricOptions": {
          "$ref": "GoogleAdsGoogleadsV23Services__ForecastMetricOptions",
          "description": "Controls the forecast metrics returned in the response."
        },
        "cookieFrequencyCapSetting": {
          "$ref": "GoogleAdsGoogleadsV23Services__FrequencyCap",
          "description": "Chosen cookie frequency cap to be applied to each planned product. This is equivalent to the frequency cap exposed in Google Ads when creating a campaign, it represents the maximum number of times an ad can be shown to the same user during a specified time interval. If not specified, a default of 0 (no cap) is applied. This field replaces the deprecated cookie_frequency_cap field."
        },
        "customerReachGroup": {
          "type": "string",
          "description": "The name of the customer being planned for. This is a user-defined value."
        },
        "minEffectiveFrequency": {
          "type": "integer",
          "description": "Chosen minimum effective frequency (the number of times a person was exposed to the ad) for the reported reach metrics [1-10]. This won't affect the targeting, but just the reporting. If not specified, a default of 1 is applied. This field cannot be combined with the effective_frequency_limit field.",
          "format": "int32"
        },
        "plannedProducts": {
          "description": "Required. The products to be forecast. The max number of allowed planned products is 15.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__PlannedProduct"
          },
          "type": "array"
        },
        "cookieFrequencyCap": {
          "description": "Chosen cookie frequency cap to be applied to each planned product. This is equivalent to the frequency cap exposed in Google Ads when creating a campaign, it represents the maximum number of times an ad can be shown to the same user. If not specified, no cap is applied. This field is deprecated in v4 and will eventually be removed. Use cookie_frequency_cap_setting instead.",
          "type": "integer",
          "format": "int32"
        },
        "effectiveFrequencyLimit": {
          "$ref": "GoogleAdsGoogleadsV23Services__EffectiveFrequencyLimit",
          "description": "The highest minimum effective frequency (the number of times a person was exposed to the ad) value [1-10] to include in Forecast.effective_frequency_breakdowns. If not specified, Forecast.effective_frequency_breakdowns will not be provided. The effective frequency value provided here will also be used as the minimum effective frequency for the reported reach metrics. This field cannot be combined with the min_effective_frequency field."
        },
        "reachApplicationInfo": {
          "description": "Optional. Additional information on the application issuing the request.",
          "$ref": "GoogleAdsGoogleadsV23Common__AdditionalApplicationInfo"
        },
        "campaignDuration": {
          "$ref": "GoogleAdsGoogleadsV23Services__CampaignDuration",
          "description": "Required. Campaign duration."
        },
        "currencyCode": {
          "description": "The currency code. Three-character ISO 4217 currency code.",
          "type": "string"
        }
      },
      "description": "Request message for ReachPlanService.GenerateReachForecast."
    },
    "GoogleAdsGoogleadsV23Common__ActivityCityInfo": {
      "id": "GoogleAdsGoogleadsV23Common__ActivityCityInfo",
      "type": "object",
      "description": "The city where the travel activity is available.",
      "properties": {
        "value": {
          "description": "String value of the activity city. The Geo Target Constant resource name.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__AssetsWithFieldType": {
      "id": "GoogleAdsGoogleadsV23Services__AssetsWithFieldType",
      "description": "The combination of system asset and field type to remove.",
      "properties": {
        "asset": {
          "type": "string",
          "description": "Required. The resource name of the asset to be removed."
        },
        "assetFieldType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE",
            "DESCRIPTION",
            "MANDATORY_AD_TEXT",
            "MARKETING_IMAGE",
            "MEDIA_BUNDLE",
            "YOUTUBE_VIDEO",
            "BOOK_ON_GOOGLE",
            "LEAD_FORM",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "LONG_HEADLINE",
            "BUSINESS_NAME",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "VIDEO",
            "CALL_TO_ACTION_SELECTION",
            "AD_IMAGE",
            "BUSINESS_LOGO",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "TALL_PORTRAIT_MARKETING_IMAGE",
            "RELATED_YOUTUBE_VIDEOS",
            "LANDING_PAGE_PREVIEW",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is linked for use as a headline.",
            "The asset is linked for use as a description.",
            "The asset is linked for use as mandatory ad text.",
            "The asset is linked for use as a marketing image.",
            "The asset is linked for use as a media bundle.",
            "The asset is linked for use as a YouTube video.",
            "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
            "The asset is linked for use as a Lead Form extension.",
            "The asset is linked for use as a Promotion extension.",
            "The asset is linked for use as a Callout extension.",
            "The asset is linked for use as a Structured Snippet extension.",
            "The asset is linked for use as a Sitelink.",
            "The asset is linked for use as a Mobile App extension.",
            "The asset is linked for use as a Hotel Callout extension.",
            "The asset is linked for use as a Call extension.",
            "The asset is linked for use as a Price extension.",
            "The asset is linked for use as a long headline.",
            "The asset is linked for use as a business name.",
            "The asset is linked for use as a square marketing image.",
            "The asset is linked for use as a portrait marketing image.",
            "The asset is linked for use as a logo.",
            "The asset is linked for use as a landscape logo.",
            "The asset is linked for use as a non YouTube logo.",
            "The asset is linked for use to select a call-to-action.",
            "The asset is linked for use to select an ad image.",
            "The asset is linked for use as a business logo.",
            "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
            "The asset is linked for use as a Demand Gen carousel card.",
            "The asset is linked for use as a Business Message.",
            "The asset is linked for use as a tall portrait marketing image.",
            "The asset is linked for use as related YouTube videos.",
            "The asset is linked for use as a landing page preview image.",
            "The asset is linked for use as a long description.",
            "The asset is linked for use as a call-to-action."
          ],
          "description": "Required. The asset field type.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources_Campaign_VanityPharma": {
      "type": "object",
      "description": "Describes how unbranded pharma ads will be displayed.",
      "id": "GoogleAdsGoogleadsV23Resources_Campaign_VanityPharma",
      "properties": {
        "vanityPharmaText": {
          "description": "The text that will be displayed in display URL of the text ad when website description is the selected display mode for vanity pharma URLs.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Prescription treatment website with website content in English.",
            "Prescription treatment website with website content in Spanish (Sitio de tratamientos con receta).",
            "Prescription device website with website content in English.",
            "Prescription device website with website content in Spanish (Sitio de dispositivos con receta).",
            "Medical device website with website content in English.",
            "Medical device website with website content in Spanish (Sitio de dispositivos médicos).",
            "Preventative treatment website with website content in English.",
            "Preventative treatment website with website content in Spanish (Sitio de tratamientos preventivos).",
            "Prescription contraception website with website content in English.",
            "Prescription contraception website with website content in Spanish (Sitio de anticonceptivos con receta).",
            "Prescription vaccine website with website content in English.",
            "Prescription vaccine website with website content in Spanish (Sitio de vacunas con receta)."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PRESCRIPTION_TREATMENT_WEBSITE_EN",
            "PRESCRIPTION_TREATMENT_WEBSITE_ES",
            "PRESCRIPTION_DEVICE_WEBSITE_EN",
            "PRESCRIPTION_DEVICE_WEBSITE_ES",
            "MEDICAL_DEVICE_WEBSITE_EN",
            "MEDICAL_DEVICE_WEBSITE_ES",
            "PREVENTATIVE_TREATMENT_WEBSITE_EN",
            "PREVENTATIVE_TREATMENT_WEBSITE_ES",
            "PRESCRIPTION_CONTRACEPTION_WEBSITE_EN",
            "PRESCRIPTION_CONTRACEPTION_WEBSITE_ES",
            "PRESCRIPTION_VACCINE_WEBSITE_EN",
            "PRESCRIPTION_VACCINE_WEBSITE_ES"
          ]
        },
        "vanityPharmaDisplayUrlMode": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MANUFACTURER_WEBSITE_URL",
            "WEBSITE_DESCRIPTION"
          ],
          "description": "The display mode for vanity pharma URLs.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Replace vanity pharma URL with manufacturer website url.",
            "Replace vanity pharma URL with description of the website."
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources_AccessibleBiddingStrategy_MaximizeConversions": {
      "id": "GoogleAdsGoogleadsV23Resources_AccessibleBiddingStrategy_MaximizeConversions",
      "type": "object",
      "properties": {
        "targetCpaMicros": {
          "description": "Output only. The target cost per acquisition (CPA) option. This is the average amount that you would like to spend per acquisition.",
          "type": "string",
          "readOnly": true,
          "format": "int64"
        }
      },
      "description": "An automated bidding strategy to help get the most conversions for your campaigns while spending your budget."
    },
    "GoogleAdsGoogleadsV23Common__ResponsiveDisplayAdInfo": {
      "properties": {
        "callToActionText": {
          "description": "The call-to-action text for the ad. Maximum display width is 30.",
          "type": "string"
        },
        "formatSetting": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ALL_FORMATS",
            "NON_NATIVE",
            "NATIVE"
          ],
          "type": "string",
          "description": "Specifies which format the ad will be served in. Default is ALL_FORMATS.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Text, image and native formats.",
            "Text and image formats.",
            "Native format, for example, the format rendering is controlled by the publisher and not by Google."
          ]
        },
        "headlines": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdTextAsset"
          },
          "description": "Short format headlines for the ad. The maximum length is 30 characters. At least 1 and max 5 headlines can be specified.",
          "type": "array"
        },
        "promoText": {
          "description": "Promotion text used for dynamic formats of responsive ads. For example 'Free two-day shipping'.",
          "type": "string"
        },
        "accentColor": {
          "type": "string",
          "description": "The accent color of the ad in hexadecimal, for example, #ffffff for white. If one of `main_color` and `accent_color` is set, the other is required as well."
        },
        "businessName": {
          "description": "The advertiser/brand name. Maximum display width is 25.",
          "type": "string"
        },
        "longHeadline": {
          "$ref": "GoogleAdsGoogleadsV23Common__AdTextAsset",
          "description": "A required long format headline. The maximum length is 90 characters."
        },
        "controlSpec": {
          "description": "Specification for various creative controls.",
          "$ref": "GoogleAdsGoogleadsV23Common__ResponsiveDisplayAdControlSpec"
        },
        "descriptions": {
          "description": "Descriptive texts for the ad. The maximum length is 90 characters. At least 1 and max 5 headlines can be specified.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdTextAsset"
          },
          "type": "array"
        },
        "squareLogoImages": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdImageAsset"
          },
          "description": "Square logo images to be used in the ad. Valid image types are GIF, JPEG, and PNG. The minimum size is 128x128 and the aspect ratio must be 1:1 (+-1%). Combined with `logo_images`, the maximum is 5."
        },
        "mainColor": {
          "type": "string",
          "description": "The main color of the ad in hexadecimal, for example, #ffffff for white. If one of `main_color` and `accent_color` is set, the other is required as well."
        },
        "marketingImages": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdImageAsset"
          },
          "description": "Marketing images to be used in the ad. Valid image types are GIF, JPEG, and PNG. The minimum size is 600x314 and the aspect ratio must be 1.91:1 (+-1%). At least one `marketing_image` is required. Combined with `square_marketing_images`, the maximum is 15.",
          "type": "array"
        },
        "youtubeVideos": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdVideoAsset"
          },
          "type": "array",
          "description": "Optional YouTube videos for the ad. A maximum of 5 videos can be specified."
        },
        "logoImages": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdImageAsset"
          },
          "type": "array",
          "description": "Logo images to be used in the ad. Valid image types are GIF, JPEG, and PNG. The minimum size is 512x128 and the aspect ratio must be 4:1 (+-1%). Combined with `square_logo_images`, the maximum is 5."
        },
        "squareMarketingImages": {
          "type": "array",
          "description": "Square marketing images to be used in the ad. Valid image types are GIF, JPEG, and PNG. The minimum size is 300x300 and the aspect ratio must be 1:1 (+-1%). At least one square `marketing_image` is required. Combined with `marketing_images`, the maximum is 15.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdImageAsset"
          }
        },
        "allowFlexibleColor": {
          "type": "boolean",
          "description": "Advertiser's consent to allow flexible color. When true, the ad may be served with different color if necessary. When false, the ad will be served with the specified colors or a neutral color. The default value is `true`. Must be true if `main_color` and `accent_color` are not set."
        },
        "pricePrefix": {
          "description": "Prefix before price. For example, 'as low as'.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__ResponsiveDisplayAdInfo",
      "description": "A responsive display ad.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__DynamicBusinessProfileLocationGroupFilter": {
      "id": "GoogleAdsGoogleadsV23Common__DynamicBusinessProfileLocationGroupFilter",
      "type": "object",
      "description": "Represents a filter on Business Profile locations in an asset set. If multiple filters are provided, they are AND'ed together.",
      "properties": {
        "businessNameFilter": {
          "$ref": "GoogleAdsGoogleadsV23Common__BusinessProfileBusinessNameFilter",
          "description": "Used to filter Business Profile locations by business name."
        },
        "labelFilters": {
          "description": "Used to filter Business Profile locations by label. Only locations that have any of the listed labels will be in the asset set. Label filters are OR'ed together.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "listingIdFilters": {
          "type": "array",
          "description": "Used to filter Business Profile locations by listing ids.",
          "items": {
            "type": "string",
            "format": "int64"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__ListingGroupInfo": {
      "description": "A listing group criterion.",
      "properties": {
        "type": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SUBDIVISION",
            "UNIT"
          ],
          "description": "Type of the listing group.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "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.",
            "Listing group unit that defines a bid."
          ],
          "type": "string"
        },
        "parentAdGroupCriterion": {
          "type": "string",
          "description": "Resource name of ad group criterion which is the parent listing group subdivision. Null for the root group."
        },
        "path": {
          "description": "The path of dimensions defining this listing group.",
          "$ref": "GoogleAdsGoogleadsV23Common__ListingDimensionPath"
        },
        "caseValue": {
          "description": "Dimension value with which this listing group is refining its parent. Undefined for the root group.",
          "$ref": "GoogleAdsGoogleadsV23Common__ListingDimensionInfo"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__ListingGroupInfo"
    },
    "GoogleAdsGoogleadsV23Common__BusinessProfileLocationSet": {
      "id": "GoogleAdsGoogleadsV23Common__BusinessProfileLocationSet",
      "properties": {
        "httpAuthorizationToken": {
          "type": "string",
          "description": "Required. Immutable. The HTTP authorization token used to obtain authorization."
        },
        "listingIdFilters": {
          "items": {
            "format": "int64",
            "type": "string"
          },
          "description": "Used to filter Google Business Profile listings by listing id. If entries exist in listingIdFilters, only listings specified by the filters are candidates to be synchronized into Assets. If no entries exist in listingIdFilters, then all listings are candidates for syncing. Listing ID filters are OR'ed together.",
          "type": "array"
        },
        "labelFilters": {
          "description": "Used to filter Google Business Profile listings by labels. If entries exist in labelFilters, only listings that have any of the labels set are candidates to be synchronized into Assets. If no entries exist in labelFilters, then all listings are candidates for syncing. Label filters are OR'ed together.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "businessNameFilter": {
          "description": "Used to filter Google Business Profile listings by business name. If businessNameFilter is set, only listings with a matching business name are candidates to be sync'd into Assets.",
          "type": "string"
        },
        "businessAccountId": {
          "type": "string",
          "description": "Immutable. The account ID of the managed business whose locations are to be used. If this field is not set, then all businesses accessible by the user (specified by the emailAddress) are used."
        },
        "emailAddress": {
          "type": "string",
          "description": "Required. Immutable. Email address of a Google Business Profile account or email address of a manager of the Google Business Profile account."
        }
      },
      "type": "object",
      "description": "Data used to configure a location set populated from Google Business Profile locations. Different types of filters are AND'ed together, if they are specified."
    },
    "GoogleAdsGoogleadsV23Resources__CampaignGroup": {
      "id": "GoogleAdsGoogleadsV23Resources__CampaignGroup",
      "properties": {
        "status": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The campaign group is active.",
            "The campaign group has been removed."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "description": "The status of the campaign group. When a new campaign group is added, the status defaults to ENABLED."
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the campaign group. Campaign group resource names have the form: `customers/{customer_id}/campaignGroups/{campaign_group_id}`"
        },
        "name": {
          "description": "The name of the campaign group. This field is required and should not be empty when creating new campaign groups. It must not contain any null (code point 0x0), NL line feed (code point 0xA) or carriage return (code point 0xD) characters.",
          "type": "string"
        },
        "id": {
          "type": "string",
          "description": "Output only. The ID of the campaign group.",
          "format": "int64",
          "readOnly": true
        }
      },
      "type": "object",
      "description": "A campaign group."
    },
    "GoogleAdsGoogleadsV23Resources__LeadFormSubmissionData": {
      "properties": {
        "adGroup": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. AdGroup associated with the submitted lead form."
        },
        "asset": {
          "readOnly": true,
          "description": "Output only. Asset associated with the submitted lead form.",
          "type": "string"
        },
        "customLeadFormSubmissionFields": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Resources__CustomLeadFormSubmissionField"
          },
          "description": "Output only. Submission data associated with a custom lead form.",
          "readOnly": true,
          "type": "array"
        },
        "gclid": {
          "description": "Output only. Google Click Id associated with the submissed lead form.",
          "readOnly": true,
          "type": "string"
        },
        "submissionDateTime": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The date and time at which the lead form was submitted. The format is \"yyyy-mm-dd hh:mm:ss+|-hh:mm\", for example, \"2019-01-01 12:32:45-08:00\"."
        },
        "resourceName": {
          "readOnly": true,
          "description": "Output only. The resource name of the lead form submission data. Lead form submission data resource names have the form: `customers/{customer_id}/leadFormSubmissionData/{lead_form_submission_data_id}`",
          "type": "string"
        },
        "leadFormSubmissionFields": {
          "readOnly": true,
          "description": "Output only. Submission data associated with a lead form.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Resources__LeadFormSubmissionField"
          },
          "type": "array"
        },
        "id": {
          "description": "Output only. ID of this lead form submission.",
          "readOnly": true,
          "type": "string"
        },
        "adGroupAd": {
          "description": "Output only. AdGroupAd associated with the submitted lead form.",
          "type": "string",
          "readOnly": true
        },
        "campaign": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. Campaign associated with the submitted lead form."
        }
      },
      "description": "Data from lead form submissions.",
      "id": "GoogleAdsGoogleadsV23Resources__LeadFormSubmissionData",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateCampaignBidModifiersResponse": {
      "properties": {
        "results": {
          "type": "array",
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateCampaignBidModifierResult"
          }
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      },
      "type": "object",
      "description": "Response message for campaign bid modifiers mutate.",
      "id": "GoogleAdsGoogleadsV23Services__MutateCampaignBidModifiersResponse"
    },
    "GoogleAdsGoogleadsV23Common__AudienceInsightsCategory": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__AudienceInsightsCategory",
      "description": "A Product and Service category.",
      "properties": {
        "categoryId": {
          "type": "string",
          "description": "Required. The criterion ID of the category."
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__UserInterestSegment": {
      "properties": {
        "userInterestCategory": {
          "description": "The user interest resource.",
          "type": "string"
        }
      },
      "type": "object",
      "description": "User interest segment.",
      "id": "GoogleAdsGoogleadsV23Common__UserInterestSegment"
    },
    "GoogleAdsGoogleadsV23Resources_AccessibleBiddingStrategy_TargetImpressionShare": {
      "description": "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).",
      "id": "GoogleAdsGoogleadsV23Resources_AccessibleBiddingStrategy_TargetImpressionShare",
      "type": "object",
      "properties": {
        "locationFractionMicros": {
          "description": "The chosen fraction of ads to be shown in the targeted location in micros. For example, 1% equals 10,000.",
          "format": "int64",
          "type": "string"
        },
        "cpcBidCeilingMicros": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "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."
        },
        "location": {
          "type": "string",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Any location on the web page.",
            "Top box of ads.",
            "Top slot in the top box of ads."
          ],
          "description": "Output only. The targeted location on the search results page.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ANYWHERE_ON_PAGE",
            "TOP_OF_PAGE",
            "ABSOLUTE_TOP_OF_PAGE"
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__SuggestSmartCampaignBudgetOptionsRequest": {
      "id": "GoogleAdsGoogleadsV23Services__SuggestSmartCampaignBudgetOptionsRequest",
      "type": "object",
      "description": "Request message for SmartCampaignSuggestService.SuggestSmartCampaignBudgetOptions.",
      "properties": {
        "suggestionInfo": {
          "description": "Required. Information needed to get budget options",
          "$ref": "GoogleAdsGoogleadsV23Services__SmartCampaignSuggestionInfo"
        },
        "campaign": {
          "type": "string",
          "description": "Required. The resource name of the campaign to get suggestion for."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services_IncentiveRequirement_Spend": {
      "properties": {
        "awardAmount": {
          "description": "Required. Amount in free spend that user will be granted after spending target amount. Denominated in the currency of the country passed in the get request.",
          "$ref": "GoogleType__Money"
        },
        "requiredAmount": {
          "description": "Required. Amount that user must spend to receive the award amount. Denominated in the currency of the country passed in the get request.",
          "$ref": "GoogleType__Money"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services_IncentiveRequirement_Spend",
      "description": "Spend requirements for an incentive."
    },
    "GoogleAdsGoogleadsV23Common__LocationInfo": {
      "id": "GoogleAdsGoogleadsV23Common__LocationInfo",
      "type": "object",
      "properties": {
        "geoTargetConstant": {
          "type": "string",
          "description": "The geo target constant resource name."
        }
      },
      "description": "A location criterion."
    },
    "GoogleAdsGoogleadsV23Common__PercentCpc": {
      "properties": {
        "cpcBidCeilingMicros": {
          "description": "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.",
          "type": "string",
          "format": "int64"
        },
        "enhancedCpcEnabled": {
          "description": "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.",
          "type": "boolean"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__PercentCpc",
      "description": "A bidding strategy where bids are a fraction of the advertised price for some good or service.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__KeywordInfo": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__KeywordInfo",
      "properties": {
        "text": {
          "type": "string",
          "description": "The text of the keyword (at most 80 characters and 10 words)."
        },
        "matchType": {
          "description": "The match type of the keyword.",
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EXACT",
            "PHRASE",
            "BROAD"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Exact match.",
            "Phrase match.",
            "Broad match."
          ]
        }
      },
      "description": "A keyword criterion."
    },
    "GoogleAdsGoogleadsV23Common__YearMonthRange": {
      "description": "The year month range inclusive of the start and end months. Eg: A year month range to represent Jan 2020 would be: (Jan 2020, Jan 2020).",
      "properties": {
        "start": {
          "description": "The inclusive start year month.",
          "$ref": "GoogleAdsGoogleadsV23Common__YearMonth"
        },
        "end": {
          "description": "The inclusive end year month.",
          "$ref": "GoogleAdsGoogleadsV23Common__YearMonth"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__YearMonthRange",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__BrandCampaignAssets": {
      "properties": {
        "landscapeLogoAsset": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "Optional. The resource name of landscape logo assets."
        },
        "logoAsset": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "Required. The resource name of square logo assets."
        },
        "businessNameAsset": {
          "description": "Required. The resource name of the business name text asset.",
          "type": "string"
        }
      },
      "description": "Assets linked at the campaign level. A business_name and at least one logo_asset are required.",
      "id": "GoogleAdsGoogleadsV23Services__BrandCampaignAssets",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__SearchGoogleAdsRequest": {
      "type": "object",
      "properties": {
        "searchSettings": {
          "description": "Settings that allow users to specify request count, summary row, and results behavior.",
          "$ref": "GoogleAdsGoogleadsV23Services__SearchSettings"
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed."
        },
        "pageToken": {
          "description": "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.",
          "type": "string"
        },
        "query": {
          "description": "Required. The query string.",
          "type": "string"
        },
        "pageSize": {
          "type": "integer",
          "description": "This field is deprecated and will be removed in a future version of the API. As of v17, Google Ads API will return a `PAGE_SIZE_NOT_SUPPORTED` error if this field is set in the request body. See https://ads-developers.googleblog.com/2024/07/upcoming-changes-to-page-size-in-google.html to learn more details.",
          "format": "int32"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__SearchGoogleAdsRequest",
      "description": "Request message for GoogleAdsService.Search."
    },
    "GoogleAdsGoogleadsV23Resources_AdGroup_AiMaxAdGroupSetting": {
      "description": "Settings for AI Max feature in standard search adgroups.",
      "id": "GoogleAdsGoogleadsV23Resources_AdGroup_AiMaxAdGroupSetting",
      "type": "object",
      "properties": {
        "disableSearchTermMatching": {
          "type": "boolean",
          "description": "Disable search term matching for this adgroup when AI Max is enabled. Search term matching uses broad match, asset-based, and landing page-based technology to improve reach."
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__LeadFormCustomQuestionField": {
      "id": "GoogleAdsGoogleadsV23Common__LeadFormCustomQuestionField",
      "description": "One custom question input field instance within a form.",
      "properties": {
        "customQuestionText": {
          "type": "string",
          "description": "The exact custom question field text (for example, \"What kind of vehicle do you have?\")."
        },
        "hasLocationAnswer": {
          "type": "boolean",
          "description": "Answer configuration for location question. If true, campaign/account level location data (state, city, business name etc) will be rendered on the Lead Form. Starting V13.1, has_location_answer can only be set for \"What is your preferred dealership?\" question, for advertisers with Location Assets setup at campaign/account level."
        },
        "singleChoiceAnswers": {
          "$ref": "GoogleAdsGoogleadsV23Common__LeadFormSingleChoiceAnswers",
          "description": "Answer configuration for a single choice question. Minimum of 2 answers and maximum of 12 allowed."
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__BusinessMessageCallToActionInfo": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__BusinessMessageCallToActionInfo",
      "description": "Display information that encourages the user to take action.",
      "properties": {
        "callToActionDescription": {
          "type": "string",
          "description": "Required. Text providing a clear value proposition of what users expect once they take the action. Examples: 'Message us for a quote', 'Ask our expert team'."
        },
        "callToActionSelection": {
          "description": "Required. Pre-defined call to action text.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "APPLY_NOW",
            "BOOK_NOW",
            "CONTACT_US",
            "GET_INFO",
            "GET_OFFER",
            "GET_QUOTE",
            "GET_STARTED",
            "LEARN_MORE"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Apply now.",
            "Book now.",
            "Contact us.",
            "Get info.",
            "Get offer.",
            "Get quote.",
            "Get started.",
            "Learn more."
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__KeywordPlanGeoTarget": {
      "properties": {
        "geoTargetConstant": {
          "description": "Required. The resource name of the geo target.",
          "type": "string"
        }
      },
      "description": "A geo target.",
      "id": "GoogleAdsGoogleadsV23Resources__KeywordPlanGeoTarget",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateAssetsRequest": {
      "id": "GoogleAdsGoogleadsV23Services__MutateAssetsRequest",
      "type": "object",
      "properties": {
        "responseContentType": {
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ]
        },
        "operations": {
          "description": "Required. The list of operations to perform on individual assets.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__AssetOperation"
          },
          "type": "array"
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        }
      },
      "description": "Request message for AssetService.MutateAssets"
    },
    "GoogleAdsGoogleadsV23Resources_ListingGroupFilterDimension_ProductItemId": {
      "properties": {
        "value": {
          "description": "Value of the id.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources_ListingGroupFilterDimension_ProductItemId",
      "description": "Item id of a product offer.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__ExperimentOperation": {
      "type": "object",
      "description": "A single operation on an experiment.",
      "id": "GoogleAdsGoogleadsV23Services__ExperimentOperation",
      "properties": {
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask",
          "type": "string"
        },
        "create": {
          "$ref": "GoogleAdsGoogleadsV23Resources__Experiment",
          "description": "Create operation"
        },
        "update": {
          "$ref": "GoogleAdsGoogleadsV23Resources__Experiment",
          "description": "Update operation: The experiment is expected to have a valid resource name."
        },
        "remove": {
          "description": "Remove operation: The experiment is expected to have a valid resource name, in this format: `customers/{customer_id}/experiments/{campaign_experiment_id}`",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__ClickConversion": {
      "properties": {
        "cartData": {
          "description": "The cart data associated with this conversion.",
          "$ref": "GoogleAdsGoogleadsV23Services__CartData"
        },
        "wbraid": {
          "type": "string",
          "description": "The URL parameter for clicks associated with web conversions."
        },
        "userIpAddress": {
          "description": "The IP address of the customer when they arrived on the landing page after an ad click but before a conversion event. This is the IP address of the customer's device, not the advertiser's server. Google Ads does not support IP address matching for end users in the European Economic Area (EEA), United Kingdom (UK), or Switzerland (CH). Add logic to conditionally exclude sharing IP addresses from users from these regions and ensure that you provide users with clear and comprehensive information about the data you collect on your sites, apps, and other properties and get consent where required by law or any applicable Google policies. See the https://support.google.com/google-ads/answer/2998031 page for more details.",
          "type": "string"
        },
        "conversionAction": {
          "description": "Resource name of the conversion action associated with this conversion. Note: Although this resource name consists of a customer id and a conversion action id, validation will ignore the customer id and use the conversion action id as the sole identifier of the conversion action.",
          "type": "string"
        },
        "sessionAttributesEncoded": {
          "type": "string",
          "description": "The session attributes for the event, represented as a base64-encoded JSON string. The content should be generated by Google-provided library. To set session attributes individually, use session_attributes_key_value_pairs instead.",
          "format": "byte"
        },
        "gclid": {
          "description": "The Google click ID (gclid) associated with this conversion.",
          "type": "string"
        },
        "customerType": {
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Converting user is new to the advertiser.",
            "Converting user is returning to the advertiser. Definition of returning differs among conversion types, such as a second store visit versus a second online purchase."
          ],
          "type": "string",
          "description": "Type of the customer associated with the conversion (new or returning). Accessible only to customers on the allow-list.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NEW",
            "RETURNING"
          ]
        },
        "orderId": {
          "description": "The order ID associated with the conversion. An order id can only be used for one conversion per conversion action.",
          "type": "string"
        },
        "userIdentifiers": {
          "description": "The user identifiers associated with this conversion. Only hashed_email and hashed_phone_number are supported for conversion uploads. The maximum number of user identifiers for each conversion is 5.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__UserIdentifier"
          },
          "type": "array"
        },
        "gbraid": {
          "description": "The URL parameter for clicks associated with app conversions.",
          "type": "string"
        },
        "conversionEnvironment": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "APP",
            "WEB"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The conversion was recorded on an app.",
            "The conversion was recorded on a website."
          ],
          "description": "The environment this conversion was recorded on, for example, App or Web."
        },
        "conversionValue": {
          "format": "double",
          "type": "number",
          "description": "The value of the conversion for the advertiser."
        },
        "consent": {
          "$ref": "GoogleAdsGoogleadsV23Common__Consent",
          "description": "The consent setting for the event."
        },
        "externalAttributionData": {
          "$ref": "GoogleAdsGoogleadsV23Services__ExternalAttributionData",
          "description": "Additional data about externally attributed conversions. This field is required for conversions with an externally attributed conversion action, but should not be set otherwise."
        },
        "conversionDateTime": {
          "type": "string",
          "description": "The date time at which the conversion occurred. Must be after the click time. The timezone must be specified. The format is \"yyyy-mm-dd hh:mm:ss+|-hh:mm\", for example, \"2019-01-01 12:32:45-08:00\"."
        },
        "customVariables": {
          "description": "The custom variables associated with this conversion.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__CustomVariable"
          },
          "type": "array"
        },
        "sessionAttributesKeyValuePairs": {
          "$ref": "GoogleAdsGoogleadsV23Services__SessionAttributesKeyValuePairs",
          "description": "The session attributes for the event, represented as key-value pairs."
        },
        "currencyCode": {
          "type": "string",
          "description": "Currency associated with the conversion value. This is the ISO 4217 3-character currency code. For example: USD, EUR."
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__ClickConversion",
      "type": "object",
      "description": "A click conversion."
    },
    "GoogleAdsGoogleadsV23Services__PlannableLocation": {
      "properties": {
        "id": {
          "description": "The location identifier.",
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "The unique location name in English."
        },
        "parentCountryId": {
          "format": "int64",
          "type": "string",
          "description": "The parent country (not present if location is a country). If present, will always be a GeoTargetConstant ID. Additional information such as country name is provided by ReachPlanService.ListPlannableLocations or GoogleAdsService.Search/SearchStream."
        },
        "countryCode": {
          "type": "string",
          "description": "The ISO-3166-1 alpha-2 country code that is associated with the location."
        },
        "locationType": {
          "description": "The location's type. Location types correspond to target_type returned by searching location type in GoogleAdsService.Search/SearchStream.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__PlannableLocation",
      "description": "A plannable location: country, metro region, province, etc.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__DemandGenProductAdInfo": {
      "properties": {
        "logoImage": {
          "description": "Required. Logo image to be used in the ad. Valid image types are GIF, JPEG, and PNG. The minimum size is 128x128 and the aspect ratio must be 1:1 (+-1%).",
          "$ref": "GoogleAdsGoogleadsV23Common__AdImageAsset"
        },
        "businessName": {
          "$ref": "GoogleAdsGoogleadsV23Common__AdTextAsset",
          "description": "Required. The advertiser/brand name."
        },
        "headline": {
          "$ref": "GoogleAdsGoogleadsV23Common__AdTextAsset",
          "description": "Required. Text asset used for the short headline."
        },
        "breadcrumb1": {
          "description": "First part of text that appears in the ad with the displayed URL.",
          "type": "string"
        },
        "breadcrumb2": {
          "description": "Second part of text that appears in the ad with the displayed URL.",
          "type": "string"
        },
        "callToAction": {
          "$ref": "GoogleAdsGoogleadsV23Common__AdCallToActionAsset",
          "description": "Asset of type CallToActionAsset used for the \"Call To Action\" button."
        },
        "description": {
          "description": "Required. Text asset used for the description.",
          "$ref": "GoogleAdsGoogleadsV23Common__AdTextAsset"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__DemandGenProductAdInfo",
      "description": "A Demand Gen product ad.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__PolicyTopicConstraint": {
      "properties": {
        "countryConstraintList": {
          "description": "Countries where the resource cannot serve.",
          "$ref": "GoogleAdsGoogleadsV23Common_PolicyTopicConstraint_CountryConstraintList"
        },
        "certificateDomainMismatchInCountryList": {
          "description": "Countries where the resource's domain is not covered by the certificates associated with it.",
          "$ref": "GoogleAdsGoogleadsV23Common_PolicyTopicConstraint_CountryConstraintList"
        },
        "certificateMissingInCountryList": {
          "description": "Countries where a certificate is required for serving.",
          "$ref": "GoogleAdsGoogleadsV23Common_PolicyTopicConstraint_CountryConstraintList"
        },
        "resellerConstraint": {
          "description": "Reseller constraint.",
          "$ref": "GoogleAdsGoogleadsV23Common_PolicyTopicConstraint_ResellerConstraint"
        }
      },
      "description": "Describes the effect on serving that a policy topic entry will have.",
      "id": "GoogleAdsGoogleadsV23Common__PolicyTopicConstraint",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__BenchmarksSource": {
      "description": "The source used to generate benchmarks metrics for. The ID of the source can be obtained from BenchmarksService.ListBenchmarksSources.",
      "id": "GoogleAdsGoogleadsV23Services__BenchmarksSource",
      "properties": {
        "industryVerticalId": {
          "type": "string",
          "format": "int64",
          "description": "The ID of the Industry Vertical."
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__ClickLocation": {
      "type": "object",
      "properties": {
        "mostSpecific": {
          "type": "string",
          "description": "The most specific location criterion associated with the impression."
        },
        "region": {
          "description": "The region location criterion associated with the impression.",
          "type": "string"
        },
        "country": {
          "description": "The country location criterion associated with the impression.",
          "type": "string"
        },
        "metro": {
          "type": "string",
          "description": "The metro location criterion associated with the impression."
        },
        "city": {
          "type": "string",
          "description": "The city location criterion associated with the impression."
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__ClickLocation",
      "description": "Location criteria associated with a click."
    },
    "GoogleAdsGoogleadsV23Resources_AdGroupDemandGenAdGroupSettings_DemandGenChannelControls": {
      "properties": {
        "channelConfig": {
          "type": "string",
          "description": "Output only. Channel configuration reflecting which field in the oneof is populated.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CHANNEL_STRATEGY",
            "SELECTED_CHANNELS"
          ],
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "The channel controls configuration uses a general channel strategy; individual channels are not configured separately.",
            "The channel controls configuration explicitly defines the selected channels."
          ],
          "readOnly": true
        },
        "channelStrategy": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "All channels are enabled.",
            "All Google-owned and operated channels are enabled; third-party channels (e.g., Display) are disabled."
          ],
          "description": "High level channel strategy.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ALL_CHANNELS",
            "ALL_OWNED_AND_OPERATED_CHANNELS"
          ]
        },
        "selectedChannels": {
          "description": "Explicitly selected channels. This field should be set with at least one true value when present.",
          "$ref": "GoogleAdsGoogleadsV23Resources_AdGroupDemandGenAdGroupSettingsDemandGenChannelControls_DemandGenSelectedChannels"
        }
      },
      "type": "object",
      "description": "Channel controls for Demand Gen ad groups.",
      "id": "GoogleAdsGoogleadsV23Resources_AdGroupDemandGenAdGroupSettings_DemandGenChannelControls"
    },
    "GoogleAdsGoogleadsV23Services__MutateKeywordPlanCampaignResult": {
      "id": "GoogleAdsGoogleadsV23Services__MutateKeywordPlanCampaignResult",
      "description": "The result for the Keyword Plan campaign mutate.",
      "type": "object",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__CustomerUserAccessOperation": {
      "id": "GoogleAdsGoogleadsV23Services__CustomerUserAccessOperation",
      "description": "A single operation (update, remove) on customer user access.",
      "properties": {
        "remove": {
          "description": "Remove operation: A resource name for the removed access is expected, in this format: `customers/{customer_id}/customerUserAccesses/{CustomerUserAccess.user_id}`",
          "type": "string"
        },
        "updateMask": {
          "format": "google-fieldmask",
          "type": "string",
          "description": "FieldMask that determines which resource fields are modified in an update."
        },
        "update": {
          "description": "Update operation: The customer user access is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV23Resources__CustomerUserAccess"
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__MobileAppAsset": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__MobileAppAsset",
      "description": "An asset representing a mobile app.",
      "properties": {
        "startDate": {
          "description": "Start date of when this asset is effective and can begin serving, in yyyy-MM-dd format.",
          "type": "string"
        },
        "appId": {
          "type": "string",
          "description": "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."
        },
        "endDate": {
          "description": "Last date of when this asset is effective and still serving, in yyyy-MM-dd format.",
          "type": "string"
        },
        "appStore": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "APPLE_APP_STORE",
            "GOOGLE_APP_STORE"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Mobile app vendor for Apple app store.",
            "Mobile app vendor for Google app store."
          ],
          "type": "string",
          "description": "Required. The application store that distributes this specific app."
        },
        "linkText": {
          "description": "Required. The visible text displayed when the link is rendered in an ad. The length of this string should be between 1 and 25, inclusive.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__AdvancedProductTargeting": {
      "id": "GoogleAdsGoogleadsV23Services__AdvancedProductTargeting",
      "description": "Advanced targeting settings for products.",
      "type": "object",
      "properties": {
        "surfaceTargetingSettings": {
          "description": "Surface targeting settings for this product.",
          "$ref": "GoogleAdsGoogleadsV23Services__SurfaceTargeting"
        },
        "targetFrequencySettings": {
          "$ref": "GoogleAdsGoogleadsV23Services__TargetFrequencySettings",
          "description": "Settings for a Target frequency campaign. Must be set when selecting the TARGET_FREQUENCY product. See https://support.google.com/google-ads/answer/12400225 for more information about Target Frequency campaigns."
        },
        "youtubeSelectSettings": {
          "$ref": "GoogleAdsGoogleadsV23Services__YouTubeSelectSettings",
          "description": "Settings for YouTube Select targeting."
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__HouseholdIncomeDimension": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__HouseholdIncomeDimension",
      "description": "Dimension specifying users by their household income.",
      "properties": {
        "includeUndetermined": {
          "type": "boolean",
          "description": "Include users whose household income is not determined."
        },
        "incomeRanges": {
          "items": {
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "INCOME_RANGE_0_50",
              "INCOME_RANGE_50_60",
              "INCOME_RANGE_60_70",
              "INCOME_RANGE_70_80",
              "INCOME_RANGE_80_90",
              "INCOME_RANGE_90_UP",
              "INCOME_RANGE_UNDETERMINED"
            ],
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "0%-50%.",
              "50% to 60%.",
              "60% to 70%.",
              "70% to 80%.",
              "80% to 90%.",
              "Greater than 90%.",
              "Undetermined income range."
            ]
          },
          "description": "Included household income demographic segments.",
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__ProductTypeFullInfo": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__ProductTypeFullInfo",
      "properties": {
        "value": {
          "description": "String value of the product full type.",
          "type": "string"
        }
      },
      "description": "Full type of a product offer. This listing dimension is deprecated and it is supported only in Display campaigns."
    },
    "GoogleAdsGoogleadsV23Services__MutateCustomInterestResult": {
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      },
      "description": "The result for the custom interest mutate.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateCustomInterestResult"
    },
    "GoogleAdsGoogleadsV23Resources__ShoppingPerformanceView": {
      "id": "GoogleAdsGoogleadsV23Resources__ShoppingPerformanceView",
      "description": "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 Google Ads 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": "object",
      "properties": {
        "resourceName": {
          "description": "Output only. The resource name of the Shopping performance view. Shopping performance view resource names have the form: `customers/{customer_id}/shoppingPerformanceView`",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateCustomerResult": {
      "properties": {
        "customer": {
          "description": "The mutated customer with only mutable fields after mutate. The fields will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV23Resources__Customer"
        },
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      },
      "description": "The result for the customer mutate.",
      "id": "GoogleAdsGoogleadsV23Services__MutateCustomerResult",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__InFeedVideoAdInfo": {
      "type": "object",
      "properties": {
        "description1": {
          "type": "string",
          "description": "First text line for the ad."
        },
        "thumbnail": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DEFAULT_THUMBNAIL",
            "THUMBNAIL_1",
            "THUMBNAIL_2",
            "THUMBNAIL_3"
          ],
          "description": "Video thumbnail image to use.",
          "enumDescriptions": [
            "The type has not been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The default thumbnail. Can be auto-generated or user-uploaded.",
            "Thumbnail 1, generated from the video.",
            "Thumbnail 2, generated from the video.",
            "Thumbnail 3, generated from the video."
          ],
          "type": "string"
        },
        "description2": {
          "description": "Second text line for the ad.",
          "type": "string"
        },
        "headline": {
          "type": "string",
          "description": "The headline of the ad."
        }
      },
      "description": "Representation of In-feed video ad format.",
      "id": "GoogleAdsGoogleadsV23Common__InFeedVideoAdInfo"
    },
    "GoogleAdsGoogleadsV23Services__UploadConversionAdjustmentsResponse": {
      "description": "Response message for ConversionAdjustmentUploadService.UploadConversionAdjustments.",
      "id": "GoogleAdsGoogleadsV23Services__UploadConversionAdjustmentsResponse",
      "type": "object",
      "properties": {
        "results": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__ConversionAdjustmentResult"
          },
          "type": "array",
          "description": "Returned for successfully processed conversion adjustments. Proto will be empty for rows that received an error. Results are not returned when validate_only is true."
        },
        "partialFailureError": {
          "$ref": "GoogleRpc__Status",
          "description": "Errors that pertain to conversion adjustment failures in the partial failure mode. Returned when all errors occur inside the adjustments. If any errors occur outside the adjustments (for example, auth errors), we return an RPC level error. See https://developers.google.com/google-ads/api/docs/best-practices/partial-failures for more information about partial failure."
        },
        "jobId": {
          "type": "string",
          "format": "int64",
          "description": "Job ID for the upload batch."
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__KnowledgeGraphAttributeMetadata": {
      "properties": {
        "entityCapabilities": {
          "description": "The capabilities of the entity used in ContentCreatorInsightsService.",
          "items": {
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "CONTENT_TRENDING_INSIGHTS",
              "CREATOR_ATTRIBUTE"
            ],
            "enumDescriptions": [
              "Not specified.",
              "The value is unknown in this version.",
              "An entity that is supported to use as a trending topic in ContentCreatorInsightsService.GenerateTrendingInsights.",
              "An entity that is supported to use as a creator attribute in ContentCreatorInsightsService.GenerateCreatorInsights."
            ],
            "type": "string"
          },
          "type": "array"
        },
        "relatedCategories": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AudienceInsightsAttributeMetadata"
          },
          "description": "A list of CATEGORY attributes related to this entity.",
          "type": "array"
        }
      },
      "description": "Metadata associated with a Knowledge Graph Entity attribute.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__KnowledgeGraphAttributeMetadata"
    },
    "GoogleAdsGoogleadsV23Services__MutateAdGroupCriterionCustomizerResult": {
      "properties": {
        "adGroupCriterionCustomizer": {
          "$ref": "GoogleAdsGoogleadsV23Resources__AdGroupCriterionCustomizer",
          "description": "The mutated AdGroupCriterionCustomizer with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\"."
        },
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      },
      "type": "object",
      "description": "The result for the ad group criterion customizer mutate.",
      "id": "GoogleAdsGoogleadsV23Services__MutateAdGroupCriterionCustomizerResult"
    },
    "GoogleAdsGoogleadsV23Services__MutateCampaignCriteriaRequest": {
      "type": "object",
      "properties": {
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "operations": {
          "type": "array",
          "description": "Required. The list of operations to perform on individual criteria.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__CampaignCriterionOperation"
          }
        },
        "responseContentType": {
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation."
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateCampaignCriteriaRequest",
      "description": "Request message for CampaignCriterionService.MutateCampaignCriteria."
    },
    "GoogleAdsGoogleadsV23Services__MutateAssetSetsResponse": {
      "type": "object",
      "description": "Response message for an asset set mutate.",
      "properties": {
        "partialFailureError": {
          "$ref": "GoogleRpc__Status",
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error."
        },
        "results": {
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateAssetSetResult"
          },
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateAssetSetsResponse"
    },
    "GoogleAdsGoogleadsV23Services__AppendLeadConversationRequest": {
      "id": "GoogleAdsGoogleadsV23Services__AppendLeadConversationRequest",
      "properties": {
        "conversations": {
          "type": "array",
          "description": "Required. Conversations that are being appended.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__Conversation"
          }
        }
      },
      "description": "Request message for LocalServicesLeadService.AppendLeadConversation.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__GenerateSuggestedTargetingInsightsResponse": {
      "description": "Response message for AudienceInsightsService.GenerateSuggestedTargetingInsights.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__GenerateSuggestedTargetingInsightsResponse",
      "properties": {
        "suggestions": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__TargetingSuggestionMetrics"
          },
          "type": "array",
          "description": "Suggested insights for targetable audiences."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateAdGroupAssetsResponse": {
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateAdGroupAssetResult"
          },
          "description": "All results for the mutate."
        }
      },
      "description": "Response message for an ad group asset mutate.",
      "id": "GoogleAdsGoogleadsV23Services__MutateAdGroupAssetsResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateKeywordPlansResponse": {
      "type": "object",
      "description": "Response message for a keyword plan mutate.",
      "id": "GoogleAdsGoogleadsV23Services__MutateKeywordPlansResponse",
      "properties": {
        "results": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateKeywordPlansResult"
          },
          "description": "All results for the mutate.",
          "type": "array"
        },
        "partialFailureError": {
          "$ref": "GoogleRpc__Status",
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__SearchTopics": {
      "description": "A collection of content topics to return trend information for.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__SearchTopics",
      "properties": {
        "entities": {
          "description": "Required. A list of knowledge graph entities to retrieve trend information for. Supported entities are tagged with CONTENT_TRENDING_INSIGHTS.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AudienceInsightsEntity"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__ConversionGoalCampaignConfig": {
      "properties": {
        "campaign": {
          "type": "string",
          "description": "Immutable. The campaign with which this conversion goal campaign config is associated."
        },
        "goalConfigLevel": {
          "type": "string",
          "description": "The level of goal config the campaign is using.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CUSTOMER",
            "CAMPAIGN"
          ],
          "enumDescriptions": [
            "The goal config level has not been specified.",
            "The goal config level is not known in this version.",
            "The goal config is defined at the customer level.",
            "The goal config is defined at the campaign level."
          ]
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the conversion goal campaign config. Conversion goal campaign config resource names have the form: `customers/{customer_id}/conversionGoalCampaignConfigs/{campaign_id}`"
        },
        "customConversionGoal": {
          "description": "The custom conversion goal the campaign is using for optimization.",
          "type": "string"
        }
      },
      "type": "object",
      "description": "Conversion goal settings for a Campaign.",
      "id": "GoogleAdsGoogleadsV23Resources__ConversionGoalCampaignConfig"
    },
    "GoogleAdsGoogleadsV23Resources__CampaignBudget": {
      "properties": {
        "alignedBiddingStrategyId": {
          "description": "ID of the portfolio bidding strategy that this shared campaign budget is aligned with. When a bidding strategy and a campaign budget are aligned, they are attached to the same set of campaigns. After a campaign budget is aligned with a bidding strategy, campaigns that are added to the campaign budget must also use the aligned bidding strategy.",
          "format": "int64",
          "type": "string"
        },
        "amountMicros": {
          "type": "string",
          "format": "int64",
          "description": "The amount of the budget, in the local currency for the account. Amount is specified in micros, where one million is equivalent to one currency unit. Monthly spend is capped at 30.4 times this amount."
        },
        "explicitlyShared": {
          "type": "boolean",
          "description": "Specifies whether the budget is explicitly shared. Defaults to true if unspecified in a create operation. If true, the budget was created with the purpose of sharing across one or more campaigns. If false, the budget was created with the intention of only being used with a single campaign. The budget's name and status will stay in sync with the campaign's name and status. Attempting to share the budget with a second campaign will result in an error. A non-shared budget can become an explicitly shared. The same operation must also assign the budget a name. A shared campaign budget can never become non-shared."
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the campaign budget. Campaign budget resource names have the form: `customers/{customer_id}/campaignBudgets/{campaign_budget_id}`"
        },
        "recommendedBudgetEstimatedChangeWeeklyClicks": {
          "description": "Output only. The estimated change in weekly clicks if the recommended budget is applied. This field is read-only.",
          "format": "int64",
          "type": "string",
          "readOnly": true
        },
        "totalAmountMicros": {
          "type": "string",
          "description": "The lifetime amount of the budget, in the local currency for the account. Amount is specified in micros, where one million is equivalent to one currency unit.",
          "format": "int64"
        },
        "period": {
          "description": "Immutable. Period over which to spend the budget. Defaults to DAILY if not specified.",
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DAILY",
            "CUSTOM_PERIOD"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Daily budget.",
            "Custom budget, added back in V5. Custom budget can be used with total_amount to specify lifetime budget limit. See: https://support.google.com/google-ads/answer/6385083 for more info."
          ]
        },
        "recommendedBudgetEstimatedChangeWeeklyInteractions": {
          "type": "string",
          "format": "int64",
          "readOnly": true,
          "description": "Output only. The estimated change in weekly interactions if the recommended budget is applied. This field is read-only."
        },
        "referenceCount": {
          "type": "string",
          "format": "int64",
          "readOnly": true,
          "description": "Output only. The number of campaigns actively using the budget. This field is read-only."
        },
        "recommendedBudgetAmountMicros": {
          "format": "int64",
          "readOnly": true,
          "type": "string",
          "description": "Output only. The recommended budget amount. If no recommendation is available, this will be set to the budget amount. Amount is specified in micros, where one million is equivalent to one currency unit. This field is read-only."
        },
        "status": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Budget is enabled.",
            "Budget is removed."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "readOnly": true,
          "description": "Output only. The status of this campaign budget. This field is read-only."
        },
        "recommendedBudgetEstimatedChangeWeeklyViews": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The estimated change in weekly views if the recommended budget is applied. This field is read-only."
        },
        "id": {
          "description": "Output only. The ID of the campaign budget. A campaign budget is created using the CampaignBudgetService create operation and is assigned a budget ID. A budget ID can be shared across different campaigns; the system will then allocate the campaign budget among different campaigns to get optimum results.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "hasRecommendedBudget": {
          "description": "Output only. Indicates whether there is a recommended budget for this campaign budget. This field is read-only.",
          "readOnly": true,
          "type": "boolean"
        },
        "type": {
          "description": "Immutable. The type of the campaign budget.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Budget type for standard Google Ads usage. Caps daily spend at two times the specified budget amount. Full details: https://support.google.com/google-ads/answer/6385083",
            "Budget type with a fixed cost-per-acquisition (conversion). Full details: https://support.google.com/google-ads/answer/7528254 This type is only supported by campaigns with AdvertisingChannelType.DISPLAY (excluding AdvertisingChannelSubType.DISPLAY_GMAIL), BiddingStrategyType.TARGET_CPA and PaymentMode.CONVERSIONS.",
            "Budget type for Smart Campaign. Full details: https://support.google.com/google-ads/answer/7653509 This type is only supported by campaigns with AdvertisingChannelType.SMART and AdvertisingChannelSubType.SMART_CAMPAIGN.",
            "Budget type for Local Services Campaign. Full details: https://support.google.com/localservices/answer/7434558 This type is only supported by campaigns with AdvertisingChannelType.LOCAL_SERVICES."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "STANDARD",
            "FIXED_CPA",
            "SMART_CAMPAIGN",
            "LOCAL_SERVICES"
          ]
        },
        "recommendedBudgetEstimatedChangeWeeklyCostMicros": {
          "readOnly": true,
          "format": "int64",
          "type": "string",
          "description": "Output only. The estimated change in weekly cost in micros if the recommended budget is applied. One million is equivalent to one currency unit. This field is read-only."
        },
        "name": {
          "type": "string",
          "description": "The name of the campaign budget. When creating a campaign budget through CampaignBudgetService, every explicitly shared campaign budget must have a non-null, non-empty name. Campaign budgets that are not explicitly shared derive their name from the attached campaign's name. The length of this string must be between 1 and 255, inclusive, in UTF-8 bytes, (trimmed)."
        },
        "deliveryMethod": {
          "type": "string",
          "description": "The delivery method that determines the rate at which the campaign budget is spent. Defaults to STANDARD if unspecified in a create operation.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The budget server will throttle serving evenly across the entire time period.",
            "The budget server will not throttle serving, and ads will serve as fast as possible."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "STANDARD",
            "ACCELERATED"
          ]
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__CampaignBudget",
      "description": "A campaign budget.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__TextAsset": {
      "description": "A Text asset.",
      "type": "object",
      "properties": {
        "text": {
          "type": "string",
          "description": "Text content of the text asset."
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__TextAsset"
    },
    "GoogleAdsGoogleadsV23Services__RestatementValue": {
      "description": "Contains information needed to restate a conversion's value.",
      "properties": {
        "adjustedValue": {
          "format": "double",
          "description": "The restated conversion value. This is the value of the conversion after restatement. For example, to change the value of a conversion from 100 to 70, an adjusted value of 70 should be reported. NOTE: If you want to upload a second restatement with a different adjusted value, it must have a new, more recent, adjustment occurrence time. Otherwise, it will be treated as a duplicate of the previous restatement and ignored.",
          "type": "number"
        },
        "currencyCode": {
          "description": "The currency of the restated value. If not provided, then the default currency from the conversion action is used, and if that is not set then the account currency is used. This is the ISO 4217 3-character currency code for example, USD or EUR.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__RestatementValue",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateCustomerCustomizersRequest": {
      "type": "object",
      "description": "Request message for CustomerCustomizerService.MutateCustomerCustomizers.",
      "id": "GoogleAdsGoogleadsV23Services__MutateCustomerCustomizersRequest",
      "properties": {
        "operations": {
          "description": "Required. The list of operations to perform on individual customer customizers.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__CustomerCustomizerOperation"
          }
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "responseContentType": {
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__GenderView": {
      "id": "GoogleAdsGoogleadsV23Resources__GenderView",
      "properties": {
        "resourceName": {
          "readOnly": true,
          "description": "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}`",
          "type": "string"
        }
      },
      "type": "object",
      "description": "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."
    },
    "GoogleAdsGoogleadsV23Services__HotelAssetSuggestion": {
      "id": "GoogleAdsGoogleadsV23Services__HotelAssetSuggestion",
      "description": "Message containing the asset suggestions for a hotel.",
      "properties": {
        "hotelName": {
          "description": "Hotel name in requested language.",
          "type": "string"
        },
        "textAssets": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__HotelTextAsset"
          },
          "description": "Text assets such as headline, description, etc.",
          "type": "array"
        },
        "finalUrl": {
          "description": "Suggested final URL for an AssetGroup.",
          "type": "string"
        },
        "imageAssets": {
          "description": "Image assets such as landscape/portrait/square, etc.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__HotelImageAsset"
          },
          "type": "array"
        },
        "callToAction": {
          "description": "Call to action type.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The call to action type is learn more.",
            "The call to action type is get quote.",
            "The call to action type is apply now.",
            "The call to action type is sign up.",
            "The call to action type is contact us.",
            "The call to action type is subscribe.",
            "The call to action type is download.",
            "The call to action type is book now.",
            "The call to action type is shop now.",
            "The call to action type is buy now.",
            "The call to action type is donate now.",
            "The call to action type is order now.",
            "The call to action type is play now.",
            "The call to action type is see more.",
            "The call to action type is start now.",
            "The call to action type is visit site.",
            "The call to action type is watch now."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "LEARN_MORE",
            "GET_QUOTE",
            "APPLY_NOW",
            "SIGN_UP",
            "CONTACT_US",
            "SUBSCRIBE",
            "DOWNLOAD",
            "BOOK_NOW",
            "SHOP_NOW",
            "BUY_NOW",
            "DONATE_NOW",
            "ORDER_NOW",
            "PLAY_NOW",
            "SEE_MORE",
            "START_NOW",
            "VISIT_SITE",
            "WATCH_NOW"
          ],
          "type": "string"
        },
        "placeId": {
          "description": "Google Places ID of the hotel.",
          "type": "string"
        },
        "status": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The hotel asset suggestion was successfully retrieved.",
            "A hotel look up returns nothing.",
            "A Google Places ID is invalid and cannot be decoded."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SUCCESS",
            "HOTEL_NOT_FOUND",
            "INVALID_PLACE_ID"
          ],
          "description": "The status of the hotel asset suggestion.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources_Campaign_GeoTargetTypeSetting": {
      "type": "object",
      "properties": {
        "positiveGeoTargetType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PRESENCE_OR_INTEREST",
            "SEARCH_INTEREST",
            "PRESENCE"
          ],
          "type": "string",
          "description": "The setting used for positive geotargeting in this particular campaign.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Specifies that an ad is triggered if the user is in, or shows interest in, advertiser's targeted locations.",
            "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.",
            "Specifies that an ad is triggered if the user is in or regularly in advertiser's targeted locations."
          ]
        },
        "negativeGeoTargetType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PRESENCE_OR_INTEREST",
            "PRESENCE"
          ],
          "description": "The setting used for negative geotargeting in this particular campaign.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Specifies that a user is excluded from seeing the ad if they are in, or show interest in, advertiser's excluded locations.",
            "Specifies that a user is excluded from seeing the ad if they are in advertiser's excluded locations."
          ],
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources_Campaign_GeoTargetTypeSetting",
      "description": "Represents a collection of settings related to ads geotargeting."
    },
    "GoogleAdsGoogleadsV23Common__ProductBrandInfo": {
      "id": "GoogleAdsGoogleadsV23Common__ProductBrandInfo",
      "properties": {
        "value": {
          "type": "string",
          "description": "String value of the product brand."
        }
      },
      "description": "Brand of the product.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__BrandListInfo": {
      "type": "object",
      "description": "A Brand List Criterion is used to specify a list of brands. The list is represented as a SharedSet id type BRAND_HINT. A criterion of this type can be either targeted or excluded.",
      "properties": {
        "sharedSet": {
          "type": "string",
          "description": "Shared set resource name of the brand list."
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__BrandListInfo"
    },
    "GoogleAdsGoogleadsV23Services__MutateKeywordPlansRequest": {
      "type": "object",
      "description": "Request message for KeywordPlanService.MutateKeywordPlans.",
      "properties": {
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "operations": {
          "type": "array",
          "description": "Required. The list of operations to perform on individual keyword plans.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__KeywordPlanOperation"
          }
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateKeywordPlansRequest"
    },
    "GoogleAdsGoogleadsV23Services__MutateCustomConversionGoalResult": {
      "description": "The result for the custom conversion goal mutate.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateCustomConversionGoalResult",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        },
        "customConversionGoal": {
          "description": "The mutated CustomConversionGoal with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV23Resources__CustomConversionGoal"
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources_Recommendation_KeywordMatchTypeRecommendation": {
      "description": "The keyword match type recommendation.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources_Recommendation_KeywordMatchTypeRecommendation",
      "properties": {
        "recommendedMatchType": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EXACT",
            "PHRASE",
            "BROAD"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Exact match.",
            "Phrase match.",
            "Broad match."
          ],
          "type": "string",
          "description": "Output only. The recommended new match type."
        },
        "keyword": {
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV23Common__KeywordInfo",
          "description": "Output only. The existing keyword where the match type should be more broad."
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__MerchantCenterIdentifier": {
      "id": "GoogleAdsGoogleadsV23Resources__MerchantCenterIdentifier",
      "description": "The identifier for Google Merchant Center account",
      "type": "object",
      "properties": {
        "merchantCenterId": {
          "type": "string",
          "format": "int64",
          "description": "Immutable. The customer ID of the Google Merchant Center account. This field is required and should not be empty when creating a new Merchant Center link. It is unable to be modified after the creation of the link."
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__VerticalAdsItemGroupRuleListInfo": {
      "description": "A criterion for targeting a shared set of rules for item groups in Vertical Ads (e.g., for hotel ads).",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__VerticalAdsItemGroupRuleListInfo",
      "properties": {
        "sharedSet": {
          "description": "The shared set resource name of the vertical ads item group rule list.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__ConversionValueRuleSet": {
      "description": "A conversion value rule set is a collection of conversion value rules that lets you adjust conversion values based on the dimensions specified in the `dimensions` field.",
      "id": "GoogleAdsGoogleadsV23Resources__ConversionValueRuleSet",
      "properties": {
        "campaign": {
          "type": "string",
          "description": "The resource name of the campaign when the conversion value rule set is attached to a campaign."
        },
        "ownerCustomer": {
          "description": "Output only. The resource name of the conversion value rule set's owner customer. When the value rule set is inherited from a manager customer, owner_customer will be the resource name of the manager whereas the customer in the resource_name will be of the requesting serving customer. ** Read-only **",
          "type": "string",
          "readOnly": true
        },
        "conversionValueRules": {
          "description": "Resource names of rules within the rule set.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "resourceName": {
          "description": "Immutable. The resource name of the conversion value rule set. Conversion value rule set resource names have the form: `customers/{customer_id}/conversionValueRuleSets/{conversion_value_rule_set_id}`",
          "type": "string"
        },
        "status": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED",
            "PAUSED"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Conversion Value Rule Set is enabled and can be applied.",
            "Conversion Value Rule Set is permanently deleted and can't be applied.",
            "Conversion Value Rule Set is paused and won't be applied. It can be enabled again."
          ],
          "description": "Output only. The status of the conversion value rule set. ** Read-only **",
          "readOnly": true
        },
        "conversionActionCategories": {
          "description": "Immutable. The conversion action categories of the conversion value rule set.",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "Default category.",
              "User visiting a page.",
              "Purchase, sales, or \"order placed\" event.",
              "Signup user action.",
              "Software download action (as for an app).",
              "The addition of items to a shopping cart or bag on an advertiser site.",
              "When someone enters the checkout flow on an advertiser site.",
              "The start of a paid subscription for a product or service.",
              "A call to indicate interest in an advertiser's offering.",
              "A lead conversion imported from an external source into Google Ads.",
              "A submission of a form on an advertiser site indicating business interest.",
              "A booking of an appointment with an advertiser's business.",
              "A quote or price estimate request.",
              "A search for an advertiser's business location with intention to visit.",
              "A click to an advertiser's partner's site.",
              "A call, SMS, email, chat or other type of contact to an advertiser.",
              "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.",
              "A visit to a physical store location.",
              "A sale occurring in a physical store.",
              "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\".",
              "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."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "DEFAULT",
              "PAGE_VIEW",
              "PURCHASE",
              "SIGNUP",
              "DOWNLOAD",
              "ADD_TO_CART",
              "BEGIN_CHECKOUT",
              "SUBSCRIBE_PAID",
              "PHONE_CALL_LEAD",
              "IMPORTED_LEAD",
              "SUBMIT_LEAD_FORM",
              "BOOK_APPOINTMENT",
              "REQUEST_QUOTE",
              "GET_DIRECTIONS",
              "OUTBOUND_CLICK",
              "CONTACT",
              "ENGAGEMENT",
              "STORE_VISIT",
              "STORE_SALE",
              "QUALIFIED_LEAD",
              "CONVERTED_LEAD"
            ]
          },
          "type": "array"
        },
        "attachmentType": {
          "type": "string",
          "description": "Immutable. Defines the scope where the conversion value rule set is attached.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CUSTOMER",
            "CAMPAIGN"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Attached to the customer.",
            "Attached to a campaign."
          ]
        },
        "dimensions": {
          "items": {
            "type": "string",
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "GEO_LOCATION",
              "DEVICE",
              "AUDIENCE",
              "NO_CONDITION",
              "ITINERARY"
            ],
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "Dimension for geo location.",
              "Dimension for device type.",
              "Dimension for audience.",
              "This dimension implies the rule will always apply.",
              "Dimension for itinerary."
            ]
          },
          "description": "Defines dimensions for Value Rule conditions. The condition types of value rules within this value rule set must be of these dimensions. The first entry in this list is the primary dimension of the included value rules. When using value rule primary dimension segmentation, conversion values will be segmented into the values adjusted by value rules and the original values, if some value rules apply.",
          "type": "array"
        },
        "id": {
          "readOnly": true,
          "description": "Output only. The ID of the conversion value rule set.",
          "type": "string",
          "format": "int64"
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__CustomerManagerLink": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__CustomerManagerLink",
      "properties": {
        "managerCustomer": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The manager customer linked to the customer."
        },
        "resourceName": {
          "description": "Immutable. Name of the resource. CustomerManagerLink resource names have the form: `customers/{customer_id}/customerManagerLinks/{manager_customer_id}~{manager_link_id}`",
          "type": "string"
        },
        "status": {
          "description": "Status of the link between the customer and the manager.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ACTIVE",
            "INACTIVE",
            "PENDING",
            "REFUSED",
            "CANCELED"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Indicates current in-effect relationship",
            "Indicates terminated relationship",
            "Indicates relationship has been requested by manager, but the client hasn't accepted yet.",
            "Relationship was requested by the manager, but the client has refused.",
            "Indicates relationship has been requested by manager, but manager canceled it."
          ],
          "type": "string"
        },
        "managerLinkId": {
          "format": "int64",
          "description": "Output only. ID of the customer-manager link. This field is read only.",
          "type": "string",
          "readOnly": true
        }
      },
      "description": "Represents customer-manager link relationship."
    },
    "GoogleAdsGoogleadsV23Resources__AssetGroup": {
      "id": "GoogleAdsGoogleadsV23Resources__AssetGroup",
      "description": "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": "object",
      "properties": {
        "name": {
          "description": "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.",
          "type": "string"
        },
        "adStrength": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Overall ad strength of this asset group.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The ad strength is currently pending.",
            "No ads could be generated.",
            "Poor strength.",
            "Average strength.",
            "Good strength.",
            "Excellent strength."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PENDING",
            "NO_ADS",
            "POOR",
            "AVERAGE",
            "GOOD",
            "EXCELLENT"
          ]
        },
        "assetCoverage": {
          "description": "Output only. The asset coverage of this asset group.",
          "$ref": "GoogleAdsGoogleadsV23Resources__AssetCoverage",
          "readOnly": true
        },
        "campaign": {
          "description": "Immutable. The campaign with which this asset group is associated. The asset which is linked to the asset group.",
          "type": "string"
        },
        "primaryStatusReasons": {
          "description": "Output only. Provides reasons into why an asset group is not serving or not serving optimally. It will be empty when the asset group is serving without issues.",
          "type": "array",
          "readOnly": true,
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "The user-specified asset group status is paused. Contributes to AssetGroupPrimaryStatus.PAUSED",
              "The user-specified asset group status is removed. Contributes to AssetGroupPrimaryStatus.REMOVED.",
              "The user-specified campaign status is removed. Contributes to AssetGroupPrimaryStatus.NOT_ELIGIBLE.",
              "The user-specified campaign status is paused. Contributes to AssetGroupPrimaryStatus.NOT_ELIGIBLE.",
              "The user-specified time for this campaign to start is in the future. Contributes to AssetGroupPrimaryStatus.NOT_ELIGIBLE.",
              "The user-specified time for this campaign to end has passed. Contributes to AssetGroupPrimaryStatus.NOT_ELIGIBLE.",
              "The asset group is approved but only serves in limited capacity due to policies. Contributes to AssetGroupPrimaryStatus.LIMITED.",
              "The asset group has been marked as disapproved. Contributes to AssetGroupPrimaryStatus.NOT_ELIGIBLE.",
              "The asset group has not completed policy review. Contributes to AssetGroupPrimaryStatus.PENDING."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "ASSET_GROUP_PAUSED",
              "ASSET_GROUP_REMOVED",
              "CAMPAIGN_REMOVED",
              "CAMPAIGN_PAUSED",
              "CAMPAIGN_PENDING",
              "CAMPAIGN_ENDED",
              "ASSET_GROUP_LIMITED",
              "ASSET_GROUP_DISAPPROVED",
              "ASSET_GROUP_UNDER_REVIEW"
            ]
          }
        },
        "primaryStatus": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset group is eligible to serve.",
            "The asset group is paused.",
            "The asset group is removed.",
            "The asset group is not eligible to serve.",
            "The asset group has limited servability.",
            "The asset group is pending approval and may serve in the future."
          ],
          "description": "Output only. The primary status of the asset group. Provides insights into why an asset group is not serving or not serving optimally.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ELIGIBLE",
            "PAUSED",
            "REMOVED",
            "NOT_ELIGIBLE",
            "LIMITED",
            "PENDING"
          ],
          "readOnly": true,
          "type": "string"
        },
        "finalMobileUrls": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "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."
        },
        "path2": {
          "type": "string",
          "description": "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."
        },
        "status": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "PAUSED",
            "REMOVED"
          ],
          "type": "string",
          "enumDescriptions": [
            "The status has not been specified.",
            "The received value is not known in this version.",
            "The asset group is enabled.",
            "The asset group is paused.",
            "The asset group is removed."
          ],
          "description": "The status of the asset group."
        },
        "path1": {
          "type": "string",
          "description": "First part of text that may appear appended to the url displayed in the ad."
        },
        "id": {
          "type": "string",
          "description": "Output only. The ID of the asset group.",
          "format": "int64",
          "readOnly": true
        },
        "resourceName": {
          "description": "Immutable. The resource name of the asset group. Asset group resource names have the form: `customers/{customer_id}/assetGroups/{asset_group_id}`",
          "type": "string"
        },
        "finalUrls": {
          "items": {
            "type": "string"
          },
          "description": "A list of final URLs after all cross domain redirects. In performance max, by default, the urls are eligible for expansion unless opted out.",
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources_Campaign_TrackingSetting": {
      "type": "object",
      "description": "Campaign-level settings for tracking information.",
      "properties": {
        "trackingUrl": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The url used for dynamic tracking."
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources_Campaign_TrackingSetting"
    },
    "GoogleAdsGoogleadsV23Services__MutateSharedSetsResponse": {
      "properties": {
        "results": {
          "type": "array",
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateSharedSetResult"
          }
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateSharedSetsResponse",
      "description": "Response message for a shared set mutate."
    },
    "GoogleAdsGoogleadsV23Services__SuggestBrandsRequest": {
      "type": "object",
      "description": "Request message for BrandSuggestionService.SuggestBrands.",
      "id": "GoogleAdsGoogleadsV23Services__SuggestBrandsRequest",
      "properties": {
        "brandPrefix": {
          "description": "Required. The prefix of a brand name.",
          "type": "string"
        },
        "selectedBrands": {
          "type": "array",
          "description": "Optional. Ids of the brands already selected by advertisers. They will be excluded in response. These are expected to be brand ids not brand names.",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV23Services_SuggestGeoTargetConstantsRequest_GeoTargets": {
      "properties": {
        "geoTargetConstants": {
          "description": "A list of geo target constant resource names.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services_SuggestGeoTargetConstantsRequest_GeoTargets",
      "type": "object",
      "description": "A list of geo target constant resource names."
    },
    "GoogleAdsGoogleadsV23Services__SessionAttributesKeyValuePairs": {
      "id": "GoogleAdsGoogleadsV23Services__SessionAttributesKeyValuePairs",
      "type": "object",
      "properties": {
        "keyValuePairs": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__SessionAttributeKeyValuePair"
          },
          "description": "Required. The session attributes for the conversion."
        }
      },
      "description": "Contains session attributes of the conversion, represented as key-value pairs."
    },
    "GoogleAdsGoogleadsV23Services__MutateUserListCustomerTypeResult": {
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateUserListCustomerTypeResult",
      "description": "The result for the user list customer type mutate.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources_Recommendation_TargetRoasOptInRecommendation": {
      "id": "GoogleAdsGoogleadsV23Resources_Recommendation_TargetRoasOptInRecommendation",
      "type": "object",
      "properties": {
        "requiredCampaignBudgetAmountMicros": {
          "description": "Output only. The minimum campaign budget, in local currency for the account, required to achieve the target ROAS. Amount is specified in micros, where one million is equivalent to one currency unit.",
          "format": "int64",
          "type": "string",
          "readOnly": true
        },
        "recommendedTargetRoas": {
          "format": "double",
          "type": "number",
          "readOnly": true,
          "description": "Output only. The recommended target ROAS (revenue per unit of spend). The value is between 0.01 and 1000.0, inclusive."
        }
      },
      "description": "The Target ROAS opt-in recommendation."
    },
    "GoogleAdsGoogleadsV23Services__EnableOperation": {
      "description": "A single enable operation of a campaign.",
      "type": "object",
      "properties": {
        "mainColor": {
          "description": "Optional. Hex code representation of the main brand color, for example #00ff00. main_color is required when accent color is specified.",
          "type": "string"
        },
        "brandAssets": {
          "$ref": "GoogleAdsGoogleadsV23Services__BrandCampaignAssets",
          "description": "Optional. The brand assets linked to the campaign. This field is required when the value of auto_populate_brand_assets is false."
        },
        "campaign": {
          "description": "Required. The resource name of the campaign to enable.",
          "type": "string"
        },
        "accentColor": {
          "type": "string",
          "description": "Optional. Hex code representation of the accent brand color, for example #00ff00. accent_color is required when main_color is specified."
        },
        "autoPopulateBrandAssets": {
          "type": "boolean",
          "description": "Required. The switch to automatically populate top-performing brand assets. This field is required. If true, top-performing brand assets will be automatically populated. If false, the brand_assets field is required."
        },
        "fontFamily": {
          "description": "Optional. The font family is specified as a string, and must be one of the following: \"Open Sans\", \"Roboto\", \"Roboto Slab\", \"Montserrat\", \"Poppins\", \"Lato\", \"Oswald\", or \"Playfair Display\".",
          "type": "string"
        },
        "finalUriDomain": {
          "description": "Optional. The domain of the final uri.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__EnableOperation"
    },
    "GoogleAdsGoogleadsV23Resources__AndroidPrivacySharedKeyGoogleCampaign": {
      "type": "object",
      "description": "An Android privacy shared key view for Google campaign key.",
      "id": "GoogleAdsGoogleadsV23Resources__AndroidPrivacySharedKeyGoogleCampaign",
      "properties": {
        "sharedCampaignKey": {
          "type": "string",
          "description": "Output only. 128 bit hex string of the encoded shared campaign key, including a '0x' prefix. This key can be used to do a bitwise OR operator with the aggregate conversion key to create a full aggregation key to retrieve the Aggregate API Report in Android Privacy Sandbox.",
          "readOnly": true
        },
        "androidPrivacyInteractionDate": {
          "type": "string",
          "description": "Output only. The interaction date used in the shared key encoding in the format of \"YYYY-MM-DD\" in UTC timezone.",
          "readOnly": true
        },
        "campaignId": {
          "description": "Output only. The campaign ID used in the share key encoding.",
          "format": "int64",
          "type": "string",
          "readOnly": true
        },
        "androidPrivacyInteractionType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CLICK",
            "ENGAGED_VIEW",
            "VIEW"
          ],
          "description": "Output only. The interaction type enum used in the share key encoding.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "The physical click interaction type.",
            "The 10 seconds engaged view interaction type.",
            "The view (ad impression) interaction type."
          ],
          "type": "string"
        },
        "resourceName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the Android privacy shared key. Android privacy shared key resource names have the form: `customers/{customer_id}/androidPrivacySharedKeyGoogleCampaigns/{campaign_id}~{android_privacy_interaction_type}~{android_privacy_interaction_date(yyyy-mm-dd)}`"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_CalloutAssetParameters": {
      "description": "Parameters to use when applying callout asset recommendations.",
      "properties": {
        "adAssetApplyParameters": {
          "description": "Required. Callout assets to be added. This is a required field.",
          "$ref": "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_AdAssetApplyParameters"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_CalloutAssetParameters",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__MobileApplicationInfo": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__MobileApplicationInfo",
      "properties": {
        "appId": {
          "description": "A string that uniquely identifies a mobile application to Google Ads API. The format of this string is \"{platform}-{platform_native_id}\", where platform is \"1\" for iOS apps and \"2\" for Android apps, and where platform_native_id is the mobile application identifier native to the corresponding platform. For iOS, this native identifier is the 9 digit string that appears at the end of an App Store URL (for example, \"476943146\" for \"Flood-It! 2\" whose App Store link is \"http://itunes.apple.com/us/app/flood-it!-2/id476943146\"). For Android, this native identifier is the application's package name (for example, \"com.labpixies.colordrips\" for \"Color Drips\" given Google Play link \"https://play.google.com/store/apps/details?id=com.labpixies.colordrips\"). A well formed app id for Google Ads API would thus be \"1-476943146\" for iOS and \"2-com.labpixies.colordrips\" for Android. This field is required and must be set in CREATE operations.",
          "type": "string"
        },
        "name": {
          "description": "Name of this mobile application.",
          "type": "string"
        }
      },
      "description": "A mobile application criterion."
    },
    "GoogleAdsGoogleadsV23Services__ListPlannableLocationsResponse": {
      "properties": {
        "plannableLocations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__PlannableLocation"
          },
          "description": "The list of locations available for planning. See https://developers.google.com/google-ads/api/reference/data/geotargets for sample locations.",
          "type": "array"
        }
      },
      "description": "The list of plannable locations.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__ListPlannableLocationsResponse"
    },
    "GoogleAdsGoogleadsV23Services__MutateConversionValueRuleResult": {
      "description": "The result for the conversion value rule mutate.",
      "properties": {
        "conversionValueRule": {
          "description": "The mutated conversion value rule with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV23Resources__ConversionValueRule"
        },
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateConversionValueRuleResult",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources_Recommendation_PerformanceMaxFinalUrlOptInRecommendation": {
      "properties": {},
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources_Recommendation_PerformanceMaxFinalUrlOptInRecommendation",
      "description": "Recommendation to turn on Final URL expansion for your Performance Max campaigns."
    },
    "GoogleAdsGoogleadsV23Resources__BatchJob": {
      "description": "A list of mutates being processed asynchronously. The mutates are uploaded by the user. The mutates themselves aren't readable and the results of the job can only be read using BatchJobService.ListBatchJobResults.",
      "id": "GoogleAdsGoogleadsV23Resources__BatchJob",
      "type": "object",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the batch job. Batch job resource names have the form: `customers/{customer_id}/batchJobs/{batch_job_id}`"
        },
        "longRunningOperation": {
          "description": "Output only. The resource name of the long-running operation that can be used to poll for completion. Only set when the batch job status is RUNNING or DONE.",
          "readOnly": true,
          "type": "string"
        },
        "id": {
          "readOnly": true,
          "description": "Output only. ID of this batch job.",
          "format": "int64",
          "type": "string"
        },
        "status": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The job is not currently running.",
            "The job is running.",
            "The job is done."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PENDING",
            "RUNNING",
            "DONE"
          ],
          "description": "Output only. Status of this batch job.",
          "type": "string",
          "readOnly": true
        },
        "nextAddSequenceToken": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The next sequence token to use when adding operations. Only set when the batch job status is PENDING."
        },
        "metadata": {
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV23Resources_BatchJob_BatchJobMetadata",
          "description": "Output only. Contains additional information about this batch job."
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__IncomeRangeView": {
      "description": "An income range view.",
      "properties": {
        "resourceName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the income range view. Income range view resource names have the form: `customers/{customer_id}/incomeRangeViews/{ad_group_id}~{criterion_id}`"
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__IncomeRangeView",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__BillingSetupOperation": {
      "properties": {
        "create": {
          "description": "Creates a billing setup. No resource name is expected for the new billing setup.",
          "$ref": "GoogleAdsGoogleadsV23Resources__BillingSetup"
        },
        "remove": {
          "description": "Resource name of the billing setup to remove. A setup cannot be removed unless it is in a pending state or its scheduled start time is in the future. The resource name looks like `customers/{customer_id}/billingSetups/{billing_id}`.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__BillingSetupOperation",
      "type": "object",
      "description": "A single operation on a billing setup, which describes the cancellation of an existing billing setup."
    },
    "GoogleAdsGoogleadsV23Resources__OfflineConversionUploadClientSummary": {
      "description": "Offline conversion upload summary at customer level.",
      "properties": {
        "dailySummaries": {
          "readOnly": true,
          "type": "array",
          "description": "Output only. Summary of history stats by last N days.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Resources__OfflineConversionSummary"
          }
        },
        "pendingEventCount": {
          "readOnly": true,
          "description": "Output only. Total count of pending uploaded events.",
          "format": "int64",
          "type": "string"
        },
        "resourceName": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The resource name of the offline conversion upload summary at customer level. Offline conversion upload client summary resource names have the form: `customers/{customer_id}/offlineConversionUploadClientSummaries/{client}`"
        },
        "pendingRate": {
          "type": "number",
          "readOnly": true,
          "format": "double",
          "description": "Output only. The ratio of total pending events to total events."
        },
        "status": {
          "readOnly": true,
          "description": "Output only. Overall status for offline conversion client summary. Status is generated from most recent calendar day with upload stats.",
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EXCELLENT",
            "GOOD",
            "NEEDS_ATTENTION",
            "NO_RECENT_UPLOAD"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Your offline data ingestion setup is active and optimal for downstream processing.",
            "Your offline ingestion setup is active, but there are further improvements you could make. See alerts.",
            "Your offline ingestion setup is active, but there are errors that require your attention. See alerts.",
            "Your offline ingestion setup has not received data in the last 28 days, there may be something wrong."
          ]
        },
        "lastUploadDateTime": {
          "description": "Output only. Date for the latest upload batch. The format is \"yyyy-mm-dd hh:mm:ss\", and it's in the time zone of the Google Ads account.",
          "type": "string",
          "readOnly": true
        },
        "client": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "GOOGLE_ADS_API",
            "GOOGLE_ADS_WEB_CLIENT",
            "ADS_DATA_CONNECTOR"
          ],
          "readOnly": true,
          "type": "string",
          "description": "Output only. Client type of the upload event.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Google Ads API.",
            "Google Ads web client, which could include multiple sources like Ads UI, SFTP, etc.",
            "Connection platform."
          ]
        },
        "successRate": {
          "format": "double",
          "type": "number",
          "readOnly": true,
          "description": "Output only. Successful rate."
        },
        "successfulEventCount": {
          "description": "Output only. Total count of successful uploaded events.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "jobSummaries": {
          "type": "array",
          "readOnly": true,
          "description": "Output only. Summary of history stats by last N jobs.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Resources__OfflineConversionSummary"
          }
        },
        "alerts": {
          "type": "array",
          "readOnly": true,
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Resources__OfflineConversionAlert"
          },
          "description": "Output only. Details for each error code. Alerts are generated from most recent calendar day with upload stats."
        },
        "totalEventCount": {
          "description": "Output only. Total count of uploaded events.",
          "format": "int64",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__OfflineConversionUploadClientSummary",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__PerStoreView": {
      "type": "object",
      "description": "A per store view. This view provides per store impression reach and local action conversion stats for advertisers.",
      "id": "GoogleAdsGoogleadsV23Resources__PerStoreView",
      "properties": {
        "resourceName": {
          "description": "Output only. The resource name of the per store view. Per Store view resource names have the form: `customers/{customer_id}/perStoreViews/{place_id}`",
          "type": "string",
          "readOnly": true
        },
        "postalCode": {
          "description": "Output only. The postal code of the store's address.",
          "readOnly": true,
          "type": "string"
        },
        "address2": {
          "description": "Output only. Second line of the store's address.",
          "readOnly": true,
          "type": "string"
        },
        "city": {
          "type": "string",
          "description": "Output only. The city where the store is located.",
          "readOnly": true
        },
        "address1": {
          "readOnly": true,
          "description": "Output only. First line of the store's address.",
          "type": "string"
        },
        "placeId": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The place ID of the per store view."
        },
        "province": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The province or state of the store's address."
        },
        "countryCode": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The two-letter country code for the store's location (e.g., \"US\")."
        },
        "businessName": {
          "description": "Output only. The name of the business.",
          "type": "string",
          "readOnly": true
        },
        "phoneNumber": {
          "description": "Output only. The phone number of the store.",
          "type": "string",
          "readOnly": true
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__FrequencyCapEntry": {
      "description": "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": "object",
      "id": "GoogleAdsGoogleadsV23Common__FrequencyCapEntry",
      "properties": {
        "cap": {
          "description": "Maximum number of events allowed during the time range by this cap.",
          "type": "integer",
          "format": "int32"
        },
        "key": {
          "description": "The key of a particular frequency cap. There can be no more than one frequency cap with the same key.",
          "$ref": "GoogleAdsGoogleadsV23Common__FrequencyCapKey"
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__DynamicCustomAsset": {
      "type": "object",
      "description": "A dynamic custom asset.",
      "properties": {
        "contextualKeywords": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Contextual keywords, for example, Sedans, 4 door sedans."
        },
        "price": {
          "type": "string",
          "description": "Price which can be number followed by the alphabetic currency code, ISO 4217 standard. Use '.' as the decimal mark, for example, 20,000.00 USD."
        },
        "id": {
          "type": "string",
          "description": "Required. ID which can be any sequence of letters and digits, and must be unique and match the values of remarketing tag, for example, sedan. Required."
        },
        "itemAddress": {
          "type": "string",
          "description": "Item address which can be specified in one of the following formats. (1) City, state, code, country, for example, Mountain View, CA, USA. (2) Full address, for example, 123 Boulevard St, Mountain View, CA 94043. (3) Latitude-longitude in the DDD format, for example, 41.40338, 2.17403"
        },
        "id2": {
          "type": "string",
          "description": "ID2 which can be any sequence of letters and digits, for example, red. ID sequence (ID + ID2) must be unique."
        },
        "iosAppLink": {
          "description": "iOS deep link, for example, exampleApp://content/page.",
          "type": "string"
        },
        "formattedSalePrice": {
          "type": "string",
          "description": "Formatted sale price which can be any characters. If set, this attribute will be used instead of 'sale price', for example, On sale for $15,000.00."
        },
        "itemSubtitle": {
          "type": "string",
          "description": "Item subtitle, for example, At your Mountain View dealership."
        },
        "similarIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Similar IDs."
        },
        "itemTitle": {
          "description": "Required. Item title, for example, Mid-size sedan. Required.",
          "type": "string"
        },
        "iosAppStoreId": {
          "description": "iOS app store ID. This is used to check if the user has the app installed on their device before deep linking. If this field is set, then the ios_app_link field must also be present.",
          "format": "int64",
          "type": "string"
        },
        "imageUrl": {
          "type": "string",
          "description": "Image URL, for example, http://www.example.com/image.png. The image will not be uploaded as image asset."
        },
        "androidAppLink": {
          "type": "string",
          "description": "Android deep link, for example, android-app://com.example.android/http/example.com/gizmos?1234."
        },
        "itemCategory": {
          "description": "Item category, for example, Sedans.",
          "type": "string"
        },
        "formattedPrice": {
          "description": "Formatted price which can be any characters. If set, this attribute will be used instead of 'price', for example, Starting at $20,000.00.",
          "type": "string"
        },
        "itemDescription": {
          "type": "string",
          "description": "Item description, for example, Best selling mid-size car."
        },
        "salePrice": {
          "description": "Sale price which can be number followed by the alphabetic currency code, ISO 4217 standard. Use '.' as the decimal mark, for example, 15,000.00 USD. Must be less than the 'price' field.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__DynamicCustomAsset"
    },
    "GoogleAdsGoogleadsV23Services__MutateBiddingStrategiesRequest": {
      "type": "object",
      "properties": {
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "operations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__BiddingStrategyOperation"
          },
          "description": "Required. The list of operations to perform on individual bidding strategies.",
          "type": "array"
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "responseContentType": {
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "type": "string"
        }
      },
      "description": "Request message for BiddingStrategyService.MutateBiddingStrategies.",
      "id": "GoogleAdsGoogleadsV23Services__MutateBiddingStrategiesRequest"
    },
    "GoogleAdsGoogleadsV23Resources_Recommendation_SitelinkAssetRecommendation": {
      "properties": {
        "recommendedCustomerSitelinkAssets": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Resources__Asset"
          },
          "type": "array",
          "description": "Output only. New sitelink assets recommended at the customer level.",
          "readOnly": true
        },
        "recommendedCampaignSitelinkAssets": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Resources__Asset"
          },
          "description": "Output only. New sitelink assets recommended at the campaign level.",
          "readOnly": true
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources_Recommendation_SitelinkAssetRecommendation",
      "description": "The sitelink asset recommendation.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__HotelImageAsset": {
      "description": "A single image asset suggestion for a hotel.",
      "properties": {
        "assetFieldType": {
          "description": "The Image asset type. For example, MARKETING_IMAGE, PORTRAIT_MARKETING_IMAGE, etc.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is linked for use as a headline.",
            "The asset is linked for use as a description.",
            "The asset is linked for use as mandatory ad text.",
            "The asset is linked for use as a marketing image.",
            "The asset is linked for use as a media bundle.",
            "The asset is linked for use as a YouTube video.",
            "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
            "The asset is linked for use as a Lead Form extension.",
            "The asset is linked for use as a Promotion extension.",
            "The asset is linked for use as a Callout extension.",
            "The asset is linked for use as a Structured Snippet extension.",
            "The asset is linked for use as a Sitelink.",
            "The asset is linked for use as a Mobile App extension.",
            "The asset is linked for use as a Hotel Callout extension.",
            "The asset is linked for use as a Call extension.",
            "The asset is linked for use as a Price extension.",
            "The asset is linked for use as a long headline.",
            "The asset is linked for use as a business name.",
            "The asset is linked for use as a square marketing image.",
            "The asset is linked for use as a portrait marketing image.",
            "The asset is linked for use as a logo.",
            "The asset is linked for use as a landscape logo.",
            "The asset is linked for use as a non YouTube logo.",
            "The asset is linked for use to select a call-to-action.",
            "The asset is linked for use to select an ad image.",
            "The asset is linked for use as a business logo.",
            "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
            "The asset is linked for use as a Demand Gen carousel card.",
            "The asset is linked for use as a Business Message.",
            "The asset is linked for use as a tall portrait marketing image.",
            "The asset is linked for use as related YouTube videos.",
            "The asset is linked for use as a landing page preview image.",
            "The asset is linked for use as a long description.",
            "The asset is linked for use as a call-to-action."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE",
            "DESCRIPTION",
            "MANDATORY_AD_TEXT",
            "MARKETING_IMAGE",
            "MEDIA_BUNDLE",
            "YOUTUBE_VIDEO",
            "BOOK_ON_GOOGLE",
            "LEAD_FORM",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "LONG_HEADLINE",
            "BUSINESS_NAME",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "VIDEO",
            "CALL_TO_ACTION_SELECTION",
            "AD_IMAGE",
            "BUSINESS_LOGO",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "TALL_PORTRAIT_MARKETING_IMAGE",
            "RELATED_YOUTUBE_VIDEOS",
            "LANDING_PAGE_PREVIEW",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION"
          ]
        },
        "uri": {
          "description": "URI for the image.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__HotelImageAsset",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateRecommendationSubscriptionResponse": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateRecommendationSubscriptionResponse",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors) we return the RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateRecommendationSubscriptionResult"
          },
          "description": "Results, one per operation."
        }
      },
      "description": "Response message for RecommendationSubscriptionService.MutateRecommendationSubscription"
    },
    "GoogleAdsGoogleadsV23Services__ListBenchmarksLocationsRequest": {
      "properties": {
        "applicationInfo": {
          "description": "Additional information on the application issuing the request.",
          "$ref": "GoogleAdsGoogleadsV23Common__AdditionalApplicationInfo"
        }
      },
      "description": "Request message for BenchmarksService.ListBenchmarksLocations.",
      "id": "GoogleAdsGoogleadsV23Services__ListBenchmarksLocationsRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__ThirdPartyAppAnalyticsLinkIdentifier": {
      "properties": {
        "appAnalyticsProviderId": {
          "description": "Immutable. The ID of the app analytics provider. This field should not be empty when creating a new third party app analytics link. It is unable to be modified after the creation of the link.",
          "format": "int64",
          "type": "string"
        },
        "appId": {
          "description": "Immutable. A string that uniquely identifies a mobile application from which the data was collected to the Google Ads API. For iOS, the ID string is the 9 digit string that appears at the end of an App Store URL (for example, \"422689480\" for \"Gmail\" whose App Store link is https://apps.apple.com/us/app/gmail-email-by-google/id422689480). For Android, the ID string is the application's package name (for example, \"com.google.android.gm\" for \"Gmail\" given Google Play link https://play.google.com/store/apps/details?id=com.google.android.gm) This field should not be empty when creating a new third party app analytics link. It is unable to be modified after the creation of the link.",
          "type": "string"
        },
        "appVendor": {
          "description": "Immutable. The vendor of the app. This field should not be empty when creating a new third party app analytics link. It is unable to be modified after the creation of the link.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Mobile app vendor for Apple app store.",
            "Mobile app vendor for Google app store."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "APPLE_APP_STORE",
            "GOOGLE_APP_STORE"
          ],
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__ThirdPartyAppAnalyticsLinkIdentifier",
      "description": "The identifiers of a Third Party App Analytics Link."
    },
    "GoogleAdsGoogleadsV23Services__CampaignBidModifierOperation": {
      "description": "A single operation (create, remove, update) on a campaign bid modifier.",
      "type": "object",
      "properties": {
        "update": {
          "description": "Update operation: The campaign bid modifier is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV23Resources__CampaignBidModifier"
        },
        "updateMask": {
          "type": "string",
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask"
        },
        "remove": {
          "description": "Remove operation: A resource name for the removed campaign bid modifier is expected, in this format: `customers/{customer_id}/CampaignBidModifiers/{campaign_id}~{criterion_id}`",
          "type": "string"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new campaign bid modifier.",
          "$ref": "GoogleAdsGoogleadsV23Resources__CampaignBidModifier"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__CampaignBidModifierOperation"
    },
    "GoogleAdsGoogleadsV23Services__MutateAdGroupCustomizerResult": {
      "properties": {
        "adGroupCustomizer": {
          "description": "The mutated AdGroupCustomizer with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV23Resources__AdGroupCustomizer"
        },
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      },
      "type": "object",
      "description": "The result for the ad group customizer mutate.",
      "id": "GoogleAdsGoogleadsV23Services__MutateAdGroupCustomizerResult"
    },
    "GoogleAdsGoogleadsV23Services__RemoveAutomaticallyCreatedAssetsRequest": {
      "id": "GoogleAdsGoogleadsV23Services__RemoveAutomaticallyCreatedAssetsRequest",
      "description": "Request message for AdGroupAdService.RemoveAutomaticallyCreatedAssets.",
      "type": "object",
      "properties": {
        "assetsWithFieldType": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__AssetsWithFieldType"
          },
          "description": "Required. List of assets with field type to be removed from the AdGroupAd."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__CustomerUserAccessInvitationOperation": {
      "id": "GoogleAdsGoogleadsV23Services__CustomerUserAccessInvitationOperation",
      "description": "A single operation (create or remove) on customer user access invitation.",
      "type": "object",
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new access invitation.",
          "$ref": "GoogleAdsGoogleadsV23Resources__CustomerUserAccessInvitation"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the revoke invitation is expected, in this format: `customers/{customer_id}/customerUserAccessInvitations/{invitation_id}`"
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources_Recommendation_UpgradeSmartShoppingCampaignToPerformanceMaxRecommendation": {
      "description": "The upgrade a Smart Shopping campaign to a Performance Max campaign recommendation.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources_Recommendation_UpgradeSmartShoppingCampaignToPerformanceMaxRecommendation",
      "properties": {
        "salesCountryCode": {
          "type": "string",
          "description": "Output only. Country whose products from merchant's inventory should be included.",
          "readOnly": true
        },
        "merchantId": {
          "description": "Output only. ID of Merchant Center account.",
          "readOnly": true,
          "type": "string",
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateAssetGroupListingGroupFiltersRequest": {
      "properties": {
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "operations": {
          "type": "array",
          "description": "Required. The list of operations to perform on individual asset group listing group filters.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__AssetGroupListingGroupFilterOperation"
          }
        },
        "responseContentType": {
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ]
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateAssetGroupListingGroupFiltersRequest",
      "description": "Request message for AssetGroupListingGroupFilterService.MutateAssetGroupListingGroupFilters. partial_failure is not supported because the tree needs to be validated together."
    },
    "GoogleAdsGoogleadsV23Resources__ConversionTrackingSetting": {
      "type": "object",
      "description": "A collection of customer-wide settings related to Google Ads Conversion Tracking.",
      "properties": {
        "conversionTrackingId": {
          "format": "int64",
          "readOnly": true,
          "description": "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.",
          "type": "string"
        },
        "acceptedCustomerDataTerms": {
          "description": "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.",
          "readOnly": true,
          "type": "boolean"
        },
        "conversionTrackingStatus": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Customer does not use any conversion tracking.",
            "The conversion actions are created and managed by this customer.",
            "The conversion actions are created and managed by the manager specified in the request's `login-customer-id`.",
            "The conversion actions are created and managed by a manager different from the customer or manager specified in the request's `login-customer-id`."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NOT_CONVERSION_TRACKED",
            "CONVERSION_TRACKING_MANAGED_BY_SELF",
            "CONVERSION_TRACKING_MANAGED_BY_THIS_MANAGER",
            "CONVERSION_TRACKING_MANAGED_BY_ANOTHER_MANAGER"
          ],
          "description": "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.",
          "readOnly": true
        },
        "enhancedConversionsForLeadsEnabled": {
          "readOnly": true,
          "description": "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.",
          "type": "boolean"
        },
        "googleAdsConversionCustomer": {
          "description": "The resource name of the customer where conversions are created and managed. This field is read-only.",
          "type": "string"
        },
        "crossAccountConversionTrackingId": {
          "format": "int64",
          "readOnly": true,
          "description": "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. This field can only be managed through the Google Ads UI. This field is read-only.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__ConversionTrackingSetting"
    },
    "GoogleAdsGoogleadsV23Common__DemandGenCarouselAdInfo": {
      "id": "GoogleAdsGoogleadsV23Common__DemandGenCarouselAdInfo",
      "description": "A Demand Gen carousel ad.",
      "properties": {
        "headline": {
          "description": "Required. Headline of the ad.",
          "$ref": "GoogleAdsGoogleadsV23Common__AdTextAsset"
        },
        "logoImage": {
          "description": "Required. Logo image to be used in the ad. The minimum size is 128x128 and the aspect ratio must be 1:1 (+-1%).",
          "$ref": "GoogleAdsGoogleadsV23Common__AdImageAsset"
        },
        "carouselCards": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdDemandGenCarouselCardAsset"
          },
          "description": "Required. Carousel cards that will display with the ad. Min 2 max 10."
        },
        "callToActionText": {
          "type": "string",
          "description": "Call to action text."
        },
        "description": {
          "description": "Required. The descriptive text of the ad.",
          "$ref": "GoogleAdsGoogleadsV23Common__AdTextAsset"
        },
        "businessName": {
          "description": "Required. The Advertiser/brand name.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateConversionCustomVariablesResponse": {
      "type": "object",
      "description": "Response message for ConversionCustomVariableService.MutateConversionCustomVariables.",
      "properties": {
        "partialFailureError": {
          "$ref": "GoogleRpc__Status",
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error."
        },
        "results": {
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateConversionCustomVariableResult"
          },
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateConversionCustomVariablesResponse"
    },
    "GoogleAdsGoogleadsV23Services__ConversionValueRuleOperation": {
      "id": "GoogleAdsGoogleadsV23Services__ConversionValueRuleOperation",
      "type": "object",
      "description": "A single operation (create, update, remove) on a conversion value rule.",
      "properties": {
        "remove": {
          "description": "Remove operation: A resource name for the removed conversion value rule is expected, in this format: `customers/{customer_id}/conversionValueRules/{conversion_value_rule_id}`",
          "type": "string"
        },
        "update": {
          "description": "Update operation: The conversion value rule is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV23Resources__ConversionValueRule"
        },
        "updateMask": {
          "format": "google-fieldmask",
          "type": "string",
          "description": "FieldMask that determines which resource fields are modified in an update."
        },
        "create": {
          "$ref": "GoogleAdsGoogleadsV23Resources__ConversionValueRule",
          "description": "Create operation: No resource name is expected for the new conversion value rule."
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__LandingPageView": {
      "type": "object",
      "description": "A landing page view with metrics aggregated at the unexpanded final URL level.",
      "properties": {
        "resourceName": {
          "description": "Output only. The resource name of the landing page view. Landing page view resource names have the form: `customers/{customer_id}/landingPageViews/{unexpanded_final_url_fingerprint}`",
          "type": "string",
          "readOnly": true
        },
        "unexpandedFinalUrl": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The advertiser-specified final URL."
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__LandingPageView"
    },
    "GoogleAdsGoogleadsV23Resources__AdGroupSimulation": {
      "properties": {
        "startDate": {
          "readOnly": true,
          "description": "Output only. First day on which the simulation is based, in YYYY-MM-DD format.",
          "type": "string"
        },
        "type": {
          "description": "Output only. The field that the simulation modifies.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The simulation is for a CPC bid.",
            "The simulation is for a CPV bid.",
            "The simulation is for a CPA target.",
            "The simulation is for a bid modifier.",
            "The simulation is for a ROAS target.",
            "The simulation is for a percent CPC bid.",
            "The simulation is for an impression share target.",
            "The simulation is for a budget."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CPC_BID",
            "CPV_BID",
            "TARGET_CPA",
            "BID_MODIFIER",
            "TARGET_ROAS",
            "PERCENT_CPC_BID",
            "TARGET_IMPRESSION_SHARE",
            "BUDGET"
          ],
          "type": "string"
        },
        "cpvBidPointList": {
          "description": "Output only. Simulation points if the simulation type is CPV_BID.",
          "$ref": "GoogleAdsGoogleadsV23Common__CpvBidSimulationPointList",
          "readOnly": true
        },
        "targetRoasPointList": {
          "readOnly": true,
          "description": "Output only. Simulation points if the simulation type is TARGET_ROAS.",
          "$ref": "GoogleAdsGoogleadsV23Common__TargetRoasSimulationPointList"
        },
        "adGroupId": {
          "readOnly": true,
          "format": "int64",
          "description": "Output only. Ad group id of the simulation.",
          "type": "string"
        },
        "endDate": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. Last day on which the simulation is based, in YYYY-MM-DD format"
        },
        "targetCpaPointList": {
          "description": "Output only. Simulation points if the simulation type is TARGET_CPA.",
          "$ref": "GoogleAdsGoogleadsV23Common__TargetCpaSimulationPointList",
          "readOnly": true
        },
        "modificationMethod": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. How the simulation modifies the field.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "UNIFORM",
            "DEFAULT",
            "SCALING"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The values in a simulation were applied to all children of a given resource uniformly. Overrides on child resources were not respected.",
            "The values in a simulation were applied to the given resource. Overrides on child resources were respected, and traffic estimates do not include these resources.",
            "The values in a simulation were all scaled by the same factor. For example, in a simulated TargetCpa campaign, the campaign target and all ad group targets were scaled by a factor of X."
          ]
        },
        "cpcBidPointList": {
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV23Common__CpcBidSimulationPointList",
          "description": "Output only. Simulation points if the simulation type is CPC_BID."
        },
        "resourceName": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The resource name of the ad group simulation. Ad group simulation resource names have the form: `customers/{customer_id}/adGroupSimulations/{ad_group_id}~{type}~{modification_method}~{start_date}~{end_date}`"
        }
      },
      "description": "An ad group simulation. Supported combinations of advertising channel type, simulation type and simulation modification method is detailed below respectively. 1. SEARCH - CPC_BID - DEFAULT 2. SEARCH - CPC_BID - UNIFORM 3. SEARCH - TARGET_CPA - UNIFORM 4. SEARCH - TARGET_ROAS - UNIFORM 5. DISPLAY - CPC_BID - DEFAULT 6. DISPLAY - CPC_BID - UNIFORM 7. DISPLAY - TARGET_CPA - UNIFORM",
      "id": "GoogleAdsGoogleadsV23Resources__AdGroupSimulation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Errors__ErrorCode": {
      "description": "The error reason represented by type and enum.",
      "properties": {
        "settingError": {
          "description": "The reasons for the setting error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The campaign setting is not available for this Google Ads account.",
            "The setting is not compatible with the campaign.",
            "The supplied TargetingSetting contains an invalid CriterionTypeGroup. See CriterionTypeGroup documentation for CriterionTypeGroups allowed in Campaign or AdGroup TargetingSettings.",
            "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).",
            "TargetingSetting cannot change any of the Demographic CriterionTypeGroups (AGE_RANGE, GENDER, PARENT, INCOME_RANGE) from true to false.",
            "At least one feed id should be present.",
            "The supplied DynamicSearchAdsSetting contains an invalid domain name.",
            "The supplied DynamicSearchAdsSetting contains a subdomain name.",
            "The supplied DynamicSearchAdsSetting contains an invalid language code.",
            "TargetingSettings in search campaigns should not have CriterionTypeGroup.PLACEMENT set to targetAll.",
            "The setting value is not compatible with the campaign type.",
            "Switching from observation setting to targeting setting is not allowed for Customer Match lists. See https://support.google.com/google-ads/answer/6299717."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SETTING_TYPE_IS_NOT_AVAILABLE",
            "SETTING_TYPE_IS_NOT_COMPATIBLE_WITH_CAMPAIGN",
            "TARGETING_SETTING_CONTAINS_INVALID_CRITERION_TYPE_GROUP",
            "TARGETING_SETTING_DEMOGRAPHIC_CRITERION_TYPE_GROUPS_MUST_BE_SET_TO_TARGET_ALL",
            "TARGETING_SETTING_CANNOT_CHANGE_TARGET_ALL_TO_FALSE_FOR_DEMOGRAPHIC_CRITERION_TYPE_GROUP",
            "DYNAMIC_SEARCH_ADS_SETTING_AT_LEAST_ONE_FEED_ID_MUST_BE_PRESENT",
            "DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_INVALID_DOMAIN_NAME",
            "DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_SUBDOMAIN_NAME",
            "DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_INVALID_LANGUAGE_CODE",
            "TARGET_ALL_IS_NOT_ALLOWED_FOR_PLACEMENT_IN_SEARCH_CAMPAIGN",
            "SETTING_VALUE_NOT_COMPATIBLE_WITH_CAMPAIGN",
            "BID_ONLY_IS_NOT_ALLOWED_TO_BE_MODIFIED_WITH_CUSTOMER_MATCH_TARGETING"
          ]
        },
        "shareablePreviewError": {
          "description": "The reasons for the shareable preview error.",
          "enumDescriptions": [
            "Enum unspecified.",
            "Used for return value only. Represents value unknown in this version.",
            "The maximum of 10 asset groups was exceeded.",
            "asset group does not exist under this customer."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "TOO_MANY_ASSET_GROUPS_IN_REQUEST",
            "ASSET_GROUP_DOES_NOT_EXIST_UNDER_THIS_CUSTOMER"
          ]
        },
        "idError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "ID not found"
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NOT_FOUND"
          ],
          "type": "string",
          "description": "The reasons for the id error"
        },
        "newResourceCreationError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Do not set the id field while creating new resources.",
            "Creating more than one resource with the same temp ID is not allowed.",
            "Parent resource with specified temp ID failed validation, so no validation will be done for this child resource."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CANNOT_SET_ID_FOR_CREATE",
            "DUPLICATE_TEMP_IDS",
            "TEMP_ID_RESOURCE_HAD_ERRORS"
          ],
          "type": "string",
          "description": "The reasons for the new resource creation error"
        },
        "fieldMaskError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The field mask must be provided for update operations.",
            "The field mask must be empty for create and remove operations.",
            "The field mask contained an invalid field.",
            "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."
          ],
          "type": "string",
          "description": "An error with a field mask",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "FIELD_MASK_MISSING",
            "FIELD_MASK_NOT_ALLOWED",
            "FIELD_NOT_FOUND",
            "FIELD_HAS_SUBFIELDS"
          ]
        },
        "customerManagerLinkError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "No pending invitation.",
            "Attempt to operate on the same client more than once in the same call.",
            "Manager account has the maximum number of linked accounts.",
            "If no active user on account it cannot be unlinked from its manager.",
            "Account should have at least one active owner on it before being unlinked.",
            "Only account owners may change their permission role.",
            "When a client's link to its manager is not active, the link role cannot be changed.",
            "Attempt to link a child to a parent that contains or will contain duplicate children.",
            "The authorized customer is a test account. It can add no more than the allowed number of accounts"
          ],
          "type": "string",
          "description": "The reasons for the customer manager link error",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NO_PENDING_INVITE",
            "SAME_CLIENT_MORE_THAN_ONCE_PER_CALL",
            "MANAGER_HAS_MAX_NUMBER_OF_LINKED_ACCOUNTS",
            "CANNOT_UNLINK_ACCOUNT_WITHOUT_ACTIVE_USER",
            "CANNOT_REMOVE_LAST_CLIENT_ACCOUNT_OWNER",
            "CANNOT_CHANGE_ROLE_BY_NON_ACCOUNT_OWNER",
            "CANNOT_CHANGE_ROLE_FOR_NON_ACTIVE_LINK_ACCOUNT",
            "DUPLICATE_CHILD_FOUND",
            "TEST_ACCOUNT_LINKS_TOO_MANY_CHILD_ACCOUNTS"
          ]
        },
        "billingSetupError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Cannot specify both an existing payments account and a new payments account when setting up billing.",
            "Cannot cancel an approved billing setup whose start time has passed.",
            "Cannot perform a Change of Bill-To (CBT) to the same payments account.",
            "Billing setups can only be used by customers with ENABLED or DRAFT status.",
            "Billing setups must either include a correctly formatted existing payments account id, or a non-empty new payments account name.",
            "Only billable and third-party customers can create billing setups.",
            "Billing setup creations can only use NOW for start time type.",
            "Billing setups can only be created for a third-party customer if they do not already have a setup.",
            "Billing setups cannot be created if there is already a pending billing in progress.",
            "Billing setups can only be created by customers who have permission to setup billings. Users can contact a representative for help setting up permissions.",
            "Billing setups cannot be created if there is already a future-approved billing.",
            "Requested payments profile not found.",
            "Requested payments account not found.",
            "Billing setup creation failed because the payments profile is ineligible.",
            "Billing setup creation failed because the payments account is ineligible.",
            "Billing setup creation failed because the payments profile needs internal approval.",
            "Billing setup creation failed because the user needs to accept master service agreement on the payments profile.",
            "Payments account has different currency code than the current customer and hence cannot be used to setup billing.",
            "A start time in the future cannot be used because there is currently no active billing setup for this customer.",
            "The payments account has maximum number of billing setups."
          ],
          "type": "string",
          "description": "The reasons for the billing setup error",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CANNOT_USE_EXISTING_AND_NEW_ACCOUNT",
            "CANNOT_REMOVE_STARTED_BILLING_SETUP",
            "CANNOT_CHANGE_BILLING_TO_SAME_PAYMENTS_ACCOUNT",
            "BILLING_SETUP_NOT_PERMITTED_FOR_CUSTOMER_STATUS",
            "INVALID_PAYMENTS_ACCOUNT",
            "BILLING_SETUP_NOT_PERMITTED_FOR_CUSTOMER_CATEGORY",
            "INVALID_START_TIME_TYPE",
            "THIRD_PARTY_ALREADY_HAS_BILLING",
            "BILLING_SETUP_IN_PROGRESS",
            "NO_SIGNUP_PERMISSION",
            "CHANGE_OF_BILL_TO_IN_PROGRESS",
            "PAYMENTS_PROFILE_NOT_FOUND",
            "PAYMENTS_ACCOUNT_NOT_FOUND",
            "PAYMENTS_PROFILE_INELIGIBLE",
            "PAYMENTS_ACCOUNT_INELIGIBLE",
            "CUSTOMER_NEEDS_INTERNAL_APPROVAL",
            "PAYMENTS_PROFILE_NEEDS_SERVICE_AGREEMENT_ACCEPTANCE",
            "PAYMENTS_ACCOUNT_INELIGIBLE_CURRENCY_CODE_MISMATCH",
            "FUTURE_START_TIME_PROHIBITED",
            "TOO_MANY_BILLING_SETUPS_FOR_PAYMENTS_ACCOUNT"
          ]
        },
        "requestError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "RESOURCE_NAME_MISSING",
            "RESOURCE_NAME_MALFORMED",
            "BAD_RESOURCE_ID",
            "INVALID_CUSTOMER_ID",
            "OPERATION_REQUIRED",
            "RESOURCE_NOT_FOUND",
            "INVALID_PAGE_TOKEN",
            "EXPIRED_PAGE_TOKEN",
            "INVALID_PAGE_SIZE",
            "PAGE_SIZE_NOT_SUPPORTED",
            "REQUIRED_FIELD_MISSING",
            "IMMUTABLE_FIELD",
            "TOO_MANY_MUTATE_OPERATIONS",
            "CANNOT_BE_EXECUTED_BY_MANAGER_ACCOUNT",
            "CANNOT_MODIFY_FOREIGN_FIELD",
            "INVALID_ENUM_VALUE",
            "DEVELOPER_TOKEN_PARAMETER_MISSING",
            "LOGIN_CUSTOMER_ID_PARAMETER_MISSING",
            "VALIDATE_ONLY_REQUEST_HAS_PAGE_TOKEN",
            "CANNOT_RETURN_SUMMARY_ROW_FOR_REQUEST_WITHOUT_METRICS",
            "CANNOT_RETURN_SUMMARY_ROW_FOR_VALIDATE_ONLY_REQUESTS",
            "INCONSISTENT_RETURN_SUMMARY_ROW_VALUE",
            "TOTAL_RESULTS_COUNT_NOT_ORIGINALLY_REQUESTED",
            "RPC_DEADLINE_TOO_SHORT",
            "UNSUPPORTED_VERSION",
            "CLOUD_PROJECT_NOT_FOUND"
          ],
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Resource name is required for this request.",
            "Resource name provided is malformed.",
            "Resource name provided is malformed.",
            "Customer ID is invalid.",
            "Mutate operation should have either create, update, or remove specified.",
            "Requested resource not found.",
            "Next page token specified in user request is invalid.",
            "Next page token specified in user request has expired.",
            "Page size specified in user request is invalid.",
            "Setting the page size is not supported, and will be unavailable in a future version.",
            "Required field is missing.",
            "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'.",
            "Received too many entries in request.",
            "Request cannot be executed by a manager account.",
            "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.",
            "Enum value is not permitted.",
            "The developer-token parameter is required for all requests.",
            "The login-customer-id parameter is required for this request.",
            "page_token is set in the validate only request",
            "return_summary_row cannot be enabled if request did not select any metrics field.",
            "return_summary_row should not be enabled for validate only requests.",
            "return_summary_row parameter value should be the same between requests with page_token field set and their original request.",
            "The total results count cannot be returned if it was not requested in the original request.",
            "Deadline specified by the client was too short.",
            "This API version has been sunset and is no longer supported.",
            "The Google Cloud project in the request was not found."
          ],
          "description": "An error caused by the request"
        },
        "biddingStrategyError": {
          "type": "string",
          "description": "An error with a Bidding Strategy mutate.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DUPLICATE_NAME",
            "CANNOT_CHANGE_BIDDING_STRATEGY_TYPE",
            "CANNOT_REMOVE_ASSOCIATED_STRATEGY",
            "BIDDING_STRATEGY_NOT_SUPPORTED",
            "INCOMPATIBLE_BIDDING_STRATEGY_AND_BIDDING_STRATEGY_GOAL_TYPE"
          ],
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Each bidding strategy must have a unique name.",
            "Bidding strategy type is immutable.",
            "Only bidding strategies not linked to campaigns, adgroups or adgroup criteria can be removed.",
            "The specified bidding strategy is not supported.",
            "The bidding strategy is incompatible with the campaign's bidding strategy goal type."
          ]
        },
        "adCustomizerError": {
          "description": "The reasons for the ad customizer error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Invalid date argument in countdown function.",
            "Countdown end date is in the past.",
            "Invalid locale string in countdown function.",
            "Days-before argument to countdown function is not positive.",
            "A user list referenced in an IF function does not exist."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "COUNTDOWN_INVALID_DATE_FORMAT",
            "COUNTDOWN_DATE_IN_PAST",
            "COUNTDOWN_INVALID_LOCALE",
            "COUNTDOWN_INVALID_START_DAYS_BEFORE",
            "UNKNOWN_USER_LIST"
          ],
          "type": "string"
        },
        "userDataError": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "OPERATIONS_FOR_CUSTOMER_MATCH_NOT_ALLOWED",
            "TOO_MANY_USER_IDENTIFIERS",
            "USER_LIST_NOT_APPLICABLE"
          ],
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Customer is not allowed to perform operations related to Customer Match.",
            "Maximum number of user identifiers allowed for each request is 100 and for each operation is 20.",
            "Current user list is not applicable for the given customer."
          ],
          "description": "The reasons for the user data error."
        },
        "authenticationError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Authentication of the request failed.",
            "Client customer ID is not a number.",
            "No customer found for the provided customer ID.",
            "Client's Google account is deleted.",
            "Google account login token in the cookie is invalid.",
            "A problem occurred during Google account authentication.",
            "The user in the Google account login token does not match the user ID in the cookie.",
            "Login cookie is required for authentication.",
            "The Google account that generated the OAuth access token is not associated with a Google Ads account. Create a new account, or add the Google account to an existing Google Ads account.",
            "OAuth token in the header is not valid.",
            "OAuth token in the header has expired.",
            "OAuth token in the header has been disabled.",
            "OAuth token in the header has been revoked.",
            "OAuth token HTTP header is malformed.",
            "Login cookie is not valid.",
            "The email address provided is invalid or does not exist.",
            "User ID in the header is not a valid ID.",
            "An account administrator changed this account's authentication settings. To access this Google Ads account, enable 2-Step Verification in your Google account at https://www.google.com/landing/2step.",
            "An account administrator changed this account's authentication settings. To access this Google Ads account, enable Advanced Protection in your Google account at https://landing.google.com/advancedprotection.",
            "The Cloud organization associated with the project is not recognized.",
            "The Cloud organization associated with the project is not approved for prod access.",
            "The Cloud organization associated with the project is not associated with the developer token.",
            "The developer token is not valid."
          ],
          "description": "Indicates failure to properly authenticate user.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AUTHENTICATION_ERROR",
            "CLIENT_CUSTOMER_ID_INVALID",
            "CUSTOMER_NOT_FOUND",
            "GOOGLE_ACCOUNT_DELETED",
            "GOOGLE_ACCOUNT_COOKIE_INVALID",
            "GOOGLE_ACCOUNT_AUTHENTICATION_FAILED",
            "GOOGLE_ACCOUNT_USER_AND_ADS_USER_MISMATCH",
            "LOGIN_COOKIE_REQUIRED",
            "NOT_ADS_USER",
            "OAUTH_TOKEN_INVALID",
            "OAUTH_TOKEN_EXPIRED",
            "OAUTH_TOKEN_DISABLED",
            "OAUTH_TOKEN_REVOKED",
            "OAUTH_TOKEN_HEADER_INVALID",
            "LOGIN_COOKIE_INVALID",
            "INVALID_EMAIL_ADDRESS",
            "USER_ID_INVALID",
            "TWO_STEP_VERIFICATION_NOT_ENROLLED",
            "ADVANCED_PROTECTION_NOT_ENROLLED",
            "ORGANIZATION_NOT_RECOGNIZED",
            "ORGANIZATION_NOT_APPROVED",
            "ORGANIZATION_NOT_ASSOCIATED_WITH_DEVELOPER_TOKEN",
            "DEVELOPER_TOKEN_INVALID"
          ],
          "type": "string"
        },
        "headerError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The login customer ID could not be validated.",
            "The linked customer ID could not be validated."
          ],
          "description": "The reasons for the header error.",
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_LOGIN_CUSTOMER_ID",
            "INVALID_LINKED_CUSTOMER_ID"
          ]
        },
        "languageCodeError": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "LANGUAGE_CODE_NOT_FOUND",
            "INVALID_LANGUAGE_CODE"
          ],
          "description": "The reasons for the language code error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The input language code is not recognized.",
            "The language code is not supported."
          ]
        },
        "mediaFileError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CANNOT_CREATE_STANDARD_ICON",
            "CANNOT_SELECT_STANDARD_ICON_WITH_OTHER_TYPES",
            "CANNOT_SPECIFY_MEDIA_FILE_ID_AND_DATA",
            "DUPLICATE_MEDIA",
            "EMPTY_FIELD",
            "RESOURCE_REFERENCED_IN_MULTIPLE_OPS",
            "FIELD_NOT_SUPPORTED_FOR_MEDIA_SUB_TYPE",
            "INVALID_MEDIA_FILE_ID",
            "INVALID_MEDIA_SUB_TYPE",
            "INVALID_MEDIA_FILE_TYPE",
            "INVALID_MIME_TYPE",
            "INVALID_REFERENCE_ID",
            "INVALID_YOU_TUBE_ID",
            "MEDIA_FILE_FAILED_TRANSCODING",
            "MEDIA_NOT_TRANSCODED",
            "MEDIA_TYPE_DOES_NOT_MATCH_MEDIA_FILE_TYPE",
            "NO_FIELDS_SPECIFIED",
            "NULL_REFERENCE_ID_AND_MEDIA_ID",
            "TOO_LONG",
            "UNSUPPORTED_TYPE",
            "YOU_TUBE_SERVICE_UNAVAILABLE",
            "YOU_TUBE_VIDEO_HAS_NON_POSITIVE_DURATION",
            "YOU_TUBE_VIDEO_NOT_FOUND"
          ],
          "type": "string",
          "description": "The reasons for the media file error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Cannot create a standard icon type.",
            "May only select Standard Icons alone.",
            "Image contains both a media file ID and data.",
            "A media file with given type and reference ID already exists.",
            "A required field was not specified or is an empty string.",
            "A media file may only be modified once per call.",
            "Field is not supported for the media sub type.",
            "The media file ID is invalid.",
            "The media subtype is invalid.",
            "The media file type is invalid.",
            "The mimetype is invalid.",
            "The media reference ID is invalid.",
            "The YouTube video ID is invalid.",
            "Media file has failed transcoding",
            "Media file has not been transcoded.",
            "The media type does not match the actual media file's type.",
            "None of the fields have been specified.",
            "One of reference ID or media file ID must be specified.",
            "The string has too many characters.",
            "The specified type is not supported.",
            "YouTube is unavailable for requesting video data.",
            "The YouTube video has a non positive duration.",
            "The YouTube video ID is syntactically valid but the video was not found."
          ]
        },
        "audienceInsightsError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The dimensions cannot be used with topic audience combinations."
          ],
          "description": "The reasons for the Audience Insights error",
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DIMENSION_INCOMPATIBLE_WITH_TOPIC_AUDIENCE_COMBINATIONS"
          ]
        },
        "assetGroupAssetError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Cannot add duplicated asset group asset.",
            "Expandable tags are not allowed in description assets.",
            "Ad customizers are not supported in assetgroup's text assets.",
            "Cannot add a HotelPropertyAsset to an AssetGroup that isn't linked to the parent campaign's hotel_property_asset_set field."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DUPLICATE_RESOURCE",
            "EXPANDABLE_TAGS_NOT_ALLOWED_IN_DESCRIPTION",
            "AD_CUSTOMIZER_NOT_SUPPORTED",
            "HOTEL_PROPERTY_ASSET_NOT_LINKED_TO_CAMPAIGN"
          ],
          "type": "string",
          "description": "The reasons for the asset group asset error"
        },
        "campaignExperimentError": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DUPLICATE_NAME",
            "INVALID_TRANSITION",
            "CANNOT_CREATE_EXPERIMENT_WITH_SHARED_BUDGET",
            "CANNOT_CREATE_EXPERIMENT_FOR_REMOVED_BASE_CAMPAIGN",
            "CANNOT_CREATE_EXPERIMENT_FOR_NON_PROPOSED_DRAFT",
            "CUSTOMER_CANNOT_CREATE_EXPERIMENT",
            "CAMPAIGN_CANNOT_CREATE_EXPERIMENT",
            "EXPERIMENT_DURATIONS_MUST_NOT_OVERLAP",
            "EXPERIMENT_DURATION_MUST_BE_WITHIN_CAMPAIGN_DURATION",
            "CANNOT_MUTATE_EXPERIMENT_DUE_TO_STATUS"
          ],
          "description": "The reasons for the campaign experiment error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "An active campaign or experiment with this name already exists.",
            "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 an experiment from a campaign using an explicitly shared budget.",
            "Cannot create an experiment for a removed base campaign.",
            "Cannot create an experiment from a draft, which has a status other than proposed.",
            "This customer is not allowed to create an experiment.",
            "This campaign is not allowed to create an experiment.",
            "Trying to set an experiment duration which overlaps with another experiment.",
            "All non-removed experiments must start and end within their campaign's duration.",
            "The experiment cannot be modified because its status is in a terminal state, such as REMOVED."
          ]
        },
        "assetSetAssetError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The asset type is not eligible to be linked to the specific type of asset set.",
            "The asset set type is not eligible to contain the specified type of assets.",
            "The asset contains duplicate external key with another asset in the asset set.",
            "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."
          ],
          "description": "The reasons for the asset set asset error",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_ASSET_TYPE",
            "INVALID_ASSET_SET_TYPE",
            "DUPLICATE_EXTERNAL_KEY",
            "PARENT_LINKAGE_DOES_NOT_EXIST"
          ],
          "type": "string"
        },
        "nullError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NULL_CONTENT"
          ],
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Specified list/container must not contain any null elements"
          ],
          "description": "The reasons for the null error"
        },
        "managerLinkError": {
          "description": "The reasons for the manager link error",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ACCOUNTS_NOT_COMPATIBLE_FOR_LINKING",
            "TOO_MANY_MANAGERS",
            "TOO_MANY_INVITES",
            "ALREADY_INVITED_BY_THIS_MANAGER",
            "ALREADY_MANAGED_BY_THIS_MANAGER",
            "ALREADY_MANAGED_IN_HIERARCHY",
            "DUPLICATE_CHILD_FOUND",
            "CLIENT_HAS_NO_ADMIN_USER",
            "MAX_DEPTH_EXCEEDED",
            "CYCLE_NOT_ALLOWED",
            "TOO_MANY_ACCOUNTS",
            "TOO_MANY_ACCOUNTS_AT_MANAGER",
            "NON_OWNER_USER_CANNOT_MODIFY_LINK",
            "SUSPENDED_ACCOUNT_CANNOT_ADD_CLIENTS",
            "CLIENT_OUTSIDE_TREE",
            "INVALID_STATUS_CHANGE",
            "INVALID_CHANGE",
            "CUSTOMER_CANNOT_MANAGE_SELF",
            "CREATING_ENABLED_LINK_NOT_ALLOWED"
          ],
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The manager and client have incompatible account types.",
            "Client is already linked to too many managers.",
            "Manager has too many pending invitations.",
            "Client is already invited by this manager.",
            "The client is already managed by this manager.",
            "Client is already managed in hierarchy.",
            "Manager and sub-manager to be linked have duplicate client.",
            "Client has no active user that can access the client account.",
            "Adding this link would exceed the maximum hierarchy depth.",
            "Adding this link will create a cycle.",
            "Manager account has the maximum number of linked clients.",
            "Parent manager account has the maximum number of linked clients.",
            "The account is not authorized owner.",
            "Your manager account is suspended, and you are no longer allowed to link to clients.",
            "You are not allowed to move a client to a manager that is not under your current hierarchy.",
            "The changed status for mutate link is invalid.",
            "The change for mutate link is invalid.",
            "You are not allowed to link a manager account to itself.",
            "The link was created with status ACTIVE and not PENDING."
          ]
        },
        "authorizationError": {
          "type": "string",
          "description": "An error encountered when trying to authorize a user.",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "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/google-ads/api/docs/concepts/call-structure#cid",
            "The developer token is not on the allow-list.",
            "The developer token is not allowed with the project sent in the request.",
            "The Google Cloud project sent in the request does not have permission to access the api.",
            "Authorization of the client failed.",
            "The user does not have permission to perform this action (for example, ADD, UPDATE, REMOVE) on the resource or call a method.",
            "Signup not complete.",
            "The customer account can't be accessed because it is not yet enabled or has been deactivated.",
            "The developer must sign the terms of service. They can be found here: ads.google.com/aw/apicenter",
            "The developer token is only approved for use with test accounts. To access non-test accounts, apply for Basic or Standard access.",
            "The login customer specified does not have access to the account specified, so the request is invalid.",
            "The developer specified does not have access to the service.",
            "The customer (or login customer) isn't in Google Ads. It belongs to another ads system.",
            "The developer does not have access to the metrics queried.",
            "The Google Cloud project is not under the required organization.",
            "The user does not have permission to perform this action on the resource or method because the Google Ads account is suspended."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "USER_PERMISSION_DENIED",
            "DEVELOPER_TOKEN_NOT_ON_ALLOWLIST",
            "DEVELOPER_TOKEN_PROHIBITED",
            "PROJECT_DISABLED",
            "AUTHORIZATION_ERROR",
            "ACTION_NOT_PERMITTED",
            "INCOMPLETE_SIGNUP",
            "CUSTOMER_NOT_ENABLED",
            "MISSING_TOS",
            "DEVELOPER_TOKEN_NOT_APPROVED",
            "INVALID_LOGIN_CUSTOMER_ID_SERVING_CUSTOMER_ID_COMBINATION",
            "SERVICE_ACCESS_DENIED",
            "ACCESS_DENIED_FOR_ACCOUNT_TYPE",
            "METRIC_ACCESS_DENIED",
            "CLOUD_PROJECT_NOT_UNDER_ORGANIZATION",
            "ACTION_NOT_PERMITTED_FOR_SUSPENDED_ACCOUNT"
          ]
        },
        "keywordPlanError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The plan's bid multiplier value is outside the valid range.",
            "The plan's bid value is too high.",
            "The plan's bid value is too low.",
            "The plan's cpc bid is not a multiple of the minimum billable unit.",
            "The plan's daily budget value is too low.",
            "The plan's daily budget is not a multiple of the minimum billable unit.",
            "The input has an invalid value.",
            "The plan has no keyword.",
            "The plan is not enabled and API cannot provide mutation, forecast or stats.",
            "The requested plan cannot be found for providing forecast or stats.",
            "The plan is missing a cpc bid.",
            "The plan is missing required forecast_period field.",
            "The plan's forecast_period has invalid forecast date range.",
            "The plan's name is invalid."
          ],
          "description": "The reason for keyword plan error.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BID_MULTIPLIER_OUT_OF_RANGE",
            "BID_TOO_HIGH",
            "BID_TOO_LOW",
            "BID_TOO_MANY_FRACTIONAL_DIGITS",
            "DAILY_BUDGET_TOO_LOW",
            "DAILY_BUDGET_TOO_MANY_FRACTIONAL_DIGITS",
            "INVALID_VALUE",
            "KEYWORD_PLAN_HAS_NO_KEYWORDS",
            "KEYWORD_PLAN_NOT_ENABLED",
            "KEYWORD_PLAN_NOT_FOUND",
            "MISSING_BID",
            "MISSING_FORECAST_PERIOD",
            "INVALID_FORECAST_DATE_RANGE",
            "INVALID_NAME"
          ],
          "type": "string"
        },
        "keywordPlanAdGroupKeywordError": {
          "description": "The reason for keyword plan ad group keyword error.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_KEYWORD_MATCH_TYPE",
            "DUPLICATE_KEYWORD",
            "KEYWORD_TEXT_TOO_LONG",
            "KEYWORD_HAS_INVALID_CHARS",
            "KEYWORD_HAS_TOO_MANY_WORDS",
            "INVALID_KEYWORD_TEXT",
            "NEGATIVE_KEYWORD_HAS_CPC_BID",
            "NEW_BMM_KEYWORDS_NOT_ALLOWED"
          ],
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "A keyword or negative keyword has invalid match type.",
            "A keyword or negative keyword with same text and match type already exists.",
            "Keyword or negative keyword text exceeds the allowed limit.",
            "Keyword or negative keyword text has invalid characters or symbols.",
            "Keyword or negative keyword text has too many words.",
            "Keyword or negative keyword has invalid text.",
            "Cpc Bid set for negative keyword.",
            "New broad match modifier (BMM) KpAdGroupKeywords are not allowed."
          ]
        },
        "rangeError": {
          "description": "The reasons for the range error",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "TOO_LOW",
            "TOO_HIGH"
          ],
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Too low.",
            "Too high."
          ]
        },
        "feedItemValidationError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "STRING_TOO_SHORT",
            "STRING_TOO_LONG",
            "VALUE_NOT_SPECIFIED",
            "INVALID_DOMESTIC_PHONE_NUMBER_FORMAT",
            "INVALID_PHONE_NUMBER",
            "PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY",
            "PREMIUM_RATE_NUMBER_NOT_ALLOWED",
            "DISALLOWED_NUMBER_TYPE",
            "VALUE_OUT_OF_RANGE",
            "CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY",
            "CUSTOMER_NOT_IN_ALLOWLIST_FOR_CALLTRACKING",
            "INVALID_COUNTRY_CODE",
            "INVALID_APP_ID",
            "MISSING_ATTRIBUTES_FOR_FIELDS",
            "INVALID_TYPE_ID",
            "INVALID_EMAIL_ADDRESS",
            "INVALID_HTTPS_URL",
            "MISSING_DELIVERY_ADDRESS",
            "START_DATE_AFTER_END_DATE",
            "MISSING_FEED_ITEM_START_TIME",
            "MISSING_FEED_ITEM_END_TIME",
            "MISSING_FEED_ITEM_ID",
            "VANITY_PHONE_NUMBER_NOT_ALLOWED",
            "INVALID_REVIEW_EXTENSION_SNIPPET",
            "INVALID_NUMBER_FORMAT",
            "INVALID_DATE_FORMAT",
            "INVALID_PRICE_FORMAT",
            "UNKNOWN_PLACEHOLDER_FIELD",
            "MISSING_ENHANCED_SITELINK_DESCRIPTION_LINE",
            "REVIEW_EXTENSION_SOURCE_INELIGIBLE",
            "HYPHENS_IN_REVIEW_EXTENSION_SNIPPET",
            "DOUBLE_QUOTES_IN_REVIEW_EXTENSION_SNIPPET",
            "QUOTES_IN_REVIEW_EXTENSION_SNIPPET",
            "INVALID_FORM_ENCODED_PARAMS",
            "INVALID_URL_PARAMETER_NAME",
            "NO_GEOCODING_RESULT",
            "SOURCE_NAME_IN_REVIEW_EXTENSION_TEXT",
            "CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED",
            "INVALID_PLACEHOLDER_FIELD_ID",
            "INVALID_URL_TAG",
            "LIST_TOO_LONG",
            "INVALID_ATTRIBUTES_COMBINATION",
            "DUPLICATE_VALUES",
            "INVALID_CALL_CONVERSION_ACTION_ID",
            "CANNOT_SET_WITHOUT_FINAL_URLS",
            "APP_ID_DOESNT_EXIST_IN_APP_STORE",
            "INVALID_FINAL_URL",
            "INVALID_TRACKING_URL",
            "INVALID_FINAL_URL_FOR_APP_DOWNLOAD_URL",
            "LIST_TOO_SHORT",
            "INVALID_USER_ACTION",
            "INVALID_TYPE_NAME",
            "INVALID_EVENT_CHANGE_STATUS",
            "INVALID_SNIPPETS_HEADER",
            "INVALID_ANDROID_APP_LINK",
            "NUMBER_TYPE_WITH_CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY",
            "RESERVED_KEYWORD_OTHER",
            "DUPLICATE_OPTION_LABELS",
            "DUPLICATE_OPTION_PREFILLS",
            "UNEQUAL_LIST_LENGTHS",
            "INCONSISTENT_CURRENCY_CODES",
            "PRICE_EXTENSION_HAS_DUPLICATED_HEADERS",
            "ITEM_HAS_DUPLICATED_HEADER_AND_DESCRIPTION",
            "PRICE_EXTENSION_HAS_TOO_FEW_ITEMS",
            "UNSUPPORTED_VALUE",
            "INVALID_FINAL_MOBILE_URL",
            "INVALID_KEYWORDLESS_AD_RULE_LABEL",
            "VALUE_TRACK_PARAMETER_NOT_SUPPORTED",
            "UNSUPPORTED_VALUE_IN_SELECTED_LANGUAGE",
            "INVALID_IOS_APP_LINK",
            "MISSING_IOS_APP_LINK_OR_IOS_APP_STORE_ID",
            "PROMOTION_INVALID_TIME",
            "PROMOTION_CANNOT_SET_PERCENT_OFF_AND_MONEY_AMOUNT_OFF",
            "PROMOTION_CANNOT_SET_PROMOTION_CODE_AND_ORDERS_OVER_AMOUNT",
            "TOO_MANY_DECIMAL_PLACES_SPECIFIED",
            "AD_CUSTOMIZERS_NOT_ALLOWED",
            "INVALID_LANGUAGE_CODE",
            "UNSUPPORTED_LANGUAGE",
            "IF_FUNCTION_NOT_ALLOWED",
            "INVALID_FINAL_URL_SUFFIX",
            "INVALID_TAG_IN_FINAL_URL_SUFFIX",
            "INVALID_FINAL_URL_SUFFIX_FORMAT",
            "CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED",
            "ONLY_ONE_DELIVERY_OPTION_IS_ALLOWED",
            "NO_DELIVERY_OPTION_IS_SET",
            "INVALID_CONVERSION_REPORTING_STATE",
            "IMAGE_SIZE_WRONG",
            "EMAIL_DELIVERY_NOT_AVAILABLE_IN_COUNTRY",
            "AUTO_REPLY_NOT_AVAILABLE_IN_COUNTRY",
            "INVALID_LATITUDE_VALUE",
            "INVALID_LONGITUDE_VALUE",
            "TOO_MANY_LABELS",
            "INVALID_IMAGE_URL",
            "MISSING_LATITUDE_VALUE",
            "MISSING_LONGITUDE_VALUE",
            "ADDRESS_NOT_FOUND",
            "ADDRESS_NOT_TARGETABLE",
            "INVALID_ASSET_ID",
            "INCOMPATIBLE_ASSET_TYPE",
            "IMAGE_ERROR_UNEXPECTED_SIZE",
            "IMAGE_ERROR_ASPECT_RATIO_NOT_ALLOWED",
            "IMAGE_ERROR_FILE_TOO_LARGE",
            "IMAGE_ERROR_FORMAT_NOT_ALLOWED",
            "IMAGE_ERROR_CONSTRAINTS_VIOLATED",
            "IMAGE_ERROR_SERVER_ERROR"
          ],
          "type": "string",
          "description": "The reasons for the feed item validation error",
          "enumDescriptions": [
            "No value has been specified.",
            "Used for return value only. Represents value unknown in this version.",
            "String is too short.",
            "String is too long.",
            "Value is not provided.",
            "Phone number format is invalid for region.",
            "String does not represent a phone number.",
            "Phone number format is not compatible with country code.",
            "Premium rate number is not allowed.",
            "Phone number type is not allowed.",
            "Specified value is outside of the valid range.",
            "Call tracking is not supported in the selected country.",
            "Customer is not on the allow-list for call tracking.",
            "Country code is invalid.",
            "The specified mobile app id is invalid.",
            "Some required field attributes are missing.",
            "Invalid email button type for email extension.",
            "Email address is invalid.",
            "The HTTPS URL in email extension is invalid.",
            "Delivery address is missing from email extension.",
            "FeedItem scheduling start date comes after end date.",
            "FeedItem scheduling start time is missing.",
            "FeedItem scheduling end time is missing.",
            "Cannot compute system attributes on a FeedItem that has no FeedItemId.",
            "Call extension vanity phone numbers are not supported.",
            "Invalid review text.",
            "Invalid format for numeric value in ad parameter.",
            "Invalid format for date value in ad parameter.",
            "Invalid format for price value in ad parameter.",
            "Unrecognized type given for value in ad parameter.",
            "Enhanced sitelinks must have both description lines specified.",
            "Review source is ineligible.",
            "Review text cannot contain hyphens or dashes.",
            "Review text cannot contain double quote characters.",
            "Review text cannot contain quote characters.",
            "Parameters are encoded in the wrong format.",
            "URL parameter name must contain only letters, numbers, underscores, and dashes.",
            "Cannot find address location.",
            "Review extension text has source name.",
            "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.",
            "Triggered when a request references a placeholder field id that does not exist.",
            "URL contains invalid ValueTrack tags or format.",
            "Provided list exceeds acceptable size.",
            "Certain combinations of attributes aren't allowed to be specified in the same feed item.",
            "An attribute has the same value repeatedly.",
            "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).",
            "Tracking template requires final url to be set.",
            "An app id was provided that doesn't exist in the given app store.",
            "Invalid U2 final url.",
            "Invalid U2 tracking url.",
            "Final URL should start from App download URL.",
            "List provided is too short.",
            "User Action field has invalid value.",
            "Type field has invalid value.",
            "Change status for event is invalid.",
            "The header of a structured snippets extension is not one of the valid headers.",
            "Android app link is not formatted correctly",
            "Phone number incompatible with call tracking for country.",
            "The input is identical to a reserved keyword",
            "Each option label in the message extension must be unique.",
            "Each option prefill in the message extension must be unique.",
            "In message extensions, the number of optional labels and optional prefills must be the same.",
            "All currency codes in an ad extension must be the same.",
            "Headers in price extension are not unique.",
            "Header and description in an item are the same.",
            "Price extension has too few items.",
            "The given value is not supported.",
            "Invalid final mobile url.",
            "The given string value of Label contains invalid characters",
            "The given URL contains value track parameters.",
            "The given value is not supported in the selected language of an extension.",
            "The iOS app link is not formatted correctly.",
            "iOS app link or iOS app store id is missing.",
            "Promotion time is invalid.",
            "Both the percent off and money amount off fields are set.",
            "Both the promotion code and orders over amount fields are set.",
            "Too many decimal places are specified.",
            "Ad Customizers are present and not allowed.",
            "Language code is not valid.",
            "Language is not supported.",
            "IF Function is present and not allowed.",
            "Final url suffix is not valid.",
            "Final url suffix contains an invalid tag.",
            "Final url suffix is formatted incorrectly.",
            "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.",
            "Multiple message delivery options are set.",
            "No message delivery option is set.",
            "String value of conversion reporting state field is not valid.",
            "Image size is not right.",
            "Email delivery is not supported in the country specified in the country code field.",
            "Auto reply is not supported in the country specified in the country code field.",
            "Invalid value specified for latitude.",
            "Invalid value specified for longitude.",
            "Too many label fields provided.",
            "Invalid image url.",
            "Latitude value is missing.",
            "Longitude value is missing.",
            "Unable to find address.",
            "Cannot target provided address.",
            "The specified asset ID does not exist.",
            "The asset type cannot be set for the field.",
            "The image has unexpected size.",
            "The image aspect ratio is not allowed.",
            "The image file is too large.",
            "The image format is unsupported.",
            "Image violates constraints without more details.",
            "An error occurred when validating image."
          ]
        },
        "campaignGoalConfigError": {
          "description": "The reasons for the campaign goal config error.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "GOAL_NOT_FOUND",
            "CAMPAIGN_NOT_FOUND",
            "HIGH_LIFETIME_VALUE_PRESENT_BUT_VALUE_ABSENT",
            "HIGH_LIFETIME_VALUE_LESS_THAN_OR_EQUAL_TO_VALUE",
            "CUSTOMER_LIFECYCLE_OPTIMIZATION_CAMPAIGN_TYPE_NOT_SUPPORTED",
            "CUSTOMER_NOT_ALLOWLISTED_FOR_RETENTION_ONLY"
          ],
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Goal is either removed or does not exist for this account.",
            "Campaign is either removed or does not exist.",
            "If high lifetime value is present then value should be present.",
            "High lifetime value should be greater than value.",
            "When using customer lifecycle optimization goal, campaign type should be supported.",
            "Customer must be allowlisted to use retention only goal."
          ]
        },
        "quotaError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Too many requests.",
            "Access is prohibited.",
            "Too many requests in a short amount of time.",
            "Too many expensive requests from query pattern over a short amount of time.",
            "Too many expensive requests from query pattern over an extended duration of time.",
            "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."
          ],
          "description": "An error with the amount of quota remaining.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "RESOURCE_EXHAUSTED",
            "ACCESS_PROHIBITED",
            "RESOURCE_TEMPORARILY_EXHAUSTED",
            "EXCESSIVE_SHORT_TERM_QUERY_RESOURCE_CONSUMPTION",
            "EXCESSIVE_LONG_TERM_QUERY_RESOURCE_CONSUMPTION",
            "PAYMENTS_PROFILE_ACTIVATION_RATE_LIMIT_EXCEEDED"
          ],
          "type": "string"
        },
        "brandGuidelinesMigrationError": {
          "description": "The reasons for the brand guidelines migration error.",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "This campaign is already enabled for Brand Guidelines.",
            "Brand Guidelines can only be enabled for active or suspended campaigns.",
            "Maximum of 5 square and landscape logos can be specified for Brand Guidelines.",
            "Either auto_populate_brand_assets must be true or brand_assets must be provided, but not both.",
            "Either auto_populate_brand_assets can be false or brand_assets can be omitted, but not both.",
            "A maximum of 10 enable operations can be executed in a request."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BRAND_GUIDELINES_ALREADY_ENABLED",
            "CANNOT_ENABLE_BRAND_GUIDELINES_FOR_REMOVED_CAMPAIGN",
            "BRAND_GUIDELINES_LOGO_LIMIT_EXCEEDED",
            "CANNOT_AUTO_POPULATE_BRAND_ASSETS_WHEN_BRAND_ASSETS_PROVIDED",
            "AUTO_POPULATE_BRAND_ASSETS_REQUIRED_WHEN_BRAND_ASSETS_OMITTED",
            "TOO_MANY_ENABLE_OPERATIONS"
          ],
          "type": "string"
        },
        "customerUserAccessError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_USER_ID",
            "REMOVAL_DISALLOWED",
            "DISALLOWED_ACCESS_ROLE",
            "LAST_ADMIN_USER_OF_SERVING_CUSTOMER",
            "LAST_ADMIN_USER_OF_MANAGER"
          ],
          "type": "string",
          "description": "The reasons for the customer user access mutate error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "There is no user associated with the user id specified.",
            "Unable to remove the access between the user and customer.",
            "Unable to add or update the access role as specified.",
            "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 cannot be removed from a manager."
          ]
        },
        "accountBudgetProposalError": {
          "type": "string",
          "description": "The reasons for account budget proposal errors.",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The field mask must be empty for create/end/remove proposals.",
            "The field cannot be set because of the proposal type.",
            "The field is required because of the proposal type.",
            "Proposals that have been approved cannot be cancelled.",
            "Budgets that haven't been approved cannot be removed.",
            "Budgets that are currently running cannot be removed.",
            "Budgets that haven't been approved cannot be truncated.",
            "Only budgets that are currently running can be truncated.",
            "All budgets must have names.",
            "Expired budgets cannot be edited after a sufficient amount of time has passed.",
            "It is not permissible a propose a new budget that ends in the past.",
            "An expired budget cannot be extended to overlap with the running budget.",
            "A purchase order number is required.",
            "Budgets that have a pending update cannot be updated.",
            "Cannot propose more than one budget when the corresponding billing setup hasn't been approved.",
            "Cannot update the start time of a budget that has already started.",
            "Cannot update the spending limit of a budget with an amount lower than what has already been spent.",
            "Cannot propose a budget update without actually changing any fields.",
            "The end time must come after the start time.",
            "The budget's date range must fall within the date range of its billing setup.",
            "The user is not authorized to mutate budgets for the given billing setup.",
            "Mutates are not allowed for the given billing setup.",
            "Budget creation failed as it overlaps with a pending budget proposal or an approved budget.",
            "The control setting in user's payments profile doesn't allow budget creation through API. Log in to Google Ads to create budget.",
            "Master service agreement has not been signed yet for the Payments Profile.",
            "Budget mutates are not allowed because the given billing setup is canceled."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "FIELD_MASK_NOT_ALLOWED",
            "IMMUTABLE_FIELD",
            "REQUIRED_FIELD_MISSING",
            "CANNOT_CANCEL_APPROVED_PROPOSAL",
            "CANNOT_REMOVE_UNAPPROVED_BUDGET",
            "CANNOT_REMOVE_RUNNING_BUDGET",
            "CANNOT_END_UNAPPROVED_BUDGET",
            "CANNOT_END_INACTIVE_BUDGET",
            "BUDGET_NAME_REQUIRED",
            "CANNOT_UPDATE_OLD_BUDGET",
            "CANNOT_END_IN_PAST",
            "CANNOT_EXTEND_END_TIME",
            "PURCHASE_ORDER_NUMBER_REQUIRED",
            "PENDING_UPDATE_PROPOSAL_EXISTS",
            "MULTIPLE_BUDGETS_NOT_ALLOWED_FOR_UNAPPROVED_BILLING_SETUP",
            "CANNOT_UPDATE_START_TIME_FOR_STARTED_BUDGET",
            "SPENDING_LIMIT_LOWER_THAN_ACCRUED_COST_NOT_ALLOWED",
            "UPDATE_IS_NO_OP",
            "END_TIME_MUST_FOLLOW_START_TIME",
            "BUDGET_DATE_RANGE_INCOMPATIBLE_WITH_BILLING_SETUP",
            "NOT_AUTHORIZED",
            "INVALID_BILLING_SETUP",
            "OVERLAPS_EXISTING_BUDGET",
            "CANNOT_CREATE_BUDGET_THROUGH_API",
            "INVALID_MASTER_SERVICE_AGREEMENT",
            "CANCELED_BILLING_SETUP"
          ]
        },
        "userListCustomerTypeError": {
          "description": "The reasons for a user list customer type error.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CONFLICTING_CUSTOMER_TYPES",
            "NO_ACCESS_TO_USER_LIST",
            "USERLIST_NOT_ELIGIBLE",
            "CONVERSION_TRACKING_NOT_ENABLED_OR_NOT_MCC_MANAGER_ACCOUNT",
            "TOO_MANY_USER_LISTS_FOR_THE_CUSTOMER_TYPE"
          ],
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "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",
            "The account does not have access to the user list.",
            "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.",
            "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."
          ],
          "type": "string"
        },
        "keywordPlanCampaignKeywordError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CAMPAIGN_KEYWORD_IS_POSITIVE"
          ],
          "description": "The reason for keyword plan campaign keyword error.",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Keyword plan campaign keyword is positive."
          ]
        },
        "feedItemSetError": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "FEED_ITEM_SET_REMOVED",
            "CANNOT_CLEAR_DYNAMIC_FILTER",
            "CANNOT_CREATE_DYNAMIC_FILTER",
            "INVALID_FEED_TYPE",
            "DUPLICATE_NAME",
            "WRONG_DYNAMIC_FILTER_FOR_FEED_TYPE",
            "DYNAMIC_FILTER_INVALID_CHAIN_IDS"
          ],
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The given ID refers to a removed FeedItemSet.",
            "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.",
            "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.",
            "FeedItemSets can only be made for location or affiliate location feeds.",
            "FeedItemSets duplicate name. Name should be unique within an account.",
            "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.",
            "Chain ID specified for AffiliateLocationFeedData is invalid."
          ],
          "description": "The reasons for the feed item set error"
        },
        "feedError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The names of the FeedAttributes must be unique.",
            "The attribute list must be an exact copy of the existing list if the attribute ID's are present.",
            "Cannot specify USER origin for a system generated feed.",
            "Cannot specify GOOGLE origin for a non-system generated feed.",
            "Cannot specify feed attributes for system feed.",
            "Cannot update FeedAttributes on feed with origin GOOGLE.",
            "The given ID refers to a removed Feed. Removed Feeds are immutable.",
            "The origin of the feed is not valid for the client.",
            "A user can only create and modify feeds with USER origin.",
            "Invalid auth token for the given email.",
            "Invalid email specified.",
            "Feed name matches that of another active Feed.",
            "Name of feed is not allowed.",
            "Missing OAuthInfo.",
            "New FeedAttributes must not affect the unique key.",
            "Too many FeedAttributes for a Feed.",
            "The business account is not valid.",
            "Business account cannot access Business Profile.",
            "Invalid chain ID provided for affiliate location feed.",
            "There is already a feed with the given system feed generation data.",
            "An error occurred accessing Business Profile.",
            "A customer cannot have both LOCATION and AFFILIATE_LOCATION feeds.",
            "Feed-based extension is read-only for this extension type."
          ],
          "description": "The reasons for the feed error",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ATTRIBUTE_NAMES_NOT_UNIQUE",
            "ATTRIBUTES_DO_NOT_MATCH_EXISTING_ATTRIBUTES",
            "CANNOT_SPECIFY_USER_ORIGIN_FOR_SYSTEM_FEED",
            "CANNOT_SPECIFY_GOOGLE_ORIGIN_FOR_NON_SYSTEM_FEED",
            "CANNOT_SPECIFY_FEED_ATTRIBUTES_FOR_SYSTEM_FEED",
            "CANNOT_UPDATE_FEED_ATTRIBUTES_WITH_ORIGIN_GOOGLE",
            "FEED_REMOVED",
            "INVALID_ORIGIN_VALUE",
            "FEED_ORIGIN_IS_NOT_USER",
            "INVALID_AUTH_TOKEN_FOR_EMAIL",
            "INVALID_EMAIL",
            "DUPLICATE_FEED_NAME",
            "INVALID_FEED_NAME",
            "MISSING_OAUTH_INFO",
            "NEW_ATTRIBUTE_CANNOT_BE_PART_OF_UNIQUE_KEY",
            "TOO_MANY_ATTRIBUTES",
            "INVALID_BUSINESS_ACCOUNT",
            "BUSINESS_ACCOUNT_CANNOT_ACCESS_LOCATION_ACCOUNT",
            "INVALID_AFFILIATE_CHAIN_ID",
            "DUPLICATE_SYSTEM_FEED",
            "GMB_ACCESS_ERROR",
            "CANNOT_HAVE_LOCATION_AND_AFFILIATE_LOCATION_FEEDS",
            "LEGACY_EXTENSION_TYPE_READ_ONLY"
          ],
          "type": "string"
        },
        "internalError": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INTERNAL_ERROR",
            "ERROR_CODE_NOT_PUBLISHED",
            "TRANSIENT_ERROR",
            "DEADLINE_EXCEEDED"
          ],
          "description": "An unexpected server-side error.",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Google Ads API encountered unexpected internal error.",
            "The intended error code doesn't exist in specified API version. It will be released in a future API version.",
            "Google Ads API encountered an unexpected transient error. The user should retry their request in these cases.",
            "The request took longer than a deadline."
          ]
        },
        "campaignError": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CANNOT_TARGET_CONTENT_NETWORK",
            "CANNOT_TARGET_SEARCH_NETWORK",
            "CANNOT_TARGET_SEARCH_NETWORK_WITHOUT_GOOGLE_SEARCH",
            "CANNOT_TARGET_GOOGLE_SEARCH_FOR_CPM_CAMPAIGN",
            "CAMPAIGN_MUST_TARGET_AT_LEAST_ONE_NETWORK",
            "CANNOT_TARGET_PARTNER_SEARCH_NETWORK",
            "CANNOT_TARGET_CONTENT_NETWORK_ONLY_WITH_CRITERIA_LEVEL_BIDDING_STRATEGY",
            "CAMPAIGN_DURATION_MUST_CONTAIN_ALL_RUNNABLE_TRIALS",
            "CANNOT_MODIFY_FOR_TRIAL_CAMPAIGN",
            "DUPLICATE_CAMPAIGN_NAME",
            "INCOMPATIBLE_CAMPAIGN_FIELD",
            "INVALID_CAMPAIGN_NAME",
            "INVALID_AD_SERVING_OPTIMIZATION_STATUS",
            "INVALID_TRACKING_URL",
            "CANNOT_SET_BOTH_TRACKING_URL_TEMPLATE_AND_TRACKING_SETTING",
            "MAX_IMPRESSIONS_NOT_IN_RANGE",
            "TIME_UNIT_NOT_SUPPORTED",
            "INVALID_OPERATION_IF_SERVING_STATUS_HAS_ENDED",
            "BUDGET_CANNOT_BE_SHARED",
            "CAMPAIGN_CANNOT_USE_SHARED_BUDGET",
            "CANNOT_CHANGE_BUDGET_ON_CAMPAIGN_WITH_TRIALS",
            "CAMPAIGN_LABEL_DOES_NOT_EXIST",
            "CAMPAIGN_LABEL_ALREADY_EXISTS",
            "MISSING_SHOPPING_SETTING",
            "INVALID_SHOPPING_SALES_COUNTRY",
            "ADVERTISING_CHANNEL_TYPE_NOT_AVAILABLE_FOR_ACCOUNT_TYPE",
            "INVALID_ADVERTISING_CHANNEL_SUB_TYPE",
            "AT_LEAST_ONE_CONVERSION_MUST_BE_SELECTED",
            "CANNOT_SET_AD_ROTATION_MODE",
            "CANNOT_MODIFY_START_DATE_IF_ALREADY_STARTED",
            "CANNOT_SET_DATE_TO_PAST",
            "MISSING_HOTEL_CUSTOMER_LINK",
            "INVALID_HOTEL_CUSTOMER_LINK",
            "MISSING_HOTEL_SETTING",
            "CANNOT_USE_SHARED_CAMPAIGN_BUDGET_WHILE_PART_OF_CAMPAIGN_GROUP",
            "APP_NOT_FOUND",
            "SHOPPING_ENABLE_LOCAL_NOT_SUPPORTED_FOR_CAMPAIGN_TYPE",
            "MERCHANT_NOT_ALLOWED_FOR_COMPARISON_LISTING_ADS",
            "INSUFFICIENT_APP_INSTALLS_COUNT",
            "SENSITIVE_CATEGORY_APP",
            "HEC_AGREEMENT_REQUIRED",
            "NOT_COMPATIBLE_WITH_VIEW_THROUGH_CONVERSION_OPTIMIZATION",
            "INVALID_EXCLUDED_PARENT_ASSET_FIELD_TYPE",
            "CANNOT_CREATE_APP_PRE_REGISTRATION_FOR_NON_ANDROID_APP",
            "APP_NOT_AVAILABLE_TO_CREATE_APP_PRE_REGISTRATION_CAMPAIGN",
            "INCOMPATIBLE_BUDGET_TYPE",
            "LOCAL_SERVICES_DUPLICATE_CATEGORY_BID",
            "LOCAL_SERVICES_INVALID_CATEGORY_BID",
            "LOCAL_SERVICES_MISSING_CATEGORY_BID",
            "INVALID_STATUS_CHANGE",
            "MISSING_TRAVEL_CUSTOMER_LINK",
            "INVALID_TRAVEL_CUSTOMER_LINK",
            "INVALID_EXCLUDED_PARENT_ASSET_SET_TYPE",
            "ASSET_SET_NOT_A_HOTEL_PROPERTY_ASSET_SET",
            "HOTEL_PROPERTY_ASSET_SET_ONLY_FOR_PERFORMANCE_MAX_FOR_TRAVEL_GOALS",
            "AVERAGE_DAILY_SPEND_TOO_HIGH",
            "CANNOT_ATTACH_TO_REMOVED_CAMPAIGN_GROUP",
            "CANNOT_ATTACH_TO_BIDDING_STRATEGY",
            "CANNOT_CHANGE_BUDGET_PERIOD",
            "NOT_ENOUGH_CONVERSIONS",
            "CANNOT_SET_MORE_THAN_ONE_CONVERSION_ACTION",
            "NOT_COMPATIBLE_WITH_BUDGET_TYPE",
            "NOT_COMPATIBLE_WITH_UPLOAD_CLICKS_CONVERSION",
            "APP_ID_MUST_MATCH_CONVERSION_ACTION_APP_ID",
            "CONVERSION_ACTION_WITH_DOWNLOAD_CATEGORY_NOT_ALLOWED",
            "CONVERSION_ACTION_WITH_DOWNLOAD_CATEGORY_REQUIRED",
            "CONVERSION_TRACKING_NOT_ENABLED",
            "NOT_COMPATIBLE_WITH_BIDDING_STRATEGY_TYPE",
            "NOT_COMPATIBLE_WITH_GOOGLE_ATTRIBUTION_CONVERSIONS",
            "CONVERSION_LAG_TOO_HIGH",
            "NOT_LINKED_ADVERTISING_PARTNER",
            "INVALID_NUMBER_OF_ADVERTISING_PARTNER_IDS",
            "CANNOT_TARGET_DISPLAY_NETWORK_WITHOUT_YOUTUBE",
            "CANNOT_LINK_TO_COMPARISON_SHOPPING_SERVICE_ACCOUNT",
            "CANNOT_TARGET_NETWORK_FOR_COMPARISON_SHOPPING_SERVICE_LINKED_ACCOUNTS",
            "CANNOT_MODIFY_TEXT_ASSET_AUTOMATION_WITH_ENABLED_TRIAL",
            "DYNAMIC_TEXT_ASSET_CANNOT_OPT_OUT_WITH_FINAL_URL_EXPANSION_OPT_IN",
            "CANNOT_SET_CAMPAIGN_KEYWORD_MATCH_TYPE",
            "CANNOT_DISABLE_BROAD_MATCH_WHEN_KEYWORD_CONVERSION_IN_PROCESS",
            "CANNOT_DISABLE_BROAD_MATCH_WHEN_TARGETING_BRANDS",
            "CANNOT_ENABLE_BROAD_MATCH_FOR_BASE_CAMPAIGN_WITH_PROMOTING_TRIAL",
            "CANNOT_ENABLE_BROAD_MATCH_FOR_PROMOTING_TRIAL_CAMPAIGN",
            "REQUIRED_BUSINESS_NAME_ASSET_NOT_LINKED",
            "REQUIRED_LOGO_ASSET_NOT_LINKED",
            "BRAND_TARGETING_OVERRIDES_NOT_SUPPORTED",
            "BRAND_GUIDELINES_NOT_ENABLED_FOR_CAMPAIGN",
            "BRAND_GUIDELINES_MAIN_AND_ACCENT_COLORS_REQUIRED",
            "BRAND_GUIDELINES_COLOR_INVALID_FORMAT",
            "BRAND_GUIDELINES_UNSUPPORTED_FONT_FAMILY",
            "BRAND_GUIDELINES_UNSUPPORTED_CHANNEL",
            "CANNOT_ENABLE_BRAND_GUIDELINES_FOR_TRAVEL_GOALS",
            "CUSTOMER_NOT_ALLOWLISTED_FOR_BRAND_GUIDELINES",
            "THIRD_PARTY_INTEGRATION_PARTNER_NOT_ALLOWED",
            "THIRD_PARTY_INTEGRATION_PARTNER_SHARE_COST_NOT_ALLOWED",
            "DUPLICATE_INTERACTION_TYPE",
            "INVALID_INTERACTION_TYPE",
            "VIDEO_SEQUENCE_ERROR_SEQUENCE_DEFINITION_REQUIRED",
            "AI_MAX_MUST_BE_ENABLED",
            "DURATION_TOO_LONG_FOR_TOTAL_BUDGET",
            "END_DATE_TIME_REQUIRED_FOR_TOTAL_BUDGET"
          ],
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Cannot target content network.",
            "Cannot target search network.",
            "Cannot cover search network without google search network.",
            "Cannot target Google Search network for a CPM campaign.",
            "Must target at least one network.",
            "Only some Google partners are allowed to target partner search network.",
            "Cannot target content network only as campaign has criteria-level bidding strategy.",
            "Cannot modify the start or end date such that the campaign duration would not contain the durations of all runnable trials.",
            "Cannot modify dates, budget or status of a trial campaign.",
            "Trying to modify the name of an active or paused campaign, where the name is already assigned to another active or paused campaign.",
            "Two fields are in conflicting modes.",
            "Campaign name cannot be used.",
            "Given status is invalid.",
            "Error in the campaign level tracking URL.",
            "Cannot set both tracking URL template and tracking setting. A user has to clear legacy tracking setting in order to add tracking URL template.",
            "The maximum number of impressions for Frequency Cap should be an integer greater than 0.",
            "Only the Day, Week and Month time units are supported.",
            "Operation not allowed on a campaign whose serving status has ended",
            "This budget is exclusively linked to a Campaign that is using experiments so it cannot be shared.",
            "Campaigns using experiments cannot use a shared budget.",
            "A different budget cannot be assigned to a campaign when there are running or scheduled trials.",
            "No link found between the campaign and the label.",
            "The label has already been attached to the campaign.",
            "A ShoppingSetting was not found when creating a shopping campaign.",
            "The country in shopping setting is not an allowed country.",
            "The requested channel type is not available according to the customer's account setting.",
            "The AdvertisingChannelSubType is not a valid subtype of the primary channel type.",
            "At least one conversion must be selected.",
            "Setting ad rotation mode for a campaign is not allowed. Ad rotation mode at campaign is deprecated.",
            "Trying to change start date on a campaign that has started.",
            "Trying to modify a date into the past.",
            "Hotel center id in the hotel setting does not match any customer links.",
            "Hotel center id in the hotel setting must match an active customer link.",
            "Hotel setting was not found when creating a hotel ads campaign.",
            "A Campaign cannot use shared campaign budgets and be part of a campaign group.",
            "The app ID was not found.",
            "Campaign.shopping_setting.enable_local is not supported for the specified campaign type.",
            "The merchant does not support the creation of campaigns for Shopping Comparison Listing Ads.",
            "The App campaign for engagement cannot be created because there aren't enough installs.",
            "The App campaign for engagement cannot be created because the app is sensitive.",
            "Customers with Housing, Employment, or Credit ads must accept updated personalized ads policy to continue creating campaigns.",
            "The field is not compatible with view through conversion optimization.",
            "The field type cannot be excluded because an active campaign-asset link of this type exists.",
            "The app pre-registration campaign cannot be created for non-Android applications.",
            "The campaign cannot be created since the app is not available for pre-registration in any country.",
            "The type of the Budget is not compatible with this Campaign.",
            "Category bid list in the local services campaign setting contains multiple bids for the same category ID.",
            "Category bid list in the local services campaign setting contains a bid for an invalid category ID.",
            "Category bid list in the local services campaign setting is missing a bid for a category ID that must be present.",
            "The requested change in status is not supported.",
            "Travel Campaign's travel_account_id does not match any customer links.",
            "Travel Campaign's travel_account_id matches an existing customer link but the customer link is not active.",
            "The asset set type is invalid to be set in excluded_parent_asset_set_types field.",
            "Campaign.hotel_property_asset_set must point to an asset set of type HOTEL_PROPERTY.",
            "The hotel property asset set can only be set on Performance Max for travel goals campaigns.",
            "Customer's average daily spend is too high to enable this feature.",
            "Cannot attach the campaign to a deleted campaign group.",
            "Cannot attach the campaign to this bidding strategy.",
            "A budget with a different period cannot be assigned to the campaign.",
            "Customer does not have enough conversions to enable this feature.",
            "This campaign type can only have one conversion action.",
            "The field is not compatible with the budget type.",
            "The feature is incompatible with ConversionActionType.UPLOAD_CLICKS.",
            "App campaign setting app ID must match selective optimization conversion action app ID.",
            "Selective optimization conversion action with Download category is not allowed.",
            "One software download for selective optimization conversion action is required for this campaign conversion action.",
            "Conversion tracking is not enabled and is required for this feature.",
            "The field is not compatible with the bidding strategy type.",
            "Campaign is not compatible with a conversion tracker that has Google attribution enabled.",
            "Customer level conversion lag is too high.",
            "The advertiser set as an advertising partner is not an actively linked advertiser to this customer.",
            "Invalid number of advertising partner IDs.",
            "Cannot target the display network without also targeting YouTube.",
            "This campaign type cannot be linked to a Comparison Shopping Service account.",
            "Standard Shopping campaigns that are linked to a Comparison Shopping Service account cannot target this network.",
            "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 be opted out when final URL expansion is opted in.",
            "Can not set a campaign level match type.",
            "The campaign level keyword match type cannot be switched to non-broad when keyword conversion to broad match is in process.",
            "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 set campaign level keyword match type to BROAD if the campaign is a base campaign with an associated trial that is currently promoting.",
            "Cannot set campaign level keyword match type to BROAD if the campaign is a trial currently promoting.",
            "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.",
            "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.",
            "This campaign does not support brand targeting overrides. Brand targeting overrides are only supported for Performance Max campaigns that have a product feed.",
            "Brand Guideline fields can only be set for campaigns that have Brand Guidelines enabled.",
            "When a Brand Guidelines color field is set, both main color and accent color are required.",
            "Brand Guidelines colors must be hex colors matching the regular expression '#[0-9a-fA-F]{6}', for example '#abc123'",
            "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 cannot be set for this channel type. Brand Guidelines supports Performance Max campaigns.",
            "Brand Guidelines cannot be enabled for Performance Max for travel goals campaigns.",
            "This customer is not allowlisted for enabling Brand Guidelines.",
            "Using campaign third-party integration partners that are not set at the customer level is not allowed.",
            "Campaign third-party integration partners are not allowed to share cost if it is not enabled at the customer level.",
            "Each `previous_step_interaction_type` can be used at most once for the same `previous_step_id`",
            "Previous step interaction type cannot happen for previous step AdGroup type. For example, `SKIP` interaction type is not valid for non-skippable formats.",
            "Campaign video ads sequence is required for `VIDEO_SEQUENCE` advertising channel sub type.",
            "This feature is only available for campaigns with AI Max enabled.",
            "Duration too long for total budget.",
            "Campaigns with total budgets must have end date/time specified."
          ],
          "description": "An error with a Campaign mutate."
        },
        "smartCampaignError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The business location id is invalid.",
            "The SmartCampaignSetting resource is only applicable for campaigns with advertising channel type SMART.",
            "The business name or business location id is required.",
            "A Smart campaign suggestion request field is required.",
            "A location list or proximity is required.",
            "The locale could not be determined.",
            "The final URL could not be crawled."
          ],
          "description": "The reasons for the Smart campaign error",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_BUSINESS_LOCATION_ID",
            "INVALID_CAMPAIGN",
            "BUSINESS_NAME_OR_BUSINESS_LOCATION_ID_MISSING",
            "REQUIRED_SUGGESTION_FIELD_MISSING",
            "GEO_TARGETS_REQUIRED",
            "CANNOT_DETERMINE_SUGGESTION_LOCALE",
            "FINAL_URL_NOT_CRAWLABLE"
          ],
          "type": "string"
        },
        "dataLinkError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "YOUTUBE_CHANNEL_ID_INVALID",
            "YOUTUBE_VIDEO_ID_INVALID",
            "YOUTUBE_VIDEO_FROM_DIFFERENT_CHANNEL",
            "PERMISSION_DENIED",
            "INVALID_STATUS",
            "INVALID_UPDATE_STATUS",
            "INVALID_RESOURCE_NAME"
          ],
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The requested YouTube Channel ID is invalid.",
            "The requested YouTube Video ID is invalid.",
            "The requested YouTube Video ID doesn't belong to the requested YouTube Channel ID.",
            "A link cannot be created because the customer doesn't have the permission.",
            "A link can not be removed or updated because the status is invalid.",
            "The input status in the update request is invalid.",
            "The input resource name is invalid."
          ],
          "description": "The reasons for the data link error"
        },
        "distinctError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DUPLICATE_ELEMENT",
            "DUPLICATE_TYPE"
          ],
          "description": "The reasons for the distinct error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Duplicate element.",
            "Duplicate type."
          ],
          "type": "string"
        },
        "customInterestError": {
          "description": "The reasons for the custom interest error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Duplicate custom interest name ignoring case.",
            "In the remove custom interest member operation, both member ID and pair [type, parameter] are not present.",
            "The pair of [type, parameter] does not exist.",
            "The pair of [type, parameter] already exists.",
            "Unsupported custom interest member type.",
            "Cannot remove a custom interest while it's still being targeted.",
            "Cannot mutate custom interest type."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NAME_ALREADY_USED",
            "CUSTOM_INTEREST_MEMBER_ID_AND_TYPE_PARAMETER_NOT_PRESENT_IN_REMOVE",
            "TYPE_AND_PARAMETER_NOT_FOUND",
            "TYPE_AND_PARAMETER_ALREADY_EXISTED",
            "INVALID_CUSTOM_INTEREST_MEMBER_TYPE",
            "CANNOT_REMOVE_WHILE_IN_USE",
            "CANNOT_CHANGE_TYPE"
          ],
          "type": "string"
        },
        "reachPlanError": {
          "description": "The reasons for the reach plan error",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Not forecastable due to missing rate card data.",
            "Not forecastable due to not enough inventory.",
            "Not forecastable due to account not being enabled."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NOT_FORECASTABLE_MISSING_RATE",
            "NOT_FORECASTABLE_NOT_ENOUGH_INVENTORY",
            "NOT_FORECASTABLE_ACCOUNT_NOT_ENABLED"
          ]
        },
        "customAudienceError": {
          "description": "The reasons for the custom audience error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "New name in the custom audience is duplicated ignoring cases.",
            "Cannot remove a custom audience while it's still being used as targeting.",
            "Cannot update or remove a custom audience that is already removed.",
            "The pair of [type, value] already exists in members.",
            "Member type is invalid.",
            "Member type does not have associated value.",
            "Custom audience contains a member that violates policy.",
            "Change in custom audience type is not allowed."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NAME_ALREADY_USED",
            "CANNOT_REMOVE_WHILE_IN_USE",
            "RESOURCE_ALREADY_REMOVED",
            "MEMBER_TYPE_AND_PARAMETER_ALREADY_EXISTED",
            "INVALID_MEMBER_TYPE",
            "MEMBER_TYPE_AND_VALUE_DOES_NOT_MATCH",
            "POLICY_VIOLATION",
            "INVALID_TYPE_CHANGE"
          ],
          "type": "string"
        },
        "collectionSizeError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Too few.",
            "Too many."
          ],
          "description": "The reasons for the collection size error",
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "TOO_FEW",
            "TOO_MANY"
          ]
        },
        "sizeLimitError": {
          "description": "The reasons for the size limit error",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "REQUEST_SIZE_LIMIT_EXCEEDED",
            "RESPONSE_SIZE_LIMIT_EXCEEDED"
          ],
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "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.",
            "The number of entries in the response exceeds the system limit."
          ]
        },
        "invoiceError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Cannot request invoices issued before 2019-01-01.",
            "Cannot request invoices for customer who doesn't receive invoices.",
            "Cannot request invoices for a non approved billing setup.",
            "Cannot request invoices for a billing setup that is not on monthly invoicing.",
            "Cannot request invoices for a non serving customer."
          ],
          "type": "string",
          "description": "The reasons for the invoice error",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "YEAR_MONTH_TOO_OLD",
            "NOT_INVOICED_CUSTOMER",
            "BILLING_SETUP_NOT_APPROVED",
            "BILLING_SETUP_NOT_ON_MONTHLY_INVOICING",
            "NON_SERVING_CUSTOMER"
          ]
        },
        "customerLifecycleGoalError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CUSTOMER_ACQUISITION_VALUE_MISSING",
            "CUSTOMER_ACQUISITION_INVALID_VALUE",
            "CUSTOMER_ACQUISITION_INVALID_HIGH_LIFETIME_VALUE",
            "CUSTOMER_ACQUISITION_VALUE_CANNOT_BE_CLEARED",
            "CUSTOMER_ACQUISITION_HIGH_LIFETIME_VALUE_CANNOT_BE_CLEARED",
            "INVALID_EXISTING_USER_LIST",
            "INVALID_HIGH_LIFETIME_VALUE_USER_LIST"
          ],
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "CustomerLifecycleGoal.customer_acquisition_goal_value_settings.value must be set.",
            "CustomerLifecycleGoal.customer_acquisition_goal_value_settings.value must be no less than 0.01.",
            "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.",
            "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.",
            "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.",
            "Found invalid value in CustomerLifecycleGoal.lifecycle_goal_customer_definition_settings.existing_user_lists. The userlist must be accessible, active and belong to one of the following types: CRM_BASED, RULE_BASED, REMARKETING.",
            "Found invalid value in CustomerLifecycleGoal.lifecycle_goal_customer_definition_settings.high_lifetime_value_user_lists. The userlist must be accessible, active and belong to one of the following types: CRM_BASED, RULE_BASED, REMARKETING."
          ],
          "description": "The reasons for the customer lifecycle goal error"
        },
        "benchmarksError": {
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "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."
          ],
          "description": "The reasons for the Benchmarks error.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MAX_QUERY_COMPLEXITY_EXCEEDED"
          ]
        },
        "mediaUploadError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "FILE_TOO_BIG",
            "UNPARSEABLE_IMAGE",
            "ANIMATED_IMAGE_NOT_ALLOWED",
            "FORMAT_NOT_ALLOWED",
            "EXTERNAL_URL_NOT_ALLOWED",
            "INVALID_URL_REFERENCE",
            "MISSING_PRIMARY_MEDIA_BUNDLE_ENTRY",
            "ANIMATED_VISUAL_EFFECT",
            "ANIMATION_TOO_LONG",
            "ASPECT_RATIO_NOT_ALLOWED",
            "AUDIO_NOT_ALLOWED_IN_MEDIA_BUNDLE",
            "CMYK_JPEG_NOT_ALLOWED",
            "FLASH_NOT_ALLOWED",
            "FRAME_RATE_TOO_HIGH",
            "GOOGLE_WEB_DESIGNER_ZIP_FILE_NOT_PUBLISHED",
            "IMAGE_CONSTRAINTS_VIOLATED",
            "INVALID_MEDIA_BUNDLE",
            "INVALID_MEDIA_BUNDLE_ENTRY",
            "INVALID_MIME_TYPE",
            "INVALID_PATH",
            "LAYOUT_PROBLEM",
            "MALFORMED_URL",
            "MEDIA_BUNDLE_NOT_ALLOWED",
            "MEDIA_BUNDLE_NOT_COMPATIBLE_TO_PRODUCT_TYPE",
            "MEDIA_BUNDLE_REJECTED_BY_MULTIPLE_ASSET_SPECS",
            "TOO_MANY_FILES_IN_MEDIA_BUNDLE",
            "UNSUPPORTED_GOOGLE_WEB_DESIGNER_ENVIRONMENT",
            "UNSUPPORTED_HTML5_FEATURE",
            "URL_IN_MEDIA_BUNDLE_NOT_SSL_COMPLIANT",
            "VIDEO_FILE_NAME_TOO_LONG",
            "VIDEO_MULTIPLE_FILES_WITH_SAME_NAME",
            "VIDEO_NOT_ALLOWED_IN_MEDIA_BUNDLE",
            "CANNOT_UPLOAD_MEDIA_TYPE_THROUGH_API",
            "DIMENSIONS_NOT_ALLOWED"
          ],
          "description": "The reasons for media uploading errors.",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The uploaded file is too big.",
            "Image data is unparseable.",
            "Animated images are not allowed.",
            "The image or media bundle format is not allowed.",
            "Cannot reference URL external to the media bundle.",
            "HTML5 ad is trying to reference an asset not in .ZIP file.",
            "The media bundle contains no primary entry.",
            "Animation has disallowed visual effects.",
            "Animation longer than the allowed 30 second limit.",
            "The aspect ratio of the image does not match the expected aspect ratios provided in the asset spec.",
            "Audio files are not allowed in bundle.",
            "CMYK jpegs are not supported.",
            "Flash movies are not allowed.",
            "The frame rate of the video is higher than the allowed 5fps.",
            "ZIP file from Google Web Designer is not published.",
            "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.",
            "Media bundle data is unrecognizable.",
            "There was a problem with one or more of the media bundle entries.",
            "The asset has an invalid mime type.",
            "The media bundle contains an invalid asset path.",
            "Image has layout problem.",
            "An asset had a URL reference that is malformed per RFC 1738 convention.",
            "The uploaded media bundle format is not allowed.",
            "The media bundle is not compatible with the asset spec product type. (For example, Gmail, dynamic remarketing, etc.)",
            "A bundle being uploaded that is incompatible with multiple assets for different reasons.",
            "The media bundle contains too many files.",
            "Google Web Designer not created for \"Google Ads\" environment.",
            "Unsupported HTML5 feature in HTML5 asset.",
            "URL in HTML5 entry is not SSL compliant.",
            "Video file name is longer than the 50 allowed characters.",
            "Multiple videos with same name in a bundle.",
            "Videos are not allowed in media bundle.",
            "This type of media cannot be uploaded through the Google Ads API.",
            "The dimensions of the image are not allowed."
          ],
          "type": "string"
        },
        "finalUrlExpansionAssetViewError": {
          "enumDescriptions": [
            "Name unspecified.",
            "The received error code is not known in this version.",
            "At least one required filter has to be applied in the query.",
            "Advertising channel type filter is required.",
            "Advertising channel type filter has an invalid value.",
            "Asset group cannot be selected in the query.",
            "Ad group cannot be selected in the query.",
            "A selected field/resource requires filtering by a single resource.",
            "Both ad group and asset group cannot be selected in the query.",
            "Both ad group and asset group cannot be filtered in the query."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MISSING_REQUIRED_FILTER",
            "REQUIRES_ADVERTISING_CHANNEL_TYPE_FILTER",
            "INVALID_ADVERTISING_CHANNEL_TYPE_IN_FILTER",
            "CANNOT_SELECT_ASSET_GROUP",
            "CANNOT_SELECT_AD_GROUP",
            "REQUIRES_FILTER_BY_SINGLE_RESOURCE",
            "CANNOT_SELECT_BOTH_AD_GROUP_AND_ASSET_GROUP",
            "CANNOT_FILTER_BY_BOTH_AD_GROUP_AND_ASSET_GROUP"
          ],
          "type": "string",
          "description": "The reasons for the final url expansion asset view error"
        },
        "customerError": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "STATUS_CHANGE_DISALLOWED",
            "ACCOUNT_NOT_SET_UP",
            "CREATION_DENIED_FOR_POLICY_VIOLATION",
            "CREATION_DENIED_INELIGIBLE_MCC"
          ],
          "description": "The reasons for the customer error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "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.",
            "CustomerService cannot get a customer that has not been fully set up.",
            "Customer creation is denied for policy violation.",
            "Manager account is ineligible to create new accounts."
          ]
        },
        "changeEventError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The requested start date is too old. It cannot be older than 30 days.",
            "The change_event search request must specify a finite range filter on change_date_time.",
            "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).",
            "The change_event search request must specify a LIMIT.",
            "The LIMIT specified by change_event request should be less than or equal to 10K."
          ],
          "type": "string",
          "description": "The reasons for the change event error",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "START_DATE_TOO_OLD",
            "CHANGE_DATE_RANGE_INFINITE",
            "CHANGE_DATE_RANGE_NEGATIVE",
            "LIMIT_NOT_SPECIFIED",
            "INVALID_LIMIT_CLAUSE"
          ]
        },
        "accessInvitationError": {
          "type": "string",
          "description": "The reasons for the access invitation error",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_EMAIL_ADDRESS",
            "EMAIL_ADDRESS_ALREADY_HAS_ACCESS",
            "INVALID_INVITATION_STATUS",
            "GOOGLE_CONSUMER_ACCOUNT_NOT_ALLOWED",
            "INVALID_INVITATION_ID",
            "EMAIL_ADDRESS_ALREADY_HAS_PENDING_INVITATION",
            "PENDING_INVITATIONS_LIMIT_EXCEEDED",
            "EMAIL_DOMAIN_POLICY_VIOLATED"
          ],
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The email address is invalid for sending an invitation.",
            "Email address already has access to this customer.",
            "Invalid invitation status for the operation.",
            "Email address cannot be like abc+foo@google.com.",
            "Invalid invitation ID.",
            "Email address already has a pending invitation.",
            "Pending invitation limit exceeded for the customer.",
            "Email address doesn't conform to the email domain policy. See https://support.google.com/google-ads/answer/2375456"
          ]
        },
        "queryError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "QUERY_ERROR",
            "BAD_ENUM_CONSTANT",
            "BAD_ESCAPE_SEQUENCE",
            "BAD_FIELD_NAME",
            "BAD_LIMIT_VALUE",
            "BAD_NUMBER",
            "BAD_OPERATOR",
            "BAD_PARAMETER_NAME",
            "BAD_PARAMETER_VALUE",
            "BAD_RESOURCE_TYPE_IN_FROM_CLAUSE",
            "BAD_SYMBOL",
            "BAD_VALUE",
            "DATE_RANGE_TOO_WIDE",
            "DATE_RANGE_TOO_NARROW",
            "EXPECTED_AND",
            "EXPECTED_BY",
            "EXPECTED_DIMENSION_FIELD_IN_SELECT_CLAUSE",
            "EXPECTED_FILTERS_ON_DATE_RANGE",
            "EXPECTED_FROM",
            "EXPECTED_LIST",
            "EXPECTED_REFERENCED_FIELD_IN_SELECT_CLAUSE",
            "EXPECTED_SELECT",
            "EXPECTED_SINGLE_VALUE",
            "EXPECTED_VALUE_WITH_BETWEEN_OPERATOR",
            "INVALID_DATE_FORMAT",
            "MISALIGNED_DATE_FOR_FILTER",
            "INVALID_STRING_VALUE",
            "INVALID_VALUE_WITH_BETWEEN_OPERATOR",
            "INVALID_VALUE_WITH_DURING_OPERATOR",
            "INVALID_VALUE_WITH_LIKE_OPERATOR",
            "OPERATOR_FIELD_MISMATCH",
            "PROHIBITED_EMPTY_LIST_IN_CONDITION",
            "PROHIBITED_ENUM_CONSTANT",
            "PROHIBITED_FIELD_COMBINATION_IN_SELECT_CLAUSE",
            "PROHIBITED_FIELD_IN_ORDER_BY_CLAUSE",
            "PROHIBITED_FIELD_IN_SELECT_CLAUSE",
            "PROHIBITED_FIELD_IN_WHERE_CLAUSE",
            "PROHIBITED_RESOURCE_TYPE_IN_FROM_CLAUSE",
            "PROHIBITED_RESOURCE_TYPE_IN_SELECT_CLAUSE",
            "PROHIBITED_RESOURCE_TYPE_IN_WHERE_CLAUSE",
            "PROHIBITED_METRIC_IN_SELECT_OR_WHERE_CLAUSE",
            "PROHIBITED_SEGMENT_IN_SELECT_OR_WHERE_CLAUSE",
            "PROHIBITED_SEGMENT_WITH_METRIC_IN_SELECT_OR_WHERE_CLAUSE",
            "PROHIBITED_FIELD_OR_SEGMENT_WITH_METRIC",
            "LIMIT_VALUE_TOO_LOW",
            "PROHIBITED_NEWLINE_IN_STRING",
            "PROHIBITED_VALUE_COMBINATION_IN_LIST",
            "PROHIBITED_VALUE_COMBINATION_WITH_BETWEEN_OPERATOR",
            "STRING_NOT_TERMINATED",
            "TOO_MANY_SEGMENTS",
            "UNEXPECTED_END_OF_QUERY",
            "UNEXPECTED_FROM_CLAUSE",
            "UNRECOGNIZED_FIELD",
            "UNEXPECTED_INPUT",
            "REQUESTED_METRICS_FOR_MANAGER",
            "FILTER_HAS_TOO_MANY_VALUES",
            "REQUIRED_SEGMENT_FIELD_MISSING"
          ],
          "type": "string",
          "description": "An error with an AWQL query",
          "enumDescriptions": [
            "Name unspecified.",
            "The received error code is not known in this version.",
            "Returned if all other query error reasons are not applicable.",
            "A condition used in the query references an invalid enum constant.",
            "Query contains an invalid escape sequence.",
            "Field name is invalid.",
            "Limit value is invalid (for example, not a number)",
            "Encountered number can not be parsed.",
            "Invalid operator encountered.",
            "Parameter unknown or not supported.",
            "Parameter have invalid value.",
            "Invalid resource type was specified in the FROM clause.",
            "Non-ASCII symbol encountered outside of strings.",
            "Value is invalid.",
            "Date filters fail to restrict date to a range smaller than 31 days. Applicable if the query is segmented by date.",
            "Filters on date/week/month/quarter have a start date after end date.",
            "Expected AND between values with BETWEEN operator.",
            "Expecting ORDER BY to have BY.",
            "There was no dimension field selected.",
            "Missing filters on date related fields.",
            "Missing FROM clause.",
            "The operator used in the conditions requires the value to be a list.",
            "Fields used in WHERE or ORDER BY clauses are missing from the SELECT clause.",
            "SELECT is missing at the beginning of query.",
            "A list was passed as a value to a condition whose operator expects a single value.",
            "Missing one or both values with BETWEEN operator.",
            "Invalid date format. Expected 'YYYY-MM-DD'.",
            "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.",
            "Value passed was not a string when it should have been. For example, it was a number or unquoted literal.",
            "A String value passed to the BETWEEN operator does not parse as a date.",
            "The value passed to the DURING operator is not a Date range literal",
            "An invalid value was passed to the LIKE operator.",
            "An operator was provided that is inapplicable to the field being filtered.",
            "A Condition was found with an empty list.",
            "A condition used in the query references an unsupported enum constant.",
            "Fields that are not allowed to be selected together were included in the SELECT clause.",
            "A field that is not orderable was included in the ORDER BY clause.",
            "A field that is not selectable was included in the SELECT clause.",
            "A field that is not filterable was included in the WHERE clause.",
            "Resource type specified in the FROM clause is not supported by this service.",
            "A field that comes from an incompatible resource was included in the SELECT clause.",
            "A field that comes from an incompatible resource was included in the WHERE clause.",
            "A metric incompatible with the main resource or other selected segmenting resources was included in the SELECT or WHERE clause.",
            "A segment incompatible with the main resource or other selected segmenting resources was included in the SELECT or WHERE clause.",
            "A segment in the SELECT clause is incompatible with a metric in the SELECT or WHERE clause.",
            "A metric may not be selected with one of the selected resource fields, or segmented by one of the selected segment fields.",
            "The value passed to the limit clause is too low.",
            "Query has a string containing a newline character.",
            "List contains values of different types.",
            "The values passed to the BETWEEN operator are not of the same type.",
            "Query contains unterminated string.",
            "Too many segments are specified in SELECT clause.",
            "Query is incomplete and cannot be parsed.",
            "FROM clause cannot be specified in this query.",
            "Query contains one or more unrecognized fields.",
            "Query has an unexpected extra part.",
            "Metrics cannot be requested for a manager account. To retrieve metrics, issue separate requests against each client account under the manager account.",
            "The number of values (right-hand-side operands) in a filter exceeds the limit.",
            "Required segment field is missing."
          ]
        },
        "adGroupError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DUPLICATE_ADGROUP_NAME",
            "INVALID_ADGROUP_NAME",
            "ADVERTISER_NOT_ON_CONTENT_NETWORK",
            "BID_TOO_BIG",
            "BID_TYPE_AND_BIDDING_STRATEGY_MISMATCH",
            "MISSING_ADGROUP_NAME",
            "ADGROUP_LABEL_DOES_NOT_EXIST",
            "ADGROUP_LABEL_ALREADY_EXISTS",
            "INVALID_CONTENT_BID_CRITERION_TYPE_GROUP",
            "AD_GROUP_TYPE_NOT_VALID_FOR_ADVERTISING_CHANNEL_TYPE",
            "ADGROUP_TYPE_NOT_SUPPORTED_FOR_CAMPAIGN_SALES_COUNTRY",
            "CANNOT_ADD_ADGROUP_OF_TYPE_DSA_TO_CAMPAIGN_WITHOUT_DSA_SETTING",
            "PROMOTED_HOTEL_AD_GROUPS_NOT_AVAILABLE_FOR_CUSTOMER",
            "INVALID_EXCLUDED_PARENT_ASSET_FIELD_TYPE",
            "INVALID_EXCLUDED_PARENT_ASSET_SET_TYPE",
            "CANNOT_ADD_AD_GROUP_FOR_CAMPAIGN_TYPE",
            "INVALID_STATUS",
            "INVALID_STEP_ID_FOR_VIDEO_ADS_SEQUENCING",
            "INVALID_AD_GROUP_TYPE_FOR_VIDEO_ADS_SEQUENCING",
            "DUPLICATE_STEP_ID",
            "INVALID_VERTICAL_ADS_FORMAT_SETTING",
            "VERTICAL_ADS_FORMAT_SETTING_NOT_SUPPORTED_FOR_CAMPAIGNS_WITHOUT_AI_MAX",
            "VERTICAL_ADS_FORMAT_SETTING_NOT_SUPPORTED_FOR_CAMPAIGNS_WITHOUT_ENABLED_TRAVEL_FEED"
          ],
          "description": "An error with an Ad Group mutate.",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "AdGroup with the same name already exists for the campaign.",
            "AdGroup name is not valid.",
            "Advertiser is not allowed to target sites or set site bids that are not on the Google Search Network.",
            "Bid amount is too big.",
            "AdGroup bid does not match the campaign's bidding strategy.",
            "AdGroup name is required for Add.",
            "No link found between the ad group and the label.",
            "The label has already been attached to the ad group.",
            "The CriterionTypeGroup is not supported for the content bid dimension.",
            "The ad group type is not compatible with the campaign channel type.",
            "The ad group type is not supported in the country of sale of the campaign.",
            "Ad groups of AdGroupType.SEARCH_DYNAMIC_ADS can only be added to campaigns that have DynamicSearchAdsSetting attached.",
            "Promoted hotels ad groups are only available to customers on the allow-list.",
            "The field type cannot be excluded because an active ad group-asset link of this type exists.",
            "The asset set type is invalid for setting the excluded_parent_asset_set_types field.",
            "Cannot add ad groups for the campaign type.",
            "Invalid status for the ad group.",
            "For video ads sequencing, AdGroup `step_id` has to use a `step_id` defined in `campaign.video_campaign_settings.video_ad_sequence`.",
            "For video ads sequencing, AdGroup type has to use a type defined in `campaign.video_campaign_settings.video_ad_sequence`.",
            "Only one AdGroup is allowed for each step ID in video ads sequencing.",
            "At least one Vertical Ads format must be enabled for a campaign under Travel Ads in Search Campaigns.",
            "AI max setting must be enabled to enable Vertical Ads formats for a campaign under Travel Ads in Search Campaigns.",
            "An enabled travel feed must be linked to enable Vertical Ads formats for a campaign under Travel Ads in Search Campaigns."
          ],
          "type": "string"
        },
        "campaignCriterionError": {
          "description": "The reasons for the campaign criterion error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Concrete type of criterion (keyword v.s. placement) is required for CREATE and UPDATE operations.",
            "Invalid placement URL.",
            "Criteria type can not be excluded for the campaign by the customer. like AOL account type cannot target site type criteria",
            "Cannot set the campaign criterion status for this criteria type.",
            "Cannot set the campaign criterion status for an excluded criteria.",
            "Cannot target and exclude the same criterion.",
            "The mutate contained too many operations.",
            "This operator cannot be applied to a criterion of this type.",
            "The Shopping campaign sales country is not supported for ProductSalesChannel targeting.",
            "The existing field can't be updated with CREATE operation. It can be updated with UPDATE operation only.",
            "Negative criteria are immutable, so updates are not allowed.",
            "Only free form names are allowed for negative Smart campaign keyword theme.",
            "Invalid Smart campaign keyword theme constant criterion.",
            "A Smart campaign keyword theme constant or free-form Smart campaign keyword theme is required.",
            "A Smart campaign may not target proximity and location criteria simultaneously.",
            "A Smart campaign may not target multiple proximity criteria.",
            "Location is not launched for Local Services Campaigns.",
            "A Local Services campaign may not target certain criteria types.",
            "Country locations are not supported for Local Services campaign.",
            "Location is not within the home country of Local Services campaign.",
            "Local Services profile does not exist for a particular Local Services campaign.",
            "Local Services campaign must have at least one target location.",
            "At least one positive local service ID criterion is required for a Local Services campaign.",
            "Local service ID is not found under selected categories in local services campaign setting.",
            "For search advertising channel, brand lists can only be applied to exclusive targeting, broad match campaigns for inclusive targeting or PMax generated campaigns.",
            "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.",
            "Video lineup ID does not exist."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CONCRETE_TYPE_REQUIRED",
            "INVALID_PLACEMENT_URL",
            "CANNOT_EXCLUDE_CRITERIA_TYPE",
            "CANNOT_SET_STATUS_FOR_CRITERIA_TYPE",
            "CANNOT_SET_STATUS_FOR_EXCLUDED_CRITERIA",
            "CANNOT_TARGET_AND_EXCLUDE",
            "TOO_MANY_OPERATIONS",
            "OPERATOR_NOT_SUPPORTED_FOR_CRITERION_TYPE",
            "SHOPPING_CAMPAIGN_SALES_COUNTRY_NOT_SUPPORTED_FOR_SALES_CHANNEL",
            "CANNOT_ADD_EXISTING_FIELD",
            "CANNOT_UPDATE_NEGATIVE_CRITERION",
            "CANNOT_SET_NEGATIVE_KEYWORD_THEME_CONSTANT_CRITERION",
            "INVALID_KEYWORD_THEME_CONSTANT",
            "MISSING_KEYWORD_THEME_CONSTANT_OR_FREE_FORM_KEYWORD_THEME",
            "CANNOT_TARGET_BOTH_PROXIMITY_AND_LOCATION_CRITERIA_FOR_SMART_CAMPAIGN",
            "CANNOT_TARGET_MULTIPLE_PROXIMITY_CRITERIA_FOR_SMART_CAMPAIGN",
            "LOCATION_NOT_LAUNCHED_FOR_LOCAL_SERVICES_CAMPAIGN",
            "LOCATION_INVALID_FOR_LOCAL_SERVICES_CAMPAIGN",
            "CANNOT_TARGET_COUNTRY_FOR_LOCAL_SERVICES_CAMPAIGN",
            "LOCATION_NOT_IN_HOME_COUNTRY_FOR_LOCAL_SERVICES_CAMPAIGN",
            "CANNOT_ADD_OR_REMOVE_LOCATION_FOR_LOCAL_SERVICES_CAMPAIGN",
            "AT_LEAST_ONE_POSITIVE_LOCATION_REQUIRED_FOR_LOCAL_SERVICES_CAMPAIGN",
            "AT_LEAST_ONE_LOCAL_SERVICE_ID_CRITERION_REQUIRED_FOR_LOCAL_SERVICES_CAMPAIGN",
            "LOCAL_SERVICE_ID_NOT_FOUND_FOR_CATEGORY",
            "CANNOT_ATTACH_BRAND_LIST_TO_NON_QUALIFIED_SEARCH_CAMPAIGN",
            "CANNOT_REMOVE_ALL_LOCATIONS_DUE_TO_TOO_MANY_COUNTRY_EXCLUSIONS",
            "INVALID_VIDEO_LINEUP_ID"
          ],
          "type": "string"
        },
        "paymentsAccountError": {
          "type": "string",
          "description": "The reasons for errors in payments accounts service",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NOT_SUPPORTED_FOR_MANAGER_CUSTOMER"
          ],
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Manager customers are not supported for payments account service."
          ]
        },
        "mutateError": {
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Requested resource was not found.",
            "Cannot mutate the same resource twice in one request.",
            "The field's contents don't match another field that represents the same data.",
            "Mutates are not allowed for the requested resource.",
            "The resource isn't in Google Ads. It belongs to another ads system.",
            "The resource being created already exists.",
            "This resource cannot be used with \"validate_only\".",
            "This operation cannot be used with \"partial_failure\".",
            "Attempt to write to read-only fields."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "RESOURCE_NOT_FOUND",
            "ID_EXISTS_IN_MULTIPLE_MUTATES",
            "INCONSISTENT_FIELD_VALUES",
            "MUTATE_NOT_ALLOWED",
            "RESOURCE_NOT_IN_GOOGLE_ADS",
            "RESOURCE_ALREADY_EXISTS",
            "RESOURCE_DOES_NOT_SUPPORT_VALIDATE_ONLY",
            "OPERATION_DOES_NOT_SUPPORT_PARTIAL_FAILURE",
            "RESOURCE_READ_ONLY"
          ],
          "description": "An error with a mutate"
        },
        "multiplierError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Multiplier value is too high",
            "Multiplier value is too low",
            "Too many fractional digits",
            "A multiplier cannot be set for this bidding strategy",
            "A multiplier cannot be set when there is no base bid (for example, content max cpc)",
            "A bid multiplier must be specified",
            "Multiplier causes bid to exceed daily budget",
            "Multiplier causes bid to exceed monthly budget",
            "Multiplier causes bid to exceed custom budget",
            "Multiplier causes bid to exceed maximum allowed bid",
            "Multiplier causes bid to become less than the minimum bid allowed",
            "Multiplier type (cpc versus cpm) needs to match campaign's bidding strategy"
          ],
          "description": "The reasons for the multiplier error",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MULTIPLIER_TOO_HIGH",
            "MULTIPLIER_TOO_LOW",
            "TOO_MANY_FRACTIONAL_DIGITS",
            "MULTIPLIER_NOT_ALLOWED_FOR_BIDDING_STRATEGY",
            "MULTIPLIER_NOT_ALLOWED_WHEN_BASE_BID_IS_MISSING",
            "NO_MULTIPLIER_SPECIFIED",
            "MULTIPLIER_CAUSES_BID_TO_EXCEED_DAILY_BUDGET",
            "MULTIPLIER_CAUSES_BID_TO_EXCEED_MONTHLY_BUDGET",
            "MULTIPLIER_CAUSES_BID_TO_EXCEED_CUSTOM_BUDGET",
            "MULTIPLIER_CAUSES_BID_TO_EXCEED_MAX_ALLOWED_BID",
            "BID_LESS_THAN_MIN_ALLOWED_BID_WITH_MULTIPLIER",
            "MULTIPLIER_AND_BIDDING_STRATEGY_TYPE_MISMATCH"
          ],
          "type": "string"
        },
        "campaignConversionGoalError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CANNOT_USE_CAMPAIGN_GOAL_FOR_SEARCH_ADS_360_MANAGED_CAMPAIGN",
            "CANNOT_USE_STORE_SALE_GOAL_FOR_PERFORMANCE_MAX_CAMPAIGN"
          ],
          "description": "The reasons for the campaign conversion goal error",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Campaign is managed by Search Ads 360 but uses Unified Goal.",
            "Performance Max campaign cannot use an included store sale campaign goal."
          ]
        },
        "feedItemSetLinkError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "FEED_ID_MISMATCH",
            "NO_MUTATE_ALLOWED_FOR_DYNAMIC_SET"
          ],
          "description": "The reasons for the feed item set link error",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "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.",
            "Cannot add or remove links to a dynamic set."
          ]
        },
        "extensionFeedItemError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "VALUE_OUT_OF_RANGE",
            "URL_LIST_TOO_LONG",
            "CANNOT_HAVE_RESTRICTION_ON_EMPTY_GEO_TARGETING",
            "CANNOT_SET_WITH_FINAL_URLS",
            "CANNOT_SET_WITHOUT_FINAL_URLS",
            "INVALID_PHONE_NUMBER",
            "PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY",
            "CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED",
            "PREMIUM_RATE_NUMBER_NOT_ALLOWED",
            "DISALLOWED_NUMBER_TYPE",
            "INVALID_DOMESTIC_PHONE_NUMBER_FORMAT",
            "VANITY_PHONE_NUMBER_NOT_ALLOWED",
            "INVALID_CALL_CONVERSION_ACTION",
            "CUSTOMER_NOT_ON_ALLOWLIST_FOR_CALLTRACKING",
            "CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY",
            "CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED",
            "INVALID_APP_ID",
            "QUOTES_IN_REVIEW_EXTENSION_SNIPPET",
            "HYPHENS_IN_REVIEW_EXTENSION_SNIPPET",
            "REVIEW_EXTENSION_SOURCE_INELIGIBLE",
            "SOURCE_NAME_IN_REVIEW_EXTENSION_TEXT",
            "INCONSISTENT_CURRENCY_CODES",
            "PRICE_EXTENSION_HAS_DUPLICATED_HEADERS",
            "PRICE_ITEM_HAS_DUPLICATED_HEADER_AND_DESCRIPTION",
            "PRICE_EXTENSION_HAS_TOO_FEW_ITEMS",
            "PRICE_EXTENSION_HAS_TOO_MANY_ITEMS",
            "UNSUPPORTED_VALUE",
            "UNSUPPORTED_VALUE_IN_SELECTED_LANGUAGE",
            "INVALID_DEVICE_PREFERENCE",
            "INVALID_SCHEDULE_END",
            "DATE_TIME_MUST_BE_IN_ACCOUNT_TIME_ZONE",
            "INVALID_SNIPPETS_HEADER",
            "CANNOT_OPERATE_ON_REMOVED_FEED_ITEM",
            "PHONE_NUMBER_NOT_SUPPORTED_WITH_CALLTRACKING_FOR_COUNTRY",
            "CONFLICTING_CALL_CONVERSION_SETTINGS",
            "EXTENSION_TYPE_MISMATCH",
            "EXTENSION_SUBTYPE_REQUIRED",
            "EXTENSION_TYPE_UNSUPPORTED",
            "CANNOT_OPERATE_ON_FEED_WITH_MULTIPLE_MAPPINGS",
            "CANNOT_OPERATE_ON_FEED_WITH_KEY_ATTRIBUTES",
            "INVALID_PRICE_FORMAT",
            "PROMOTION_INVALID_TIME",
            "TOO_MANY_DECIMAL_PLACES_SPECIFIED",
            "CONCRETE_EXTENSION_TYPE_REQUIRED",
            "SCHEDULE_END_NOT_AFTER_START"
          ],
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Value is not within the accepted range.",
            "Url list is too long.",
            "Cannot have a geo targeting restriction without having geo targeting.",
            "Cannot simultaneously set sitelink field with final urls.",
            "Must set field with final urls.",
            "Phone number for a call extension is invalid.",
            "Phone number for a call extension is not supported for the given country code.",
            "A carrier specific number in short format is not allowed for call extensions.",
            "Premium rate numbers are not allowed for call extensions.",
            "Phone number type for a call extension is not allowed. For example, personal number is not allowed for a call extension in most regions.",
            "Phone number for a call extension does not meet domestic format requirements.",
            "Vanity phone numbers (for example, those including letters) are not allowed for call extensions.",
            "Call conversion action provided for a call extension is invalid.",
            "For a call extension, the customer is not on the allow-list for call tracking.",
            "Call tracking is not supported for the given country for a call extension.",
            "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.",
            "App id provided for an app extension is invalid.",
            "Quotation marks present in the review text for a review extension.",
            "Hyphen character present in the review text for a review extension.",
            "A denylisted review source name or url was provided for a review extension.",
            "Review source name should not be found in the review text.",
            "Inconsistent currency codes.",
            "Price extension cannot have duplicated headers.",
            "Price item cannot have duplicated header and description.",
            "Price extension has too few items.",
            "Price extension has too many items.",
            "The input value is not currently supported.",
            "The input value is not currently supported in the selected language of an extension.",
            "Unknown or unsupported device preference.",
            "Invalid feed item schedule end time (for example, endHour = 24 and endMinute != 0).",
            "Date time zone does not match the account's time zone.",
            "Invalid structured snippet header.",
            "Cannot operate on removed feed item.",
            "Phone number not supported when call tracking enabled for country.",
            "Cannot set call_conversion_action while call_conversion_tracking_enabled is set to true.",
            "The type of the input extension feed item doesn't match the existing extension feed item.",
            "The oneof field extension for example, subtype of extension feed item is required.",
            "The referenced feed item is not mapped to a supported extension type.",
            "Cannot operate on a Feed with more than one active FeedMapping.",
            "Cannot operate on a Feed that has key attributes.",
            "Input price is not in a valid format.",
            "The promotion time is invalid.",
            "This field has too many decimal places specified.",
            "Concrete sub type of ExtensionFeedItem is required for this operation.",
            "Feed item schedule end time must be after start time."
          ],
          "description": "The reasons for the extension feed item error",
          "type": "string"
        },
        "feedAttributeReferenceError": {
          "description": "The reasons for the feed attribute reference error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "A feed referenced by ID has been removed.",
            "There is no enabled feed with the given name.",
            "There is no feed attribute in an enabled feed with the given name."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CANNOT_REFERENCE_REMOVED_FEED",
            "INVALID_FEED_NAME",
            "INVALID_FEED_ATTRIBUTE_NAME"
          ],
          "type": "string"
        },
        "batchJobError": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CANNOT_MODIFY_JOB_AFTER_JOB_STARTS_RUNNING",
            "EMPTY_OPERATIONS",
            "INVALID_SEQUENCE_TOKEN",
            "RESULTS_NOT_READY",
            "INVALID_PAGE_SIZE",
            "CAN_ONLY_REMOVE_PENDING_JOB",
            "CANNOT_LIST_RESULTS",
            "ASSET_GROUP_AND_ASSET_GROUP_ASSET_TRANSACTION_FAILURE",
            "ASSET_GROUP_LISTING_GROUP_FILTER_TRANSACTION_FAILURE",
            "REQUEST_TOO_LARGE",
            "CAMPAIGN_AND_CAMPAIGN_ASSET_TRANSACTION_FAILURE"
          ],
          "description": "The reasons for the batch job error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The batch job cannot add more operations or run after it has started running.",
            "The operations for an AddBatchJobOperations request were empty.",
            "The sequence token for an AddBatchJobOperations request was invalid.",
            "Batch job results can only be retrieved once the job is finished.",
            "The page size for ListBatchJobResults was invalid.",
            "The batch job cannot be removed because it has started running.",
            "The batch job cannot be listed due to unexpected errors such as duplicate checkpoints.",
            "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.",
            "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.",
            "The AddBatchJobOperationsRequest is too large. Split the request into smaller requests. The maximum allowed request size is 10484504 bytes.",
            "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."
          ]
        },
        "databaseError": {
          "description": "The reasons for the database error.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CONCURRENT_MODIFICATION",
            "DATA_CONSTRAINT_VIOLATION",
            "REQUEST_TOO_LARGE"
          ],
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Multiple requests were attempting to modify the same resource at once. Retry the request.",
            "The request conflicted with existing data. This error will usually be replaced with a more specific error if the request is retried.",
            "The data written is too large. Split the request into smaller requests."
          ]
        },
        "customConversionGoalError": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_CONVERSION_ACTION",
            "CONVERSION_ACTION_NOT_ENABLED",
            "CANNOT_REMOVE_LINKED_CUSTOM_CONVERSION_GOAL",
            "CUSTOM_GOAL_DUPLICATE_NAME",
            "DUPLICATE_CONVERSION_ACTION_LIST",
            "NON_BIDDABLE_CONVERSION_ACTION_NOT_ELIGIBLE_FOR_CUSTOM_GOAL"
          ],
          "description": "The reasons for the custom conversion goal error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Cannot find a conversion action with the specified id.",
            "The conversion action is not enabled so it cannot be included in a custom conversion goal.",
            "The custom conversion goal cannot be removed because it's linked to a campaign.",
            "Custom goal with the same name already exists.",
            "Custom goal with the same conversion action list already exists.",
            "Conversion types that cannot be biddable should not be included in custom goal."
          ]
        },
        "experimentError": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CANNOT_SET_START_DATE_IN_PAST",
            "END_DATE_BEFORE_START_DATE",
            "START_DATE_TOO_FAR_IN_FUTURE",
            "DUPLICATE_EXPERIMENT_NAME",
            "CANNOT_MODIFY_REMOVED_EXPERIMENT",
            "START_DATE_ALREADY_PASSED",
            "CANNOT_SET_END_DATE_IN_PAST",
            "CANNOT_SET_STATUS_TO_REMOVED",
            "CANNOT_MODIFY_PAST_END_DATE",
            "INVALID_STATUS",
            "INVALID_CAMPAIGN_CHANNEL_TYPE",
            "OVERLAPPING_MEMBERS_AND_DATE_RANGE",
            "INVALID_TRIAL_ARM_TRAFFIC_SPLIT",
            "TRAFFIC_SPLIT_OVERLAPPING",
            "SUM_TRIAL_ARM_TRAFFIC_UNEQUALS_TO_TRIAL_TRAFFIC_SPLIT_DENOMINATOR",
            "CANNOT_MODIFY_TRAFFIC_SPLIT_AFTER_START",
            "EXPERIMENT_NOT_FOUND",
            "EXPERIMENT_NOT_YET_STARTED",
            "CANNOT_HAVE_MULTIPLE_CONTROL_ARMS",
            "IN_DESIGN_CAMPAIGNS_NOT_SET",
            "CANNOT_SET_STATUS_TO_GRADUATED",
            "CANNOT_CREATE_EXPERIMENT_CAMPAIGN_WITH_SHARED_BUDGET",
            "CANNOT_CREATE_EXPERIMENT_CAMPAIGN_WITH_CUSTOM_BUDGET",
            "STATUS_TRANSITION_INVALID",
            "DUPLICATE_EXPERIMENT_CAMPAIGN_NAME",
            "CANNOT_REMOVE_IN_CREATION_EXPERIMENT",
            "CANNOT_ADD_CAMPAIGN_WITH_DEPRECATED_AD_TYPES",
            "CANNOT_ENABLE_SYNC_FOR_UNSUPPORTED_EXPERIMENT_TYPE",
            "INVALID_DURATION_FOR_AN_EXPERIMENT",
            "MISSING_EU_POLITICAL_ADVERTISING_SELF_DECLARATION"
          ],
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The start date of an experiment cannot be set in the past. Use a start date in the future.",
            "The end date of an experiment is before its start date. Use an end date after the start date.",
            "The start date of an experiment is too far in the future. Use a start date no more than 1 year in the future.",
            "The experiment has the same name as an existing active experiment.",
            "Experiments can only be modified when they are ENABLED.",
            "The start date of an experiment cannot be modified if the existing start date has already passed.",
            "The end date of an experiment cannot be set in the past.",
            "The status of an experiment cannot be set to REMOVED.",
            "The end date of an expired experiment cannot be modified.",
            "The status is invalid.",
            "Experiment arm contains campaigns with invalid advertising channel type.",
            "A pair of trials share members and have overlapping date ranges.",
            "Experiment arm contains invalid traffic split.",
            "Experiment contains trial arms with overlapping traffic split.",
            "The total traffic split of trial arms is not equal to 100.",
            "Traffic split related settings (like traffic share bounds) can't be modified after the experiment has started.",
            "The experiment could not be found.",
            "Experiment has not begun.",
            "The experiment cannot have more than one control arm.",
            "The experiment doesn't set in-design campaigns.",
            "Clients must use the graduate action to graduate experiments and cannot set the status to GRADUATED directly.",
            "Cannot use shared budget on base campaign when scheduling an experiment.",
            "Cannot use custom budget on base campaign when scheduling an experiment.",
            "Invalid status transition.",
            "The experiment campaign name conflicts with a pre-existing campaign.",
            "Cannot remove in creation experiments.",
            "Cannot add campaign with deprecated ad types. Deprecated ad types: ENHANCED_DISPLAY, GALLERY, GMAIL, KEYWORDLESS, TEXT.",
            "Sync can only be enabled for supported experiment types. Supported experiment types: SEARCH_CUSTOM, DISPLAY_CUSTOM, DISPLAY_AUTOMATED_BIDDING_STRATEGY, SEARCH_AUTOMATED_BIDDING_STRATEGY.",
            "Experiment length cannot be longer than max length.",
            "The experiment's campaigns must self-declare whether they contain political advertising that targets the European Union."
          ],
          "description": "The reasons for the experiment error"
        },
        "labelError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CANNOT_APPLY_INACTIVE_LABEL",
            "CANNOT_APPLY_LABEL_TO_DISABLED_AD_GROUP_CRITERION",
            "CANNOT_APPLY_LABEL_TO_NEGATIVE_AD_GROUP_CRITERION",
            "EXCEEDED_LABEL_LIMIT_PER_TYPE",
            "INVALID_RESOURCE_FOR_MANAGER_LABEL",
            "DUPLICATE_NAME",
            "INVALID_LABEL_NAME",
            "CANNOT_ATTACH_LABEL_TO_DRAFT",
            "CANNOT_ATTACH_NON_MANAGER_LABEL_TO_CUSTOMER"
          ],
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "An inactive label cannot be applied.",
            "A label cannot be applied to a disabled ad group criterion.",
            "A label cannot be applied to a negative ad group criterion.",
            "Cannot apply more than 50 labels per resource.",
            "Labels from a manager account cannot be applied to campaign, ad group, ad group ad, or ad group criterion resources.",
            "Label names must be unique.",
            "Label names cannot be empty.",
            "Labels cannot be applied to a draft.",
            "Labels not from a manager account cannot be applied to the customer resource."
          ],
          "description": "The reason for the label error."
        },
        "stringFormatError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The input string value contains disallowed characters.",
            "The input string value is invalid for the associated field."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ILLEGAL_CHARS",
            "INVALID_FORMAT"
          ],
          "description": "The reasons for the string format error"
        },
        "conversionAdjustmentUploadError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "TOO_RECENT_CONVERSION_ACTION",
            "CONVERSION_ALREADY_RETRACTED",
            "CONVERSION_NOT_FOUND",
            "CONVERSION_EXPIRED",
            "ADJUSTMENT_PRECEDES_CONVERSION",
            "MORE_RECENT_RESTATEMENT_FOUND",
            "TOO_RECENT_CONVERSION",
            "CANNOT_RESTATE_CONVERSION_ACTION_THAT_ALWAYS_USES_DEFAULT_CONVERSION_VALUE",
            "TOO_MANY_ADJUSTMENTS_IN_REQUEST",
            "TOO_MANY_ADJUSTMENTS",
            "RESTATEMENT_ALREADY_EXISTS",
            "DUPLICATE_ADJUSTMENT_IN_REQUEST",
            "CUSTOMER_NOT_ACCEPTED_CUSTOMER_DATA_TERMS",
            "CONVERSION_ACTION_NOT_ELIGIBLE_FOR_ENHANCEMENT",
            "INVALID_USER_IDENTIFIER",
            "UNSUPPORTED_USER_IDENTIFIER",
            "GCLID_DATE_TIME_PAIR_AND_ORDER_ID_BOTH_SET",
            "CONVERSION_ALREADY_ENHANCED",
            "DUPLICATE_ENHANCEMENT_IN_REQUEST",
            "CUSTOMER_DATA_POLICY_PROHIBITS_ENHANCEMENT",
            "MISSING_ORDER_ID_FOR_WEBPAGE",
            "ORDER_ID_CONTAINS_PII",
            "INVALID_JOB_ID",
            "NO_CONVERSION_ACTION_FOUND",
            "INVALID_CONVERSION_ACTION_TYPE"
          ],
          "description": "The reasons for the conversion adjustment upload error",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Can't import events to a conversion action that was just created. Try importing again in 6 hours.",
            "The conversion was already retracted. This adjustment was not processed.",
            "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.",
            "Adjustment can't be made to a conversion that occurred more than 54 days ago.",
            "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 adjustment `adjustment_date_time` has already been reported for the associated conversion. Make sure your adjustment `adjustment_date_time` is correct and try again.",
            "Adjustment can't be recorded because the conversion occurred too recently. Try adjusting a conversion that occurred at least 24 hours ago.",
            "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.",
            "Try uploading fewer than 2001 adjustments in a single API request.",
            "The conversion has already been adjusted the maximum number of times. Make sure you're only making necessary adjustment to existing conversion.",
            "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.",
            "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.",
            "Make sure you agree to the customer data processing terms in conversion settings and try again.",
            "Can't use enhanced conversions with the specified conversion action.",
            "Make sure you hash user provided data using SHA-256 and ensure you are normalizing according to the guidelines.",
            "Use user provided data such as emails or phone numbers hashed using SHA-256 and try again.",
            "Cannot set both gclid_date_time_pair and order_id. Use only 1 type and try again.",
            "Conversion already has enhancements with the same Order ID and conversion action. Make sure your data is correctly configured and try again.",
            "Multiple enhancements have the same conversion action and Order ID. Make sure your data is correctly configured and try again.",
            "Enhanced conversions can't be used for this account because of Google customer data policies. Contact your Google representative.",
            "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.",
            "Can't use adjustment with Order IDs containing personally-identifiable information (PII).",
            "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).",
            "The conversion action specified in the adjustment request cannot be found. Make sure it's available in this account.",
            "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`."
          ]
        },
        "sharedCriterionError": {
          "type": "string",
          "description": "The reasons for the shared criterion error",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CRITERION_TYPE_NOT_ALLOWED_FOR_SHARED_SET_TYPE"
          ],
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The criterion is not appropriate for the shared set type."
          ]
        },
        "assetError": {
          "description": "The reasons for the asset error",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The customer is not is not on the allow-list for this asset type.",
            "Assets are duplicated across operations.",
            "The asset name is duplicated, either across operations or with an existing asset.",
            "The Asset.asset_data oneof is empty.",
            "The asset has a name which is different from an existing duplicate that represents the same content.",
            "The field cannot be set for this asset type.",
            "Call to action must come from the list of supported values.",
            "A lead form asset is created with an invalid combination of input fields.",
            "Lead forms require that the Terms of Service have been agreed to before mutates can be executed.",
            "Asset status is invalid in this operation.",
            "The field cannot be modified by this asset type.",
            "Ad schedules for the same asset cannot overlap.",
            "Cannot set both percent off and money amount off fields of promotion asset.",
            "Cannot set both promotion code and orders over amount fields of promotion asset.",
            "The field has too many decimal places specified.",
            "Duplicate assets across operations, which have identical Asset.asset_data oneof, cannot have different asset level fields for asset types which are deduped.",
            "Carrier specific short number is not allowed.",
            "Customer consent required for call recording Terms of Service.",
            "The type of the specified phone number is not allowed.",
            "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.",
            "The country code of the phone number is invalid.",
            "The format of the phone number is incorrect.",
            "The input phone number is not a valid phone number.",
            "The phone number is not supported for country.",
            "Premium rate phone number is not allowed.",
            "Vanity phone number is not allowed.",
            "PriceOffering cannot have the same value for header and description.",
            "AppId is invalid.",
            "Invalid App download URL in final URLs.",
            "Asset name is required for the asset type.",
            "Legacy qualifying questions cannot be in the same Lead Form as custom questions.",
            "Unique name is required for this asset type.",
            "Cannot modify asset source.",
            "User can not modify the automatically created asset.",
            "Lead Form is disallowed to use \"LOCATION\" answer type.",
            "Page Feed label text contains invalid characters.",
            "The customer is not in the allow-list for whatsapp message asset type.",
            "Only customers on the allowlist can create AppDeepLinkAsset.",
            "Promotion barcode cannot contain links.",
            "Failed to encode promotion barcode: Invalid format.",
            "Barcode type is not supported.",
            "Promotion QR code cannot contain links.",
            "Failed to encode promotion QR code: Invalid format.",
            "The customer is not in the allow-list for Business message asset type."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CUSTOMER_NOT_ON_ALLOWLIST_FOR_ASSET_TYPE",
            "DUPLICATE_ASSET",
            "DUPLICATE_ASSET_NAME",
            "ASSET_DATA_IS_MISSING",
            "CANNOT_MODIFY_ASSET_NAME",
            "FIELD_INCOMPATIBLE_WITH_ASSET_TYPE",
            "INVALID_CALL_TO_ACTION_TEXT",
            "LEAD_FORM_INVALID_FIELDS_COMBINATION",
            "LEAD_FORM_MISSING_AGREEMENT",
            "INVALID_ASSET_STATUS",
            "FIELD_CANNOT_BE_MODIFIED_FOR_ASSET_TYPE",
            "SCHEDULES_CANNOT_OVERLAP",
            "PROMOTION_CANNOT_SET_PERCENT_OFF_AND_MONEY_AMOUNT_OFF",
            "PROMOTION_CANNOT_SET_PROMOTION_CODE_AND_ORDERS_OVER_AMOUNT",
            "TOO_MANY_DECIMAL_PLACES_SPECIFIED",
            "DUPLICATE_ASSETS_WITH_DIFFERENT_FIELD_VALUE",
            "CALL_CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED",
            "CALL_CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED",
            "CALL_DISALLOWED_NUMBER_TYPE",
            "CALL_INVALID_CONVERSION_ACTION",
            "CALL_INVALID_COUNTRY_CODE",
            "CALL_INVALID_DOMESTIC_PHONE_NUMBER_FORMAT",
            "CALL_INVALID_PHONE_NUMBER",
            "CALL_PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY",
            "CALL_PREMIUM_RATE_NUMBER_NOT_ALLOWED",
            "CALL_VANITY_PHONE_NUMBER_NOT_ALLOWED",
            "PRICE_HEADER_SAME_AS_DESCRIPTION",
            "MOBILE_APP_INVALID_APP_ID",
            "MOBILE_APP_INVALID_FINAL_URL_FOR_APP_DOWNLOAD_URL",
            "NAME_REQUIRED_FOR_ASSET_TYPE",
            "LEAD_FORM_LEGACY_QUALIFYING_QUESTIONS_DISALLOWED",
            "NAME_CONFLICT_FOR_ASSET_TYPE",
            "CANNOT_MODIFY_ASSET_SOURCE",
            "CANNOT_MODIFY_AUTOMATICALLY_CREATED_ASSET",
            "LEAD_FORM_LOCATION_ANSWER_TYPE_DISALLOWED",
            "PAGE_FEED_INVALID_LABEL_TEXT",
            "CUSTOMER_NOT_ON_ALLOWLIST_FOR_WHATSAPP_MESSAGE_ASSETS",
            "CUSTOMER_NOT_ON_ALLOWLIST_FOR_APP_DEEP_LINK_ASSETS",
            "PROMOTION_BARCODE_CANNOT_CONTAIN_LINKS",
            "PROMOTION_BARCODE_INVALID_FORMAT",
            "UNSUPPORTED_BARCODE_TYPE",
            "PROMOTION_QR_CODE_CANNOT_CONTAIN_LINKS",
            "PROMOTION_QR_CODE_INVALID_FORMAT",
            "CUSTOMER_NOT_ON_ALLOWLIST_FOR_MESSAGE_ASSETS"
          ]
        },
        "assetGroupListingGroupFilterError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Listing group tree is too deep.",
            "Listing Group UNIT node cannot have children.",
            "Listing Group SUBDIVISION node must have everything else child.",
            "Dimension type of Listing Group must be the same as that of its siblings.",
            "The sibling Listing Groups target exactly the same dimension value.",
            "The dimension type is the same as one of the ancestor Listing Groups.",
            "Each Listing Group tree must have a single root.",
            "Invalid Listing Group dimension value.",
            "Hierarchical dimension must refine a dimension of the same type.",
            "Invalid Product Bidding Category.",
            "Modifying case value is allowed only while updating the entire subtree at the same time.",
            "Subdivision node has children which must be removed first.",
            "Dimension can't subdivide everything-else node in its own hierarchy.",
            "This dimension type is not allowed in this context.",
            "All the webpage filters under an AssetGroup should be distinct.",
            "Filter of the listing source type is not allowed in the context.",
            "Exclusion filters are not allowed in the context.",
            "All the filters under an AssetGroup should have the same listing source.",
            "All the conditions in a webpage needs to be of same type.",
            "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.",
            "All page feed filter nodes are root nodes and they can't have a parent.",
            "There cannot be more than one mutate operation per request that targets a single asset group listing group filter.",
            "The tree is in an invalid state in the database. Any changes that don't fix its issues will fail validation."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "TREE_TOO_DEEP",
            "UNIT_CANNOT_HAVE_CHILDREN",
            "SUBDIVISION_MUST_HAVE_EVERYTHING_ELSE_CHILD",
            "DIFFERENT_DIMENSION_TYPE_BETWEEN_SIBLINGS",
            "SAME_DIMENSION_VALUE_BETWEEN_SIBLINGS",
            "SAME_DIMENSION_TYPE_BETWEEN_ANCESTORS",
            "MULTIPLE_ROOTS",
            "INVALID_DIMENSION_VALUE",
            "MUST_REFINE_HIERARCHICAL_PARENT_TYPE",
            "INVALID_PRODUCT_BIDDING_CATEGORY",
            "CHANGING_CASE_VALUE_WITH_CHILDREN",
            "SUBDIVISION_HAS_CHILDREN",
            "CANNOT_REFINE_HIERARCHICAL_EVERYTHING_ELSE",
            "DIMENSION_TYPE_NOT_ALLOWED",
            "DUPLICATE_WEBPAGE_FILTER_UNDER_ASSET_GROUP",
            "LISTING_SOURCE_NOT_ALLOWED",
            "FILTER_EXCLUSION_NOT_ALLOWED",
            "MULTIPLE_LISTING_SOURCES",
            "MULTIPLE_WEBPAGE_CONDITION_TYPES_NOT_ALLOWED",
            "MULTIPLE_WEBPAGE_TYPES_PER_ASSET_GROUP",
            "PAGE_FEED_FILTER_HAS_PARENT",
            "MULTIPLE_OPERATIONS_ON_ONE_NODE",
            "TREE_WAS_INVALID_BEFORE_MUTATION"
          ],
          "description": "The reasons for the asset group listing group filter error",
          "type": "string"
        },
        "keywordPlanCampaignError": {
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "A keyword plan campaign name is missing, empty, longer than allowed limit or contains invalid chars.",
            "A keyword plan campaign contains one or more untargetable languages.",
            "A keyword plan campaign contains one or more invalid geo targets.",
            "The keyword plan campaign name is duplicate to an existing keyword plan campaign name or other keyword plan campaign name in the request.",
            "The number of geo targets in the keyword plan campaign exceeds limits.",
            "The number of languages in the keyword plan campaign exceeds limits."
          ],
          "description": "The reason for keyword plan campaign error.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_NAME",
            "INVALID_LANGUAGES",
            "INVALID_GEOS",
            "DUPLICATE_NAME",
            "MAX_GEOS_EXCEEDED",
            "MAX_LANGUAGES_EXCEEDED"
          ]
        },
        "currencyCodeError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The currency code is not supported."
          ],
          "description": "The reasons for the currency code error",
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "UNSUPPORTED"
          ]
        },
        "adGroupCustomizerError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN"
          ],
          "description": "The reasons for the ad group customizer error.",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version."
          ],
          "type": "string"
        },
        "partialFailureError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The partial failure field was false in the request. This method requires this field be set to true."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PARTIAL_FAILURE_MODE_REQUIRED"
          ],
          "description": "The reasons for the mutate job error"
        },
        "adError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Ad customizers are not supported for ad type.",
            "Estimating character sizes the string is too long.",
            "Estimating character sizes the string is too short.",
            "There is a problem with the snippet.",
            "Cannot modify an ad.",
            "business name and url cannot be set at the same time",
            "The specified field is incompatible with this ad's type or settings.",
            "Cannot set field when originAdId is set.",
            "Cannot set field when an existing ad id is set for sharing.",
            "Cannot set allowFlexibleColor false if no color is provided by user.",
            "When user select native, no color control is allowed because we will always respect publisher color for native format serving.",
            "Cannot specify a url for the ad type",
            "Cannot specify a tracking or mobile url without also setting final urls",
            "Cannot specify a legacy url and a final url simultaneously",
            "Cannot specify a urls in UrlData and in template fields simultaneously.",
            "This operator cannot be used with a subclass of Ad.",
            "Customer is not approved for mobile ads.",
            "Customer is not approved for 3PAS richmedia ads.",
            "Customer is not approved for 3PAS redirect richmedia (Ad Exchange) ads.",
            "Not an eligible customer",
            "Customer is not eligible for updating beacon url",
            "There already exists an ad with the same dimensions in the union.",
            "Ad's dimension must be set before setting union dimension.",
            "Ad's dimension must be included in the union dimensions.",
            "Display Url cannot be specified (applies to Ad Exchange Ads)",
            "Telephone number contains invalid characters or invalid format. Re-enter your number using digits (0-9), dashes (-), and parentheses only.",
            "Emergency telephone numbers are not allowed. Enter a valid domestic phone number to connect customers to your business.",
            "A required field was not specified or is an empty string.",
            "A feed attribute referenced in an ad customizer tag is not in the ad customizer mapping for the feed.",
            "The ad customizer field mapping for the feed attribute does not match the expected field type.",
            "The use of ad customizer tags in the ad text is disallowed. Details in trigger.",
            "Tags of the form {PH_x}, where x is a number, are disallowed in ad text.",
            "The dimensions of the ad are specified or derived in multiple ways and are not consistent.",
            "The status cannot differ among template ads of the same union.",
            "The length of the string is not valid.",
            "The ad is ineligible for upgrade.",
            "User cannot create mobile ad for countries targeted in specified campaign.",
            "Invalid Ad type. A specific type of Ad is required.",
            "Headline, description or phone cannot be present when creating mobile image ad.",
            "Image cannot be present when creating mobile text ad.",
            "Invalid call to action text.",
            "Invalid character in URL.",
            "Creative's country code is not valid.",
            "Invalid use of Expanded Dynamic Search Ads tags ({lpurl} etc.)",
            "An input error whose real reason was not properly mapped (should not happen).",
            "An invalid markup language was entered.",
            "An invalid mobile carrier was entered.",
            "Specified mobile carriers target a country not targeted by the campaign.",
            "Wrong number of elements for given element type",
            "The format of the telephone number is incorrect. Re-enter the number using the correct format.",
            "The certified vendor format id is incorrect.",
            "The template ad data contains validation errors.",
            "The template field doesn't have have the correct type.",
            "Invalid template id.",
            "After substituting replacement strings, the line is too wide.",
            "The feed referenced must have ad customizer mapping to be used in a customizer tag.",
            "Missing address component in template element address field.",
            "An ad name must be entered.",
            "Business name must be entered.",
            "Description (line 2) must be entered.",
            "Description (line 3) must be entered.",
            "The destination url must contain at least one tag (for example, {lpurl})",
            "The tracking url template of ExpandedDynamicSearchAd must contain at least one tag. (for example, {lpurl})",
            "A valid dimension must be specified for this ad.",
            "A display URL must be entered.",
            "Headline must be entered.",
            "A height must be entered.",
            "An image must be entered.",
            "Marketing image or product videos are required.",
            "The markup language in which your site is written must be entered.",
            "A mobile carrier must be entered.",
            "Phone number must be entered.",
            "Missing required template fields",
            "Missing a required field value",
            "The ad must have text.",
            "A visible URL must be entered.",
            "A width must be entered.",
            "Only 1 feed can be used as the source of ad customizer substitutions in a single ad.",
            "TempAdUnionId must be use when adding template ads.",
            "The string has too many characters.",
            "The string has too few characters.",
            "Ad union dimensions cannot change for saved ads.",
            "Address component is not {country, lat, lng}.",
            "Unknown unique field name",
            "Unknown unique name (template element type specifier)",
            "Unsupported ad dimension",
            "URL starts with an invalid scheme.",
            "URL ends with an invalid top-level domain name.",
            "URL contains illegal characters.",
            "URL must contain a host name.",
            "URL not equivalent during upgrade.",
            "URL host name too long to be stored as visible URL (applies to Ad Exchange ads)",
            "URL must start with a scheme.",
            "URL should end in a valid domain extension, such as .com or .net.",
            "URL must not end with a path.",
            "URL must not specify a port.",
            "URL must not contain a query.",
            "A url scheme is not allowed in front of tag in tracking url template (for example, http://{lpurl})",
            "The user does not have permissions to create a template ad for the given template.",
            "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.",
            "Format is invalid",
            "The text of this field did not match a pattern of allowed values.",
            "Template element is mising",
            "Error occurred during image processing",
            "The value is not within the valid range",
            "Template element field is not present",
            "Address is incomplete",
            "Invalid address",
            "Error retrieving specified video",
            "Error processing audio",
            "Display URL is incorrect for YouTube PYV ads",
            "Too many product Images in GmailAd",
            "Too many product Videos in GmailAd",
            "The device preference is not compatible with the ad type",
            "Call tracking is not supported for specified country.",
            "Carrier specific short number is not allowed.",
            "Specified phone number type is disallowed.",
            "Phone number not supported for country.",
            "Phone number not supported with call tracking enabled for country.",
            "Premium rate phone number is not allowed.",
            "Vanity phone number is not allowed.",
            "Invalid call conversion type id.",
            "Cannot disable call conversion and set conversion type id.",
            "Cannot set path2 without path1.",
            "Missing domain name in campaign setting when adding expanded dynamic search ad.",
            "The associated ad is not compatible with restriction type.",
            "Consent for call recording is required for creating/updating call only ads. See https://support.google.com/google-ads/answer/7412639.",
            "Either an image or a media bundle is required in a display upload ad.",
            "The display upload product type is not supported in this campaign.",
            "The default value of an ad placeholder can not be the empty string.",
            "Ad placeholders with countdown functions must not have a default value.",
            "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.",
            "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.",
            "Two ad customizers may not be directly adjacent in an ad text. They must be separated by at least one character.",
            "The ad is not associated with any enabled AdGroupAd, and cannot be updated.",
            "Call Ad verification url and final url don't have same domain.",
            "Final url and verification url cannot both be empty for call ads.",
            "Too many ad customizers in one asset.",
            "The ad customizer tag is recognized, but the format is invalid.",
            "Customizer tags cannot be nested.",
            "The ad customizer syntax used in the ad is not supported.",
            "There exists unpaired brace in the ad customizer tag.",
            "More than one type of countdown tag exists among all text lines.",
            "Date time in the countdown tag is invalid.",
            "Date time in the countdown tag is in the past.",
            "Cannot recognize the ad customizer tag.",
            "Customizer type forbidden for this field.",
            "Customizer attribute name is invalid.",
            "App store value does not match the value of the app store in the app specified in the campaign.",
            "Missing required image aspect ratio.",
            "Aspect ratios mismatch between different assets.",
            "Images must be unique between different carousel card assets.",
            "For video ads sequencing, YouTube video asset ID has to be defined in `campaign.video_campaign_settings.video_ad_sequence.steps.asset_id`."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AD_CUSTOMIZERS_NOT_SUPPORTED_FOR_AD_TYPE",
            "APPROXIMATELY_TOO_LONG",
            "APPROXIMATELY_TOO_SHORT",
            "BAD_SNIPPET",
            "CANNOT_MODIFY_AD",
            "CANNOT_SET_BUSINESS_NAME_IF_URL_SET",
            "CANNOT_SET_FIELD",
            "CANNOT_SET_FIELD_WITH_ORIGIN_AD_ID_SET",
            "CANNOT_SET_FIELD_WITH_AD_ID_SET_FOR_SHARING",
            "CANNOT_SET_ALLOW_FLEXIBLE_COLOR_FALSE",
            "CANNOT_SET_COLOR_CONTROL_WHEN_NATIVE_FORMAT_SETTING",
            "CANNOT_SET_URL",
            "CANNOT_SET_WITHOUT_FINAL_URLS",
            "CANNOT_SET_WITH_FINAL_URLS",
            "CANNOT_SET_WITH_URL_DATA",
            "CANNOT_USE_AD_SUBCLASS_FOR_OPERATOR",
            "CUSTOMER_NOT_APPROVED_MOBILEADS",
            "CUSTOMER_NOT_APPROVED_THIRDPARTY_ADS",
            "CUSTOMER_NOT_APPROVED_THIRDPARTY_REDIRECT_ADS",
            "CUSTOMER_NOT_ELIGIBLE",
            "CUSTOMER_NOT_ELIGIBLE_FOR_UPDATING_BEACON_URL",
            "DIMENSION_ALREADY_IN_UNION",
            "DIMENSION_MUST_BE_SET",
            "DIMENSION_NOT_IN_UNION",
            "DISPLAY_URL_CANNOT_BE_SPECIFIED",
            "DOMESTIC_PHONE_NUMBER_FORMAT",
            "EMERGENCY_PHONE_NUMBER",
            "EMPTY_FIELD",
            "FEED_ATTRIBUTE_MUST_HAVE_MAPPING_FOR_TYPE_ID",
            "FEED_ATTRIBUTE_MAPPING_TYPE_MISMATCH",
            "ILLEGAL_AD_CUSTOMIZER_TAG_USE",
            "ILLEGAL_TAG_USE",
            "INCONSISTENT_DIMENSIONS",
            "INCONSISTENT_STATUS_IN_TEMPLATE_UNION",
            "INCORRECT_LENGTH",
            "INELIGIBLE_FOR_UPGRADE",
            "INVALID_AD_ADDRESS_CAMPAIGN_TARGET",
            "INVALID_AD_TYPE",
            "INVALID_ATTRIBUTES_FOR_MOBILE_IMAGE",
            "INVALID_ATTRIBUTES_FOR_MOBILE_TEXT",
            "INVALID_CALL_TO_ACTION_TEXT",
            "INVALID_CHARACTER_FOR_URL",
            "INVALID_COUNTRY_CODE",
            "INVALID_EXPANDED_DYNAMIC_SEARCH_AD_TAG",
            "INVALID_INPUT",
            "INVALID_MARKUP_LANGUAGE",
            "INVALID_MOBILE_CARRIER",
            "INVALID_MOBILE_CARRIER_TARGET",
            "INVALID_NUMBER_OF_ELEMENTS",
            "INVALID_PHONE_NUMBER_FORMAT",
            "INVALID_RICH_MEDIA_CERTIFIED_VENDOR_FORMAT_ID",
            "INVALID_TEMPLATE_DATA",
            "INVALID_TEMPLATE_ELEMENT_FIELD_TYPE",
            "INVALID_TEMPLATE_ID",
            "LINE_TOO_WIDE",
            "MISSING_AD_CUSTOMIZER_MAPPING",
            "MISSING_ADDRESS_COMPONENT",
            "MISSING_ADVERTISEMENT_NAME",
            "MISSING_BUSINESS_NAME",
            "MISSING_DESCRIPTION1",
            "MISSING_DESCRIPTION2",
            "MISSING_DESTINATION_URL_TAG",
            "MISSING_LANDING_PAGE_URL_TAG",
            "MISSING_DIMENSION",
            "MISSING_DISPLAY_URL",
            "MISSING_HEADLINE",
            "MISSING_HEIGHT",
            "MISSING_IMAGE",
            "MISSING_MARKETING_IMAGE_OR_PRODUCT_VIDEOS",
            "MISSING_MARKUP_LANGUAGES",
            "MISSING_MOBILE_CARRIER",
            "MISSING_PHONE",
            "MISSING_REQUIRED_TEMPLATE_FIELDS",
            "MISSING_TEMPLATE_FIELD_VALUE",
            "MISSING_TEXT",
            "MISSING_VISIBLE_URL",
            "MISSING_WIDTH",
            "MULTIPLE_DISTINCT_FEEDS_UNSUPPORTED",
            "MUST_USE_TEMP_AD_UNION_ID_ON_ADD",
            "TOO_LONG",
            "TOO_SHORT",
            "UNION_DIMENSIONS_CANNOT_CHANGE",
            "UNKNOWN_ADDRESS_COMPONENT",
            "UNKNOWN_FIELD_NAME",
            "UNKNOWN_UNIQUE_NAME",
            "UNSUPPORTED_DIMENSIONS",
            "URL_INVALID_SCHEME",
            "URL_INVALID_TOP_LEVEL_DOMAIN",
            "URL_MALFORMED",
            "URL_NO_HOST",
            "URL_NOT_EQUIVALENT",
            "URL_HOST_NAME_TOO_LONG",
            "URL_NO_SCHEME",
            "URL_NO_TOP_LEVEL_DOMAIN",
            "URL_PATH_NOT_ALLOWED",
            "URL_PORT_NOT_ALLOWED",
            "URL_QUERY_NOT_ALLOWED",
            "URL_SCHEME_BEFORE_EXPANDED_DYNAMIC_SEARCH_AD_TAG",
            "USER_DOES_NOT_HAVE_ACCESS_TO_TEMPLATE",
            "INCONSISTENT_EXPANDABLE_SETTINGS",
            "INVALID_FORMAT",
            "INVALID_FIELD_TEXT",
            "ELEMENT_NOT_PRESENT",
            "IMAGE_ERROR",
            "VALUE_NOT_IN_RANGE",
            "FIELD_NOT_PRESENT",
            "ADDRESS_NOT_COMPLETE",
            "ADDRESS_INVALID",
            "VIDEO_RETRIEVAL_ERROR",
            "AUDIO_ERROR",
            "INVALID_YOUTUBE_DISPLAY_URL",
            "TOO_MANY_PRODUCT_IMAGES",
            "TOO_MANY_PRODUCT_VIDEOS",
            "INCOMPATIBLE_AD_TYPE_AND_DEVICE_PREFERENCE",
            "CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY",
            "CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED",
            "DISALLOWED_NUMBER_TYPE",
            "PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY",
            "PHONE_NUMBER_NOT_SUPPORTED_WITH_CALLTRACKING_FOR_COUNTRY",
            "PREMIUM_RATE_NUMBER_NOT_ALLOWED",
            "VANITY_PHONE_NUMBER_NOT_ALLOWED",
            "INVALID_CALL_CONVERSION_TYPE_ID",
            "CANNOT_DISABLE_CALL_CONVERSION_AND_SET_CONVERSION_TYPE_ID",
            "CANNOT_SET_PATH2_WITHOUT_PATH1",
            "MISSING_DYNAMIC_SEARCH_ADS_SETTING_DOMAIN_NAME",
            "INCOMPATIBLE_WITH_RESTRICTION_TYPE",
            "CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED",
            "MISSING_IMAGE_OR_MEDIA_BUNDLE",
            "PRODUCT_TYPE_NOT_SUPPORTED_IN_THIS_CAMPAIGN",
            "PLACEHOLDER_CANNOT_HAVE_EMPTY_DEFAULT_VALUE",
            "PLACEHOLDER_COUNTDOWN_FUNCTION_CANNOT_HAVE_DEFAULT_VALUE",
            "PLACEHOLDER_DEFAULT_VALUE_MISSING",
            "UNEXPECTED_PLACEHOLDER_DEFAULT_VALUE",
            "AD_CUSTOMIZERS_MAY_NOT_BE_ADJACENT",
            "UPDATING_AD_WITH_NO_ENABLED_ASSOCIATION",
            "CALL_AD_VERIFICATION_URL_FINAL_URL_DOES_NOT_HAVE_SAME_DOMAIN",
            "CALL_AD_FINAL_URL_AND_VERIFICATION_URL_CANNOT_BOTH_BE_EMPTY",
            "TOO_MANY_AD_CUSTOMIZERS",
            "INVALID_AD_CUSTOMIZER_FORMAT",
            "NESTED_AD_CUSTOMIZER_SYNTAX",
            "UNSUPPORTED_AD_CUSTOMIZER_SYNTAX",
            "UNPAIRED_BRACE_IN_AD_CUSTOMIZER_TAG",
            "MORE_THAN_ONE_COUNTDOWN_TAG_TYPE_EXISTS",
            "DATE_TIME_IN_COUNTDOWN_TAG_IS_INVALID",
            "DATE_TIME_IN_COUNTDOWN_TAG_IS_PAST",
            "UNRECOGNIZED_AD_CUSTOMIZER_TAG_FOUND",
            "CUSTOMIZER_TYPE_FORBIDDEN_FOR_FIELD",
            "INVALID_CUSTOMIZER_ATTRIBUTE_NAME",
            "STORE_MISMATCH",
            "MISSING_REQUIRED_IMAGE_ASPECT_RATIO",
            "MISMATCHED_ASPECT_RATIOS",
            "DUPLICATE_IMAGE_ACROSS_CAROUSEL_CARDS",
            "INVALID_YOUTUBE_VIDEO_ASSET_ID_FOR_VIDEO_ADS_SEQUENCING"
          ],
          "description": "An error with an Ad Group Ad mutate.",
          "type": "string"
        },
        "assetGroupSignalError": {
          "description": "The reasons for the asset group hint error",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "TOO_MANY_WORDS",
            "SEARCH_THEME_POLICY_VIOLATION",
            "AUDIENCE_WITH_WRONG_ASSET_GROUP_ID"
          ],
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "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.",
            "The search theme requested to be added violates certain policy. See https://support.google.com/adspolicy/answer/6008942.",
            "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."
          ]
        },
        "clickViewError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Missing filter on a single day.",
            "The requested date is too old."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EXPECTED_FILTER_ON_A_SINGLE_DAY",
            "DATE_TOO_OLD"
          ],
          "description": "The reasons for the click view error",
          "type": "string"
        },
        "keywordPlanIdeaError": {
          "description": "The reason for keyword idea error.",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Error when crawling the input URL.",
            "The input has an invalid value."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "URL_CRAWL_ERROR",
            "INVALID_VALUE"
          ]
        },
        "operatorError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "OPERATOR_NOT_SUPPORTED"
          ],
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Operator not supported."
          ],
          "description": "The reasons for the operator error"
        },
        "recommendationError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BUDGET_AMOUNT_TOO_SMALL",
            "BUDGET_AMOUNT_TOO_LARGE",
            "INVALID_BUDGET_AMOUNT",
            "POLICY_ERROR",
            "INVALID_BID_AMOUNT",
            "ADGROUP_KEYWORD_LIMIT",
            "RECOMMENDATION_ALREADY_APPLIED",
            "RECOMMENDATION_INVALIDATED",
            "TOO_MANY_OPERATIONS",
            "NO_OPERATIONS",
            "DIFFERENT_TYPES_NOT_SUPPORTED",
            "DUPLICATE_RESOURCE_NAME",
            "RECOMMENDATION_ALREADY_DISMISSED",
            "INVALID_APPLY_REQUEST",
            "RECOMMENDATION_TYPE_APPLY_NOT_SUPPORTED",
            "INVALID_MULTIPLIER",
            "ADVERTISING_CHANNEL_TYPE_GENERATE_NOT_SUPPORTED",
            "RECOMMENDATION_TYPE_GENERATE_NOT_SUPPORTED",
            "RECOMMENDATION_TYPES_CANNOT_BE_EMPTY",
            "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_BIDDING_INFO",
            "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_BIDDING_STRATEGY_TYPE",
            "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_ASSET_GROUP_INFO",
            "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_ASSET_GROUP_INFO_WITH_FINAL_URL",
            "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_COUNTRY_CODES_FOR_SEARCH_CHANNEL",
            "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_INVALID_COUNTRY_CODE_FOR_SEARCH_CHANNEL",
            "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_LANGUAGE_CODES_FOR_SEARCH_CHANNEL",
            "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_EITHER_POSITIVE_OR_NEGATIVE_LOCATION_IDS_FOR_SEARCH_CHANNEL",
            "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_AD_GROUP_INFO_FOR_SEARCH_CHANNEL",
            "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_KEYWORDS_FOR_SEARCH_CHANNEL",
            "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_WITH_CHANNEL_TYPE_SEARCH_AND_BIDDING_STRATEGY_TYPE_TARGET_IMPRESSION_SHARE_REQUIRES_LOCATION",
            "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_WITH_CHANNEL_TYPE_SEARCH_AND_BIDDING_STRATEGY_TYPE_TARGET_IMPRESSION_SHARE_REQUIRES_TARGET_IMPRESSION_SHARE_MICROS",
            "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_TARGET_IMPRESSION_SHARE_MICROS_BETWEEN_1_AND_1000000",
            "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_WITH_CHANNEL_TYPE_SEARCH_AND_BIDDING_STRATEGY_TYPE_TARGET_IMPRESSION_SHARE_REQUIRES_TARGET_IMPRESSION_SHARE_INFO",
            "MERCHANT_CENTER_ACCOUNT_ID_NOT_SUPPORTED_ADVERTISING_CHANNEL_TYPE"
          ],
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The specified budget amount is too low for example, lower than minimum currency unit or lower than ad group minimum cost-per-click.",
            "The specified budget amount is too large.",
            "The specified budget amount is not a valid amount, for example, not a multiple of minimum currency unit.",
            "The specified keyword or ad violates ad policy.",
            "The specified bid amount is not valid, for example, too many fractional digits, or negative amount.",
            "The number of keywords in ad group have reached the maximum allowed.",
            "The recommendation requested to apply has already been applied.",
            "The recommendation requested to apply has been invalidated.",
            "The number of operations in a single request exceeds the maximum allowed.",
            "There are no operations in the request.",
            "Operations with multiple recommendation types are not supported when partial failure mode is not enabled.",
            "Request contains multiple operations with the same resource_name.",
            "The recommendation requested to dismiss has already been dismissed.",
            "The recommendation apply request was malformed and invalid.",
            "The type of recommendation requested to apply is not supported.",
            "The target multiplier specified is invalid.",
            "The passed in advertising_channel_type is not supported.",
            "The passed in recommendation_type is not supported.",
            "One or more recommendation_types need to be passed into the generate recommendations request.",
            "Bidding info is required for the CAMPAIGN_BUDGET recommendation type.",
            "Bidding strategy type is required for the CAMPAIGN_BUDGET recommendation type.",
            "Asset group info is required for the campaign budget recommendation type.",
            "Asset group info with final url is required for the CAMPAIGN_BUDGET recommendation type.",
            "Country codes are required for the CAMPAIGN_BUDGET recommendation type for SEARCH channel.",
            "Country code is invalid for the CAMPAIGN_BUDGET recommendation type for SEARCH channel.",
            "Language codes are required for the CAMPAIGN_BUDGET recommendation type for SEARCH channel.",
            "Either positive or negative location ids are required for the CAMPAIGN_BUDGET recommendation type for SEARCH channel.",
            "Ad group info is required for the CAMPAIGN_BUDGET recommendation type for SEARCH channel.",
            "Keywords are required for the CAMPAIGN_BUDGET recommendation type for SEARCH channel.",
            "Location is required for the CAMPAIGN_BUDGET recommendation type for bidding strategy type TARGET_IMPRESSION_SHARE.",
            "Target impression share micros are required for the CAMPAIGN_BUDGET recommendation type for bidding strategy type TARGET_IMPRESSION_SHARE.",
            "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.",
            "Target impression share info is required for the CAMPAIGN_BUDGET recommendation type for bidding strategy type TARGET_IMPRESSION_SHARE.",
            "Merchant Center Account ID is only supported for advertising_channel_type PERFORMANCE_MAX."
          ],
          "description": "The reasons for error in applying a recommendation",
          "type": "string"
        },
        "campaignLifecycleGoalError": {
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Campaign is not specified.",
            "Cannot find the specified campaign.",
            "Optimization mode is unspecified or invalid.",
            "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.",
            "Lifecycle goals require the campaign to optimize towards purchase conversion goal.",
            "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 goal is not supported on this campaign type.",
            "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.",
            "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.",
            "In order for a campaign to adopt the customer acquisition goal, CustomerLifecycleGoal.lifecycle_goal_customer_definition_settings.existing_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 with continuous audience sharing.",
            "In order for a campaign to adopt the customer acquisition goal with high lifetime value optimization, CustomerLifecycleGoal.lifecycle_goal_customer_definition_settings.high_lifetime_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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CAMPAIGN_MISSING",
            "INVALID_CAMPAIGN",
            "CUSTOMER_ACQUISITION_INVALID_OPTIMIZATION_MODE",
            "INCOMPATIBLE_BIDDING_STRATEGY",
            "MISSING_PURCHASE_GOAL",
            "CUSTOMER_ACQUISITION_INVALID_HIGH_LIFETIME_VALUE",
            "CUSTOMER_ACQUISITION_UNSUPPORTED_CAMPAIGN_TYPE",
            "CUSTOMER_ACQUISITION_INVALID_VALUE",
            "CUSTOMER_ACQUISITION_VALUE_MISSING",
            "CUSTOMER_ACQUISITION_MISSING_EXISTING_CUSTOMER_DEFINITION",
            "CUSTOMER_ACQUISITION_MISSING_HIGH_VALUE_CUSTOMER_DEFINITION"
          ],
          "description": "The reasons for the campaign lifecycle goal error"
        },
        "policyFindingError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "POLICY_FINDING",
            "POLICY_TOPIC_NOT_FOUND"
          ],
          "description": "The reasons for the policy finding error.",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The resource has been disapproved since the policy summary includes policy topics of type PROHIBITED.",
            "The given policy topic does not exist."
          ],
          "type": "string"
        },
        "assetSetError": {
          "type": "string",
          "description": "The reasons for the asset set error",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DUPLICATE_ASSET_SET_NAME",
            "INVALID_PARENT_ASSET_SET_TYPE",
            "ASSET_SET_SOURCE_INCOMPATIBLE_WITH_PARENT_ASSET_SET",
            "ASSET_SET_TYPE_CANNOT_BE_LINKED_TO_CUSTOMER",
            "INVALID_CHAIN_IDS",
            "LOCATION_SYNC_ASSET_SET_DOES_NOT_SUPPORT_RELATIONSHIP_TYPE",
            "NOT_UNIQUE_ENABLED_LOCATION_SYNC_TYPED_ASSET_SET",
            "INVALID_PLACE_IDS",
            "OAUTH_INFO_INVALID",
            "OAUTH_INFO_MISSING",
            "CANNOT_DELETE_AS_ENABLED_LINKAGES_EXIST"
          ],
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The asset set name matches that of another enabled asset set.",
            "The type of AssetSet.asset_set_source does not match the type of AssetSet.location_set.source in its parent AssetSet.",
            "The asset set source doesn't match its parent AssetSet's data.",
            "This AssetSet type cannot be linked to CustomerAssetSet.",
            "The chain id(s) in ChainSet of a LOCATION_SYNC typed AssetSet is invalid.",
            "The relationship type in ChainSet of a LOCATION_SYNC typed AssetSet is not supported.",
            "There is more than one enabled LocationSync typed AssetSet under one customer.",
            "The place id(s) in a LocationSync typed AssetSet is invalid and can't be decoded.",
            "The Google Business Profile OAuth info is invalid.",
            "The Google Business Profile OAuth info is missing.",
            "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."
          ]
        },
        "changeStatusError": {
          "description": "The reasons for the change status error",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The requested start date is too old.",
            "The change_status search request must specify a finite range filter on last_change_date_time.",
            "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).",
            "The change_status search request must specify a LIMIT.",
            "The LIMIT specified by change_status request should be less than or equal to 10K."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "START_DATE_TOO_OLD",
            "CHANGE_DATE_RANGE_INFINITE",
            "CHANGE_DATE_RANGE_NEGATIVE",
            "LIMIT_NOT_SPECIFIED",
            "INVALID_LIMIT_CLAUSE"
          ]
        },
        "productLinkError": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_OPERATION",
            "CREATION_NOT_PERMITTED",
            "INVITATION_EXISTS",
            "LINK_EXISTS"
          ],
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The requested operation is invalid. For example, you are not allowed to remove a link from a partner account.",
            "The creation request is not permitted.",
            "A link cannot be created because a pending link already exists.",
            "A link cannot be created because an active link already exists."
          ],
          "description": "The reasons for the product link error"
        },
        "merchantCenterError": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MERCHANT_ID_CANNOT_BE_ACCESSED",
            "CUSTOMER_NOT_ALLOWED_FOR_SHOPPING_PERFORMANCE_MAX"
          ],
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Merchant ID is either not found or not linked to the Google Ads customer.",
            "Customer not allowlisted for Shopping in Performance Max Campaign."
          ],
          "description": "Container for enum describing possible merchant center errors."
        },
        "campaignSharedSetError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SHARED_SET_ACCESS_DENIED"
          ],
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The shared set belongs to another customer and permission isn't granted."
          ],
          "description": "The reasons for the campaign shared set error"
        },
        "policyViolationError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "A policy was violated. See PolicyViolationDetails for more detail."
          ],
          "description": "The reasons for the policy violation error",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "POLICY_ERROR"
          ],
          "type": "string"
        },
        "listOperationError": {
          "description": "An error with a list operation.",
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "REQUIRED_FIELD_MISSING",
            "DUPLICATE_VALUES"
          ],
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Field required in value is missing.",
            "Duplicate or identical value is sent in multiple list operations."
          ]
        },
        "incentiveError": {
          "description": "The reasons for the incentive error",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_INCENTIVE_ID"
          ],
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The incentive ID is either invalid or not supported for the given country."
          ],
          "type": "string"
        },
        "audienceError": {
          "description": "The reasons for the audience error",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "An audience with this name already exists.",
            "A dimension within the audience definition is not valid.",
            "One of the audience segment added is not found.",
            "One of the audience segment type is not supported.",
            "The same segment already exists in this audience.",
            "Audience can't have more than allowed number segments.",
            "Audience can't have multiple dimensions of same type.",
            "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.",
            "Asset Group scoped audience requires an asset group ID.",
            "Audience scope may not be changed from Customer to AssetGroup."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NAME_ALREADY_IN_USE",
            "DIMENSION_INVALID",
            "AUDIENCE_SEGMENT_NOT_FOUND",
            "AUDIENCE_SEGMENT_TYPE_NOT_SUPPORTED",
            "DUPLICATE_AUDIENCE_SEGMENT",
            "TOO_MANY_SEGMENTS",
            "TOO_MANY_DIMENSIONS_OF_SAME_TYPE",
            "IN_USE",
            "MISSING_ASSET_GROUP_ID",
            "CANNOT_CHANGE_FROM_CUSTOMER_TO_ASSET_GROUP_SCOPE"
          ]
        },
        "notEmptyError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EMPTY_LIST"
          ],
          "description": "The reasons for the not empty error",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Empty list."
          ]
        },
        "dateError": {
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Given field values do not correspond to a valid date.",
            "Given field values do not correspond to a valid date time.",
            "The string date's format should be yyyy-mm-dd.",
            "The string date time's format should be yyyy-mm-dd hh:mm:ss.ssssss.",
            "The string date time's format should be yyyy-mm-dd hh:mm:ss.",
            "The string date time's format should be yyyy-mm-dd hh:mm:ss+|-hh:mm.",
            "Date is before allowed minimum.",
            "Date is after allowed maximum.",
            "Date range bounds are not in order.",
            "Both dates in range are null.",
            "This campaign type doesn't support a start date time that isn't the start of the day.",
            "This campaign type doesn't support an end date time that isn't the end of the day."
          ],
          "description": "The reasons for the date error",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_FIELD_VALUES_IN_DATE",
            "INVALID_FIELD_VALUES_IN_DATE_TIME",
            "INVALID_STRING_DATE",
            "INVALID_STRING_DATE_TIME_MICROS",
            "INVALID_STRING_DATE_TIME_SECONDS",
            "INVALID_STRING_DATE_TIME_SECONDS_WITH_OFFSET",
            "EARLIER_THAN_MINIMUM_DATE",
            "LATER_THAN_MAXIMUM_DATE",
            "DATE_RANGE_MINIMUM_DATE_LATER_THAN_MAXIMUM_DATE",
            "DATE_RANGE_MINIMUM_AND_MAXIMUM_DATES_BOTH_NULL",
            "DATE_RANGE_ERROR_START_TIME_MUST_BE_THE_START_OF_A_DAY",
            "DATE_RANGE_ERROR_END_TIME_MUST_BE_THE_END_OF_A_DAY"
          ]
        },
        "campaignDraftError": {
          "description": "The reasons for the campaign draft error",
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DUPLICATE_DRAFT_NAME",
            "INVALID_STATUS_TRANSITION_FROM_REMOVED",
            "INVALID_STATUS_TRANSITION_FROM_PROMOTED",
            "INVALID_STATUS_TRANSITION_FROM_PROMOTE_FAILED",
            "CUSTOMER_CANNOT_CREATE_DRAFT",
            "CAMPAIGN_CANNOT_CREATE_DRAFT",
            "INVALID_DRAFT_CHANGE",
            "INVALID_STATUS_TRANSITION",
            "MAX_NUMBER_OF_DRAFTS_PER_CAMPAIGN_REACHED",
            "LIST_ERRORS_FOR_PROMOTED_DRAFT_ONLY"
          ],
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "A draft with this name already exists for this campaign.",
            "The draft is removed and cannot be transitioned to another status.",
            "The draft has been promoted and cannot be transitioned to the specified status.",
            "The draft has failed to be promoted and cannot be transitioned to the specified status.",
            "This customer is not allowed to create drafts.",
            "This campaign is not allowed to create drafts.",
            "This modification cannot be made on a draft.",
            "The draft cannot be transitioned to the specified status from its current status.",
            "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.",
            "ListAsyncErrors was called without first promoting the draft."
          ]
        },
        "userListError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Creating and updating external remarketing user lists is not supported.",
            "Concrete type of user list is required.",
            "Creating/updating user list conversion types requires specifying the conversion type Id.",
            "Remarketing user list cannot have duplicate conversion types.",
            "Conversion type is invalid/unknown.",
            "User list description is empty or invalid.",
            "User list name is empty or invalid.",
            "Type of the UserList does not match.",
            "Embedded logical user lists are not allowed.",
            "User list rule operand is invalid.",
            "Name is already being used for another user list for the account.",
            "Name is required when creating a new conversion type.",
            "The given conversion type name has been used.",
            "Only an owner account may edit a user list.",
            "Creating user list without setting type in oneof user_list field, or creating/updating read-only user list types is not allowed.",
            "Rule is invalid.",
            "The specified date range is empty.",
            "A UserList which is privacy sensitive or legal rejected cannot be mutated by external users.",
            "Maximum number of rulebased user lists a customer can have.",
            "BasicUserList's billable record field cannot be modified once it is set.",
            "crm_based_user_list.app_id field must be set when upload_key_type is MOBILE_ADVERTISING_ID.",
            "Name of the user list is reserved for system generated lists and cannot be used.",
            "Advertiser needs to be on the allow-list to use remarketing lists created from advertiser uploaded data (for example, Customer Match lists).",
            "The provided rule_type is not supported for the user list.",
            "Similar user list cannot be used as a logical user list operand.",
            "Logical user list should not have a mix of CRM based user list and other types of lists in its rules.",
            "crm_based_user_list.app_id field can only be set when upload_key_type is MOBILE_ADVERTISING_ID.",
            "Google system generated user lists cannot be mutated.",
            "The mobile app associated with the remarketing list is sensitive.",
            "One or more given seed lists do not exist.",
            "One or more given seed lists are not accessible to the current user.",
            "One or more given seed lists have an unsupported type.",
            "One or more invalid country codes are added to Lookalike UserList.",
            "The partner audience source is not supported for the user list type.",
            "The commerce partner is only supported for COMMERCE_AUDIENCE.",
            "The partner audience info is not supported for the user list type.",
            "Manager account is not allowed to create this UserList.",
            "This UserList can only be created by allowlisted partners.",
            "The advertiser must accept the Terms of Service to create this UserList.",
            "The advertiser must have an active link to the partner to create this UserList.",
            "This UserList can only be created for allowlisted advertisers.",
            "This UserList is not allowed for this account type."
          ],
          "type": "string",
          "description": "The reasons for the user list error",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EXTERNAL_REMARKETING_USER_LIST_MUTATE_NOT_SUPPORTED",
            "CONCRETE_TYPE_REQUIRED",
            "CONVERSION_TYPE_ID_REQUIRED",
            "DUPLICATE_CONVERSION_TYPES",
            "INVALID_CONVERSION_TYPE",
            "INVALID_DESCRIPTION",
            "INVALID_NAME",
            "INVALID_TYPE",
            "CAN_NOT_ADD_LOGICAL_LIST_AS_LOGICAL_LIST_OPERAND",
            "INVALID_USER_LIST_LOGICAL_RULE_OPERAND",
            "NAME_ALREADY_USED",
            "NEW_CONVERSION_TYPE_NAME_REQUIRED",
            "CONVERSION_TYPE_NAME_ALREADY_USED",
            "OWNERSHIP_REQUIRED_FOR_SET",
            "USER_LIST_MUTATE_NOT_SUPPORTED",
            "INVALID_RULE",
            "INVALID_DATE_RANGE",
            "CAN_NOT_MUTATE_SENSITIVE_USERLIST",
            "MAX_NUM_RULEBASED_USERLISTS",
            "CANNOT_MODIFY_BILLABLE_RECORD_COUNT",
            "APP_ID_NOT_SET",
            "USERLIST_NAME_IS_RESERVED_FOR_SYSTEM_LIST",
            "ADVERTISER_NOT_ON_ALLOWLIST_FOR_USING_UPLOADED_DATA",
            "RULE_TYPE_IS_NOT_SUPPORTED",
            "CAN_NOT_ADD_A_SIMILAR_USERLIST_AS_LOGICAL_LIST_OPERAND",
            "CAN_NOT_MIX_CRM_BASED_IN_LOGICAL_LIST_WITH_OTHER_LISTS",
            "APP_ID_NOT_ALLOWED",
            "CANNOT_MUTATE_SYSTEM_LIST",
            "MOBILE_APP_IS_SENSITIVE",
            "SEED_LIST_DOES_NOT_EXIST",
            "INVALID_SEED_LIST_ACCESS_REASON",
            "INVALID_SEED_LIST_TYPE",
            "INVALID_COUNTRY_CODES",
            "PARTNER_AUDIENCE_SOURCE_NOT_SUPPORTED_FOR_USER_LIST_TYPE",
            "COMMERCE_PARTNER_NOT_ALLOWED",
            "PARTNER_AUDIENCE_INFO_NOT_SUPPORTED_FOR_USER_LIST_TYPE",
            "PARTNER_MANAGER_ACCOUNT_DISALLOWED",
            "PARTNER_NOT_ALLOWLISTED_FOR_THIRD_PARTY_PARTNER_DATA",
            "ADVERTISER_TOS_NOT_ACCEPTED",
            "ADVERTISER_PARTNER_LINK_MISSING",
            "ADVERTISER_NOT_ALLOWLISTED_FOR_THIRD_PARTY_PARTNER_DATA",
            "ACCOUNT_SETTING_TYPE_NOT_ALLOWED"
          ]
        },
        "automaticallyCreatedAssetRemovalError": {
          "description": "The reasons for error in automatically created asset removal action.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AD_DOES_NOT_EXIST",
            "INVALID_AD_TYPE",
            "ASSET_DOES_NOT_EXIST",
            "ASSET_FIELD_TYPE_DOES_NOT_MATCH",
            "NOT_AN_AUTOMATICALLY_CREATED_ASSET"
          ],
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The ad does not exist.",
            "Ad type is not supported. Only Responsive Search Ad type is supported.",
            "The asset does not exist.",
            "The asset field type does not match.",
            "Not an automatically created asset."
          ],
          "type": "string"
        },
        "keywordPlanAdGroupError": {
          "description": "The reason for keyword plan ad group error.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_NAME",
            "DUPLICATE_NAME"
          ],
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The keyword plan ad group name is missing, empty, longer than allowed limit or contains invalid chars.",
            "The keyword plan ad group name is duplicate to an existing keyword plan AdGroup name or other keyword plan AdGroup name in the request."
          ],
          "type": "string"
        },
        "feedItemError": {
          "description": "The reasons for the feed item error",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Cannot convert the feed attribute value from string to its real type.",
            "Cannot operate on removed feed item.",
            "Date time zone does not match the account's time zone.",
            "Feed item with the key attributes could not be found.",
            "Url feed attribute value is not valid.",
            "Some key attributes are missing.",
            "Feed item has same key attributes as another feed item.",
            "Cannot modify key attributes on an existing feed item.",
            "The feed attribute value is too large.",
            "Feed is read only."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CANNOT_CONVERT_ATTRIBUTE_VALUE_FROM_STRING",
            "CANNOT_OPERATE_ON_REMOVED_FEED_ITEM",
            "DATE_TIME_MUST_BE_IN_ACCOUNT_TIME_ZONE",
            "KEY_ATTRIBUTES_NOT_FOUND",
            "INVALID_URL",
            "MISSING_KEY_ATTRIBUTES",
            "KEY_ATTRIBUTES_NOT_UNIQUE",
            "CANNOT_MODIFY_KEY_ATTRIBUTE_VALUE",
            "SIZE_TOO_LARGE_FOR_MULTI_VALUE_ATTRIBUTE",
            "LEGACY_FEED_TYPE_READ_ONLY"
          ]
        },
        "resourceCountLimitExceededError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ACCOUNT_LIMIT",
            "CAMPAIGN_LIMIT",
            "ADGROUP_LIMIT",
            "AD_GROUP_AD_LIMIT",
            "AD_GROUP_CRITERION_LIMIT",
            "SHARED_SET_LIMIT",
            "MATCHING_FUNCTION_LIMIT",
            "RESPONSE_ROW_LIMIT_EXCEEDED",
            "RESOURCE_LIMIT"
          ],
          "description": "The reasons for the resource count limit exceeded error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "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.",
            "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.",
            "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.",
            "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 (,).",
            "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 (,).",
            "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.",
            "Exceeds a limit related to a matching function.",
            "The response for this request would exceed the maximum number of rows that can be returned.",
            "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."
          ],
          "type": "string"
        },
        "shoppingProductError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "A filter on the `campaign` resource name is missing.",
            "A filter on the `ad_group` resource name is missing.",
            "Date segmentation is not supported."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MISSING_CAMPAIGN_FILTER",
            "MISSING_AD_GROUP_FILTER",
            "UNSUPPORTED_DATE_SEGMENTATION"
          ],
          "type": "string",
          "description": "The reasons for error in querying shopping product."
        },
        "goalError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Retention goal already exists.",
            "When using customer lifecycle optimization goal, if high lifetime value is present then value should be present.",
            "When using customer lifecycle optimization goal, high lifetime value should be greater than value.",
            "Only Google Ads account can have customer lifecycle optimization goal."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "RETENTION_GOAL_ALREADY_EXISTS",
            "HIGH_LIFETIME_VALUE_PRESENT_BUT_VALUE_ABSENT",
            "HIGH_LIFETIME_VALUE_LESS_THAN_OR_EQUAL_TO_VALUE",
            "CUSTOMER_LIFECYCLE_OPTIMIZATION_ACCOUNT_TYPE_NOT_ALLOWED"
          ],
          "type": "string",
          "description": "The reasons for the goal error."
        },
        "adGroupAdError": {
          "type": "string",
          "description": "The reasons for the ad group ad error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "No link found between the adgroup ad and the label.",
            "The label has already been attached to the adgroup ad.",
            "The specified ad was not found in the adgroup",
            "Removed ads may not be modified",
            "An ad of this type is deprecated and cannot be created. Only deletions are permitted.",
            "Text ads are deprecated and cannot be created. Use expanded text ads instead.",
            "A required field was not specified or is an empty string.",
            "An ad may only be modified once per call",
            "AdGroupAds with the given ad type cannot be paused.",
            "AdGroupAds with the given ad type cannot be removed.",
            "An ad of this type is deprecated and cannot be updated. Only removals are permitted.",
            "Ad sharing is not allowed."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AD_GROUP_AD_LABEL_DOES_NOT_EXIST",
            "AD_GROUP_AD_LABEL_ALREADY_EXISTS",
            "AD_NOT_UNDER_ADGROUP",
            "CANNOT_OPERATE_ON_REMOVED_ADGROUPAD",
            "CANNOT_CREATE_DEPRECATED_ADS",
            "CANNOT_CREATE_TEXT_ADS",
            "EMPTY_FIELD",
            "RESOURCE_REFERENCED_IN_MULTIPLE_OPS",
            "AD_TYPE_CANNOT_BE_PAUSED",
            "AD_TYPE_CANNOT_BE_REMOVED",
            "CANNOT_UPDATE_DEPRECATED_ADS",
            "AD_SHARING_NOT_ALLOWED"
          ]
        },
        "functionError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The format of the function is not recognized as a supported function format.",
            "Operand data types do not match.",
            "The operands cannot be used together in a conjunction.",
            "Invalid numer of Operands.",
            "Operand Type not supported.",
            "Operator not supported.",
            "Request context type not supported.",
            "The matching function is not allowed for call placeholders",
            "The matching function is not allowed for the specified placeholder",
            "Invalid operand.",
            "Missing value for the constant operand.",
            "The value of the constant operand is invalid.",
            "Invalid function nesting.",
            "The Feed ID was different from another Feed ID in the same function.",
            "The matching function is invalid for use with a feed with a fixed schema.",
            "Invalid attribute name."
          ],
          "description": "The reasons for the function error",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_FUNCTION_FORMAT",
            "DATA_TYPE_MISMATCH",
            "INVALID_CONJUNCTION_OPERANDS",
            "INVALID_NUMBER_OF_OPERANDS",
            "INVALID_OPERAND_TYPE",
            "INVALID_OPERATOR",
            "INVALID_REQUEST_CONTEXT_TYPE",
            "INVALID_FUNCTION_FOR_CALL_PLACEHOLDER",
            "INVALID_FUNCTION_FOR_PLACEHOLDER",
            "INVALID_OPERAND",
            "MISSING_CONSTANT_OPERAND_VALUE",
            "INVALID_CONSTANT_OPERAND_VALUE",
            "INVALID_NESTING",
            "MULTIPLE_FEED_IDS_NOT_SUPPORTED",
            "INVALID_FUNCTION_FOR_FEED_WITH_FIXED_SCHEMA",
            "INVALID_ATTRIBUTE_NAME"
          ],
          "type": "string"
        },
        "extensionSettingError": {
          "description": "The reasons for the extension setting error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "A platform restriction was provided without input extensions or existing extensions.",
            "The provided feed type does not correspond to the provided extensions.",
            "The provided feed type cannot be used.",
            "The provided feed type cannot be used at the customer level.",
            "Cannot change a feed item field on a CREATE operation.",
            "Cannot update an extension that is not already in this setting.",
            "There is no existing AdGroupExtensionSetting for this type.",
            "There is no existing CampaignExtensionSetting for this type.",
            "There is no existing CustomerExtensionSetting for this type.",
            "The AdGroupExtensionSetting already exists. UPDATE should be used to modify the existing AdGroupExtensionSetting.",
            "The CampaignExtensionSetting already exists. UPDATE should be used to modify the existing CampaignExtensionSetting.",
            "The CustomerExtensionSetting already exists. UPDATE should be used to modify the existing CustomerExtensionSetting.",
            "An active ad group feed already exists for this place holder type.",
            "An active campaign feed already exists for this place holder type.",
            "An active customer feed already exists for this place holder type.",
            "Value is not within the accepted range.",
            "Cannot simultaneously set specified field with final urls.",
            "Must set field with final urls.",
            "Phone number for a call extension is invalid.",
            "Phone number for a call extension is not supported for the given country code.",
            "A carrier specific number in short format is not allowed for call extensions.",
            "Premium rate numbers are not allowed for call extensions.",
            "Phone number type for a call extension is not allowed.",
            "Phone number for a call extension does not meet domestic format requirements.",
            "Vanity phone numbers (for example, those including letters) are not allowed for call extensions.",
            "Country code provided for a call extension is invalid.",
            "Call conversion type id provided for a call extension is invalid.",
            "For a call extension, the customer is not on the allow-list for call tracking.",
            "Call tracking is not supported for the given country for a call extension.",
            "App id provided for an app extension is invalid.",
            "Quotation marks present in the review text for a review extension.",
            "Hyphen character present in the review text for a review extension.",
            "A blocked review source name or url was provided for a review extension.",
            "Review source name should not be found in the review text.",
            "Field must be set.",
            "Inconsistent currency codes.",
            "Price extension cannot have duplicated headers.",
            "Price item cannot have duplicated header and description.",
            "Price extension has too few items",
            "Price extension has too many items",
            "The input value is not currently supported.",
            "Unknown or unsupported device preference.",
            "Invalid feed item schedule end time (for example, endHour = 24 and endMinute != 0).",
            "Date time zone does not match the account's time zone.",
            "Overlapping feed item schedule times (for example, 7-10AM and 8-11AM) are not allowed.",
            "Feed item schedule end time must be after start time.",
            "There are too many feed item schedules per day.",
            "Cannot edit the same extension feed item more than once in the same request.",
            "Invalid structured snippet header.",
            "Phone number with call tracking enabled is not supported for the specified country.",
            "The targeted adgroup must belong to the targeted campaign.",
            "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.",
            "The ExtensionFeedItem type is required for this operation.",
            "The matching function that links the extension feed to the customer, campaign, or ad group is not compatible with the ExtensionSetting services.",
            "Start date must be before end date.",
            "Input price is not in a valid format.",
            "The promotion time is invalid.",
            "Cannot set both percent discount and money discount fields.",
            "Cannot set both promotion code and orders over amount fields.",
            "This field has too many decimal places specified.",
            "The language code is not valid.",
            "The language is not supported.",
            "Customer hasn't consented for call recording, which is required for adding/updating call extensions. See https://support.google.com/google-ads/answer/7412639.",
            "The UPDATE operation does not specify any fields other than the resource name in the update mask.",
            "The extension contains text which has been prohibited on policy grounds."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EXTENSIONS_REQUIRED",
            "FEED_TYPE_EXTENSION_TYPE_MISMATCH",
            "INVALID_FEED_TYPE",
            "INVALID_FEED_TYPE_FOR_CUSTOMER_EXTENSION_SETTING",
            "CANNOT_CHANGE_FEED_ITEM_ON_CREATE",
            "CANNOT_UPDATE_NEWLY_CREATED_EXTENSION",
            "NO_EXISTING_AD_GROUP_EXTENSION_SETTING_FOR_TYPE",
            "NO_EXISTING_CAMPAIGN_EXTENSION_SETTING_FOR_TYPE",
            "NO_EXISTING_CUSTOMER_EXTENSION_SETTING_FOR_TYPE",
            "AD_GROUP_EXTENSION_SETTING_ALREADY_EXISTS",
            "CAMPAIGN_EXTENSION_SETTING_ALREADY_EXISTS",
            "CUSTOMER_EXTENSION_SETTING_ALREADY_EXISTS",
            "AD_GROUP_FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE",
            "CAMPAIGN_FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE",
            "CUSTOMER_FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE",
            "VALUE_OUT_OF_RANGE",
            "CANNOT_SET_FIELD_WITH_FINAL_URLS",
            "FINAL_URLS_NOT_SET",
            "INVALID_PHONE_NUMBER",
            "PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY",
            "CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED",
            "PREMIUM_RATE_NUMBER_NOT_ALLOWED",
            "DISALLOWED_NUMBER_TYPE",
            "INVALID_DOMESTIC_PHONE_NUMBER_FORMAT",
            "VANITY_PHONE_NUMBER_NOT_ALLOWED",
            "INVALID_COUNTRY_CODE",
            "INVALID_CALL_CONVERSION_TYPE_ID",
            "CUSTOMER_NOT_IN_ALLOWLIST_FOR_CALLTRACKING",
            "CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY",
            "INVALID_APP_ID",
            "QUOTES_IN_REVIEW_EXTENSION_SNIPPET",
            "HYPHENS_IN_REVIEW_EXTENSION_SNIPPET",
            "REVIEW_EXTENSION_SOURCE_NOT_ELIGIBLE",
            "SOURCE_NAME_IN_REVIEW_EXTENSION_TEXT",
            "MISSING_FIELD",
            "INCONSISTENT_CURRENCY_CODES",
            "PRICE_EXTENSION_HAS_DUPLICATED_HEADERS",
            "PRICE_ITEM_HAS_DUPLICATED_HEADER_AND_DESCRIPTION",
            "PRICE_EXTENSION_HAS_TOO_FEW_ITEMS",
            "PRICE_EXTENSION_HAS_TOO_MANY_ITEMS",
            "UNSUPPORTED_VALUE",
            "INVALID_DEVICE_PREFERENCE",
            "INVALID_SCHEDULE_END",
            "DATE_TIME_MUST_BE_IN_ACCOUNT_TIME_ZONE",
            "OVERLAPPING_SCHEDULES_NOT_ALLOWED",
            "SCHEDULE_END_NOT_AFTER_START",
            "TOO_MANY_SCHEDULES_PER_DAY",
            "DUPLICATE_EXTENSION_FEED_ITEM_EDIT",
            "INVALID_SNIPPETS_HEADER",
            "PHONE_NUMBER_NOT_SUPPORTED_WITH_CALLTRACKING_FOR_COUNTRY",
            "CAMPAIGN_TARGETING_MISMATCH",
            "CANNOT_OPERATE_ON_REMOVED_FEED",
            "EXTENSION_TYPE_REQUIRED",
            "INCOMPATIBLE_UNDERLYING_MATCHING_FUNCTION",
            "START_DATE_AFTER_END_DATE",
            "INVALID_PRICE_FORMAT",
            "PROMOTION_INVALID_TIME",
            "PROMOTION_CANNOT_SET_PERCENT_DISCOUNT_AND_MONEY_DISCOUNT",
            "PROMOTION_CANNOT_SET_PROMOTION_CODE_AND_ORDERS_OVER_AMOUNT",
            "TOO_MANY_DECIMAL_PLACES_SPECIFIED",
            "INVALID_LANGUAGE_CODE",
            "UNSUPPORTED_LANGUAGE",
            "CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED",
            "EXTENSION_SETTING_UPDATE_IS_A_NOOP",
            "DISALLOWED_TEXT"
          ]
        },
        "assetGenerationError": {
          "type": "string",
          "description": "The reasons for the GenAI asset generation error.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NO_ASSETS_GENERATED",
            "FINAL_URL_REQUIRED",
            "GENERATION_CONTEXT_MISSING_FINAL_URL",
            "FINAL_URL_SENSITIVE",
            "FINAL_URL_UNSUPPORTED_LANGUAGE",
            "FINAL_URL_UNAVAILABLE",
            "CAMPAIGN_TYPE_REQUIRED",
            "UNSUPPORTED_CAMPAIGN_TYPE",
            "UNSUPPORTED_FIELD_TYPE",
            "UNSUPPORTED_FIELD_TYPE_FOR_CAMPAIGN_TYPE",
            "FREEFORM_PROMPT_UNSUPPORTED_LANGUAGE",
            "FREEFORM_PROMPT_SENSITIVE",
            "INPUT_IMAGE_FILE_SIZE_TOO_LARGE",
            "INPUT_IMAGE_EMPTY",
            "GENERATION_TYPE_REQUIRED",
            "TOO_MANY_KEYWORDS",
            "KEYWORD_INVALID_LENGTH",
            "NO_VALID_KEYWORDS",
            "FREEFORM_PROMPT_INVALID_LENGTH",
            "FREEFORM_PROMPT_REFERENCES_CHILDREN",
            "FREEFORM_PROMPT_REFERENCES_SPECIFIC_PEOPLE",
            "FREEFORM_PROMPT_VIOLATES_ADS_POLICY",
            "FREEFORM_PROMPT_BRAND_CONTENT",
            "INPUT_IMAGE_DEPICTS_CHILDREN",
            "INPUT_IMAGE_CONTAINS_BRAND_CONTENT",
            "INPUT_IMAGE_SENSITIVE",
            "INPUT_IMAGE_VIOLATES_POLICY",
            "ALL_OUTPUT_IMAGES_FILTERED_OUT_CHILDREN_DEPICTION",
            "ALL_OUTPUT_IMAGES_FILTERED_OUT_SPECIFIC_PEOPLE",
            "ALL_OUTPUT_IMAGES_FILTERED_OUT",
            "INPUT_IMAGE_REQUIRED",
            "INPUT_IMAGE_UNSUPPORTED_IMAGE_TYPE",
            "CONTEXT_ASSET_GROUP_NOT_FOUND",
            "CONTEXT_AD_GROUP_AD_NOT_FOUND",
            "CONTEXT_CAMPAIGN_NOT_FOUND"
          ],
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "No assets were generated for the given request.",
            "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.",
            "A final URL is required but was not provided, and could not be sourced from the provided existing generation context.",
            "The provided final URL is considered sensitive, and assets cannot be generated.",
            "The language of the provided final URL is not supported.",
            "The provided final URL was not indexed or could otherwise not be processed.",
            "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.",
            "The provided campaign type is not supported for this asset generation operation.",
            "The provided field type is not supported for this asset generation operation.",
            "The provided field type is not supported for the given campaign type.",
            "The language of the provided freeform prompt is not supported.",
            "The provided freeform prompt is considered sensitive, and assets cannot be generated.",
            "The provided image file size exceeds the limit.",
            "The provided image is empty.",
            "Exactly one generation type must be provided.",
            "Too many keywords provided in request.",
            "A provided keyword does not have a valid length.",
            "All keywords were filtered out.",
            "The provided freeform prompt does not have a valid length.",
            "The provided freeform prompt references children.",
            "The provided freeform prompt references specific people.",
            "The provided freeform prompt violates Ads Policy.",
            "The provided freeform prompt contains brand content.",
            "The provided image depicts children.",
            "The provided image contains brand content.",
            "The provided image contains sensitive subject matter.",
            "The provided image may violate Google Ads policies.",
            "All output images were filtered out because they included depictions of children.",
            "All output images were filtered out because they included depictions of specific people.",
            "All output images were filtered out for a reason not covered by a more specific error code.",
            "At least one input image is required for certain requests.",
            "The provided image is of an unsupported type.",
            "Asset Group could not be found with the provided ID.",
            "Ad Group Ad could not be found with the provided ID combination.",
            "Could not find Campaign associated with the provided generation context."
          ]
        },
        "stringLengthError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The specified field should have a least one non-whitespace character in it.",
            "Too short.",
            "Too long."
          ],
          "description": "The reasons for the string length error",
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EMPTY",
            "TOO_SHORT",
            "TOO_LONG"
          ]
        },
        "conversionUploadError": {
          "description": "The reasons for the conversion upload error",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "TOO_MANY_CONVERSIONS_IN_REQUEST",
            "UNPARSEABLE_GCLID",
            "CONVERSION_PRECEDES_EVENT",
            "EXPIRED_EVENT",
            "TOO_RECENT_EVENT",
            "EVENT_NOT_FOUND",
            "UNAUTHORIZED_CUSTOMER",
            "TOO_RECENT_CONVERSION_ACTION",
            "CONVERSION_TRACKING_NOT_ENABLED_AT_IMPRESSION_TIME",
            "EXTERNAL_ATTRIBUTION_DATA_SET_FOR_NON_EXTERNALLY_ATTRIBUTED_CONVERSION_ACTION",
            "EXTERNAL_ATTRIBUTION_DATA_NOT_SET_FOR_EXTERNALLY_ATTRIBUTED_CONVERSION_ACTION",
            "ORDER_ID_NOT_PERMITTED_FOR_EXTERNALLY_ATTRIBUTED_CONVERSION_ACTION",
            "ORDER_ID_ALREADY_IN_USE",
            "DUPLICATE_ORDER_ID",
            "TOO_RECENT_CALL",
            "EXPIRED_CALL",
            "CALL_NOT_FOUND",
            "CONVERSION_PRECEDES_CALL",
            "CONVERSION_TRACKING_NOT_ENABLED_AT_CALL_TIME",
            "UNPARSEABLE_CALLERS_PHONE_NUMBER",
            "CLICK_CONVERSION_ALREADY_EXISTS",
            "CALL_CONVERSION_ALREADY_EXISTS",
            "DUPLICATE_CLICK_CONVERSION_IN_REQUEST",
            "DUPLICATE_CALL_CONVERSION_IN_REQUEST",
            "CUSTOM_VARIABLE_NOT_ENABLED",
            "CUSTOM_VARIABLE_VALUE_CONTAINS_PII",
            "INVALID_CUSTOMER_FOR_CLICK",
            "INVALID_CUSTOMER_FOR_CALL",
            "CONVERSION_NOT_COMPLIANT_WITH_ATT_POLICY",
            "CLICK_NOT_FOUND",
            "INVALID_USER_IDENTIFIER",
            "EXTERNALLY_ATTRIBUTED_CONVERSION_ACTION_NOT_PERMITTED_WITH_USER_IDENTIFIER",
            "UNSUPPORTED_USER_IDENTIFIER",
            "GBRAID_WBRAID_BOTH_SET",
            "UNPARSEABLE_WBRAID",
            "UNPARSEABLE_GBRAID",
            "ONE_PER_CLICK_CONVERSION_ACTION_NOT_PERMITTED_WITH_BRAID",
            "CUSTOMER_DATA_POLICY_PROHIBITS_ENHANCED_CONVERSIONS",
            "CUSTOMER_NOT_ACCEPTED_CUSTOMER_DATA_TERMS",
            "ORDER_ID_CONTAINS_PII",
            "CUSTOMER_NOT_ENABLED_ENHANCED_CONVERSIONS_FOR_LEADS",
            "INVALID_JOB_ID",
            "NO_CONVERSION_ACTION_FOUND",
            "INVALID_CONVERSION_ACTION_TYPE"
          ],
          "enumDescriptions": [
            "Enum unspecified.",
            "Used for return value only. Represents value unknown in this version.",
            "Upload fewer than 2001 events in a single request.",
            "The imported gclid could not be decoded.",
            "The imported event has a `conversion_date_time` that precedes the click. Make sure your `conversion_date_time` is correct and try again.",
            "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.",
            "The click associated with the given identifier or iOS URL parameter occurred less than 6 hours ago. Retry after 6 hours have passed.",
            "The imported event could not be attributed to a click. This may be because the event did not come from a Google Ads campaign.",
            "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.",
            "Can't import events to a conversion action that was just created. Try importing again in 6 hours.",
            "At the time of the click, conversion tracking was not enabled in the effective conversion account of the click's Google Ads account.",
            "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.",
            "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 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.",
            "The imported event includes an order ID that was previously recorded, so the event was not processed.",
            "Imported events include multiple conversions with the same order ID and were not processed. Make sure order IDs are unique and try again.",
            "Can't import calls that occurred less than 6 hours ago. Try uploading again in 6 hours.",
            "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.",
            "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.",
            "The call has a `conversion_date_time` that precedes the associated click. Make sure your `conversion_date_time` is correct.",
            "At the time of the imported call, conversion tracking was not enabled in the effective conversion account of the click's Google Ads account.",
            "Make sure phone numbers are formatted as E.164 (+16502531234), International (+64 3-331 6005), or US national number (6502531234).",
            "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.",
            "The imported call has the same `conversion_date_time` as an existing conversion. Make sure your `conversion_date_time` correctly configured and try again.",
            "Multiple events have the same click and `conversion_date_time`. Make sure your `conversion_date_time` is correctly configured and try again.",
            "Multiple events have the same call and `conversion_date_time`. Make sure your `conversion_date_time` is correctly configured and try again.",
            "Enable the custom variable in your conversion settings and try again.",
            "Can't import events with custom variables containing personally-identifiable information (PII). Remove these variables and try again.",
            "The click from the imported event is associated with a different Google Ads account. Make sure you're importing to the correct account.",
            "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.",
            "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.",
            "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.",
            "Make sure you hash user provided data using SHA-256 and ensure you are normalizing according to the guidelines.",
            "User provided data can't be used with external attribution models. Use a different attribution model or omit user identifiers and try again.",
            "The provided user identifiers are not supported. Use only hashed email or phone number and try again.",
            "Can't use both gbraid and wbraid parameters. Use only 1 and try again.",
            "Can't parse event import data. Check if your wbraid parameter was not modified and try again.",
            "Can't parse event import data. Check if your gbraid parameter was not modified and try again.",
            "Conversion actions that use one-per-click counting can't be used with gbraid or wbraid parameters.",
            "Enhanced conversions can't be used for this account because of Google customer data policies. Contact your Google representative.",
            "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.",
            "Can't import events with order IDs containing personally-identifiable information (PII).",
            "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.",
            "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).",
            "The conversion action specified in the upload request cannot be found. Make sure it's available in this account.",
            "The conversion action specified in the upload request isn't set up for uploading conversions."
          ],
          "type": "string"
        },
        "thirdPartyAppAnalyticsLinkError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_ANALYTICS_PROVIDER_ID",
            "INVALID_MOBILE_APP_ID",
            "MOBILE_APP_IS_NOT_ENABLED",
            "CANNOT_REGENERATE_SHAREABLE_LINK_ID_FOR_REMOVED_LINK"
          ],
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The provided analytics provider ID is invalid.",
            "The provided mobile app ID is invalid.",
            "The mobile app corresponding to the provided app ID is not active/enabled.",
            "Regenerating shareable link ID is only allowed on active links"
          ],
          "description": "The reasons for the third party app analytics link mutate error"
        },
        "experimentArmError": {
          "description": "The reasons for the experiment arm error",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EXPERIMENT_ARM_COUNT_LIMIT_EXCEEDED",
            "INVALID_CAMPAIGN_STATUS",
            "DUPLICATE_EXPERIMENT_ARM_NAME",
            "CANNOT_SET_TREATMENT_ARM_CAMPAIGN",
            "CANNOT_MODIFY_CAMPAIGN_IDS",
            "CANNOT_MODIFY_CAMPAIGN_WITHOUT_SUFFIX_SET",
            "CANNOT_MUTATE_TRAFFIC_SPLIT_AFTER_START",
            "CANNOT_ADD_CAMPAIGN_WITH_SHARED_BUDGET",
            "CANNOT_ADD_CAMPAIGN_WITH_CUSTOM_BUDGET",
            "CANNOT_ADD_CAMPAIGNS_WITH_DYNAMIC_ASSETS_ENABLED",
            "UNSUPPORTED_CAMPAIGN_ADVERTISING_CHANNEL_SUB_TYPE",
            "CANNOT_ADD_BASE_CAMPAIGN_WITH_DATE_RANGE",
            "BIDDING_STRATEGY_NOT_SUPPORTED_IN_EXPERIMENTS",
            "TRAFFIC_SPLIT_NOT_SUPPORTED_FOR_CHANNEL_TYPE"
          ],
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Number of experiment arms is above limit.",
            "Cannot add campaign with invalid status to the experiment arm.",
            "Cannot add duplicate experiment arm name in one experiment.",
            "Cannot set campaigns of treatment experiment arm.",
            "Cannot edit campaign ids in trial arms in non SETUP experiment.",
            "Cannot modify the campaigns in the control arm if there is not a suffix set in the trial.",
            "Traffic split related settings (like traffic share bounds) can't be modified after the trial has started.",
            "Cannot use shared budget on experiment's control campaign.",
            "Cannot use custom budget on experiment's control campaigns.",
            "Cannot have enable_dynamic_assets turned on in experiment's campaigns.",
            "Cannot use campaign's advertising channel sub type in experiment.",
            "Experiment date range must be within base campaign's date range.",
            "Bidding strategy is not supported in experiments.",
            "Traffic split is not supported for some channel types."
          ],
          "type": "string"
        },
        "campaignBudgetError": {
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The campaign budget cannot be shared.",
            "The requested campaign budget no longer exists.",
            "The campaign budget is associated with at least one campaign, and so the campaign budget cannot be removed.",
            "Customer is not on the allow-list for this campaign budget period.",
            "This field is not mutable on implicitly shared campaign budgets",
            "Cannot change explicitly shared campaign budgets back to implicitly shared ones.",
            "An implicit campaign budget without a name cannot be changed to explicitly shared campaign budget.",
            "Cannot change an implicitly shared campaign budget to an explicitly shared one.",
            "Only explicitly shared campaign budgets can be used with multiple campaigns.",
            "A campaign budget with this name already exists.",
            "A money amount was not in the expected currency.",
            "A money amount was less than the minimum CPC for currency.",
            "A money amount was greater than the maximum allowed.",
            "A money amount was negative.",
            "A money amount was not a multiple of a minimum unit.",
            "Total budget amount must be unset when BudgetPeriod is DAILY.",
            "The period of the budget is not allowed.",
            "Cannot use accelerated delivery method on this budget.",
            "Budget amount must be unset when BudgetPeriod is CUSTOM.",
            "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."
          ],
          "description": "An error with a Campaign Budget mutate.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CAMPAIGN_BUDGET_CANNOT_BE_SHARED",
            "CAMPAIGN_BUDGET_REMOVED",
            "CAMPAIGN_BUDGET_IN_USE",
            "CAMPAIGN_BUDGET_PERIOD_NOT_AVAILABLE",
            "CANNOT_MODIFY_FIELD_OF_IMPLICITLY_SHARED_CAMPAIGN_BUDGET",
            "CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_IMPLICITLY_SHARED",
            "CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_EXPLICITLY_SHARED_WITHOUT_NAME",
            "CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_EXPLICITLY_SHARED",
            "CANNOT_USE_IMPLICITLY_SHARED_CAMPAIGN_BUDGET_WITH_MULTIPLE_CAMPAIGNS",
            "DUPLICATE_NAME",
            "MONEY_AMOUNT_IN_WRONG_CURRENCY",
            "MONEY_AMOUNT_LESS_THAN_CURRENCY_MINIMUM_CPC",
            "MONEY_AMOUNT_TOO_LARGE",
            "NEGATIVE_MONEY_AMOUNT",
            "NON_MULTIPLE_OF_MINIMUM_CURRENCY_UNIT",
            "TOTAL_BUDGET_AMOUNT_MUST_BE_UNSET_FOR_BUDGET_PERIOD_DAILY",
            "INVALID_PERIOD",
            "CANNOT_USE_ACCELERATED_DELIVERY_MODE",
            "BUDGET_AMOUNT_MUST_BE_UNSET_FOR_CUSTOM_BUDGET_PERIOD",
            "BUDGET_BELOW_PER_DAY_MINIMUM"
          ]
        },
        "adGroupFeedError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE",
            "CANNOT_CREATE_FOR_REMOVED_FEED",
            "ADGROUP_FEED_ALREADY_EXISTS",
            "CANNOT_OPERATE_ON_REMOVED_ADGROUP_FEED",
            "INVALID_PLACEHOLDER_TYPE",
            "MISSING_FEEDMAPPING_FOR_PLACEHOLDER_TYPE",
            "NO_EXISTING_LOCATION_CUSTOMER_FEED"
          ],
          "description": "The reasons for the ad group feed error",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "An active feed already exists for this ad group and place holder type.",
            "The specified feed is removed.",
            "The AdGroupFeed already exists. UPDATE operation should be used to modify the existing AdGroupFeed.",
            "Cannot operate on removed AdGroupFeed.",
            "Invalid placeholder type.",
            "Feed mapping for this placeholder type does not exist.",
            "Location AdGroupFeeds cannot be created unless there is a location CustomerFeed for the specified feed."
          ]
        },
        "functionParsingError": {
          "description": "The reasons for the function parsing error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Unexpected end of function string.",
            "Could not find an expected character.",
            "Unexpected separator character.",
            "Unmatched left bracket or parenthesis.",
            "Unmatched right bracket or parenthesis.",
            "Functions are nested too deeply.",
            "Missing right-hand-side operand.",
            "Invalid operator/function name.",
            "Feed attribute operand's argument is not an integer.",
            "Missing function operands.",
            "Function had too many operands."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NO_MORE_INPUT",
            "EXPECTED_CHARACTER",
            "UNEXPECTED_SEPARATOR",
            "UNMATCHED_LEFT_BRACKET",
            "UNMATCHED_RIGHT_BRACKET",
            "TOO_MANY_NESTED_FUNCTIONS",
            "MISSING_RIGHT_HAND_OPERAND",
            "INVALID_OPERATOR_NAME",
            "FEED_ATTRIBUTE_OPERAND_ARGUMENT_NOT_INTEGER",
            "NO_OPERANDS",
            "TOO_MANY_OPERANDS"
          ]
        },
        "resourceAccessDeniedError": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "WRITE_ACCESS_DENIED"
          ],
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "User did not have write access."
          ],
          "description": "The reasons for the resource access denied error"
        },
        "countryCodeError": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_COUNTRY_CODE"
          ],
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The country code is invalid."
          ],
          "description": "The reasons for the country code error"
        },
        "productLinkInvitationError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in the version.",
            "The invitation status is invalid.",
            "The customer doesn't have the permission to perform this action",
            "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.",
            "The customer is not permitted to create the invitation."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_STATUS",
            "PERMISSION_DENIED",
            "NO_INVITATION_REQUIRED",
            "CUSTOMER_NOT_PERMITTED_TO_CREATE_INVITATION"
          ],
          "description": "The reasons for the product link invitation error",
          "type": "string"
        },
        "customerFeedError": {
          "type": "string",
          "description": "The reasons for the customer feed error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "An active feed already exists for this customer and place holder type.",
            "The specified feed is removed.",
            "The CustomerFeed already exists. Update should be used to modify the existing CustomerFeed.",
            "Cannot update removed customer feed.",
            "Invalid placeholder type.",
            "Feed mapping for this placeholder type does not exist.",
            "Placeholder not allowed at the account level."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE",
            "CANNOT_CREATE_FOR_REMOVED_FEED",
            "CANNOT_CREATE_ALREADY_EXISTING_CUSTOMER_FEED",
            "CANNOT_MODIFY_REMOVED_CUSTOMER_FEED",
            "INVALID_PLACEHOLDER_TYPE",
            "MISSING_FEEDMAPPING_FOR_PLACEHOLDER_TYPE",
            "PLACEHOLDER_TYPE_NOT_ALLOWED_ON_CUSTOMER_FEED"
          ]
        },
        "fieldError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "REQUIRED",
            "IMMUTABLE_FIELD",
            "INVALID_VALUE",
            "VALUE_MUST_BE_UNSET",
            "REQUIRED_NONEMPTY_LIST",
            "FIELD_CANNOT_BE_CLEARED",
            "BLOCKED_VALUE",
            "FIELD_CAN_ONLY_BE_CLEARED"
          ],
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The required field was not present.",
            "The field attempted to be mutated is immutable.",
            "The field's value is invalid.",
            "The field cannot be set.",
            "The required repeated field was empty.",
            "The field cannot be cleared.",
            "The field's value is on a deny-list for this field.",
            "The field's value cannot be modified, except for clearing."
          ],
          "description": "The reasons for the field error",
          "type": "string"
        },
        "conversionValueRuleSetError": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CONFLICTING_VALUE_RULE_CONDITIONS",
            "INVALID_VALUE_RULE",
            "DIMENSIONS_UPDATE_ONLY_ALLOW_APPEND",
            "CONDITION_TYPE_NOT_ALLOWED",
            "DUPLICATE_DIMENSIONS",
            "INVALID_CAMPAIGN_ID",
            "CANNOT_PAUSE_UNLESS_ALL_VALUE_RULES_ARE_PAUSED",
            "SHOULD_PAUSE_WHEN_ALL_VALUE_RULES_ARE_PAUSED",
            "VALUE_RULES_NOT_SUPPORTED_FOR_CAMPAIGN_TYPE",
            "INELIGIBLE_CONVERSION_ACTION_CATEGORIES",
            "DIMENSION_NO_CONDITION_USED_WITH_OTHER_DIMENSIONS",
            "DIMENSION_NO_CONDITION_NOT_ALLOWED",
            "UNSUPPORTED_CONVERSION_ACTION_CATEGORIES",
            "DIMENSION_NOT_SUPPORTED_FOR_CAMPAIGN_TYPE"
          ],
          "description": "The reasons for the conversion value rule set error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Two value rules in this value rule set contain conflicting conditions.",
            "This value rule set includes a value rule that cannot be found, has been permanently removed or belongs to a different customer.",
            "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.",
            "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.",
            "The dimensions field contains duplicate elements.",
            "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.",
            "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.",
            "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.",
            "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.",
            "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.",
            "If NO_CONDITION is used as a dimension of a value rule set, it must be the only dimension.",
            "Dimension NO_CONDITION can only be used by Store Visits/Store Sales value rule set.",
            "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 ITINERARY can only be used on campaigns with an advertising channel type of PERFORMANCE_MAX or HOTEL."
          ]
        },
        "adxError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "UNSUPPORTED_FEATURE"
          ],
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Attempt to use non-AdX feature by AdX customer."
          ],
          "description": "The reasons for the adx error"
        },
        "conversionValueRuleError": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_GEO_TARGET_CONSTANT",
            "CONFLICTING_INCLUDED_AND_EXCLUDED_GEO_TARGET",
            "CONFLICTING_CONDITIONS",
            "CANNOT_REMOVE_IF_INCLUDED_IN_VALUE_RULE_SET",
            "CONDITION_NOT_ALLOWED",
            "FIELD_MUST_BE_UNSET",
            "CANNOT_PAUSE_UNLESS_VALUE_RULE_SET_IS_PAUSED",
            "UNTARGETABLE_GEO_TARGET",
            "INVALID_AUDIENCE_USER_LIST",
            "INACCESSIBLE_USER_LIST",
            "INVALID_AUDIENCE_USER_INTEREST",
            "CANNOT_ADD_RULE_WITH_STATUS_REMOVED",
            "NO_DAY_OF_WEEK_SELECTED"
          ],
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The value rule's geo location condition contains invalid geo target constant(s), for example, there's no matching 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.",
            "User specified conflicting conditions for two value rules in the same value rule set.",
            "The value rule cannot be removed because it's still included in some value rule set.",
            "The value rule contains a condition that's not allowed by the value rule set including this value rule.",
            "The value rule contains a field that should be unset.",
            "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.",
            "The value rule's geo location condition contains untargetable geo target constant(s).",
            "The value rule's audience condition contains invalid user list(s). In another word, there's no matching user list.",
            "The value rule's audience condition contains inaccessible user list(s).",
            "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.",
            "When a value rule is created, it shouldn't have REMOVED status.",
            "The value rule's itinerary condition contains invalid travel start day, it contains no day of week."
          ],
          "description": "The reasons for the conversion value rule error"
        },
        "customerSkAdNetworkConversionValueSchemaError": {
          "description": "The reasons for the customer SK Ad network conversion value schema error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The customer link ID provided is invalid.",
            "The app ID provided is invalid.",
            "The conversion value schema provided is invalid.",
            "The customer link id provided could not be found.",
            "The SkAdNetwork event counter provided is invalid.",
            "The SkAdNetwork event name provided is invalid."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_LINK_ID",
            "INVALID_APP_ID",
            "INVALID_SCHEMA",
            "LINK_CODE_NOT_FOUND",
            "INVALID_EVENT_COUNTER",
            "INVALID_EVENT_NAME"
          ]
        },
        "customerCustomizerError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version."
          ],
          "description": "The reasons for the customer customizer error.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN"
          ],
          "type": "string"
        },
        "notAllowlistedError": {
          "description": "The reasons for the not allowlisted error",
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CUSTOMER_NOT_ALLOWLISTED_FOR_THIS_FEATURE"
          ],
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Customer is not allowlisted for accessing this feature."
          ]
        },
        "feedMappingError": {
          "description": "The reasons for the feed mapping error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The given placeholder field does not exist.",
            "The given criterion field does not exist.",
            "The given placeholder type does not exist.",
            "The given criterion type does not exist.",
            "A feed mapping must contain at least one attribute field mapping.",
            "The type of the feed attribute referenced in the attribute field mapping must match the type of the placeholder field.",
            "A feed mapping for a system generated feed cannot be operated on.",
            "Only one feed mapping for a placeholder type is allowed per feed or customer (depending on the placeholder type).",
            "Only one feed mapping for a criterion type is allowed per customer.",
            "Only one feed attribute mapping for a placeholder field is allowed (depending on the placeholder type).",
            "Only one feed attribute mapping for a criterion field is allowed (depending on the criterion type).",
            "This feed mapping may not contain any explicit attribute field mappings.",
            "Location placeholder feed mappings can only be created for Places feeds.",
            "Mappings for typed feeds cannot be modified.",
            "The given placeholder type can only be mapped to system generated feeds.",
            "The given placeholder type cannot be mapped to a system generated feed with the given type.",
            "The \"field\" oneof was not set in an AttributeFieldMapping.",
            "Feed is read only."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_PLACEHOLDER_FIELD",
            "INVALID_CRITERION_FIELD",
            "INVALID_PLACEHOLDER_TYPE",
            "INVALID_CRITERION_TYPE",
            "NO_ATTRIBUTE_FIELD_MAPPINGS",
            "FEED_ATTRIBUTE_TYPE_MISMATCH",
            "CANNOT_OPERATE_ON_MAPPINGS_FOR_SYSTEM_GENERATED_FEED",
            "MULTIPLE_MAPPINGS_FOR_PLACEHOLDER_TYPE",
            "MULTIPLE_MAPPINGS_FOR_CRITERION_TYPE",
            "MULTIPLE_MAPPINGS_FOR_PLACEHOLDER_FIELD",
            "MULTIPLE_MAPPINGS_FOR_CRITERION_FIELD",
            "UNEXPECTED_ATTRIBUTE_FIELD_MAPPINGS",
            "LOCATION_PLACEHOLDER_ONLY_FOR_PLACES_FEEDS",
            "CANNOT_MODIFY_MAPPINGS_FOR_TYPED_FEED",
            "INVALID_PLACEHOLDER_TYPE_FOR_NON_SYSTEM_GENERATED_FEED",
            "INVALID_PLACEHOLDER_TYPE_FOR_SYSTEM_GENERATED_FEED_TYPE",
            "ATTRIBUTE_FIELD_MAPPING_MISSING_FIELD",
            "LEGACY_FEED_TYPE_READ_ONLY"
          ],
          "type": "string"
        },
        "biddingError": {
          "description": "The reasons for the bidding errors",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Cannot transition to new bidding strategy.",
            "Cannot attach bidding strategy to campaign.",
            "Bidding strategy is not supported or cannot be used as anonymous.",
            "The type does not match the named strategy's type.",
            "The bid is invalid.",
            "Bidding strategy is not available for the account type.",
            "Campaign can not be created with given bidding strategy. It can be transitioned to the strategy, once eligible.",
            "Cannot target content network only as campaign uses Page One Promoted bidding strategy.",
            "Budget Optimizer and Target Spend bidding strategies are not supported for campaigns with AdSchedule targeting.",
            "Pay per conversion is not available to all the customer, only few customers on the allow-list can use this.",
            "Pay per conversion is not allowed with Target CPA.",
            "Cannot set bidding strategy to Manual CPM for search network only campaigns.",
            "The bidding strategy is not supported for use in drafts or experiments.",
            "Bidding strategy type does not support product type ad group criterion.",
            "Bid amount is too small.",
            "Bid amount is too big.",
            "Bid has too many fractional digit precision.",
            "Invalid domain name specified.",
            "The field is not compatible with the payment mode.",
            "Bidding strategy type is incompatible with shared budget.",
            "The attached bidding strategy and budget must be aligned with each other if alignment is specified on either entity.",
            "The attached bidding strategy and budget must be attached to the same campaigns to become aligned.",
            "The aligned bidding strategy and budget must be removed at the same time.",
            "cpc_bid_floor_micros is greater than cpc_bid_ceiling_micros.",
            "target_roas_tolerance_percent_millis must be integer."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BIDDING_STRATEGY_TRANSITION_NOT_ALLOWED",
            "CANNOT_ATTACH_BIDDING_STRATEGY_TO_CAMPAIGN",
            "INVALID_ANONYMOUS_BIDDING_STRATEGY_TYPE",
            "INVALID_BIDDING_STRATEGY_TYPE",
            "INVALID_BID",
            "BIDDING_STRATEGY_NOT_AVAILABLE_FOR_ACCOUNT_TYPE",
            "CANNOT_CREATE_CAMPAIGN_WITH_BIDDING_STRATEGY",
            "CANNOT_TARGET_CONTENT_NETWORK_ONLY_WITH_CAMPAIGN_LEVEL_POP_BIDDING_STRATEGY",
            "BIDDING_STRATEGY_NOT_SUPPORTED_WITH_AD_SCHEDULE",
            "PAY_PER_CONVERSION_NOT_AVAILABLE_FOR_CUSTOMER",
            "PAY_PER_CONVERSION_NOT_ALLOWED_WITH_TARGET_CPA",
            "BIDDING_STRATEGY_NOT_ALLOWED_FOR_SEARCH_ONLY_CAMPAIGNS",
            "BIDDING_STRATEGY_NOT_SUPPORTED_IN_DRAFTS_OR_EXPERIMENTS",
            "BIDDING_STRATEGY_TYPE_DOES_NOT_SUPPORT_PRODUCT_TYPE_ADGROUP_CRITERION",
            "BID_TOO_SMALL",
            "BID_TOO_BIG",
            "BID_TOO_MANY_FRACTIONAL_DIGITS",
            "INVALID_DOMAIN_NAME",
            "NOT_COMPATIBLE_WITH_PAYMENT_MODE",
            "BIDDING_STRATEGY_TYPE_INCOMPATIBLE_WITH_SHARED_BUDGET",
            "BIDDING_STRATEGY_AND_BUDGET_MUST_BE_ALIGNED",
            "BIDDING_STRATEGY_AND_BUDGET_MUST_BE_ATTACHED_TO_THE_SAME_CAMPAIGNS_TO_ALIGN",
            "BIDDING_STRATEGY_AND_BUDGET_MUST_BE_REMOVED_TOGETHER",
            "CPC_BID_FLOOR_MICROS_GREATER_THAN_CPC_BID_CEILING_MICROS",
            "TARGET_ROAS_TOLERANCE_PERCENT_MILLIS_MUST_BE_INTEGER"
          ],
          "type": "string"
        },
        "adGroupCriterionError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "No link found between the AdGroupCriterion and the label.",
            "The label has already been attached to the AdGroupCriterion.",
            "Negative AdGroupCriterion cannot have labels.",
            "Too many operations for a single call.",
            "Negative ad group criteria are not updateable.",
            "Concrete type of criterion (keyword v.s. placement) is required for ADD and SET operations.",
            "Bid is incompatible with ad group's bidding settings.",
            "Cannot target and exclude the same criterion at once.",
            "The URL of a placement is invalid.",
            "Keyword text was invalid.",
            "Destination URL was invalid.",
            "The destination url must contain at least one tag (for example, {lpurl})",
            "Keyword-level cpm bid is not supported",
            "For example, cannot add a biddable ad group criterion that had been removed.",
            "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.",
            "Criteria type cannot be excluded for the ad group. Refer to the documentation for a specific criterion to check if it is excludable.",
            "Partial failure is not supported for shopping campaign mutate operations.",
            "Operations in the mutate request changes too many shopping ad groups. Split requests for multiple shopping ad groups across multiple requests.",
            "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 url fields without also setting final urls.",
            "Cannot clear final urls if final mobile 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 url custom parameters exist.",
            "Cannot set both destination url and final urls.",
            "Cannot set both destination url and tracking url template.",
            "Final urls are not supported for this criterion type.",
            "Final mobile urls are not supported for this criterion type."
          ],
          "description": "Indicates failure to properly authenticate user.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AD_GROUP_CRITERION_LABEL_DOES_NOT_EXIST",
            "AD_GROUP_CRITERION_LABEL_ALREADY_EXISTS",
            "CANNOT_ADD_LABEL_TO_NEGATIVE_CRITERION",
            "TOO_MANY_OPERATIONS",
            "CANT_UPDATE_NEGATIVE",
            "CONCRETE_TYPE_REQUIRED",
            "BID_INCOMPATIBLE_WITH_ADGROUP",
            "CANNOT_TARGET_AND_EXCLUDE",
            "ILLEGAL_URL",
            "INVALID_KEYWORD_TEXT",
            "INVALID_DESTINATION_URL",
            "MISSING_DESTINATION_URL_TAG",
            "KEYWORD_LEVEL_BID_NOT_SUPPORTED_FOR_MANUALCPM",
            "INVALID_USER_STATUS",
            "CANNOT_ADD_CRITERIA_TYPE",
            "CANNOT_EXCLUDE_CRITERIA_TYPE",
            "CAMPAIGN_TYPE_NOT_COMPATIBLE_WITH_PARTIAL_FAILURE",
            "OPERATIONS_FOR_TOO_MANY_SHOPPING_ADGROUPS",
            "CANNOT_MODIFY_URL_FIELDS_WITH_DUPLICATE_ELEMENTS",
            "CANNOT_SET_WITHOUT_FINAL_URLS",
            "CANNOT_CLEAR_FINAL_URLS_IF_FINAL_MOBILE_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_URL_CUSTOM_PARAMETERS_EXIST",
            "CANNOT_SET_BOTH_DESTINATION_URL_AND_FINAL_URLS",
            "CANNOT_SET_BOTH_DESTINATION_URL_AND_TRACKING_URL_TEMPLATE",
            "FINAL_URLS_NOT_SUPPORTED_FOR_CRITERION_TYPE",
            "FINAL_MOBILE_URLS_NOT_SUPPORTED_FOR_CRITERION_TYPE"
          ],
          "type": "string"
        },
        "customizerAttributeError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "CustomizerAttribute name matches that of another active CustomizerAttribute."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DUPLICATE_CUSTOMIZER_ATTRIBUTE_NAME"
          ],
          "type": "string",
          "description": "The reasons for the customizer attribute error."
        },
        "conversionGoalCampaignConfigError": {
          "description": "The reasons for the conversion goal campaign config error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Campaign is managed by Search Ads 360 but uses Unified Goal.",
            "The campaign is using a custom goal that does not belong to its Google Ads conversion customer (conversion tracking customer).",
            "The campaign is not allowed to use unified goals.",
            "The campaign is using campaign override goals but has no goals configured.",
            "STORE_SALE and STORE_VISIT conversion types cannot be both included in campaign level goal.",
            "Performance Max campaign is not allowed to use custom goal with store sales conversion type."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CANNOT_USE_CAMPAIGN_GOAL_FOR_SEARCH_ADS_360_MANAGED_CAMPAIGN",
            "CUSTOM_GOAL_DOES_NOT_BELONG_TO_GOOGLE_ADS_CONVERSION_CUSTOMER",
            "CAMPAIGN_CANNOT_USE_UNIFIED_GOALS",
            "EMPTY_CONVERSION_GOALS",
            "STORE_SALE_STORE_VISIT_CANNOT_BE_BOTH_INCLUDED",
            "PERFORMANCE_MAX_CAMPAIGN_CANNOT_USE_CUSTOM_GOAL_WITH_STORE_SALES"
          ]
        },
        "accountLinkError": {
          "description": "The reasons for the account link status change error",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The new link status is invalid.",
            "The authenticated user doesn't have the permission to do the change."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_STATUS",
            "PERMISSION_DENIED"
          ]
        },
        "adGroupCriterionCustomizerError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CRITERION_IS_NOT_KEYWORD"
          ],
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Only keyword type criterion is allowed to link customizer attribute."
          ],
          "description": "The reasons for the ad group criterion customizer error."
        },
        "adParameterError": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AD_GROUP_CRITERION_MUST_BE_KEYWORD",
            "INVALID_INSERTION_TEXT_FORMAT"
          ],
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The ad group criterion must be a keyword criterion.",
            "The insertion text is invalid."
          ],
          "description": "The reasons for the ad parameter error"
        },
        "youtubeVideoRegistrationError": {
          "type": "string",
          "description": "The reasons for YouTube video registration errors.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "VIDEO_NOT_FOUND",
            "VIDEO_NOT_ACCESSIBLE",
            "VIDEO_NOT_ELIGIBLE"
          ],
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Video to be registered wasn't found.",
            "Video to be registered is not accessible (for example, private).",
            "Video to be registered is not eligible (for example, mature content)."
          ]
        },
        "adSharingError": {
          "type": "string",
          "description": "The reasons for the ad sharing error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Error resulting in attempting to add an Ad to an AdGroup that already contains the Ad.",
            "Ad is not compatible with the AdGroup it is being shared with.",
            "Cannot add AdGroupAd on inactive Ad."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AD_GROUP_ALREADY_CONTAINS_AD",
            "INCOMPATIBLE_AD_UNDER_AD_GROUP",
            "CANNOT_SHARE_INACTIVE_AD"
          ]
        },
        "campaignFeedError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "An active feed already exists for this campaign and placeholder type.",
            "The specified feed is removed.",
            "The CampaignFeed already exists. UPDATE should be used to modify the existing CampaignFeed.",
            "Cannot update removed campaign feed.",
            "Invalid placeholder type.",
            "Feed mapping for this placeholder type does not exist.",
            "Location CampaignFeeds cannot be created unless there is a location CustomerFeed for the specified feed.",
            "Feed is read only."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE",
            "CANNOT_CREATE_FOR_REMOVED_FEED",
            "CANNOT_CREATE_ALREADY_EXISTING_CAMPAIGN_FEED",
            "CANNOT_MODIFY_REMOVED_CAMPAIGN_FEED",
            "INVALID_PLACEHOLDER_TYPE",
            "MISSING_FEEDMAPPING_FOR_PLACEHOLDER_TYPE",
            "NO_EXISTING_LOCATION_CUSTOMER_FEED",
            "LEGACY_FEED_TYPE_READ_ONLY"
          ],
          "type": "string",
          "description": "The reasons for the campaign feed error"
        },
        "urlFieldError": {
          "description": "An error with a URL field mutate.",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The tracking url template is invalid.",
            "The tracking url template contains invalid 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.",
            "The tracking url template must start with a valid protocol (or lpurl tag).",
            "The tracking url template starts with an invalid protocol.",
            "The tracking url template contains illegal characters.",
            "The tracking url template must contain a host name (or lpurl tag).",
            "The tracking url template has an invalid or missing top level domain extension.",
            "The tracking url template contains nested occurrences of the same conditional tag (for example, {ifmobile:{ifmobile:x}}).",
            "The final url is invalid.",
            "The final url contains invalid tag.",
            "The final url contains nested occurrences of the same conditional tag (for example, {ifmobile:{ifmobile:x}}).",
            "The final url must start with a valid protocol.",
            "The final url starts with an invalid protocol.",
            "The final url contains illegal characters.",
            "The final url must contain a host name.",
            "The tracking url template has an invalid or missing top level domain extension.",
            "The final mobile url is invalid.",
            "The final mobile url contains invalid tag.",
            "The final mobile url contains nested occurrences of the same conditional tag (for example, {ifmobile:{ifmobile:x}}).",
            "The final mobile url must start with a valid protocol.",
            "The final mobile url starts with an invalid protocol.",
            "The final mobile url contains illegal characters.",
            "The final mobile url must contain a host name.",
            "The tracking url template has an invalid or missing top level domain extension.",
            "The final app url is invalid.",
            "The final app url contains invalid tag.",
            "The final app url contains nested occurrences of the same conditional tag (for example, {ifmobile:{ifmobile:x}}).",
            "More than one app url found for the same OS type.",
            "The OS type given for an app url is not valid.",
            "The protocol given for an app url is not valid. (For example, \"android-app://\")",
            "The package id (app id) given for an app url is not valid.",
            "The number of url custom parameters for an resource exceeds the maximum limit allowed.",
            "An invalid character appears in the parameter key.",
            "An invalid character appears in the parameter value.",
            "The url custom parameter value fails url tag validation.",
            "The custom parameter contains nested occurrences of the same conditional tag (for example, {ifmobile:{ifmobile:x}}).",
            "The protocol (http:// or https://) is missing.",
            "Unsupported protocol in URL. Only http and https are supported.",
            "The url is invalid.",
            "Destination Url is deprecated.",
            "The url contains invalid tag.",
            "The url must contain at least one tag (for example, {lpurl}).",
            "Duplicate url id.",
            "Invalid url id.",
            "The final url suffix cannot begin with '?' or '&' characters and must be a valid query string.",
            "The final url suffix cannot contain {lpurl} related or {ignore} tags.",
            "The top level domain is invalid, for example, not a public top level domain listed in publicsuffix.org.",
            "Malformed top level domain in URL.",
            "Malformed URL.",
            "No host found in URL.",
            "Custom parameter value cannot be null.",
            "Track parameter is not supported.",
            "The app store connected to the url is not supported."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_TRACKING_URL_TEMPLATE",
            "INVALID_TAG_IN_TRACKING_URL_TEMPLATE",
            "MISSING_TRACKING_URL_TEMPLATE_TAG",
            "MISSING_PROTOCOL_IN_TRACKING_URL_TEMPLATE",
            "INVALID_PROTOCOL_IN_TRACKING_URL_TEMPLATE",
            "MALFORMED_TRACKING_URL_TEMPLATE",
            "MISSING_HOST_IN_TRACKING_URL_TEMPLATE",
            "INVALID_TLD_IN_TRACKING_URL_TEMPLATE",
            "REDUNDANT_NESTED_TRACKING_URL_TEMPLATE_TAG",
            "INVALID_FINAL_URL",
            "INVALID_TAG_IN_FINAL_URL",
            "REDUNDANT_NESTED_FINAL_URL_TAG",
            "MISSING_PROTOCOL_IN_FINAL_URL",
            "INVALID_PROTOCOL_IN_FINAL_URL",
            "MALFORMED_FINAL_URL",
            "MISSING_HOST_IN_FINAL_URL",
            "INVALID_TLD_IN_FINAL_URL",
            "INVALID_FINAL_MOBILE_URL",
            "INVALID_TAG_IN_FINAL_MOBILE_URL",
            "REDUNDANT_NESTED_FINAL_MOBILE_URL_TAG",
            "MISSING_PROTOCOL_IN_FINAL_MOBILE_URL",
            "INVALID_PROTOCOL_IN_FINAL_MOBILE_URL",
            "MALFORMED_FINAL_MOBILE_URL",
            "MISSING_HOST_IN_FINAL_MOBILE_URL",
            "INVALID_TLD_IN_FINAL_MOBILE_URL",
            "INVALID_FINAL_APP_URL",
            "INVALID_TAG_IN_FINAL_APP_URL",
            "REDUNDANT_NESTED_FINAL_APP_URL_TAG",
            "MULTIPLE_APP_URLS_FOR_OSTYPE",
            "INVALID_OSTYPE",
            "INVALID_PROTOCOL_FOR_APP_URL",
            "INVALID_PACKAGE_ID_FOR_APP_URL",
            "URL_CUSTOM_PARAMETERS_COUNT_EXCEEDS_LIMIT",
            "INVALID_CHARACTERS_IN_URL_CUSTOM_PARAMETER_KEY",
            "INVALID_CHARACTERS_IN_URL_CUSTOM_PARAMETER_VALUE",
            "INVALID_TAG_IN_URL_CUSTOM_PARAMETER_VALUE",
            "REDUNDANT_NESTED_URL_CUSTOM_PARAMETER_TAG",
            "MISSING_PROTOCOL",
            "INVALID_PROTOCOL",
            "INVALID_URL",
            "DESTINATION_URL_DEPRECATED",
            "INVALID_TAG_IN_URL",
            "MISSING_URL_TAG",
            "DUPLICATE_URL_ID",
            "INVALID_URL_ID",
            "FINAL_URL_SUFFIX_MALFORMED",
            "INVALID_TAG_IN_FINAL_URL_SUFFIX",
            "INVALID_TOP_LEVEL_DOMAIN",
            "MALFORMED_TOP_LEVEL_DOMAIN",
            "MALFORMED_URL",
            "MISSING_HOST",
            "NULL_CUSTOM_PARAMETER_VALUE",
            "VALUE_TRACK_PARAMETER_NOT_SUPPORTED",
            "UNSUPPORTED_APP_STORE"
          ]
        },
        "customerClientLinkError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Trying to manage a client that already in being managed by customer.",
            "Already managed by some other manager in the hierarchy.",
            "Attempt to create a cycle in the hierarchy.",
            "Managed accounts has the maximum number of linked accounts.",
            "Invitor has the maximum pending invitations.",
            "Attempt to change hidden status of a link that is not active.",
            "Parent manager account has the maximum number of linked accounts.",
            "Client has too many managers."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CLIENT_ALREADY_INVITED_BY_THIS_MANAGER",
            "CLIENT_ALREADY_MANAGED_IN_HIERARCHY",
            "CYCLIC_LINK_NOT_ALLOWED",
            "CUSTOMER_HAS_TOO_MANY_ACCOUNTS",
            "CLIENT_HAS_TOO_MANY_INVITATIONS",
            "CANNOT_HIDE_OR_UNHIDE_MANAGER_ACCOUNTS",
            "CUSTOMER_HAS_TOO_MANY_ACCOUNTS_AT_MANAGER",
            "CLIENT_HAS_TOO_MANY_MANAGERS"
          ],
          "description": "The reasons for the customer client link error",
          "type": "string"
        },
        "contextError": {
          "description": "The reasons for the context error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The operation is not allowed for the given context.",
            "The operation is not allowed for removed resources."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "OPERATION_NOT_PERMITTED_FOR_CONTEXT",
            "OPERATION_NOT_PERMITTED_FOR_REMOVED_RESOURCE"
          ],
          "type": "string"
        },
        "timeZoneError": {
          "description": "The reasons for the time zone error",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_TIME_ZONE"
          ],
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Time zone is not valid."
          ],
          "type": "string"
        },
        "currencyError": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "VALUE_NOT_MULTIPLE_OF_BILLABLE_UNIT"
          ],
          "description": "The reasons for the currency errors.",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Bid must be a multiple of billable unit."
          ]
        },
        "operationAccessDeniedError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Unauthorized invocation of a service's method (get, mutate, etc.)",
            "Unauthorized CREATE operation in invoking a service's mutate method.",
            "Unauthorized REMOVE operation in invoking a service's mutate method.",
            "Unauthorized UPDATE operation in invoking a service's mutate method.",
            "A mutate action is not allowed on this resource, from this client.",
            "This operation is not permitted on this campaign type",
            "A CREATE operation may not set status to REMOVED.",
            "This operation is not allowed because the resource is removed.",
            "This operation is not permitted on this ad group type.",
            "The mutate is not allowed for this customer."
          ],
          "description": "The reasons for the operation access denied error",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ACTION_NOT_PERMITTED",
            "CREATE_OPERATION_NOT_PERMITTED",
            "REMOVE_OPERATION_NOT_PERMITTED",
            "UPDATE_OPERATION_NOT_PERMITTED",
            "MUTATE_ACTION_NOT_PERMITTED_FOR_CLIENT",
            "OPERATION_NOT_PERMITTED_FOR_CAMPAIGN_TYPE",
            "CREATE_AS_REMOVED_NOT_PERMITTED",
            "OPERATION_NOT_PERMITTED_FOR_REMOVED_RESOURCE",
            "OPERATION_NOT_PERMITTED_FOR_AD_GROUP_TYPE",
            "MUTATE_NOT_PERMITTED_FOR_CUSTOMER"
          ],
          "type": "string"
        },
        "imageError": {
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The image is not valid.",
            "The image could not be stored.",
            "There was a problem with the request.",
            "The image is not of legal dimensions.",
            "Animated image are not permitted.",
            "Animation is too long.",
            "There was an error on the server.",
            "Image cannot be in CMYK color format.",
            "Flash images are not permitted.",
            "Flash images must support clickTag.",
            "A flash error has occurred after fixing the click tag.",
            "Unacceptable visual effects.",
            "There was a problem with the flash image.",
            "Incorrect image layout.",
            "There was a problem reading the image file.",
            "There was an error storing the image.",
            "The aspect ratio of the image is not allowed.",
            "Flash cannot have network objects.",
            "Flash cannot have network methods.",
            "Flash cannot have a Url.",
            "Flash cannot use mouse tracking.",
            "Flash cannot have a random number.",
            "Ad click target cannot be '_self'.",
            "GetUrl method should only use '_blank'.",
            "Flash version is not supported.",
            "Flash movies need to have hard coded click URL or clickTAG",
            "Uploaded flash file is corrupted.",
            "Uploaded flash file can be parsed, but the click tag can not be fixed properly.",
            "Flash movie accesses network resources",
            "Flash movie attempts to call external javascript code",
            "Flash movie attempts to call flash system commands",
            "Image file is too large.",
            "Image data is too large.",
            "Error while processing the image.",
            "Image is too small.",
            "Input was invalid.",
            "There was a problem reading the image file.",
            "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.",
            "Image format is not allowed."
          ],
          "description": "The reasons for the image error",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_IMAGE",
            "STORAGE_ERROR",
            "BAD_REQUEST",
            "UNEXPECTED_SIZE",
            "ANIMATED_NOT_ALLOWED",
            "ANIMATION_TOO_LONG",
            "SERVER_ERROR",
            "CMYK_JPEG_NOT_ALLOWED",
            "FLASH_NOT_ALLOWED",
            "FLASH_WITHOUT_CLICKTAG",
            "FLASH_ERROR_AFTER_FIXING_CLICK_TAG",
            "ANIMATED_VISUAL_EFFECT",
            "FLASH_ERROR",
            "LAYOUT_PROBLEM",
            "PROBLEM_READING_IMAGE_FILE",
            "ERROR_STORING_IMAGE",
            "ASPECT_RATIO_NOT_ALLOWED",
            "FLASH_HAS_NETWORK_OBJECTS",
            "FLASH_HAS_NETWORK_METHODS",
            "FLASH_HAS_URL",
            "FLASH_HAS_MOUSE_TRACKING",
            "FLASH_HAS_RANDOM_NUM",
            "FLASH_SELF_TARGETS",
            "FLASH_BAD_GETURL_TARGET",
            "FLASH_VERSION_NOT_SUPPORTED",
            "FLASH_WITHOUT_HARD_CODED_CLICK_URL",
            "INVALID_FLASH_FILE",
            "FAILED_TO_FIX_CLICK_TAG_IN_FLASH",
            "FLASH_ACCESSES_NETWORK_RESOURCES",
            "FLASH_EXTERNAL_JS_CALL",
            "FLASH_EXTERNAL_FS_CALL",
            "FILE_TOO_LARGE",
            "IMAGE_DATA_TOO_LARGE",
            "IMAGE_PROCESSING_ERROR",
            "IMAGE_TOO_SMALL",
            "INVALID_INPUT",
            "PROBLEM_READING_FILE",
            "IMAGE_CONSTRAINTS_VIOLATED",
            "FORMAT_NOT_ALLOWED"
          ]
        },
        "feedItemTargetError": {
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "On CREATE, the FeedItemTarget must have a populated field in the oneof target.",
            "The specified feed item target already exists, so it cannot be added.",
            "The schedules for a given feed item cannot overlap.",
            "Too many targets of a given type were added for a single feed item.",
            "Too many AdSchedules are enabled for the feed item for the given day.",
            "A feed item may either have an enabled campaign target or an enabled ad group target.",
            "Duplicate ad schedules aren't allowed.",
            "Duplicate keywords aren't allowed."
          ],
          "description": "The reasons for the feed item target error",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MUST_SET_TARGET_ONEOF_ON_CREATE",
            "FEED_ITEM_TARGET_ALREADY_EXISTS",
            "FEED_ITEM_SCHEDULES_CANNOT_OVERLAP",
            "TARGET_LIMIT_EXCEEDED_FOR_GIVEN_TYPE",
            "TOO_MANY_SCHEDULES_PER_DAY",
            "CANNOT_HAVE_ENABLED_CAMPAIGN_AND_ENABLED_AD_GROUP_TARGETS",
            "DUPLICATE_AD_SCHEDULE",
            "DUPLICATE_KEYWORD"
          ]
        },
        "adGroupBidModifierError": {
          "description": "The reasons for the ad group bid modifier error",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CRITERION_ID_NOT_SUPPORTED",
            "CANNOT_OVERRIDE_OPTED_OUT_CAMPAIGN_CRITERION_BID_MODIFIER"
          ],
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The criterion ID does not support bid modification.",
            "Cannot override the bid modifier for the given criterion ID if the parent campaign is opted out of the same criterion."
          ]
        },
        "recommendationSubscriptionError": {
          "description": "The reasons for the recommendation subscription error.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN"
          ],
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version."
          ]
        },
        "sharedSetError": {
          "description": "The reasons for the shared set error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The customer cannot create this type of shared set.",
            "A shared set with this name already exists.",
            "Removed shared sets cannot be mutated.",
            "The shared set cannot be removed because it is in use."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CUSTOMER_CANNOT_CREATE_SHARED_SET_OF_THIS_TYPE",
            "DUPLICATE_NAME",
            "SHARED_SET_REMOVED",
            "SHARED_SET_IN_USE"
          ],
          "type": "string"
        },
        "policyValidationParameterError": {
          "description": "The reasons for the policy validation parameter error",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "UNSUPPORTED_AD_TYPE_FOR_IGNORABLE_POLICY_TOPICS",
            "UNSUPPORTED_AD_TYPE_FOR_EXEMPT_POLICY_VIOLATION_KEYS",
            "CANNOT_SET_BOTH_IGNORABLE_POLICY_TOPICS_AND_EXEMPT_POLICY_VIOLATION_KEYS"
          ],
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Ignorable policy topics are not supported for the ad type.",
            "Exempt policy violation keys are not supported for the ad type.",
            "Cannot set ignorable policy topics and exempt policy violation keys in the same policy violation parameter."
          ]
        },
        "assetGroupError": {
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Each asset group in a single campaign must have a unique name.",
            "Cannot add asset group for the campaign type.",
            "Not enough headline asset for a valid asset group.",
            "Not enough long headline asset for a valid asset group.",
            "Not enough description headline asset for a valid asset group.",
            "Not enough business name asset for a valid asset group.",
            "Not enough marketing image asset for a valid asset group.",
            "Not enough square marketing image asset for a valid asset group.",
            "Not enough logo asset for a valid asset group.",
            "Final url and shopping merchant url does not have the same domain.",
            "Path1 required when path2 is set.",
            "At least one short description asset is required for a valid asset group.",
            "Final url field is required for asset group.",
            "Final url contains invalid domain name.",
            "Ad customizers are not supported in asset group's text field.",
            "Cannot mutate asset group for campaign with removed status."
          ],
          "description": "The reasons for the asset group error",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DUPLICATE_NAME",
            "CANNOT_ADD_ASSET_GROUP_FOR_CAMPAIGN_TYPE",
            "NOT_ENOUGH_HEADLINE_ASSET",
            "NOT_ENOUGH_LONG_HEADLINE_ASSET",
            "NOT_ENOUGH_DESCRIPTION_ASSET",
            "NOT_ENOUGH_BUSINESS_NAME_ASSET",
            "NOT_ENOUGH_MARKETING_IMAGE_ASSET",
            "NOT_ENOUGH_SQUARE_MARKETING_IMAGE_ASSET",
            "NOT_ENOUGH_LOGO_ASSET",
            "FINAL_URL_SHOPPING_MERCHANT_HOME_PAGE_URL_DOMAINS_DIFFER",
            "PATH1_REQUIRED_WHEN_PATH2_IS_SET",
            "SHORT_DESCRIPTION_REQUIRED",
            "FINAL_URL_REQUIRED",
            "FINAL_URL_CONTAINS_INVALID_DOMAIN_NAME",
            "AD_CUSTOMIZER_NOT_SUPPORTED",
            "CANNOT_MUTATE_ASSET_GROUP_FOR_REMOVED_CAMPAIGN"
          ]
        },
        "geoTargetConstantSuggestionError": {
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "A location name cannot be greater than 300 characters.",
            "At most 25 location names can be specified in a SuggestGeoTargetConstants method.",
            "The country code is invalid.",
            "Geo target constant resource names or location names must be provided in the request."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "LOCATION_NAME_SIZE_LIMIT",
            "LOCATION_NAME_LIMIT",
            "INVALID_COUNTRY_CODE",
            "REQUEST_PARAMETERS_UNSET"
          ],
          "description": "The reasons for the geo target constant suggestion error."
        },
        "dateRangeError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Invalid date.",
            "The start date was after the end date.",
            "Cannot set date to past time",
            "A date was used that is past the system \"last\" date.",
            "Trying to change start date on a resource that has started."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_DATE",
            "START_DATE_AFTER_END_DATE",
            "CANNOT_SET_DATE_TO_PAST",
            "AFTER_MAXIMUM_ALLOWABLE_DATE",
            "CANNOT_MODIFY_START_DATE_IF_ALREADY_STARTED"
          ],
          "description": "The reasons for the date range error",
          "type": "string"
        },
        "offlineUserDataJobError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_USER_LIST_ID",
            "INVALID_USER_LIST_TYPE",
            "NOT_ON_ALLOWLIST_FOR_USER_ID",
            "INCOMPATIBLE_UPLOAD_KEY_TYPE",
            "MISSING_USER_IDENTIFIER",
            "INVALID_MOBILE_ID_FORMAT",
            "TOO_MANY_USER_IDENTIFIERS",
            "NOT_ON_ALLOWLIST_FOR_STORE_SALES_DIRECT",
            "NOT_ON_ALLOWLIST_FOR_UNIFIED_STORE_SALES",
            "INVALID_PARTNER_ID",
            "INVALID_ENCODING",
            "INVALID_COUNTRY_CODE",
            "INCOMPATIBLE_USER_IDENTIFIER",
            "FUTURE_TRANSACTION_TIME",
            "INVALID_CONVERSION_ACTION",
            "MOBILE_ID_NOT_SUPPORTED",
            "INVALID_OPERATION_ORDER",
            "CONFLICTING_OPERATION",
            "EXTERNAL_UPDATE_ID_ALREADY_EXISTS",
            "JOB_ALREADY_STARTED",
            "REMOVE_NOT_SUPPORTED",
            "REMOVE_ALL_NOT_SUPPORTED",
            "INVALID_SHA256_FORMAT",
            "CUSTOM_KEY_DISABLED",
            "CUSTOM_KEY_NOT_PREDEFINED",
            "CUSTOM_KEY_NOT_SET",
            "CUSTOMER_NOT_ACCEPTED_CUSTOMER_DATA_TERMS",
            "ATTRIBUTES_NOT_APPLICABLE_FOR_CUSTOMER_MATCH_USER_LIST",
            "LIFETIME_VALUE_BUCKET_NOT_IN_RANGE",
            "INCOMPATIBLE_USER_IDENTIFIER_FOR_ATTRIBUTES",
            "FUTURE_TIME_NOT_ALLOWED",
            "LAST_PURCHASE_TIME_LESS_THAN_ACQUISITION_TIME",
            "CUSTOMER_IDENTIFIER_NOT_ALLOWED",
            "INVALID_ITEM_ID",
            "FIRST_PURCHASE_TIME_GREATER_THAN_LAST_PURCHASE_TIME",
            "INVALID_LIFECYCLE_STAGE",
            "INVALID_EVENT_VALUE",
            "EVENT_ATTRIBUTE_ALL_FIELDS_ARE_REQUIRED",
            "OPERATION_LEVEL_CONSENT_PROVIDED"
          ],
          "description": "The reasons for the offline user data job error.",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The user list ID provided for the job is invalid.",
            "Type of the user list is not applicable for the job.",
            "Customer is not allowisted for using user ID in upload data.",
            "Upload data is not compatible with the upload key type of the associated user list.",
            "The user identifier is missing valid data.",
            "The mobile ID is malformed.",
            "Maximum number of user identifiers allowed per request is 100,000 and per operation is 20.",
            "Customer is not on the allow-list for store sales direct data.",
            "Customer is not on the allow-list for unified store sales data.",
            "The partner ID in store sales direct metadata is invalid.",
            "The data in user identifier should not be encoded.",
            "The country code is invalid.",
            "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.",
            "A transaction time in the future is not allowed.",
            "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 is not supported for store sales direct data.",
            "When a remove-all operation is provided, it has to be the first operation of the operation list.",
            "Mixing creation and removal of offline data in the same job is not allowed.",
            "The external update ID already exists.",
            "Once the upload job is started, new operations cannot be added.",
            "Remove operation is not allowed for store sales direct updates.",
            "Remove-all is not supported for certain offline user data job types.",
            "The SHA256 encoded value is malformed.",
            "The custom key specified is not enabled for the unified store sales upload.",
            "The custom key specified is not predefined through the Google Ads UI.",
            "The custom key specified is not set in the upload.",
            "The customer has not accepted the customer data terms in the conversion settings page.",
            "User attributes cannot be uploaded into a user list.",
            "Lifetime bucket value must be a number from 0 to 10; 0 is only accepted for remove operations",
            "Identifiers not supported for Customer Match attributes. User attributes can only be provided with contact info (email, phone, address) user identifiers.",
            "A time in the future is not allowed.",
            "Last purchase date time cannot be less than acquisition date time.",
            "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.}",
            "Provided item ID is invalid.",
            "First purchase date time cannot be greater than the last purchase date time.",
            "Provided lifecycle stage is invalid.",
            "The event value of the Customer Match user attribute is invalid.",
            "All the fields are not present in the EventAttribute of the Customer Match.",
            "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."
          ]
        },
        "identityVerificationError": {
          "description": "The reasons for an identity verification error.",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "No effective billing linked to this customer.",
            "Customer is not on monthly invoicing.",
            "Verification for this program type was already started."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NO_EFFECTIVE_BILLING",
            "BILLING_NOT_ON_MONTHLY_INVOICING",
            "VERIFICATION_ALREADY_STARTED"
          ]
        },
        "searchTermInsightError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "FILTERING_NOT_ALLOWED_WITH_SEGMENTS",
            "LIMIT_NOT_ALLOWED_WITH_SEGMENTS",
            "MISSING_FIELD_IN_SELECT_CLAUSE",
            "REQUIRES_FILTER_BY_SINGLE_RESOURCE",
            "SORTING_NOT_ALLOWED_WITH_SEGMENTS",
            "SUMMARY_ROW_NOT_ALLOWED_WITH_SEGMENTS"
          ],
          "description": "The reasons for the Search term insight error",
          "type": "string",
          "enumDescriptions": [
            "Name unspecified.",
            "The received error code is not known in this version.",
            "Search term insights cannot be filtered by metrics when segmenting.",
            "Search term insights cannot have a LIMIT when segmenting.",
            "A selected field requires another field to be selected with it.",
            "A selected field/resource requires filtering by a single resource.",
            "Search term insights cannot be sorted when segmenting.",
            "Search term insights cannot have a summary row when segmenting."
          ]
        },
        "conversionActionError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The specified conversion action name already exists.",
            "Another conversion action with the specified app id already exists.",
            "Android first open action conflicts with Google play codeless download action tracking the same app.",
            "Android first open action conflicts with Google play codeless download action tracking the same app.",
            "The attribution model cannot be set to DATA_DRIVEN because a data-driven model has never been generated.",
            "The attribution model cannot be set to DATA_DRIVEN because the data-driven model is expired.",
            "The attribution model cannot be set to DATA_DRIVEN because the data-driven model is stale.",
            "The attribution model cannot be set to DATA_DRIVEN because the data-driven model is unavailable or the conversion action was newly added.",
            "Creation of this conversion action type isn't supported by Google Ads API.",
            "Update of this conversion action isn't supported by Google Ads API.",
            "Rule-based attribution models are deprecated and not allowed to be set by conversion action."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DUPLICATE_NAME",
            "DUPLICATE_APP_ID",
            "TWO_CONVERSION_ACTIONS_BIDDING_ON_SAME_APP_DOWNLOAD",
            "BIDDING_ON_SAME_APP_DOWNLOAD_AS_GLOBAL_ACTION",
            "DATA_DRIVEN_MODEL_WAS_NEVER_GENERATED",
            "DATA_DRIVEN_MODEL_EXPIRED",
            "DATA_DRIVEN_MODEL_STALE",
            "DATA_DRIVEN_MODEL_UNKNOWN",
            "CREATION_NOT_SUPPORTED",
            "UPDATE_NOT_SUPPORTED",
            "CANNOT_SET_RULE_BASED_ATTRIBUTION_MODELS"
          ],
          "description": "The reasons for the conversion action error"
        },
        "regionCodeError": {
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Invalid region code."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_REGION_CODE"
          ],
          "description": "The reasons for the region code error"
        },
        "assetSetLinkError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INCOMPATIBLE_ADVERTISING_CHANNEL_TYPE",
            "DUPLICATE_FEED_LINK",
            "INCOMPATIBLE_ASSET_SET_TYPE_WITH_CAMPAIGN_TYPE",
            "DUPLICATE_ASSET_SET_LINK",
            "ASSET_SET_LINK_CANNOT_BE_REMOVED"
          ],
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Advertising channel type cannot be attached to the asset set due to channel-based restrictions.",
            "For this asset set type, only one campaign to feed linkage is allowed.",
            "The asset set type and campaign type are incompatible.",
            "Cannot link duplicate asset sets to the same campaign.",
            "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."
          ],
          "type": "string",
          "description": "The reasons for the asset set link error"
        },
        "enumError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENUM_VALUE_NOT_PERMITTED"
          ],
          "type": "string",
          "description": "The reason for enum error.",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The enum value is not permitted."
          ]
        },
        "assetLinkError": {
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Pinning is not supported for the given asset link field.",
            "The given field type is not supported to be added directly through asset links.",
            "The given asset's type and the specified field type are incompatible.",
            "The specified field type is incompatible with the given campaign type.",
            "The campaign advertising channel type cannot be associated with the given asset due to channel-based restrictions on the asset's fields.",
            "The image asset provided is not within the dimension constraints specified for the submitted asset field.",
            "The pinned field is not valid for the submitted asset field.",
            "The media bundle asset provided is too large for the submitted asset field.",
            "Not enough assets are available for use with other fields since other assets are pinned to specific fields.",
            "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.",
            "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.",
            "The YouTube video referenced in the provided asset has been removed.",
            "The YouTube video referenced in the provided asset is too long for the field submitted.",
            "The YouTube video referenced in the provided asset is too short for the field submitted.",
            "The specified field type is excluded for given campaign or ad group.",
            "The status is invalid for the operation specified.",
            "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.",
            "User cannot create automatically created links.",
            "Advertiser links cannot link to automatically created asset.",
            "Automatically created links cannot be changed into advertiser links or the reverse.",
            "Lead Form asset with Location answer type can't be linked to the Customer/Campaign because there are no Location assets.",
            "Customer is not verified.",
            "Call to action value is not supported.",
            "For Performance Max campaigns where brand_guidelines_enabled is false, business name and logo assets must be linked as AssetGroupAssets.",
            "For Performance Max campaigns where brand_guidelines_enabled is true, business name and logo assets must be linked as CampaignAssets."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PINNING_UNSUPPORTED",
            "UNSUPPORTED_FIELD_TYPE",
            "FIELD_TYPE_INCOMPATIBLE_WITH_ASSET_TYPE",
            "FIELD_TYPE_INCOMPATIBLE_WITH_CAMPAIGN_TYPE",
            "INCOMPATIBLE_ADVERTISING_CHANNEL_TYPE",
            "IMAGE_NOT_WITHIN_SPECIFIED_DIMENSION_RANGE",
            "INVALID_PINNED_FIELD",
            "MEDIA_BUNDLE_ASSET_FILE_SIZE_TOO_LARGE",
            "NOT_ENOUGH_AVAILABLE_ASSET_LINKS_FOR_VALID_COMBINATION",
            "NOT_ENOUGH_AVAILABLE_ASSET_LINKS_WITH_FALLBACK",
            "NOT_ENOUGH_AVAILABLE_ASSET_LINKS_WITH_FALLBACK_FOR_VALID_COMBINATION",
            "YOUTUBE_VIDEO_REMOVED",
            "YOUTUBE_VIDEO_TOO_LONG",
            "YOUTUBE_VIDEO_TOO_SHORT",
            "EXCLUDED_PARENT_FIELD_TYPE",
            "INVALID_STATUS",
            "YOUTUBE_VIDEO_DURATION_NOT_DEFINED",
            "CANNOT_CREATE_AUTOMATICALLY_CREATED_LINKS",
            "CANNOT_LINK_TO_AUTOMATICALLY_CREATED_ASSET",
            "CANNOT_MODIFY_ASSET_LINK_SOURCE",
            "CANNOT_LINK_LOCATION_LEAD_FORM_WITHOUT_LOCATION_ASSET",
            "CUSTOMER_NOT_VERIFIED",
            "UNSUPPORTED_CALL_TO_ACTION",
            "BRAND_ASSETS_NOT_LINKED_AT_ASSET_GROUP_LEVEL",
            "BRAND_ASSETS_NOT_LINKED_AT_CAMPAIGN_LEVEL"
          ],
          "description": "The reasons for the asset link error"
        },
        "campaignCustomizerError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN"
          ],
          "description": "The reasons for the campaign customizer error.",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version."
          ]
        },
        "criterionError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Concrete type of criterion is required for CREATE and UPDATE operations.",
            "The category requested for exclusion is invalid.",
            "Invalid keyword criteria text.",
            "Keyword text should be less than 80 chars.",
            "Keyword text has too many words.",
            "Keyword text has invalid characters or symbols.",
            "Invalid placement URL.",
            "Invalid user list criterion.",
            "Invalid user interest criterion.",
            "Placement URL has wrong format.",
            "Placement URL is too long.",
            "Indicates the URL contains an illegal character.",
            "Indicates the URL contains multiple comma separated URLs.",
            "Indicates the domain is blocked.",
            "Invalid topic path.",
            "The YouTube Channel Id is invalid.",
            "The YouTube Video Id is invalid.",
            "Indicates the placement is a YouTube vertical channel, which is no longer supported.",
            "Indicates the placement is a YouTube demographic channel, which is no longer supported.",
            "YouTube urls are not supported in Placement criterion. Use YouTubeChannel and YouTubeVideo criterion instead.",
            "Criteria type can not be excluded by the customer, like AOL account type cannot target site type criteria.",
            "Criteria type can not be targeted.",
            "Not allowed to exclude similar user list.",
            "Not allowed to target a closed user list.",
            "Not allowed to add display only UserLists to search only campaigns.",
            "Not allowed to add display only UserLists to search plus campaigns.",
            "Not allowed to add display only UserLists to shopping campaigns.",
            "Not allowed to add User interests to search only campaigns.",
            "Not allowed to set bids for this criterion type in search campaigns",
            "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 criterion.",
            "Invalid custom affinity criterion.",
            "Invalid custom intent criterion.",
            "Invalid custom audience criterion.",
            "IP address is not valid.",
            "IP format is not valid.",
            "Mobile application is not valid.",
            "Mobile application category is not valid.",
            "The CriterionId does not exist or is of the incorrect type.",
            "The Criterion is not allowed to be targeted.",
            "The criterion is not allowed to be targeted as it is deprecated.",
            "The CriterionId is not valid for the type.",
            "Distance for the radius for the proximity criterion is invalid.",
            "Units for the distance for the radius for the proximity criterion is invalid.",
            "Street address in the address is not valid.",
            "City name in the address is not valid.",
            "Region code in the address is not valid.",
            "Region name in the address is not valid.",
            "Postal code in the address is not valid.",
            "Country code in the address is not valid.",
            "Latitude for the GeoPoint is not valid.",
            "Longitude for the GeoPoint is not valid.",
            "The Proximity input is not valid. Both address and geoPoint cannot be null.",
            "The Proximity address cannot be geocoded to a valid lat/long.",
            "User domain name is not valid.",
            "Length of serialized criterion parameter exceeded size limit.",
            "Time interval in the AdSchedule overlaps with another AdSchedule.",
            "AdSchedule time interval cannot span multiple days.",
            "AdSchedule time interval specified is invalid, endTime cannot be earlier than startTime.",
            "The number of AdSchedule entries in a day exceeds the limit.",
            "CriteriaId does not match the interval of the AdSchedule specified.",
            "Cannot set bid modifier for this criterion type.",
            "Cannot bid modify criterion, since it is opted out of the campaign.",
            "Cannot set bid modifier for a negative criterion.",
            "Bid Modifier already exists. Use SET operation to update.",
            "Feed Id is not allowed in these Location Groups.",
            "The account may not use the requested criteria type. For example, some accounts are restricted to keywords only.",
            "The requested criteria type cannot be used with campaign or ad group bidding strategy.",
            "The Criterion is not allowed to be excluded.",
            "The criterion is not allowed to be removed. For example, we cannot remove any of the device criterion.",
            "Bidding categories do not form a valid path in the Shopping bidding category taxonomy.",
            "ShoppingSetting must be added to the campaign before ProductScope criteria can be added.",
            "Matching function is invalid.",
            "Filter parameters not allowed for location groups targeting.",
            "Feed not found, or the feed is not an enabled location feed.",
            "Given location filter parameter is invalid for location groups targeting.",
            "Cannot set geo target constants and feed item sets at the same time.",
            "Cannot set both assetset and feed at the same time.",
            "Cannot set feed or feed item sets for Customer.",
            "Cannot set AssetSet criteria for customer.",
            "Cannot set geo target constants and asset sets at the same time.",
            "Cannot set asset sets and feed item sets at the same time.",
            "The location group asset set id is invalid",
            "The location group radius is in the range but not at the valid increment.",
            "The location group radius unit is invalid.",
            "Criteria type cannot be associated with a campaign and its ad group(s) simultaneously.",
            "Range represented by hotel length of stay's min nights and max nights overlaps with an existing criterion.",
            "Range represented by hotel advance booking window's min days and max days overlaps with an existing criterion.",
            "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.",
            "The combination of operand and operator in webpage condition is invalid.",
            "The URL of webpage condition is invalid.",
            "The URL of webpage condition cannot be empty or contain white space.",
            "The URL of webpage condition contains an unsupported protocol.",
            "The URL of webpage condition cannot be an IP address.",
            "The domain of the URL is not consistent with the domain in campaign setting.",
            "The URL of webpage condition cannot be a public suffix itself.",
            "The URL of webpage condition has an invalid public suffix.",
            "Value track parameter is not supported in webpage condition URL.",
            "Only one URL-EQUALS webpage condition is allowed in a webpage criterion and it cannot be combined with other conditions.",
            "A webpage criterion cannot be added to a non-DSA ad group.",
            "Cannot add positive user list criteria in Smart Display campaigns.",
            "Cannot add positive placement criterion types in search campaigns.",
            "Listing scope contains too many dimension types.",
            "Listing scope has too many IN operators.",
            "Listing scope contains IN operator on an unsupported dimension type.",
            "There are dimensions with duplicate dimension type.",
            "There are dimensions with duplicate dimension value.",
            "Listing group SUBDIVISION nodes cannot have bids.",
            "Product group operation is invalid because another operation targeting the same AdGroupId is failing.",
            "Ad group is invalid due to the listing groups it contains.",
            "Tree was invalid before the mutation.",
            "Listing group unit cannot have children.",
            "Subdivided listing groups must have an \"others\" case.",
            "Dimension type of listing group must be the same as that of its siblings.",
            "Listing group cannot be added to the ad group because it already exists.",
            "Listing group referenced in the operation was not found in the ad group.",
            "Recursive removal failed because listing group subdivision is being created or modified in this request.",
            "Listing group type is not allowed for specified ad group criterion type.",
            "Listing group in an ADD operation specifies a non temporary criterion id.",
            "The combined length of dimension values of the Listing scope criterion is too long.",
            "Listing scope contains too many dimensions.",
            "The combined length of dimension values of the Listing group criterion is too long.",
            "Listing group tree is too deep.",
            "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 \"&+\".",
            "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).",
            "Customer is not on allowlist for composite audience in display campaigns.",
            "Cannot target on a removed combined audience.",
            "Combined audience ID is invalid.",
            "Can not target removed combined audience.",
            "Range represented by hotel check-in date's start date and end date overlaps with an existing criterion.",
            "Start date is earlier than earliest allowed value of yesterday UTC.",
            "End date later is than latest allowed day of 330 days in the future UTC.",
            "Start date is after end date.",
            "Broad match modifier (BMM) keywords can no longer be created. See https://ads-developers.googleblog.com/2021/06/broad-match-modifier-upcoming-changes.html.",
            "Only one audience is allowed in an asset group.",
            "Audience is not supported for the specified campaign type.",
            "Audience is not allowed to attach when use_audience_grouped bit is set to false.",
            "Targeting is not allowed for Customer Match lists as per Customer Match policy. See https://support.google.com/google-ads/answer/6299717.",
            "Cannot create a negative keyword list criterion with a shared set that does not exist.",
            "Cannot create a negative keyword list with deleted shared set.",
            "Can only have one Negative Keyword List per account.",
            "Only allowlisted customers can add criteria of this type.",
            "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.",
            "Audience segment criteria cannot be added when use_audience_grouped bit is set.",
            "Only one audience is allowed in an ad group.",
            "Invalid detailed demographics criterion.",
            "The brand criteria has a brand input that is not recognized as a valid brand.",
            "The brand_list.shared_set_id references a shared set that does not exist.",
            "Cannot create a brand list with deleted shared set.",
            "Brand list can only be negatively targeted for the campaign type.",
            "Cannot positively target locations outside of restricted area for campaign.",
            "Ad group level brand list criteria only support inclusionary targeting. Negative targeting at this level is not supported.",
            "Cannot create a placement list with deleted shared set.",
            "The placement_list.shared_set_id references a shared set that does not exist.",
            "This feature is only available for AI Max campaigns.",
            "This feature is not available for AI Max campaigns.",
            "The operation failed because the campaign is missing the self-declaration on political advertising status in the EU.",
            "Targeting this UserList is not allowed for this campaign type.",
            "The user list cannot be used while it is pending privacy review.",
            "The referenced Vertical Ads item group rule list shared set does not exist.",
            "Cannot add Vertical Ads Item Group Rule List with deleted shared set.",
            "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 is not supported for campaigns that do not have AI max enabled.",
            "The dimension of the Vertical Ads Item Group Rule criterion is not supported for the shared set vertical type."
          ],
          "type": "string",
          "description": "The reasons for the criterion error",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CONCRETE_TYPE_REQUIRED",
            "INVALID_EXCLUDED_CATEGORY",
            "INVALID_KEYWORD_TEXT",
            "KEYWORD_TEXT_TOO_LONG",
            "KEYWORD_HAS_TOO_MANY_WORDS",
            "KEYWORD_HAS_INVALID_CHARS",
            "INVALID_PLACEMENT_URL",
            "INVALID_USER_LIST",
            "INVALID_USER_INTEREST",
            "INVALID_FORMAT_FOR_PLACEMENT_URL",
            "PLACEMENT_URL_IS_TOO_LONG",
            "PLACEMENT_URL_HAS_ILLEGAL_CHAR",
            "PLACEMENT_URL_HAS_MULTIPLE_SITES_IN_LINE",
            "PLACEMENT_IS_NOT_AVAILABLE_FOR_TARGETING_OR_EXCLUSION",
            "INVALID_TOPIC_PATH",
            "INVALID_YOUTUBE_CHANNEL_ID",
            "INVALID_YOUTUBE_VIDEO_ID",
            "YOUTUBE_VERTICAL_CHANNEL_DEPRECATED",
            "YOUTUBE_DEMOGRAPHIC_CHANNEL_DEPRECATED",
            "YOUTUBE_URL_UNSUPPORTED",
            "CANNOT_EXCLUDE_CRITERIA_TYPE",
            "CANNOT_ADD_CRITERIA_TYPE",
            "CANNOT_EXCLUDE_SIMILAR_USER_LIST",
            "CANNOT_ADD_CLOSED_USER_LIST",
            "CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SEARCH_ONLY_CAMPAIGNS",
            "CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SEARCH_CAMPAIGNS",
            "CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SHOPPING_CAMPAIGNS",
            "CANNOT_ADD_USER_INTERESTS_TO_SEARCH_CAMPAIGNS",
            "CANNOT_SET_BIDS_ON_CRITERION_TYPE_IN_SEARCH_CAMPAIGNS",
            "CANNOT_ADD_URLS_TO_CRITERION_TYPE_FOR_CAMPAIGN_TYPE",
            "INVALID_COMBINED_AUDIENCE",
            "INVALID_CUSTOM_AFFINITY",
            "INVALID_CUSTOM_INTENT",
            "INVALID_CUSTOM_AUDIENCE",
            "INVALID_IP_ADDRESS",
            "INVALID_IP_FORMAT",
            "INVALID_MOBILE_APP",
            "INVALID_MOBILE_APP_CATEGORY",
            "INVALID_CRITERION_ID",
            "CANNOT_TARGET_CRITERION",
            "CANNOT_TARGET_OBSOLETE_CRITERION",
            "CRITERION_ID_AND_TYPE_MISMATCH",
            "INVALID_PROXIMITY_RADIUS",
            "INVALID_PROXIMITY_RADIUS_UNITS",
            "INVALID_STREETADDRESS_LENGTH",
            "INVALID_CITYNAME_LENGTH",
            "INVALID_REGIONCODE_LENGTH",
            "INVALID_REGIONNAME_LENGTH",
            "INVALID_POSTALCODE_LENGTH",
            "INVALID_COUNTRY_CODE",
            "INVALID_LATITUDE",
            "INVALID_LONGITUDE",
            "PROXIMITY_GEOPOINT_AND_ADDRESS_BOTH_CANNOT_BE_NULL",
            "INVALID_PROXIMITY_ADDRESS",
            "INVALID_USER_DOMAIN_NAME",
            "CRITERION_PARAMETER_TOO_LONG",
            "AD_SCHEDULE_TIME_INTERVALS_OVERLAP",
            "AD_SCHEDULE_INTERVAL_CANNOT_SPAN_MULTIPLE_DAYS",
            "AD_SCHEDULE_INVALID_TIME_INTERVAL",
            "AD_SCHEDULE_EXCEEDED_INTERVALS_PER_DAY_LIMIT",
            "AD_SCHEDULE_CRITERION_ID_MISMATCHING_FIELDS",
            "CANNOT_BID_MODIFY_CRITERION_TYPE",
            "CANNOT_BID_MODIFY_CRITERION_CAMPAIGN_OPTED_OUT",
            "CANNOT_BID_MODIFY_NEGATIVE_CRITERION",
            "BID_MODIFIER_ALREADY_EXISTS",
            "FEED_ID_NOT_ALLOWED",
            "ACCOUNT_INELIGIBLE_FOR_CRITERIA_TYPE",
            "CRITERIA_TYPE_INVALID_FOR_BIDDING_STRATEGY",
            "CANNOT_EXCLUDE_CRITERION",
            "CANNOT_REMOVE_CRITERION",
            "INVALID_PRODUCT_BIDDING_CATEGORY",
            "MISSING_SHOPPING_SETTING",
            "INVALID_MATCHING_FUNCTION",
            "LOCATION_FILTER_NOT_ALLOWED",
            "INVALID_FEED_FOR_LOCATION_FILTER",
            "LOCATION_FILTER_INVALID",
            "CANNOT_SET_GEO_TARGET_CONSTANTS_WITH_FEED_ITEM_SETS",
            "CANNOT_SET_BOTH_ASSET_SET_AND_FEED",
            "CANNOT_SET_FEED_OR_FEED_ITEM_SETS_FOR_CUSTOMER",
            "CANNOT_SET_ASSET_SET_FIELD_FOR_CUSTOMER",
            "CANNOT_SET_GEO_TARGET_CONSTANTS_WITH_ASSET_SETS",
            "CANNOT_SET_ASSET_SETS_WITH_FEED_ITEM_SETS",
            "INVALID_LOCATION_GROUP_ASSET_SET",
            "INVALID_LOCATION_GROUP_RADIUS",
            "INVALID_LOCATION_GROUP_RADIUS_UNIT",
            "CANNOT_ATTACH_CRITERIA_AT_CAMPAIGN_AND_ADGROUP",
            "HOTEL_LENGTH_OF_STAY_OVERLAPS_WITH_EXISTING_CRITERION",
            "HOTEL_ADVANCE_BOOKING_WINDOW_OVERLAPS_WITH_EXISTING_CRITERION",
            "FIELD_INCOMPATIBLE_WITH_NEGATIVE_TARGETING",
            "INVALID_WEBPAGE_CONDITION",
            "INVALID_WEBPAGE_CONDITION_URL",
            "WEBPAGE_CONDITION_URL_CANNOT_BE_EMPTY",
            "WEBPAGE_CONDITION_URL_UNSUPPORTED_PROTOCOL",
            "WEBPAGE_CONDITION_URL_CANNOT_BE_IP_ADDRESS",
            "WEBPAGE_CONDITION_URL_DOMAIN_NOT_CONSISTENT_WITH_CAMPAIGN_SETTING",
            "WEBPAGE_CONDITION_URL_CANNOT_BE_PUBLIC_SUFFIX",
            "WEBPAGE_CONDITION_URL_INVALID_PUBLIC_SUFFIX",
            "WEBPAGE_CONDITION_URL_VALUE_TRACK_VALUE_NOT_SUPPORTED",
            "WEBPAGE_CRITERION_URL_EQUALS_CAN_HAVE_ONLY_ONE_CONDITION",
            "WEBPAGE_CRITERION_NOT_SUPPORTED_ON_NON_DSA_AD_GROUP",
            "CANNOT_TARGET_USER_LIST_FOR_SMART_DISPLAY_CAMPAIGNS",
            "CANNOT_TARGET_PLACEMENTS_FOR_SEARCH_CAMPAIGNS",
            "LISTING_SCOPE_TOO_MANY_DIMENSION_TYPES",
            "LISTING_SCOPE_TOO_MANY_IN_OPERATORS",
            "LISTING_SCOPE_IN_OPERATOR_NOT_SUPPORTED",
            "DUPLICATE_LISTING_DIMENSION_TYPE",
            "DUPLICATE_LISTING_DIMENSION_VALUE",
            "CANNOT_SET_BIDS_ON_LISTING_GROUP_SUBDIVISION",
            "LISTING_GROUP_ERROR_IN_ANOTHER_OPERATION",
            "INVALID_LISTING_GROUP_HIERARCHY",
            "LISTING_GROUP_TREE_WAS_INVALID_BEFORE_MUTATION",
            "LISTING_GROUP_UNIT_CANNOT_HAVE_CHILDREN",
            "LISTING_GROUP_SUBDIVISION_REQUIRES_OTHERS_CASE",
            "LISTING_GROUP_REQUIRES_SAME_DIMENSION_TYPE_AS_SIBLINGS",
            "LISTING_GROUP_ALREADY_EXISTS",
            "LISTING_GROUP_DOES_NOT_EXIST",
            "LISTING_GROUP_CANNOT_BE_REMOVED",
            "INVALID_LISTING_GROUP_TYPE",
            "LISTING_GROUP_ADD_MAY_ONLY_USE_TEMP_ID",
            "LISTING_SCOPE_TOO_LONG",
            "LISTING_SCOPE_TOO_MANY_DIMENSIONS",
            "LISTING_GROUP_TOO_LONG",
            "LISTING_GROUP_TREE_TOO_DEEP",
            "INVALID_LISTING_DIMENSION",
            "INVALID_LISTING_DIMENSION_TYPE",
            "ADVERTISER_NOT_ON_ALLOWLIST_FOR_COMBINED_AUDIENCE_ON_DISPLAY",
            "CANNOT_TARGET_REMOVED_COMBINED_AUDIENCE",
            "INVALID_COMBINED_AUDIENCE_ID",
            "CANNOT_TARGET_REMOVED_CUSTOM_AUDIENCE",
            "HOTEL_CHECK_IN_DATE_RANGE_OVERLAPS_WITH_EXISTING_CRITERION",
            "HOTEL_CHECK_IN_DATE_RANGE_START_DATE_TOO_EARLY",
            "HOTEL_CHECK_IN_DATE_RANGE_END_DATE_TOO_LATE",
            "HOTEL_CHECK_IN_DATE_RANGE_REVERSED",
            "BROAD_MATCH_MODIFIER_KEYWORD_NOT_ALLOWED",
            "ONE_AUDIENCE_ALLOWED_PER_ASSET_GROUP",
            "AUDIENCE_NOT_ELIGIBLE_FOR_CAMPAIGN_TYPE",
            "AUDIENCE_NOT_ALLOWED_TO_ATTACH_WHEN_AUDIENCE_GROUPED_SET_TO_FALSE",
            "CANNOT_TARGET_CUSTOMER_MATCH_USER_LIST",
            "NEGATIVE_KEYWORD_SHARED_SET_DOES_NOT_EXIST",
            "CANNOT_ADD_REMOVED_NEGATIVE_KEYWORD_SHARED_SET",
            "CANNOT_HAVE_MULTIPLE_NEGATIVE_KEYWORD_LIST_PER_ACCOUNT",
            "CUSTOMER_CANNOT_ADD_CRITERION_OF_THIS_TYPE",
            "CANNOT_TARGET_SIMILAR_USER_LIST",
            "CANNOT_ADD_AUDIENCE_SEGMENT_CRITERION_WHEN_AUDIENCE_GROUPED_IS_SET",
            "ONE_AUDIENCE_ALLOWED_PER_AD_GROUP",
            "INVALID_DETAILED_DEMOGRAPHIC",
            "CANNOT_RECOGNIZE_BRAND",
            "BRAND_SHARED_SET_DOES_NOT_EXIST",
            "CANNOT_ADD_REMOVED_BRAND_SHARED_SET",
            "ONLY_EXCLUSION_BRAND_LIST_ALLOWED_FOR_CAMPAIGN_TYPE",
            "LOCATION_TARGETING_NOT_ELIGIBLE_FOR_RESTRICTED_CAMPAIGN",
            "ONLY_INCLUSION_BRAND_LIST_ALLOWED_FOR_AD_GROUPS",
            "CANNOT_ADD_REMOVED_PLACEMENT_LIST_SHARED_SET",
            "PLACEMENT_LIST_SHARED_SET_DOES_NOT_EXIST",
            "AI_MAX_MUST_BE_ENABLED",
            "NOT_AVAILABLE_FOR_AI_MAX_CAMPAIGNS",
            "MISSING_EU_POLITICAL_ADVERTISING_SELF_DECLARATION",
            "INVALID_CAMPAIGN_TYPE_FOR_THIRD_PARTY_PARTNER_DATA_LIST",
            "CANNOT_ADD_USER_LIST_PENDING_PRIVACY_REVIEW",
            "VERTICAL_ADS_ITEM_GROUP_RULE_LIST_DOES_NOT_EXIST",
            "CANNOT_ADD_REMOVED_VERTICAL_ADS_ITEM_GROUP_RULE_LIST_SHARED_SET",
            "VERTICAL_ADS_ITEM_GROUP_RULE_LIST_NOT_SUPPORTED_FOR_CAMPAIGNS_WITHOUT_ENABLED_TRAVEL_FEED",
            "VERTICAL_ADS_ITEM_GROUP_RULE_LIST_NOT_SUPPORTED_FOR_CAMPAIGNS_WITHOUT_AI_MAX",
            "VERTICAL_ADS_ITEM_GROUP_RULE_NOT_SUPPORTED_FOR_THE_VERTICAL_TYPE"
          ]
        },
        "mediaBundleError": {
          "description": "The reasons for the media bundle error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "There was a problem with the request.",
            "HTML5 ads using DoubleClick Studio created ZIP files are not supported.",
            "Cannot reference URL external to the media bundle.",
            "Media bundle file is too large.",
            "ZIP file from Google Web Designer is not published.",
            "Input was invalid.",
            "There was a problem with the media bundle.",
            "There was a problem with one or more of the media bundle entries.",
            "The media bundle contains a file with an unknown mime type",
            "The media bundle contain an invalid asset path.",
            "HTML5 ad is trying to reference an asset not in .ZIP file",
            "Media data is too large.",
            "The media bundle contains no primary entry.",
            "There was an error on the server.",
            "The image could not be stored.",
            "Media bundle created with the Swiffy tool is not allowed.",
            "The media bundle contains too many files.",
            "The media bundle is not of legal dimensions.",
            "Google Web Designer not created for \"Google Ads\" environment.",
            "Unsupported HTML5 feature in HTML5 asset.",
            "URL in HTML5 entry is not ssl compliant.",
            "Custom exits not allowed in HTML5 entry."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BAD_REQUEST",
            "DOUBLECLICK_BUNDLE_NOT_ALLOWED",
            "EXTERNAL_URL_NOT_ALLOWED",
            "FILE_TOO_LARGE",
            "GOOGLE_WEB_DESIGNER_ZIP_FILE_NOT_PUBLISHED",
            "INVALID_INPUT",
            "INVALID_MEDIA_BUNDLE",
            "INVALID_MEDIA_BUNDLE_ENTRY",
            "INVALID_MIME_TYPE",
            "INVALID_PATH",
            "INVALID_URL_REFERENCE",
            "MEDIA_DATA_TOO_LARGE",
            "MISSING_PRIMARY_MEDIA_BUNDLE_ENTRY",
            "SERVER_ERROR",
            "STORAGE_ERROR",
            "SWIFFY_BUNDLE_NOT_ALLOWED",
            "TOO_MANY_FILES",
            "UNEXPECTED_SIZE",
            "UNSUPPORTED_GOOGLE_WEB_DESIGNER_ENVIRONMENT",
            "UNSUPPORTED_HTML5_FEATURE",
            "URL_IN_MEDIA_BUNDLE_NOT_SSL_COMPLIANT",
            "CUSTOM_EXIT_NOT_ALLOWED"
          ]
        },
        "videoCampaignError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Cannot modify the video campaign without reservation. See https://support.google.com/google-ads/answer/9547606."
          ],
          "description": "An error with a Video Campaign mutate.",
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MUTATE_REQUIRES_RESERVATION"
          ]
        },
        "conversionCustomVariableError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "A conversion custom variable with the specified name already exists.",
            "A conversion custom variable with the specified tag already exists.",
            "A conversion custom variable with the specified tag is reserved for other uses."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DUPLICATE_NAME",
            "DUPLICATE_TAG",
            "RESERVED_TAG"
          ],
          "type": "string",
          "description": "The reasons for the conversion custom variable error"
        }
      },
      "id": "GoogleAdsGoogleadsV23Errors__ErrorCode",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Common__ProductChannelInfo": {
      "id": "GoogleAdsGoogleadsV23Common__ProductChannelInfo",
      "type": "object",
      "description": "Locality of a product offer.",
      "properties": {
        "channel": {
          "description": "Value of the locality.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The item is sold online.",
            "The item is sold in local stores."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ONLINE",
            "LOCAL"
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__ProductGroupingInfo": {
      "description": "Grouping of a product offer. This listing dimension is deprecated and it is supported only in Display campaigns.",
      "type": "object",
      "properties": {
        "value": {
          "type": "string",
          "description": "String value of the product grouping."
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__ProductGroupingInfo"
    },
    "GoogleAdsGoogleadsV23Services__MutateUserListsResponse": {
      "type": "object",
      "description": "Response message for user list mutate.",
      "id": "GoogleAdsGoogleadsV23Services__MutateUserListsResponse",
      "properties": {
        "results": {
          "description": "All results for the mutate.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateUserListResult"
          }
        },
        "partialFailureError": {
          "$ref": "GoogleRpc__Status",
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error."
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources_Campaign_HotelSettingInfo": {
      "id": "GoogleAdsGoogleadsV23Resources_Campaign_HotelSettingInfo",
      "description": "Campaign-level settings for hotel ads.",
      "type": "object",
      "properties": {
        "hotelCenterId": {
          "format": "int64",
          "description": "Immutable. The linked Hotel Center account.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__Money": {
      "description": "Represents a price in a particular currency.",
      "type": "object",
      "properties": {
        "amountMicros": {
          "type": "string",
          "format": "int64",
          "description": "Amount in micros. One million is equivalent to one unit."
        },
        "currencyCode": {
          "description": "Three-character ISO 4217 currency code.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__Money"
    },
    "GoogleAdsGoogleadsV23Services__ConversionAdjustmentResult": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__ConversionAdjustmentResult",
      "description": "Information identifying a successfully processed ConversionAdjustment.",
      "properties": {
        "adjustmentDateTime": {
          "description": "The date time at which the adjustment occurred. The format is \"yyyy-mm-dd hh:mm:ss+|-hh:mm\", for example, \"2019-01-01 12:32:45-08:00\".",
          "type": "string"
        },
        "adjustmentType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "RETRACTION",
            "RESTATEMENT",
            "ENHANCEMENT"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Represents value unknown in this version.",
            "Negates a conversion so that its total value and count are both zero.",
            "Changes the value of a conversion.",
            "Supplements an existing conversion with provided user identifiers and user agent, which can be used by Google to enhance the conversion count."
          ],
          "description": "The adjustment type."
        },
        "gclidDateTimePair": {
          "$ref": "GoogleAdsGoogleadsV23Services__GclidDateTimePair",
          "description": "The gclid and conversion date time of the conversion."
        },
        "conversionAction": {
          "description": "Resource name of the conversion action associated with this conversion adjustment.",
          "type": "string"
        },
        "orderId": {
          "description": "The order ID of the conversion to be adjusted.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__GenerateTrendingInsightsRequest": {
      "type": "object",
      "properties": {
        "customerInsightsGroup": {
          "description": "Required. The name of the customer being planned for. This is a user-defined value.",
          "type": "string"
        },
        "countryLocation": {
          "$ref": "GoogleAdsGoogleadsV23Common__LocationInfo",
          "description": "Required. The country to find trends in."
        },
        "insightsApplicationInfo": {
          "description": "Optional. Additional information on the application issuing the request.",
          "$ref": "GoogleAdsGoogleadsV23Common__AdditionalApplicationInfo"
        },
        "searchTopics": {
          "description": "Content topics to return trend information for.",
          "$ref": "GoogleAdsGoogleadsV23Services__SearchTopics"
        },
        "searchAudience": {
          "$ref": "GoogleAdsGoogleadsV23Services__SearchAudience",
          "description": "An audience to search for trending content in."
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__GenerateTrendingInsightsRequest",
      "description": "Request message for ContentCreatorInsightsService.GenerateTrendingInsights."
    },
    "GoogleAdsGoogleadsV23Services__ConfigureCustomerLifecycleGoalsResponse": {
      "description": "Response message for CustomerLifecycleGoalService.ConfigureCustomerLifecycleGoals.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__ConfigureCustomerLifecycleGoalsResponse",
      "properties": {
        "result": {
          "$ref": "GoogleAdsGoogleadsV23Services__ConfigureCustomerLifecycleGoalsResult",
          "description": "result for the customer lifecycle goal configuration."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateCampaignConversionGoalsRequest": {
      "id": "GoogleAdsGoogleadsV23Services__MutateCampaignConversionGoalsRequest",
      "properties": {
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "operations": {
          "description": "Required. The list of operations to perform on individual campaign conversion goal.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__CampaignConversionGoalOperation"
          }
        }
      },
      "description": "Request message for CampaignConversionGoalService.MutateCampaignConversionGoals.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__AdvertisingPartnerLinkInvitationIdentifier": {
      "description": "The identifier for the Advertising Partner Google Ads account.",
      "id": "GoogleAdsGoogleadsV23Resources__AdvertisingPartnerLinkInvitationIdentifier",
      "properties": {
        "customer": {
          "type": "string",
          "description": "Immutable. The resource name of the advertising partner Google Ads account. This field is read only."
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__SuggestSmartCampaignAdRequest": {
      "properties": {
        "suggestionInfo": {
          "$ref": "GoogleAdsGoogleadsV23Services__SmartCampaignSuggestionInfo",
          "description": "Required. Inputs used to suggest a Smart campaign ad. Required fields: final_url, language_code, keyword_themes. Optional but recommended fields to improve the quality of the suggestion: business_setting and geo_target."
        }
      },
      "type": "object",
      "description": "Request message for SmartCampaignSuggestService.SuggestSmartCampaignAd.",
      "id": "GoogleAdsGoogleadsV23Services__SuggestSmartCampaignAdRequest"
    },
    "GoogleAdsGoogleadsV23Common__LegacyAppInstallAdInfo": {
      "id": "GoogleAdsGoogleadsV23Common__LegacyAppInstallAdInfo",
      "type": "object",
      "description": "A legacy app install ad that only can be used by a few select customers.",
      "properties": {
        "headline": {
          "description": "The headline of the ad.",
          "type": "string"
        },
        "description2": {
          "description": "The second description line of the ad.",
          "type": "string"
        },
        "description1": {
          "type": "string",
          "description": "The first description line of the ad."
        },
        "appId": {
          "type": "string",
          "description": "The ID of the mobile app."
        },
        "appStore": {
          "description": "The app store the mobile app is available in.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Apple iTunes.",
            "Google Play.",
            "Windows Store.",
            "Windows Phone Store.",
            "The app is hosted in a Chinese app store."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "APPLE_APP_STORE",
            "GOOGLE_PLAY",
            "WINDOWS_STORE",
            "WINDOWS_PHONE_STORE",
            "CN_APP_STORE"
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources_Campaign_AiMaxSetting": {
      "type": "object",
      "description": "Settings for AI Max in search campaigns.",
      "properties": {
        "enableAiMax": {
          "description": "Controls whether or not AI Max features are served for this campaign. Individual AI Max features are enabled or disabled by their respective settings. But if enable_ai_max is set to false or cleared, then no AI Max features will serve for this campaign, regardless of the other settings. Search Term Matching is enabled by default when AI Max is enabled, and can be disabled at the ad group level.",
          "type": "boolean"
        },
        "bundlingRequired": {
          "description": "Output only. Indicates whether a search campaign has adopted AI Max before, and is required to have AI Max enabled to adopt campaign-level text asset automation and brand list targeting in all API versions.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Search campaign is using text asset automation or brand list targeting, and AI Max is not required to be enabled to serve these features.",
            "AI Max is required to be enabled for this search campaign to serve existing text asset automation and brand list targeting, or to add new text asset automation and brand list targeting settings."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NOT_REQUIRED",
            "REQUIRED"
          ],
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources_Campaign_AiMaxSetting"
    },
    "GoogleAdsGoogleadsV23Services__AdGroupOperation": {
      "properties": {
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask",
          "type": "string"
        },
        "remove": {
          "description": "Remove operation: A resource name for the removed ad group is expected, in this format: `customers/{customer_id}/adGroups/{ad_group_id}`",
          "type": "string"
        },
        "create": {
          "$ref": "GoogleAdsGoogleadsV23Resources__AdGroup",
          "description": "Create operation: No resource name is expected for the new ad group."
        },
        "update": {
          "$ref": "GoogleAdsGoogleadsV23Resources__AdGroup",
          "description": "Update operation: The ad group is expected to have a valid resource name."
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__AdGroupOperation",
      "description": "A single operation (create, update, remove) on an ad group.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__SmartCampaignSettingOperation": {
      "id": "GoogleAdsGoogleadsV23Services__SmartCampaignSettingOperation",
      "description": "A single operation to update Smart campaign settings for a campaign.",
      "type": "object",
      "properties": {
        "update": {
          "$ref": "GoogleAdsGoogleadsV23Resources__SmartCampaignSetting",
          "description": "Update operation: The Smart campaign setting must specify a valid resource name."
        },
        "updateMask": {
          "type": "string",
          "format": "google-fieldmask",
          "description": "FieldMask that determines which resource fields are modified in an update."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateExperimentArmsRequest": {
      "type": "object",
      "properties": {
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__ExperimentArmOperation"
          },
          "description": "Required. The list of operations to perform on individual experiment arm."
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "responseContentType": {
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateExperimentArmsRequest",
      "description": "Request message for ExperimentArmService.MutateExperimentArms."
    },
    "GoogleAdsGoogleadsV23Common__IpBlockInfo": {
      "id": "GoogleAdsGoogleadsV23Common__IpBlockInfo",
      "description": "An IpBlock criterion used for excluding IP addresses. We support excluding individual IP addresses or CIDR blocks. Create one IpBlockInfo criterion for each individual IP address or CIDR block you want to exclude. You can exclude up to 500 IP addresses per campaign. For more details, see [Exclude IP addresses](//support.google.com/google-ads/answer/2456098). IPv4 examples: * Individual address: 192.168.0.1 * Individual address as CIDR block: 192.168.0.1/32 * CIDR block: 192.168.0.0/24 IPv6 examples: * Individual address: 2001:db8:a0b:12f0::1 * Individual address as CIDR block: 2001:db8:a0b:12f0::1/128 * CIDR block: 2001:db8::/48",
      "type": "object",
      "properties": {
        "ipAddress": {
          "type": "string",
          "description": "The IP address or the CIDR block to be excluded."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__RemoveProductLinkRequest": {
      "properties": {
        "resourceName": {
          "description": "Required. Remove operation: A resource name for the product link to remove is expected, in this format: `customers/{customer_id}/productLinks/{product_link_id} `",
          "type": "string"
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        }
      },
      "type": "object",
      "description": "Request message for ProductLinkService.RemoveProductLink.",
      "id": "GoogleAdsGoogleadsV23Services__RemoveProductLinkRequest"
    },
    "GoogleAdsGoogleadsV23Services__MutateLabelsRequest": {
      "properties": {
        "responseContentType": {
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ]
        },
        "operations": {
          "description": "Required. The list of operations to perform on labels.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__LabelOperation"
          },
          "type": "array"
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateLabelsRequest",
      "type": "object",
      "description": "Request message for LabelService.MutateLabels."
    },
    "GoogleAdsGoogleadsV23Resources__Campaign": {
      "type": "object",
      "properties": {
        "manualCpv": {
          "$ref": "GoogleAdsGoogleadsV23Common__ManualCpv",
          "description": "A bidding strategy that pays a configurable amount per video view."
        },
        "shoppingSetting": {
          "$ref": "GoogleAdsGoogleadsV23Resources_Campaign_ShoppingSetting",
          "description": "The setting for controlling Shopping campaigns."
        },
        "listingType": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "This campaign serves vehicle ads."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "VEHICLES"
          ],
          "description": "Immutable. Listing type of ads served for this campaign. Field is restricted for usage with Performance Max campaigns.",
          "type": "string"
        },
        "videoBrandSafetySuitability": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EXPANDED_INVENTORY",
            "STANDARD_INVENTORY",
            "LIMITED_INVENTORY"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "This option lets you show ads across all inventory on YouTube and video partners that meet our standards for monetization. This option may be an appropriate choice for brands that want maximum access to the full breadth of videos eligible for ads, including, for example, videos that have strong profanity in the context of comedy or a documentary, or excessive violence as featured in video games.",
            "This option lets you show ads across a wide range of content that's appropriate for most brands, such as popular music videos, documentaries, and movie trailers. The content you can show ads on is based on YouTube's advertiser-friendly content guidelines that take into account, for example, the strength or frequency of profanity, or the appropriateness of subject matter like sensitive events. Ads won't show, for example, on content with repeated strong profanity, strong sexual content, or graphic violence.",
            "This option lets you show ads on a reduced range of content that's appropriate for brands with particularly strict guidelines around inappropriate language and sexual suggestiveness; above and beyond what YouTube's advertiser-friendly content guidelines address. The videos accessible in this sensitive category meet heightened requirements, especially for inappropriate language and sexual suggestiveness. For example, your ads will be excluded from showing on some of YouTube's most popular music videos and other pop culture content across YouTube and Google video partners."
          ],
          "description": "Brand Safety setting at the individual campaign level. Allows for selecting an inventory type to show your ads on content that is the right fit for your brand. See https://support.google.com/google-ads/answer/7515513."
        },
        "performanceMaxUpgrade": {
          "readOnly": true,
          "description": "Output only. Information about campaigns being upgraded to Performance Max.",
          "$ref": "GoogleAdsGoogleadsV23Resources_Campaign_PerformanceMaxUpgrade"
        },
        "targetRoas": {
          "$ref": "GoogleAdsGoogleadsV23Common__TargetRoas",
          "description": "Standard Target ROAS bidding strategy that automatically maximizes revenue while averaging a specific target return on ad spend (ROAS)."
        },
        "audienceSetting": {
          "description": "Immutable. Setting for audience related features.",
          "$ref": "GoogleAdsGoogleadsV23Resources_Campaign_AudienceSetting"
        },
        "appCampaignSetting": {
          "description": "The setting related to App Campaign.",
          "$ref": "GoogleAdsGoogleadsV23Resources_Campaign_AppCampaignSetting"
        },
        "feedTypes": {
          "items": {
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "PAGE_FEED",
              "DYNAMIC_EDUCATION",
              "MERCHANT_CENTER_FEED",
              "DYNAMIC_REAL_ESTATE",
              "DYNAMIC_CUSTOM",
              "DYNAMIC_HOTELS_AND_RENTALS",
              "DYNAMIC_FLIGHTS",
              "DYNAMIC_TRAVEL",
              "DYNAMIC_LOCAL",
              "DYNAMIC_JOBS",
              "LOCATION_SYNC",
              "BUSINESS_PROFILE_DYNAMIC_LOCATION_GROUP",
              "CHAIN_DYNAMIC_LOCATION_GROUP",
              "STATIC_LOCATION_GROUP",
              "HOTEL_PROPERTY",
              "TRAVEL_FEED"
            ],
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "Page asset set.",
              "Dynamic education asset set.",
              "Google Merchant Center asset set.",
              "Dynamic real estate asset set.",
              "Dynamic custom asset set.",
              "Dynamic hotels and rentals asset set.",
              "Dynamic flights asset set.",
              "Dynamic travel asset set.",
              "Dynamic local asset set.",
              "Dynamic jobs asset set.",
              "Location sync level asset set.",
              "Business Profile location group asset set.",
              "Chain location group asset set which can be used for both owned locations and affiliate locations.",
              "Static location group asset set which can be used for both owned locations and affiliate locations.",
              "Hotel Property asset set which is used to link a hotel property feed to Performance Max for travel goals campaigns.",
              "Travel Feed asset set type. Can represent either a Hotel feed or a Things to Do (activities) feed."
            ]
          },
          "readOnly": true,
          "description": "Output only. Types of feeds that are attached directly to this campaign.",
          "type": "array"
        },
        "excludedParentAssetSetTypes": {
          "description": "The asset set types that should be excluded from this campaign. Asset set links with these types will not be inherited by this campaign from the upper level. Location group types (GMB_DYNAMIC_LOCATION_GROUP, CHAIN_DYNAMIC_LOCATION_GROUP, and STATIC_LOCATION_GROUP) are child types of LOCATION_SYNC. Therefore, if LOCATION_SYNC is set for this field, all location group asset sets are not allowed to be linked to this campaign, and all Location Extension (LE) and Affiliate Location Extensions (ALE) will not be served under this campaign. Only LOCATION_SYNC is currently supported.",
          "type": "array",
          "items": {
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "PAGE_FEED",
              "DYNAMIC_EDUCATION",
              "MERCHANT_CENTER_FEED",
              "DYNAMIC_REAL_ESTATE",
              "DYNAMIC_CUSTOM",
              "DYNAMIC_HOTELS_AND_RENTALS",
              "DYNAMIC_FLIGHTS",
              "DYNAMIC_TRAVEL",
              "DYNAMIC_LOCAL",
              "DYNAMIC_JOBS",
              "LOCATION_SYNC",
              "BUSINESS_PROFILE_DYNAMIC_LOCATION_GROUP",
              "CHAIN_DYNAMIC_LOCATION_GROUP",
              "STATIC_LOCATION_GROUP",
              "HOTEL_PROPERTY",
              "TRAVEL_FEED"
            ],
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "Page asset set.",
              "Dynamic education asset set.",
              "Google Merchant Center asset set.",
              "Dynamic real estate asset set.",
              "Dynamic custom asset set.",
              "Dynamic hotels and rentals asset set.",
              "Dynamic flights asset set.",
              "Dynamic travel asset set.",
              "Dynamic local asset set.",
              "Dynamic jobs asset set.",
              "Location sync level asset set.",
              "Business Profile location group asset set.",
              "Chain location group asset set which can be used for both owned locations and affiliate locations.",
              "Static location group asset set which can be used for both owned locations and affiliate locations.",
              "Hotel Property asset set which is used to link a hotel property feed to Performance Max for travel goals campaigns.",
              "Travel Feed asset set type. Can represent either a Hotel feed or a Things to Do (activities) feed."
            ],
            "type": "string"
          }
        },
        "targetImpressionShare": {
          "$ref": "GoogleAdsGoogleadsV23Common__TargetImpressionShare",
          "description": "Target Impression Share bidding strategy. An automated bidding strategy that sets bids to achieve a chosen percentage of impressions."
        },
        "videoCampaignSettings": {
          "description": "Settings for Video campaign.",
          "$ref": "GoogleAdsGoogleadsV23Resources_Campaign_VideoCampaignSettings"
        },
        "manualCpm": {
          "$ref": "GoogleAdsGoogleadsV23Common__ManualCpm",
          "description": "Standard Manual CPM bidding strategy. Manual impression-based bidding where user pays per thousand impressions."
        },
        "biddingStrategySystemStatus": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "LEARNING_NEW",
            "LEARNING_SETTING_CHANGE",
            "LEARNING_BUDGET_CHANGE",
            "LEARNING_COMPOSITION_CHANGE",
            "LEARNING_CONVERSION_TYPE_CHANGE",
            "LEARNING_CONVERSION_SETTING_CHANGE",
            "LIMITED_BY_CPC_BID_CEILING",
            "LIMITED_BY_CPC_BID_FLOOR",
            "LIMITED_BY_DATA",
            "LIMITED_BY_BUDGET",
            "LIMITED_BY_LOW_PRIORITY_SPEND",
            "LIMITED_BY_LOW_QUALITY",
            "LIMITED_BY_INVENTORY",
            "MISCONFIGURED_ZERO_ELIGIBILITY",
            "MISCONFIGURED_CONVERSION_TYPES",
            "MISCONFIGURED_CONVERSION_SETTINGS",
            "MISCONFIGURED_SHARED_BUDGET",
            "MISCONFIGURED_STRATEGY_TYPE",
            "PAUSED",
            "UNAVAILABLE",
            "MULTIPLE_LEARNING",
            "MULTIPLE_LIMITED",
            "MULTIPLE_MISCONFIGURED",
            "MULTIPLE"
          ],
          "enumDescriptions": [
            "Signals that an unexpected error occurred, for example, no bidding strategy type was found, or no status information was found.",
            "Used for return value only. Represents value unknown in this version.",
            "The bid strategy is active, and AdWords cannot find any specific issues with the strategy.",
            "The bid strategy is learning because it has been recently created or recently reactivated.",
            "The bid strategy is learning because of a recent setting change.",
            "The bid strategy is learning because of a recent budget change.",
            "The bid strategy is learning because of recent change in number of campaigns, ad groups or keywords attached to it.",
            "The bid strategy depends on conversion reporting and the customer recently modified conversion types that were relevant to the bid strategy.",
            "The bid strategy depends on conversion reporting and the customer recently changed their conversion settings.",
            "The bid strategy is limited by its bid ceiling.",
            "The bid strategy is limited by its bid floor.",
            "The bid strategy is limited because there was not enough conversion traffic over the past weeks.",
            "A significant fraction of keywords in this bid strategy are limited by budget.",
            "The bid strategy cannot reach its target spend because its spend has been de-prioritized.",
            "A significant fraction of keywords in this bid strategy have a low Quality Score.",
            "The bid strategy cannot fully spend its budget because of narrow targeting.",
            "Missing conversion tracking (no pings present) and/or remarketing lists for SSC.",
            "The bid strategy depends on conversion reporting and the customer is lacking conversion types that might be reported against this strategy.",
            "The bid strategy depends on conversion reporting and the customer's conversion settings are misconfigured.",
            "There are campaigns outside the bid strategy that share budgets with campaigns included in the strategy.",
            "The campaign has an invalid strategy type and is not serving.",
            "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.",
            "This bid strategy currently does not support status reporting.",
            "There were multiple LEARNING_* system statuses for this bid strategy during the time in question.",
            "There were multiple LIMITED_* system statuses for this bid strategy during the time in question.",
            "There were multiple MISCONFIGURED_* system statuses for this bid strategy during the time in question.",
            "There were multiple system statuses for this bid strategy during the time in question."
          ],
          "type": "string",
          "readOnly": true,
          "description": "Output only. The system status of the campaign's bidding strategy."
        },
        "manualCpc": {
          "$ref": "GoogleAdsGoogleadsV23Common__ManualCpc",
          "description": "Standard Manual CPC bidding strategy. Manual click-based bidding where user pays per click."
        },
        "baseCampaign": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the base campaign of a draft or experiment campaign. For base campaigns, this is equal to `resource_name`. This field is read-only."
        },
        "hotelPropertyAssetSet": {
          "description": "Immutable. The resource name for a set of hotel properties for Performance Max for travel goals campaigns.",
          "type": "string"
        },
        "advertisingChannelType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SEARCH",
            "DISPLAY",
            "SHOPPING",
            "HOTEL",
            "VIDEO",
            "MULTI_CHANNEL",
            "LOCAL",
            "SMART",
            "PERFORMANCE_MAX",
            "LOCAL_SERVICES",
            "TRAVEL",
            "DEMAND_GEN"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Search Network. Includes display bundled, and Search+ campaigns.",
            "Google Display Network only.",
            "Shopping campaigns serve on the shopping property and on google.com search results.",
            "Hotel Ads campaigns.",
            "Video campaigns.",
            "App Campaigns, and App Campaigns for Engagement, that run across multiple channels.",
            "Local ads campaigns.",
            "Smart campaigns.",
            "Performance Max campaigns.",
            "Local services campaigns.",
            "Travel campaigns.",
            "Demand Gen campaigns."
          ],
          "description": "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."
        },
        "experimentType": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "This is a regular campaign.",
            "This is a draft version of a campaign. It has some modifications from a base campaign, but it does not serve or accrue metrics.",
            "This is an experiment version of a campaign. It has some modifications from a base campaign, and a percentage of traffic is being diverted from the BASE campaign to this experiment campaign."
          ],
          "description": "Output only. The type of campaign: normal, draft, or experiment.",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BASE",
            "DRAFT",
            "EXPERIMENT"
          ],
          "type": "string"
        },
        "vanityPharma": {
          "description": "Describes how unbranded pharma ads will be displayed.",
          "$ref": "GoogleAdsGoogleadsV23Resources_Campaign_VanityPharma"
        },
        "campaignGroup": {
          "type": "string",
          "description": "The resource name of the campaign group that this campaign belongs to."
        },
        "networkSettings": {
          "$ref": "GoogleAdsGoogleadsV23Resources_Campaign_NetworkSettings",
          "description": "The network settings for the campaign."
        },
        "aiMaxSetting": {
          "description": "Settings for AI Max in search campaigns.",
          "$ref": "GoogleAdsGoogleadsV23Resources_Campaign_AiMaxSetting"
        },
        "biddingStrategyType": {
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Commission is an automatic bidding strategy in which the advertiser pays a certain portion of the conversion value.",
            "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.",
            "Fixed CPM is a manual bidding strategy with a fixed CPM.",
            "Fixed share of voice is a manual bidding strategy for YouTube Sponsorships that bills either on CPM or a fixed cost per day.",
            "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 bidding strategy that allows advertiser to set the bid per advertiser-specified action.",
            "Manual click based bidding where user pays per click.",
            "Manual impression based bidding where user pays per thousand impressions.",
            "A bidding strategy that pays a configurable amount per video view.",
            "A bidding strategy that automatically maximizes number of conversions given a daily budget.",
            "An automated bidding strategy that automatically sets bids to maximize revenue while spending your budget.",
            "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 is bidding strategy where bids are a fraction of the advertised price for some good or service.",
            "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 CPC is an automated bid strategy that sets bids to help get as many clicks as possible at the target cost-per-click (CPC) you set.",
            "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 CPV is an automated bidding strategy that sets bids to optimize performance given the average target cost per view.",
            "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 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 is an automated bidding strategy that helps you maximize revenue while averaging a specific target Return On Average Spend (ROAS).",
            "Target Spend is an automated bid strategy that sets your bids to help get as many clicks as possible within your budget."
          ],
          "type": "string",
          "description": "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.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "COMMISSION",
            "ENHANCED_CPC",
            "FIXED_CPM",
            "FIXED_SHARE_OF_VOICE",
            "INVALID",
            "MANUAL_CPA",
            "MANUAL_CPC",
            "MANUAL_CPM",
            "MANUAL_CPV",
            "MAXIMIZE_CONVERSIONS",
            "MAXIMIZE_CONVERSION_VALUE",
            "PAGE_ONE_PROMOTED",
            "PERCENT_CPC",
            "TARGET_CPA",
            "TARGET_CPC",
            "TARGET_CPM",
            "TARGET_CPV",
            "TARGET_IMPRESSION_SHARE",
            "TARGET_OUTRANK_SHARE",
            "TARGET_ROAS",
            "TARGET_SPEND"
          ]
        },
        "targetCpv": {
          "description": "An automated bidding strategy that sets bids to optimize performance given the target CPV you set.",
          "$ref": "GoogleAdsGoogleadsV23Common__TargetCpv"
        },
        "maximizeConversions": {
          "description": "Standard Maximize Conversions bidding strategy that automatically maximizes number of conversions while spending your budget.",
          "$ref": "GoogleAdsGoogleadsV23Common__MaximizeConversions"
        },
        "targetSpend": {
          "$ref": "GoogleAdsGoogleadsV23Common__TargetSpend",
          "description": "Standard Target Spend bidding strategy that automatically sets your bids to help get as many clicks as possible within your budget."
        },
        "endDateTime": {
          "type": "string",
          "description": "The last day and time of the campaign in serving customer's timezone in \"yyyy-MM-dd HH:mm:ss\" format. Set the time component to 23:59:59 for daily granularity, time granularity is only supported for some campaign types. On create, defaults to running indefinitely. To set an existing campaign to run indefinitely, clear this field."
        },
        "resourceName": {
          "description": "Immutable. The resource name of the campaign. Campaign resource names have the form: `customers/{customer_id}/campaigns/{campaign_id}`",
          "type": "string"
        },
        "demandGenCampaignSettings": {
          "description": "Settings for Demand Gen campaign.",
          "$ref": "GoogleAdsGoogleadsV23Resources_Campaign_DemandGenCampaignSettings"
        },
        "primaryStatusReasons": {
          "description": "Output only. The primary status reasons of the campaign. Provides insight into why a campaign is not serving or not serving optimally. These reasons are aggregated to determine an overall CampaignPrimaryStatus.",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "The user-specified campaign status is removed.",
              "The user-specified campaign status is paused.",
              "The user-specified time for this campaign to start is in the future.",
              "The user-specified time for this campaign to end has passed.",
              "The campaign is a draft.",
              "The bidding strategy has incorrect user-specified settings.",
              "The bidding strategy is limited by user-specified settings such as lack of data or similar.",
              "The automated bidding system is adjusting to user-specified changes to the bidding strategy.",
              "Campaign could capture more conversion value by adjusting CPA/ROAS targets.",
              "The budget is limiting the campaign's ability to serve.",
              "The budget has incorrect user-specified settings.",
              "Campaign is not targeting all relevant queries.",
              "The user-specified ad group statuses are all paused.",
              "No eligible ad groups exist in this campaign.",
              "The user-specified keyword statuses are all paused.",
              "No eligible keywords exist in this campaign.",
              "The user-specified ad group ad statuses are all paused.",
              "No eligible ad group ads exist in this campaign.",
              "At least one ad in this campaign is limited by policy.",
              "At least one ad in this campaign is disapproved.",
              "Most ads in this campaign are pending review.",
              "The campaign has a lead form goal, and the lead form extension is missing.",
              "The campaign has a call goal, and the call extension is missing.",
              "The lead form extension is under review.",
              "The lead extension is disapproved.",
              "The call extension is under review.",
              "The call extension is disapproved.",
              "No eligible mobile application ad group criteria exist in this campaign.",
              "The user-specified campaign group status is paused.",
              "The user-specified times of all group budgets associated with the parent campaign group has passed.",
              "The app associated with this ACi campaign is not released in the target countries of the campaign.",
              "The app associated with this ACi campaign is partially released in the target countries of the campaign.",
              "At least one asset group in this campaign is disapproved.",
              "At least one asset group in this campaign is limited by policy.",
              "Most asset groups in this campaign are pending review.",
              "No eligible asset groups exist in this campaign.",
              "All asset groups in this campaign are paused.",
              "The campaign has location restrictions but does not specify location targeting."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "CAMPAIGN_REMOVED",
              "CAMPAIGN_PAUSED",
              "CAMPAIGN_PENDING",
              "CAMPAIGN_ENDED",
              "CAMPAIGN_DRAFT",
              "BIDDING_STRATEGY_MISCONFIGURED",
              "BIDDING_STRATEGY_LIMITED",
              "BIDDING_STRATEGY_LEARNING",
              "BIDDING_STRATEGY_CONSTRAINED",
              "BUDGET_CONSTRAINED",
              "BUDGET_MISCONFIGURED",
              "SEARCH_VOLUME_LIMITED",
              "AD_GROUPS_PAUSED",
              "NO_AD_GROUPS",
              "KEYWORDS_PAUSED",
              "NO_KEYWORDS",
              "AD_GROUP_ADS_PAUSED",
              "NO_AD_GROUP_ADS",
              "HAS_ADS_LIMITED_BY_POLICY",
              "HAS_ADS_DISAPPROVED",
              "MOST_ADS_UNDER_REVIEW",
              "MISSING_LEAD_FORM_EXTENSION",
              "MISSING_CALL_EXTENSION",
              "LEAD_FORM_EXTENSION_UNDER_REVIEW",
              "LEAD_FORM_EXTENSION_DISAPPROVED",
              "CALL_EXTENSION_UNDER_REVIEW",
              "CALL_EXTENSION_DISAPPROVED",
              "NO_MOBILE_APPLICATION_AD_GROUP_CRITERIA",
              "CAMPAIGN_GROUP_PAUSED",
              "CAMPAIGN_GROUP_ALL_GROUP_BUDGETS_ENDED",
              "APP_NOT_RELEASED",
              "APP_PARTIALLY_RELEASED",
              "HAS_ASSET_GROUPS_DISAPPROVED",
              "HAS_ASSET_GROUPS_LIMITED_BY_POLICY",
              "MOST_ASSET_GROUPS_UNDER_REVIEW",
              "NO_ASSET_GROUPS",
              "ASSET_GROUPS_PAUSED",
              "MISSING_LOCATION_TARGETING"
            ]
          },
          "readOnly": true,
          "type": "array"
        },
        "campaignBudget": {
          "type": "string",
          "description": "The resource name of the campaign budget of the campaign."
        },
        "targetingSetting": {
          "description": "Setting for targeting related features.",
          "$ref": "GoogleAdsGoogleadsV23Common__TargetingSetting"
        },
        "finalUrlSuffix": {
          "description": "Suffix used to append query parameters to landing pages that are served with parallel tracking.",
          "type": "string"
        },
        "brandGuidelinesEnabled": {
          "description": "Immutable. Whether Brand Guidelines are enabled for this Campaign. Only applicable to Performance Max campaigns. If enabled, business name and logo assets must be linked as CampaignAssets instead of AssetGroupAssets. Writable only at campaign creation. Set to true to enable Brand Guidelines when creating a new Performance Max campaign. Immutable after creation. This field cannot be modified using standard update operations after the campaign has been created. For existing campaigns: To enable Brand Guidelines on a campaign after it has been created, use the CampaignService.EnablePMaxBrandGuidelines method, which is a separate operation. It is not possible to disable Brand Guidelines for an existing campaign. Incompatible with Travel Goals: This feature is not supported for Performance Max campaigns with Travel Goals. Attempting to set this field to true for a Travel Goals campaign will result in an error.",
          "type": "boolean"
        },
        "hotelSetting": {
          "$ref": "GoogleAdsGoogleadsV23Resources_Campaign_HotelSettingInfo",
          "description": "Immutable. The hotel setting for the campaign."
        },
        "assetAutomationSettings": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Resources_Campaign_AssetAutomationSetting"
          },
          "description": "Contains the opt-in/out status of each AssetAutomationType. See documentation of each asset automation type enum for default opt in/out behavior.",
          "type": "array"
        },
        "travelCampaignSettings": {
          "description": "Settings for Travel campaign.",
          "$ref": "GoogleAdsGoogleadsV23Resources_Campaign_TravelCampaignSettings"
        },
        "dynamicSearchAdsSetting": {
          "description": "The setting for controlling Dynamic Search Ads (DSA).",
          "$ref": "GoogleAdsGoogleadsV23Resources_Campaign_DynamicSearchAdsSetting"
        },
        "primaryStatus": {
          "description": "Output only. The primary status of the campaign. Provides insight into why a campaign is not serving or not serving optimally. Modification to the campaign and its related entities might take a while to be reflected in this status.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The campaign is eligible to serve.",
            "The user-specified campaign status is paused.",
            "The user-specified campaign status is removed.",
            "The user-specified time for this campaign to end has passed.",
            "The campaign may serve in the future.",
            "The campaign or its associated entities have incorrect user-specified settings.",
            "The campaign or its associated entities are limited by user-specified settings.",
            "The automated bidding system is adjusting to user-specified changes to the campaign or associated entities.",
            "The campaign is not eligible to serve."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ELIGIBLE",
            "PAUSED",
            "REMOVED",
            "ENDED",
            "PENDING",
            "MISCONFIGURED",
            "LIMITED",
            "LEARNING",
            "NOT_ELIGIBLE"
          ],
          "type": "string",
          "readOnly": true
        },
        "advertisingChannelSubType": {
          "type": "string",
          "description": "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.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SEARCH_MOBILE_APP",
            "DISPLAY_MOBILE_APP",
            "SEARCH_EXPRESS",
            "DISPLAY_EXPRESS",
            "SHOPPING_SMART_ADS",
            "DISPLAY_GMAIL_AD",
            "DISPLAY_SMART_CAMPAIGN",
            "VIDEO_ACTION",
            "VIDEO_NON_SKIPPABLE",
            "APP_CAMPAIGN",
            "APP_CAMPAIGN_FOR_ENGAGEMENT",
            "LOCAL_CAMPAIGN",
            "SHOPPING_COMPARISON_LISTING_ADS",
            "SMART_CAMPAIGN",
            "VIDEO_SEQUENCE",
            "APP_CAMPAIGN_FOR_PRE_REGISTRATION",
            "VIDEO_REACH_TARGET_FREQUENCY",
            "TRAVEL_ACTIVITIES",
            "YOUTUBE_AUDIO"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used as a return value only. Represents value unknown in this version.",
            "Mobile app campaigns for Search.",
            "Mobile app campaigns for Display.",
            "AdWords express campaigns for search.",
            "AdWords Express campaigns for display.",
            "Smart Shopping campaigns.",
            "Gmail Ad campaigns.",
            "Smart display campaigns. New campaigns of this sub type cannot be created.",
            "Video TrueView for Action campaigns.",
            "Video campaigns with non-skippable video ads.",
            "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, focused on driving re-engagement with the app across several of Google's top properties including Search, YouTube, and the Google Display Network.",
            "Campaigns specialized for local advertising.",
            "Shopping Comparison Listing campaigns.",
            "Standard Smart campaigns.",
            "Video campaigns with sequence video ads.",
            "App Campaign for pre registration, specialized for advertising mobile app pre-registration, that targets multiple advertising channels across Google Play, YouTube and Display Network. See https://support.google.com/google-ads/answer/9441344 to learn more.",
            "Video reach campaign with Target Frequency bidding strategy.",
            "Travel Activities campaigns.",
            "YouTube Audio campaigns."
          ]
        },
        "manualCpa": {
          "description": "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.",
          "$ref": "GoogleAdsGoogleadsV23Common__ManualCpa"
        },
        "localCampaignSetting": {
          "$ref": "GoogleAdsGoogleadsV23Resources_Campaign_LocalCampaignSetting",
          "description": "The setting for local campaign."
        },
        "status": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "PAUSED",
            "REMOVED"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Campaign is active and can show ads.",
            "Campaign has been paused by the user.",
            "Campaign has been removed."
          ],
          "type": "string",
          "description": "The status of the campaign. When a new campaign is added, the status defaults to ENABLED."
        },
        "labels": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "readOnly": true,
          "description": "Output only. The resource names of labels attached to this campaign."
        },
        "biddingStrategy": {
          "type": "string",
          "description": "The resource name of the portfolio bidding strategy used by the campaign."
        },
        "excludedParentAssetFieldTypes": {
          "description": "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.",
          "items": {
            "type": "string",
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "HEADLINE",
              "DESCRIPTION",
              "MANDATORY_AD_TEXT",
              "MARKETING_IMAGE",
              "MEDIA_BUNDLE",
              "YOUTUBE_VIDEO",
              "BOOK_ON_GOOGLE",
              "LEAD_FORM",
              "PROMOTION",
              "CALLOUT",
              "STRUCTURED_SNIPPET",
              "SITELINK",
              "MOBILE_APP",
              "HOTEL_CALLOUT",
              "CALL",
              "PRICE",
              "LONG_HEADLINE",
              "BUSINESS_NAME",
              "SQUARE_MARKETING_IMAGE",
              "PORTRAIT_MARKETING_IMAGE",
              "LOGO",
              "LANDSCAPE_LOGO",
              "VIDEO",
              "CALL_TO_ACTION_SELECTION",
              "AD_IMAGE",
              "BUSINESS_LOGO",
              "HOTEL_PROPERTY",
              "DEMAND_GEN_CAROUSEL_CARD",
              "BUSINESS_MESSAGE",
              "TALL_PORTRAIT_MARKETING_IMAGE",
              "RELATED_YOUTUBE_VIDEOS",
              "LANDING_PAGE_PREVIEW",
              "LONG_DESCRIPTION",
              "CALL_TO_ACTION"
            ],
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "The asset is linked for use as a headline.",
              "The asset is linked for use as a description.",
              "The asset is linked for use as mandatory ad text.",
              "The asset is linked for use as a marketing image.",
              "The asset is linked for use as a media bundle.",
              "The asset is linked for use as a YouTube video.",
              "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
              "The asset is linked for use as a Lead Form extension.",
              "The asset is linked for use as a Promotion extension.",
              "The asset is linked for use as a Callout extension.",
              "The asset is linked for use as a Structured Snippet extension.",
              "The asset is linked for use as a Sitelink.",
              "The asset is linked for use as a Mobile App extension.",
              "The asset is linked for use as a Hotel Callout extension.",
              "The asset is linked for use as a Call extension.",
              "The asset is linked for use as a Price extension.",
              "The asset is linked for use as a long headline.",
              "The asset is linked for use as a business name.",
              "The asset is linked for use as a square marketing image.",
              "The asset is linked for use as a portrait marketing image.",
              "The asset is linked for use as a logo.",
              "The asset is linked for use as a landscape logo.",
              "The asset is linked for use as a non YouTube logo.",
              "The asset is linked for use to select a call-to-action.",
              "The asset is linked for use to select an ad image.",
              "The asset is linked for use as a business logo.",
              "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
              "The asset is linked for use as a Demand Gen carousel card.",
              "The asset is linked for use as a Business Message.",
              "The asset is linked for use as a tall portrait marketing image.",
              "The asset is linked for use as related YouTube videos.",
              "The asset is linked for use as a landing page preview image.",
              "The asset is linked for use as a long description.",
              "The asset is linked for use as a call-to-action."
            ]
          },
          "type": "array"
        },
        "name": {
          "description": "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.",
          "type": "string"
        },
        "trackingSetting": {
          "$ref": "GoogleAdsGoogleadsV23Resources_Campaign_TrackingSetting",
          "readOnly": true,
          "description": "Output only. Campaign-level settings for tracking information."
        },
        "containsEuPoliticalAdvertising": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The campaign contains political advertising targeted towards the EU. The campaign will be restricted from serving ads in the EU.",
            "The campaign does not contain political advertising targeted towards the EU. No additional serving restrictions will apply."
          ],
          "description": "The advertiser should self-declare whether this campaign contains political advertising content targeted towards the European Union.",
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CONTAINS_EU_POLITICAL_ADVERTISING",
            "DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING"
          ]
        },
        "commission": {
          "$ref": "GoogleAdsGoogleadsV23Common__Commission",
          "description": "Commission is an automatic bidding strategy in which the advertiser pays a certain portion of the conversion value."
        },
        "pmaxCampaignSettings": {
          "$ref": "GoogleAdsGoogleadsV23Resources_Campaign_PmaxCampaignSettings",
          "description": "Settings for Performance Max campaign."
        },
        "urlCustomParameters": {
          "description": "The list of mappings used to substitute custom parameter tags in a `tracking_url_template`, `final_urls`, or `mobile_final_urls`.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__CustomParameter"
          }
        },
        "fixedCpm": {
          "description": "A manual bidding strategy with a fixed CPM.",
          "$ref": "GoogleAdsGoogleadsV23Common__FixedCpm"
        },
        "thirdPartyIntegrationPartners": {
          "description": "Third-Party integration partners.",
          "$ref": "GoogleAdsGoogleadsV23Common__CampaignThirdPartyIntegrationPartners"
        },
        "targetCpc": {
          "$ref": "GoogleAdsGoogleadsV23Common__TargetCpc",
          "description": "An automated bidding strategy that sets bids to help get as many clicks as possible at the target cost-per-click (CPC) you set."
        },
        "optimizationGoalSetting": {
          "description": "Optimization goal setting for this campaign, which includes a set of optimization goal types.",
          "$ref": "GoogleAdsGoogleadsV23Resources_Campaign_OptimizationGoalSetting"
        },
        "startDateTime": {
          "type": "string",
          "description": "The date and time when campaign started in serving. The timestamp is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss\" format. Set the time component to 00:00:00 for daily granularity, time granularity is only supported for some campaign types."
        },
        "optimizationScore": {
          "format": "double",
          "description": "Output only. Optimization score of the campaign. Optimization score is an estimate of how well a campaign is set to perform. It ranges from 0% (0.0) to 100% (1.0), with 100% indicating that the campaign is performing at full potential. This field is null for unscored campaigns. See \"About optimization score\" at https://support.google.com/google-ads/answer/9061546. This field is read-only.",
          "type": "number",
          "readOnly": true
        },
        "id": {
          "format": "int64",
          "description": "Output only. The ID of the campaign.",
          "type": "string",
          "readOnly": true
        },
        "paymentMode": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CLICKS",
            "CONVERSION_VALUE",
            "CONVERSIONS",
            "GUEST_STAY"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Pay per interaction.",
            "Pay per conversion value. This mode is only supported by campaigns with AdvertisingChannelType.HOTEL, BiddingStrategyType.COMMISSION, and BudgetType.STANDARD.",
            "Pay per conversion. This mode is only supported by campaigns with AdvertisingChannelType.DISPLAY (excluding AdvertisingChannelSubType.DISPLAY_GMAIL), BiddingStrategyType.TARGET_CPA, and BudgetType.FIXED_CPA. The customer must also be eligible for this mode. See Customer.eligibility_failure_reasons for details.",
            "Pay per guest stay value. This mode is only supported by campaigns with AdvertisingChannelType.HOTEL, BiddingStrategyType.COMMISSION, and BudgetType.STANDARD."
          ],
          "description": "Payment mode for the campaign."
        },
        "maximizeConversionValue": {
          "description": "Standard Maximize Conversion Value bidding strategy that automatically sets bids to maximize revenue while spending your budget.",
          "$ref": "GoogleAdsGoogleadsV23Common__MaximizeConversionValue"
        },
        "realTimeBiddingSetting": {
          "description": "Settings for Real-Time Bidding, a feature only available for campaigns targeting the Ad Exchange network.",
          "$ref": "GoogleAdsGoogleadsV23Common__RealTimeBiddingSetting"
        },
        "percentCpc": {
          "$ref": "GoogleAdsGoogleadsV23Common__PercentCpc",
          "description": "Standard Percent Cpc bidding strategy where bids are a fraction of the advertised price for some good or service."
        },
        "frequencyCaps": {
          "description": "A list that limits how often each user will see this campaign's ads.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__FrequencyCapEntry"
          },
          "type": "array"
        },
        "trackingUrlTemplate": {
          "description": "The URL template for constructing a tracking URL.",
          "type": "string"
        },
        "targetCpm": {
          "$ref": "GoogleAdsGoogleadsV23Common__TargetCpm",
          "description": "A bidding strategy that automatically optimizes cost per thousand impressions."
        },
        "targetCpa": {
          "$ref": "GoogleAdsGoogleadsV23Common__TargetCpa",
          "description": "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."
        },
        "adServingOptimizationStatus": {
          "type": "string",
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "Ad serving is optimized based on CTR for the campaign.",
            "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.",
            "Ads are rotated evenly for 90 days, then optimized for clicks.",
            "Show lower performing ads more evenly with higher performing ads, and do not optimize.",
            "Ad serving optimization status is not available."
          ],
          "description": "The ad serving optimization status of the campaign.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "OPTIMIZE",
            "CONVERSION_OPTIMIZE",
            "ROTATE",
            "ROTATE_INDEFINITELY",
            "UNAVAILABLE"
          ]
        },
        "selectiveOptimization": {
          "$ref": "GoogleAdsGoogleadsV23Resources_Campaign_SelectiveOptimization",
          "description": "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."
        },
        "keywordMatchType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BROAD"
          ],
          "description": "Keyword match type of Campaign. Set to BROAD to set broad matching for all keywords in a campaign.",
          "enumDescriptions": [
            "No value has been specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Campaign level broad match."
          ],
          "type": "string"
        },
        "accessibleBiddingStrategy": {
          "description": "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.",
          "type": "string",
          "readOnly": true
        },
        "servingStatus": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SERVING",
            "NONE",
            "ENDED",
            "PENDING",
            "SUSPENDED"
          ],
          "type": "string",
          "readOnly": true,
          "description": "Output only. The ad serving status of the campaign.",
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "Serving.",
            "None.",
            "Ended.",
            "Pending.",
            "Suspended."
          ]
        },
        "localServicesCampaignSettings": {
          "description": "The Local Services Campaign related settings.",
          "$ref": "GoogleAdsGoogleadsV23Resources_Campaign_LocalServicesCampaignSettings"
        },
        "brandGuidelines": {
          "$ref": "GoogleAdsGoogleadsV23Resources_Campaign_BrandGuidelines",
          "description": "These settings control how your brand appears in automatically generated assets and formats within this campaign. Note: These settings can only be used for Performance Max campaigns that have Brand Guidelines enabled."
        },
        "geoTargetTypeSetting": {
          "description": "The setting for ads geotargeting.",
          "$ref": "GoogleAdsGoogleadsV23Resources_Campaign_GeoTargetTypeSetting"
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__Campaign",
      "description": "A campaign."
    },
    "GoogleAdsGoogleadsV23Services__SearchGoogleAdsResponse": {
      "type": "object",
      "properties": {
        "totalResultsCount": {
          "type": "string",
          "format": "int64",
          "description": "Total number of results that match the query ignoring the LIMIT clause."
        },
        "nextPageToken": {
          "description": "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.",
          "type": "string"
        },
        "results": {
          "type": "array",
          "description": "The list of rows that matched the query.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__GoogleAdsRow"
          }
        },
        "fieldMask": {
          "description": "FieldMask that represents what fields were requested by the user.",
          "type": "string",
          "format": "google-fieldmask"
        },
        "summaryRow": {
          "$ref": "GoogleAdsGoogleadsV23Services__GoogleAdsRow",
          "description": "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."
        },
        "queryResourceConsumption": {
          "format": "int64",
          "description": "The amount of resources consumed to serve the query.",
          "type": "string"
        },
        "metricAttributes": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MetricAttributes"
          },
          "description": "The metric attributes of the metrics in the results."
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__SearchGoogleAdsResponse",
      "description": "Response message for GoogleAdsService.Search."
    },
    "GoogleAdsGoogleadsV23Services__CreateCustomerClientRequest": {
      "id": "GoogleAdsGoogleadsV23Services__CreateCustomerClientRequest",
      "type": "object",
      "description": "Request message for CustomerService.CreateCustomerClient.",
      "properties": {
        "customerClient": {
          "description": "Required. The new client customer to create. The resource name on this customer will be ignored.",
          "$ref": "GoogleAdsGoogleadsV23Resources__Customer"
        },
        "accessRole": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADMIN",
            "STANDARD",
            "READ_ONLY",
            "EMAIL_ONLY"
          ],
          "description": "The proposed role of user on the created client customer. Accessible only to customers on the allow-list.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Owns its account and can control the addition of other users.",
            "Can modify campaigns, but can't affect other users.",
            "Can view campaigns and account changes, but cannot make edits.",
            "Role for \\\"email only\\\" access. Represents an email recipient rather than a true User entity."
          ]
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "emailAddress": {
          "type": "string",
          "description": "Email address of the user who should be invited on the created client customer. Accessible only to customers on the allow-list."
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__LifeEvent": {
      "id": "GoogleAdsGoogleadsV23Resources__LifeEvent",
      "type": "object",
      "description": "A life event: a particular interest-based vertical to be targeted to reach users when they are in the midst of important life milestones.",
      "properties": {
        "parent": {
          "description": "Output only. The parent of the life_event.",
          "type": "string",
          "readOnly": true
        },
        "id": {
          "format": "int64",
          "description": "Output only. The ID of the life event.",
          "readOnly": true,
          "type": "string"
        },
        "launchedToAll": {
          "type": "boolean",
          "description": "Output only. True if the life event is launched to all channels and locales.",
          "readOnly": true
        },
        "name": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The name of the life event, for example,\"Recently Moved\""
        },
        "resourceName": {
          "description": "Output only. The resource name of the life event. Life event resource names have the form: `customers/{customer_id}/lifeEvents/{life_event_id}`",
          "type": "string",
          "readOnly": true
        },
        "availabilities": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__CriterionCategoryAvailability"
          },
          "type": "array",
          "description": "Output only. Availability information of the life event.",
          "readOnly": true
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__ProductConditionInfo": {
      "id": "GoogleAdsGoogleadsV23Common__ProductConditionInfo",
      "type": "object",
      "properties": {
        "condition": {
          "description": "Value of the condition.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NEW",
            "REFURBISHED",
            "USED"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The product condition is new.",
            "The product condition is refurbished.",
            "The product condition is used."
          ]
        }
      },
      "description": "Condition of a product offer."
    },
    "GoogleAdsGoogleadsV23Common__ResponsiveSearchAdInfo": {
      "description": "A responsive search ad. Responsive search ads let you create an ad that adapts to show more text, and more relevant messages, to your customers. Enter multiple headlines and descriptions when creating a responsive search ad, and over time, Google Ads will automatically test different combinations and learn which combinations perform best. By adapting your ad's content to more closely match potential customers' search terms, responsive search ads may improve your campaign's performance. More information at https://support.google.com/google-ads/answer/7684791",
      "type": "object",
      "properties": {
        "headlines": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdTextAsset"
          },
          "type": "array",
          "description": "List of text assets for headlines. When the ad serves the headlines will be selected from this list."
        },
        "path2": {
          "type": "string",
          "description": "Second part of text that can be appended to the URL in the ad. This field can only be set when `path1` is also set."
        },
        "path1": {
          "type": "string",
          "description": "First part of text that can be appended to the URL in the ad."
        },
        "descriptions": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdTextAsset"
          },
          "description": "List of text assets for descriptions. When the ad serves the descriptions will be selected from this list."
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__ResponsiveSearchAdInfo"
    },
    "GoogleAdsGoogleadsV23Services__SearchGoogleAdsStreamResponse": {
      "id": "GoogleAdsGoogleadsV23Services__SearchGoogleAdsStreamResponse",
      "properties": {
        "fieldMask": {
          "format": "google-fieldmask",
          "description": "FieldMask that represents what fields were requested by the user.",
          "type": "string"
        },
        "results": {
          "description": "The list of rows that matched the query.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__GoogleAdsRow"
          }
        },
        "summaryRow": {
          "description": "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.",
          "$ref": "GoogleAdsGoogleadsV23Services__GoogleAdsRow"
        },
        "queryResourceConsumption": {
          "description": "The amount of resources consumed to serve the query. query_resource_consumption for the Summary row and non-Summary responses are returned separately in their respective rows. query_resource_consumption for non-Summary responses is returned in the final batch of results.",
          "format": "int64",
          "type": "string"
        },
        "metricAttributes": {
          "description": "The metric attributes of the metrics in the results.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MetricAttributes"
          },
          "type": "array"
        },
        "requestId": {
          "description": "The unique id of the request that is used for debugging purposes.",
          "type": "string"
        }
      },
      "description": "Response message for GoogleAdsService.SearchStream.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources_Invoice_RegulatoryCostSummary": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources_Invoice_RegulatoryCostSummary",
      "description": "Represents regulatory cost information associated with an account.",
      "properties": {
        "regulatoryFeeType": {
          "description": "Output only. The type of regulatory fee.",
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AUSTRIA_DST_FEE",
            "TURKIYE_REGULATORY_OPERATING_COST",
            "UK_DST_FEE",
            "SPAIN_REGULATORY_OPERATING_COST",
            "FRANCE_REGULATORY_OPERATING_COST",
            "ITALY_REGULATORY_OPERATING_COST",
            "INDIA_REGULATORY_OPERATING_COST",
            "POLAND_REGULATORY_OPERATING_COST",
            "OPERATING_CHARGES",
            "CANADA_DST_FEE"
          ],
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Represents Austria DST fee.",
            "Represents Türkiye regulatory operating cost.",
            "Represents UK DST fee.",
            "Represents Spain regulatory operating cost.",
            "Represents France regulatory operating cost.",
            "Represents Italy regulatory operating cost.",
            "Represents India regulatory operating cost.",
            "Represents Poland regulatory operating cost.",
            "Represents operating charges.",
            "Represents Canada DST fee."
          ]
        },
        "amountMicros": {
          "description": "Output only. The amount of the regulatory fee, in micros. The currency code for this amount is the same as the Invoice.currency_code.",
          "type": "string",
          "readOnly": true,
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__UploadUserDataResponse": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__UploadUserDataResponse",
      "description": "Response message for UserDataService.UploadUserData Uploads made through this service will not be visible under the 'Segment members' section for the Customer Match List in the Google Ads UI.",
      "properties": {
        "uploadDateTime": {
          "type": "string",
          "description": "The date time at which the request was received by API, formatted as \"yyyy-mm-dd hh:mm:ss+|-hh:mm\", for example, \"2019-01-01 12:32:45-08:00\"."
        },
        "receivedOperationsCount": {
          "format": "int32",
          "type": "integer",
          "description": "Number of upload data operations received by API."
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__BiddingStrategySimulation": {
      "properties": {
        "startDate": {
          "type": "string",
          "description": "Output only. First day on which the simulation is based, in YYYY-MM-DD format.",
          "readOnly": true
        },
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the bidding strategy simulation. Bidding strategy simulation resource names have the form: `customers/{customer_id}/biddingStrategySimulations/{bidding_strategy_id}~{type}~{modification_method}~{start_date}~{end_date}`",
          "readOnly": true
        },
        "targetCpaPointList": {
          "readOnly": true,
          "description": "Output only. Simulation points if the simulation type is TARGET_CPA.",
          "$ref": "GoogleAdsGoogleadsV23Common__TargetCpaSimulationPointList"
        },
        "targetRoasPointList": {
          "$ref": "GoogleAdsGoogleadsV23Common__TargetRoasSimulationPointList",
          "readOnly": true,
          "description": "Output only. Simulation points if the simulation type is TARGET_ROAS."
        },
        "endDate": {
          "type": "string",
          "description": "Output only. Last day on which the simulation is based, in YYYY-MM-DD format",
          "readOnly": true
        },
        "modificationMethod": {
          "readOnly": true,
          "description": "Output only. How the simulation modifies the field.",
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "UNIFORM",
            "DEFAULT",
            "SCALING"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The values in a simulation were applied to all children of a given resource uniformly. Overrides on child resources were not respected.",
            "The values in a simulation were applied to the given resource. Overrides on child resources were respected, and traffic estimates do not include these resources.",
            "The values in a simulation were all scaled by the same factor. For example, in a simulated TargetCpa campaign, the campaign target and all ad group targets were scaled by a factor of X."
          ]
        },
        "type": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CPC_BID",
            "CPV_BID",
            "TARGET_CPA",
            "BID_MODIFIER",
            "TARGET_ROAS",
            "PERCENT_CPC_BID",
            "TARGET_IMPRESSION_SHARE",
            "BUDGET"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The simulation is for a CPC bid.",
            "The simulation is for a CPV bid.",
            "The simulation is for a CPA target.",
            "The simulation is for a bid modifier.",
            "The simulation is for a ROAS target.",
            "The simulation is for a percent CPC bid.",
            "The simulation is for an impression share target.",
            "The simulation is for a budget."
          ],
          "type": "string",
          "readOnly": true,
          "description": "Output only. The field that the simulation modifies."
        },
        "biddingStrategyId": {
          "format": "int64",
          "description": "Output only. Bidding strategy shared set id of the simulation.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__BiddingStrategySimulation",
      "type": "object",
      "description": "A bidding strategy simulation. Supported combinations of simulation type and simulation modification method are detailed below respectively. 1. TARGET_CPA - UNIFORM 2. TARGET_ROAS - UNIFORM"
    },
    "GoogleAdsGoogleadsV23Services__MutateSharedCriteriaRequest": {
      "id": "GoogleAdsGoogleadsV23Services__MutateSharedCriteriaRequest",
      "description": "Request message for SharedCriterionService.MutateSharedCriteria.",
      "properties": {
        "operations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__SharedCriterionOperation"
          },
          "description": "Required. The list of operations to perform on individual shared criteria.",
          "type": "array"
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "responseContentType": {
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "type": "string"
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources_Recommendation_ForecastingSetTargetRoasRecommendation": {
      "description": "The forecasting set target ROAS recommendation.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources_Recommendation_ForecastingSetTargetRoasRecommendation",
      "properties": {
        "campaignBudget": {
          "description": "Output only. The campaign budget.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_CampaignBudget"
        },
        "recommendedTargetRoas": {
          "type": "number",
          "description": "Output only. The recommended target ROAS (revenue per unit of spend). The value is between 0.01 and 1000.0, inclusive.",
          "format": "double",
          "readOnly": true
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__SitelinkFeedItem": {
      "properties": {
        "linkText": {
          "description": "URL display text for the sitelink. The length of this string should be between 1 and 25, inclusive.",
          "type": "string"
        },
        "finalUrls": {
          "items": {
            "type": "string"
          },
          "description": "A list of possible final URLs after all cross domain redirects.",
          "type": "array"
        },
        "finalUrlSuffix": {
          "description": "Final URL suffix to be appended to landing page URLs served with parallel tracking.",
          "type": "string"
        },
        "line1": {
          "description": "First line of the description for the sitelink. If this value is set, line2 must also be set. The length of this string should be between 0 and 35, inclusive.",
          "type": "string"
        },
        "trackingUrlTemplate": {
          "description": "URL template for constructing a tracking URL.",
          "type": "string"
        },
        "finalMobileUrls": {
          "description": "A list of possible final mobile URLs after all cross domain redirects.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "line2": {
          "description": "Second line of the description for the sitelink. If this value is set, line1 must also be set. The length of this string should be between 0 and 35, inclusive.",
          "type": "string"
        },
        "urlCustomParameters": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__CustomParameter"
          },
          "description": "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.",
          "type": "array"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__SitelinkFeedItem",
      "description": "Represents a sitelink."
    },
    "GoogleAdsGoogleadsV23Services__MutateConversionCustomVariablesRequest": {
      "id": "GoogleAdsGoogleadsV23Services__MutateConversionCustomVariablesRequest",
      "description": "Request message for ConversionCustomVariableService.MutateConversionCustomVariables.",
      "type": "object",
      "properties": {
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "responseContentType": {
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ]
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "operations": {
          "description": "Required. The list of operations to perform on individual conversion custom variables.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__ConversionCustomVariableOperation"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__ListingDimensionInfo": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__ListingDimensionInfo",
      "properties": {
        "hotelId": {
          "description": "Advertiser-specific hotel ID.",
          "$ref": "GoogleAdsGoogleadsV23Common__HotelIdInfo"
        },
        "productItemId": {
          "description": "Item id of a product offer.",
          "$ref": "GoogleAdsGoogleadsV23Common__ProductItemIdInfo"
        },
        "hotelCity": {
          "$ref": "GoogleAdsGoogleadsV23Common__HotelCityInfo",
          "description": "City the hotel is located in."
        },
        "hotelClass": {
          "description": "Class of the hotel as a number of stars 1 to 5.",
          "$ref": "GoogleAdsGoogleadsV23Common__HotelClassInfo"
        },
        "hotelState": {
          "$ref": "GoogleAdsGoogleadsV23Common__HotelStateInfo",
          "description": "State the hotel is located in."
        },
        "productCondition": {
          "description": "Condition of a product offer.",
          "$ref": "GoogleAdsGoogleadsV23Common__ProductConditionInfo"
        },
        "productCategory": {
          "description": "Category of a product offer.",
          "$ref": "GoogleAdsGoogleadsV23Common__ProductCategoryInfo"
        },
        "activityCity": {
          "description": "The city where the travel activity is available.",
          "$ref": "GoogleAdsGoogleadsV23Common__ActivityCityInfo"
        },
        "activityCountry": {
          "description": "The country where the travel activity is available.",
          "$ref": "GoogleAdsGoogleadsV23Common__ActivityCountryInfo"
        },
        "productBrand": {
          "$ref": "GoogleAdsGoogleadsV23Common__ProductBrandInfo",
          "description": "Brand of a product offer."
        },
        "productChannel": {
          "$ref": "GoogleAdsGoogleadsV23Common__ProductChannelInfo",
          "description": "Locality of a product offer."
        },
        "productCustomAttribute": {
          "description": "Custom attribute of a product offer.",
          "$ref": "GoogleAdsGoogleadsV23Common__ProductCustomAttributeInfo"
        },
        "productTypeFull": {
          "$ref": "GoogleAdsGoogleadsV23Common__ProductTypeFullInfo",
          "description": "Full type of a product offer. This listing dimension is deprecated and it is supported only in Display campaigns."
        },
        "productType": {
          "$ref": "GoogleAdsGoogleadsV23Common__ProductTypeInfo",
          "description": "Type of a product offer."
        },
        "activityId": {
          "$ref": "GoogleAdsGoogleadsV23Common__ActivityIdInfo",
          "description": "Advertiser-specific activity ID."
        },
        "productLabels": {
          "$ref": "GoogleAdsGoogleadsV23Common__ProductLabelsInfo",
          "description": "Labels of a product offer. This listing dimension is deprecated and it is supported only in Display campaigns."
        },
        "productGrouping": {
          "$ref": "GoogleAdsGoogleadsV23Common__ProductGroupingInfo",
          "description": "Grouping of a product offer. This listing dimension is deprecated and it is supported only in Display campaigns."
        },
        "activityRating": {
          "description": "Rating of the activity as a number 1 to 5, where 5 is the best.",
          "$ref": "GoogleAdsGoogleadsV23Common__ActivityRatingInfo"
        },
        "unknownListingDimension": {
          "$ref": "GoogleAdsGoogleadsV23Common__UnknownListingDimensionInfo",
          "description": "Unknown dimension. Set when no other listing dimension is set."
        },
        "productChannelExclusivity": {
          "$ref": "GoogleAdsGoogleadsV23Common__ProductChannelExclusivityInfo",
          "description": "Availability of a product offer."
        },
        "hotelCountryRegion": {
          "$ref": "GoogleAdsGoogleadsV23Common__HotelCountryRegionInfo",
          "description": "Country or Region the hotel is located in."
        },
        "productLegacyCondition": {
          "$ref": "GoogleAdsGoogleadsV23Common__ProductLegacyConditionInfo",
          "description": "Legacy condition of a product offer. This listing dimension is deprecated and it is supported only in Display campaigns."
        },
        "activityState": {
          "description": "The state where the travel activity is available.",
          "$ref": "GoogleAdsGoogleadsV23Common__ActivityStateInfo"
        }
      },
      "description": "Listing dimensions for listing group criterion."
    },
    "GoogleAdsGoogleadsV23Common__CrmBasedUserListInfo": {
      "id": "GoogleAdsGoogleadsV23Common__CrmBasedUserListInfo",
      "description": "UserList of CRM users provided by the advertiser.",
      "type": "object",
      "properties": {
        "uploadKeyType": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Members are matched from customer info such as email address, phone number or physical address.",
            "Members are matched from a user id generated and assigned by the advertiser.",
            "Members are matched from mobile advertising ids."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CONTACT_INFO",
            "CRM_ID",
            "MOBILE_ADVERTISING_ID"
          ],
          "description": "Matching key type of the list. Mixed data types are not allowed on the same list. This field is required for an ADD operation."
        },
        "dataSourceType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The uploaded data is first-party data.",
            "The uploaded data is from a third-party credit bureau.",
            "The uploaded data is from a third-party voter file.",
            "The uploaded data is third party partner data."
          ],
          "description": "Data source of the list. Default value is FIRST_PARTY. Only customers on the allow-list can create third-party sourced CRM lists.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "FIRST_PARTY",
            "THIRD_PARTY_CREDIT_BUREAU",
            "THIRD_PARTY_VOTER_FILE",
            "THIRD_PARTY_PARTNER_DATA"
          ]
        },
        "appId": {
          "description": "A string that uniquely identifies a mobile application from which the data was collected. For iOS, the ID string is the 9 digit string that appears at the end of an App Store URL (for example, \"476943146\" for \"Flood-It! 2\" whose App Store link is http://itunes.apple.com/us/app/flood-it!-2/id476943146). For Android, the ID string is the application's package name (for example, \"com.labpixies.colordrips\" for \"Color Drips\" given Google Play link https://play.google.com/store/apps/details?id=com.labpixies.colordrips). Required when creating CrmBasedUserList for uploading mobile advertising IDs.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__LegacyResponsiveDisplayAdInfo": {
      "id": "GoogleAdsGoogleadsV23Common__LegacyResponsiveDisplayAdInfo",
      "type": "object",
      "description": "A legacy responsive display ad. Ads of this type are labeled 'Responsive ads' in the Google Ads UI.",
      "properties": {
        "pricePrefix": {
          "description": "Prefix before price. For example, 'as low as'.",
          "type": "string"
        },
        "shortHeadline": {
          "description": "The short version of the ad's headline.",
          "type": "string"
        },
        "formatSetting": {
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Text, image and native formats.",
            "Text and image formats.",
            "Native format, for example, the format rendering is controlled by the publisher and not by Google."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ALL_FORMATS",
            "NON_NATIVE",
            "NATIVE"
          ],
          "description": "Specifies which format the ad will be served in. Default is ALL_FORMATS."
        },
        "callToActionText": {
          "description": "The call-to-action text for the ad.",
          "type": "string"
        },
        "mainColor": {
          "description": "The main color of the ad in hexadecimal, for example, #ffffff for white. If one of `main_color` and `accent_color` is set, the other is required as well.",
          "type": "string"
        },
        "businessName": {
          "description": "The business name in the ad.",
          "type": "string"
        },
        "logoImage": {
          "type": "string",
          "description": "The MediaFile resource name of the logo image used in the ad."
        },
        "accentColor": {
          "description": "The accent color of the ad in hexadecimal, for example, #ffffff for white. If one of `main_color` and `accent_color` is set, the other is required as well.",
          "type": "string"
        },
        "allowFlexibleColor": {
          "description": "Advertiser's consent to allow flexible color. When true, the ad may be served with different color if necessary. When false, the ad will be served with the specified colors or a neutral color. The default value is `true`. Must be true if `main_color` and `accent_color` are not set.",
          "type": "boolean"
        },
        "description": {
          "type": "string",
          "description": "The description of the ad."
        },
        "marketingImage": {
          "description": "The MediaFile resource name of the marketing image used in the ad.",
          "type": "string"
        },
        "squareMarketingImage": {
          "description": "The MediaFile resource name of the square marketing image used in the ad.",
          "type": "string"
        },
        "promoText": {
          "description": "Promotion text used for dynamic formats of responsive ads. For example 'Free two-day shipping'.",
          "type": "string"
        },
        "longHeadline": {
          "description": "The long version of the ad's headline.",
          "type": "string"
        },
        "squareLogoImage": {
          "description": "The MediaFile resource name of the square logo image used in the ad.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateUserListCustomerTypesResponse": {
      "type": "object",
      "description": "Response message for a user list customer type mutate.",
      "properties": {
        "results": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateUserListCustomerTypeResult"
          },
          "description": "All results for the mutate.",
          "type": "array"
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateUserListCustomerTypesResponse"
    },
    "GoogleAdsGoogleadsV23Common__ShoppingProductAdInfo": {
      "type": "object",
      "properties": {},
      "description": "A standard Shopping ad.",
      "id": "GoogleAdsGoogleadsV23Common__ShoppingProductAdInfo"
    },
    "GoogleAdsGoogleadsV23Resources__AdGroupCriterion": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__AdGroupCriterion",
      "properties": {
        "placement": {
          "$ref": "GoogleAdsGoogleadsV23Common__PlacementInfo",
          "description": "Immutable. Placement."
        },
        "criterionId": {
          "type": "string",
          "description": "Output only. The ID of the criterion. This field is ignored for mutates.",
          "readOnly": true,
          "format": "int64"
        },
        "approvalStatus": {
          "description": "Output only. Approval status of the criterion.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Approved.",
            "Disapproved.",
            "Pending Review.",
            "Under review."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "APPROVED",
            "DISAPPROVED",
            "PENDING_REVIEW",
            "UNDER_REVIEW"
          ]
        },
        "audience": {
          "description": "Immutable. Audience.",
          "$ref": "GoogleAdsGoogleadsV23Common__AudienceInfo"
        },
        "incomeRange": {
          "description": "Immutable. Income range.",
          "$ref": "GoogleAdsGoogleadsV23Common__IncomeRangeInfo"
        },
        "cpvBidMicros": {
          "type": "string",
          "format": "int64",
          "description": "The CPV (cost-per-view) bid."
        },
        "cpcBidMicros": {
          "description": "The CPC (cost-per-click) bid.",
          "format": "int64",
          "type": "string"
        },
        "language": {
          "description": "Immutable. Language.",
          "$ref": "GoogleAdsGoogleadsV23Common__LanguageInfo"
        },
        "labels": {
          "type": "array",
          "readOnly": true,
          "items": {
            "type": "string"
          },
          "description": "Output only. The resource names of labels attached to this ad group criterion."
        },
        "listingGroup": {
          "$ref": "GoogleAdsGoogleadsV23Common__ListingGroupInfo",
          "description": "Immutable. Listing group."
        },
        "percentCpcBidMicros": {
          "type": "string",
          "format": "int64",
          "description": "The CPC bid amount, expressed as a fraction of the advertised price for some good or service. The valid range for the fraction is [0,1) and the value stored here is 1,000,000 * [fraction]."
        },
        "bidModifier": {
          "type": "number",
          "format": "double",
          "description": "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."
        },
        "extendedDemographic": {
          "$ref": "GoogleAdsGoogleadsV23Common__ExtendedDemographicInfo",
          "description": "Immutable. Extended demographic criterion."
        },
        "cpmBidMicros": {
          "description": "The CPM (cost-per-thousand viewable impressions) bid.",
          "format": "int64",
          "type": "string"
        },
        "qualityInfo": {
          "description": "Output only. Information regarding the quality of the criterion.",
          "$ref": "GoogleAdsGoogleadsV23Resources_AdGroupCriterion_QualityInfo",
          "readOnly": true
        },
        "effectiveCpmBidSource": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CAMPAIGN_BIDDING_STRATEGY",
            "AD_GROUP",
            "AD_GROUP_CRITERION"
          ],
          "readOnly": true,
          "description": "Output only. Source of the effective CPM bid.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Effective bid or target is inherited from campaign bidding strategy.",
            "The bid or target is defined on the ad group.",
            "The bid or target is defined on the ad group criterion."
          ]
        },
        "mobileAppCategory": {
          "description": "Immutable. Mobile app category.",
          "$ref": "GoogleAdsGoogleadsV23Common__MobileAppCategoryInfo"
        },
        "customIntent": {
          "description": "Immutable. Custom Intent.",
          "$ref": "GoogleAdsGoogleadsV23Common__CustomIntentInfo"
        },
        "trackingUrlTemplate": {
          "type": "string",
          "description": "The URL template for constructing a tracking URL."
        },
        "topic": {
          "description": "Immutable. Topic.",
          "$ref": "GoogleAdsGoogleadsV23Common__TopicInfo"
        },
        "parentalStatus": {
          "description": "Immutable. Parental status.",
          "$ref": "GoogleAdsGoogleadsV23Common__ParentalStatusInfo"
        },
        "effectivePercentCpcBidMicros": {
          "description": "Output only. The effective Percent CPC bid amount.",
          "type": "string",
          "readOnly": true,
          "format": "int64"
        },
        "lifeEvent": {
          "description": "Immutable. Life event campaign criterion.",
          "$ref": "GoogleAdsGoogleadsV23Common__LifeEventInfo"
        },
        "effectiveCpcBidMicros": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The effective CPC (cost-per-click) bid.",
          "format": "int64"
        },
        "location": {
          "description": "Immutable. Location.",
          "$ref": "GoogleAdsGoogleadsV23Common__LocationInfo"
        },
        "negative": {
          "type": "boolean",
          "description": "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."
        },
        "gender": {
          "description": "Immutable. Gender.",
          "$ref": "GoogleAdsGoogleadsV23Common__GenderInfo"
        },
        "combinedAudience": {
          "$ref": "GoogleAdsGoogleadsV23Common__CombinedAudienceInfo",
          "description": "Immutable. Combined Audience."
        },
        "userList": {
          "$ref": "GoogleAdsGoogleadsV23Common__UserListInfo",
          "description": "Immutable. User List."
        },
        "systemServingStatus": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ELIGIBLE",
            "RARELY_SERVED"
          ],
          "description": "Output only. Serving status of the criterion.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Eligible.",
            "Low search volume."
          ],
          "readOnly": true
        },
        "type": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "KEYWORD",
            "PLACEMENT",
            "MOBILE_APP_CATEGORY",
            "MOBILE_APPLICATION",
            "DEVICE",
            "LOCATION",
            "LISTING_GROUP",
            "AD_SCHEDULE",
            "AGE_RANGE",
            "GENDER",
            "INCOME_RANGE",
            "PARENTAL_STATUS",
            "YOUTUBE_VIDEO",
            "YOUTUBE_CHANNEL",
            "USER_LIST",
            "PROXIMITY",
            "TOPIC",
            "LISTING_SCOPE",
            "LANGUAGE",
            "IP_BLOCK",
            "CONTENT_LABEL",
            "CARRIER",
            "USER_INTEREST",
            "WEBPAGE",
            "OPERATING_SYSTEM_VERSION",
            "APP_PAYMENT_MODEL",
            "MOBILE_DEVICE",
            "CUSTOM_AFFINITY",
            "CUSTOM_INTENT",
            "LOCATION_GROUP",
            "CUSTOM_AUDIENCE",
            "COMBINED_AUDIENCE",
            "KEYWORD_THEME",
            "AUDIENCE",
            "NEGATIVE_KEYWORD_LIST",
            "LOCAL_SERVICE_ID",
            "SEARCH_THEME",
            "BRAND",
            "BRAND_LIST",
            "LIFE_EVENT",
            "WEBPAGE_LIST",
            "VIDEO_LINEUP",
            "PLACEMENT_LIST",
            "VERTICAL_ADS_ITEM_GROUP_RULE_LIST",
            "VERTICAL_ADS_ITEM_GROUP_RULE"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Keyword, for example, 'mars cruise'.",
            "Placement, also known as Website, for example, 'www.flowers4sale.com'",
            "Mobile application categories to target.",
            "Mobile applications to target.",
            "Devices to target.",
            "Locations to target.",
            "Listing groups to target.",
            "Ad Schedule.",
            "Age range.",
            "Gender.",
            "Income Range.",
            "Parental status.",
            "YouTube Video.",
            "YouTube Channel.",
            "User list.",
            "Proximity.",
            "A topic target on the display network (for example, \"Pets & Animals\").",
            "Listing scope to target.",
            "Language.",
            "IpBlock.",
            "Content Label for category exclusion.",
            "Carrier.",
            "A category the user is interested in.",
            "Webpage criterion for dynamic search ads.",
            "Operating system version.",
            "App payment model.",
            "Mobile device.",
            "Custom affinity.",
            "Custom intent.",
            "Location group.",
            "Custom audience",
            "Combined audience",
            "Smart Campaign keyword theme",
            "Audience",
            "Negative Keyword List",
            "Local Services Ads Service ID.",
            "Search Theme.",
            "Brand",
            "Brand List",
            "Life Event",
            "Webpage List",
            "Video lineup",
            "Placement List",
            "A list of rules for item groups in Vertical Ads.",
            "A rule for an item group in Vertical Ads."
          ],
          "readOnly": true,
          "description": "Output only. The type of the criterion."
        },
        "verticalAdsItemGroupRuleList": {
          "description": "Immutable. Vertical ads item group rule list criterion.",
          "$ref": "GoogleAdsGoogleadsV23Common__VerticalAdsItemGroupRuleListInfo"
        },
        "resourceName": {
          "description": "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}`",
          "type": "string"
        },
        "appPaymentModel": {
          "$ref": "GoogleAdsGoogleadsV23Common__AppPaymentModelInfo",
          "description": "Immutable. App Payment Model."
        },
        "videoLineup": {
          "$ref": "GoogleAdsGoogleadsV23Common__VideoLineupInfo",
          "description": "Immutable. Video lineup criterion."
        },
        "userInterest": {
          "$ref": "GoogleAdsGoogleadsV23Common__UserInterestInfo",
          "description": "Immutable. User Interest."
        },
        "customAudience": {
          "$ref": "GoogleAdsGoogleadsV23Common__CustomAudienceInfo",
          "description": "Immutable. Custom Audience."
        },
        "youtubeVideo": {
          "description": "Immutable. YouTube Video.",
          "$ref": "GoogleAdsGoogleadsV23Common__YouTubeVideoInfo"
        },
        "ageRange": {
          "description": "Immutable. Age range.",
          "$ref": "GoogleAdsGoogleadsV23Common__AgeRangeInfo"
        },
        "effectiveCpcBidSource": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CAMPAIGN_BIDDING_STRATEGY",
            "AD_GROUP",
            "AD_GROUP_CRITERION"
          ],
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Effective bid or target is inherited from campaign bidding strategy.",
            "The bid or target is defined on the ad group.",
            "The bid or target is defined on the ad group criterion."
          ],
          "description": "Output only. Source of the effective CPC bid."
        },
        "youtubeChannel": {
          "$ref": "GoogleAdsGoogleadsV23Common__YouTubeChannelInfo",
          "description": "Immutable. YouTube Channel."
        },
        "finalUrlSuffix": {
          "type": "string",
          "description": "URL template for appending params to final URL."
        },
        "finalUrls": {
          "items": {
            "type": "string"
          },
          "description": "The list of possible final URLs after all cross-domain redirects for the ad.",
          "type": "array"
        },
        "webpage": {
          "description": "Immutable. Webpage",
          "$ref": "GoogleAdsGoogleadsV23Common__WebpageInfo"
        },
        "effectivePercentCpcBidSource": {
          "readOnly": true,
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CAMPAIGN_BIDDING_STRATEGY",
            "AD_GROUP",
            "AD_GROUP_CRITERION"
          ],
          "description": "Output only. Source of the effective Percent CPC bid.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Effective bid or target is inherited from campaign bidding strategy.",
            "The bid or target is defined on the ad group.",
            "The bid or target is defined on the ad group criterion."
          ]
        },
        "positionEstimates": {
          "readOnly": true,
          "description": "Output only. Estimates for criterion bids at various positions.",
          "$ref": "GoogleAdsGoogleadsV23Resources_AdGroupCriterion_PositionEstimates"
        },
        "displayName": {
          "description": "Output only. The display name of the criterion. This field is ignored for mutates.",
          "type": "string",
          "readOnly": true
        },
        "brandList": {
          "description": "Immutable. Brand list criterion.",
          "$ref": "GoogleAdsGoogleadsV23Common__BrandListInfo"
        },
        "primaryStatusReasons": {
          "description": "Output only. The primary status reasons for the ad group criterion.",
          "readOnly": true,
          "items": {
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents unknown value in this version.",
              "The user-specified time for this campaign to start is in the future. Contributes to AdGroupCriterionPrimaryStatus.PENDING.",
              "The ad group criterion is overridden by negative campaign criterion. Contributes to AdGroupCriterionPrimaryStatus.NOT_ELIGIBLE.",
              "The user-specified campaign status is paused. Contributes to AdGroupCriterionPrimaryStatus.PAUSED.",
              "The user-specified campaign status is removed. Contributes to AdGroupCriterionPrimaryStatus.REMOVED.",
              "The user-specified time for this campaign to end has passed. Contributes to AdGroupCriterionPrimaryStatus.ENDED.",
              "The user-specified ad group status is paused. Contributes to AdGroupCriterionPrimaryStatus.PAUSED.",
              "The user-specified ad group status is removed. Contributes to AdGroupCriterionPrimaryStatus.REMOVED.",
              "The ad group criterion is disapproved by the ads approval system. Contributes to AdGroupCriterionPrimaryStatus.NOT_ELIGIBLE.",
              "The ad group criterion is rarely served. Contributes to AdGroupCriterionPrimaryStatus.NOT_ELIGIBLE.",
              "The ad group criterion has a low quality score. Contributes to AdGroupCriterionPrimaryStatus.LIMITED.",
              "The ad group criterion is under review. Contributes to AdGroupCriterionPrimaryStatus.PENDING.",
              "The ad group criterion is pending review. Contributes to AdGroupCriterionPrimaryStatus.NOT_ELIGIBLE.",
              "The ad group criterion's bid is below the value necessary to serve on the first page. Contributes to AdGroupCriterionPrimaryStatus.LIMITED.",
              "The ad group criterion is negative. Contributes to AdGroupCriterionPrimaryStatus.NOT_ELIGIBLE.",
              "The ad group criterion is restricted. Contributes to AdGroupCriterionPrimaryStatus.NOT_ELIGIBLE.",
              "The user-specified ad group criterion status is paused. Contributes to AdGroupCriterionPrimaryStatus.PAUSED.",
              "The ad group criterion has been paused due to prolonged low activity in serving. Contributes to AdGroupCriterionPrimaryStatus.PAUSED.",
              "The user-specified ad group criterion status is removed. Contributes to AdGroupCriterionPrimaryStatus.REMOVED."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "CAMPAIGN_PENDING",
              "CAMPAIGN_CRITERION_NEGATIVE",
              "CAMPAIGN_PAUSED",
              "CAMPAIGN_REMOVED",
              "CAMPAIGN_ENDED",
              "AD_GROUP_PAUSED",
              "AD_GROUP_REMOVED",
              "AD_GROUP_CRITERION_DISAPPROVED",
              "AD_GROUP_CRITERION_RARELY_SERVED",
              "AD_GROUP_CRITERION_LOW_QUALITY",
              "AD_GROUP_CRITERION_UNDER_REVIEW",
              "AD_GROUP_CRITERION_PENDING_REVIEW",
              "AD_GROUP_CRITERION_BELOW_FIRST_PAGE_BID",
              "AD_GROUP_CRITERION_NEGATIVE",
              "AD_GROUP_CRITERION_RESTRICTED",
              "AD_GROUP_CRITERION_PAUSED",
              "AD_GROUP_CRITERION_PAUSED_DUE_TO_LOW_ACTIVITY",
              "AD_GROUP_CRITERION_REMOVED"
            ],
            "type": "string"
          },
          "type": "array"
        },
        "keyword": {
          "description": "Immutable. Keyword.",
          "$ref": "GoogleAdsGoogleadsV23Common__KeywordInfo"
        },
        "disapprovalReasons": {
          "readOnly": true,
          "items": {
            "type": "string"
          },
          "description": "Output only. List of disapproval reasons of the criterion. The different reasons for disapproving a criterion can be found here: https://support.google.com/adspolicy/answer/6008942 This field is read-only.",
          "type": "array"
        },
        "effectiveCpvBidSource": {
          "description": "Output only. Source of the effective CPV bid.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CAMPAIGN_BIDDING_STRATEGY",
            "AD_GROUP",
            "AD_GROUP_CRITERION"
          ],
          "type": "string",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Effective bid or target is inherited from campaign bidding strategy.",
            "The bid or target is defined on the ad group.",
            "The bid or target is defined on the ad group criterion."
          ]
        },
        "status": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "PAUSED",
            "REMOVED"
          ],
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The ad group criterion is enabled.",
            "The ad group criterion is paused.",
            "The ad group criterion is removed."
          ],
          "type": "string",
          "description": "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."
        },
        "effectiveCpvBidMicros": {
          "readOnly": true,
          "description": "Output only. The effective CPV (cost-per-view) bid.",
          "format": "int64",
          "type": "string"
        },
        "effectiveCpmBidMicros": {
          "readOnly": true,
          "description": "Output only. The effective CPM (cost-per-thousand viewable impressions) bid.",
          "format": "int64",
          "type": "string"
        },
        "urlCustomParameters": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__CustomParameter"
          },
          "description": "The list of mappings used to substitute custom parameter tags in a `tracking_url_template`, `final_urls`, or `mobile_final_urls`.",
          "type": "array"
        },
        "adGroup": {
          "type": "string",
          "description": "Immutable. The ad group to which the criterion belongs."
        },
        "finalMobileUrls": {
          "type": "array",
          "description": "The list of possible final mobile URLs after all cross-domain redirects.",
          "items": {
            "type": "string"
          }
        },
        "customAffinity": {
          "$ref": "GoogleAdsGoogleadsV23Common__CustomAffinityInfo",
          "description": "Immutable. Custom Affinity."
        },
        "primaryStatus": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The ad group criterion is eligible to serve.",
            "The ad group criterion is paused.",
            "The ad group criterion is removed.",
            "The ad group criterion is pending.",
            "The ad group criterion is not eligible to serve."
          ],
          "description": "Output only. The primary status for the ad group criterion.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ELIGIBLE",
            "PAUSED",
            "REMOVED",
            "PENDING",
            "NOT_ELIGIBLE"
          ],
          "readOnly": true
        },
        "mobileApplication": {
          "$ref": "GoogleAdsGoogleadsV23Common__MobileApplicationInfo",
          "description": "Immutable. Mobile application."
        }
      },
      "description": "An ad group criterion. The ad_group_criterion report only returns criteria that were explicitly added to the ad group."
    },
    "GoogleAdsGoogleadsV23Resources__CustomerLifecycleGoal": {
      "description": "Account level customer lifecycle goal settings.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__CustomerLifecycleGoal",
      "properties": {
        "ownerCustomer": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The resource name of the customer which owns the lifecycle goal."
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the customer lifecycle goal. Customer lifecycle resource names have the form: `customers/{customer_id}/customerLifecycleGoal`"
        },
        "customerAcquisitionGoalValueSettings": {
          "readOnly": true,
          "description": "Output only. Customer acquisition goal customer level value settings.",
          "$ref": "GoogleAdsGoogleadsV23Common__LifecycleGoalValueSettings"
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__AppliedIncentive": {
      "id": "GoogleAdsGoogleadsV23Resources__AppliedIncentive",
      "description": "Represents an applied incentive.",
      "properties": {
        "redemptionDateTime": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The redemption time of the incentive in \"YYYY-MM-DD HH:MM:SS\" format in UTC."
        },
        "incentiveState": {
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The incentive has been redeemed but the requirements are not yet met.",
            "The incentive's requirements have been met but the reward has not yet been granted.",
            "The reward for the incentive has been granted.",
            "The incentive expired before the requirements were met.",
            "The granted reward has expired.",
            "The incentive was marked as invalid after redemption.",
            "The granted reward has been fully used."
          ],
          "description": "Output only. The current state of the incentive.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "REDEEMED",
            "FULFILLED",
            "REWARD_GRANTED",
            "EXPIRED",
            "REWARD_EXPIRED",
            "INVALIDATED",
            "REWARD_EXHAUSTED"
          ]
        },
        "grantedAmountMicros": {
          "readOnly": true,
          "description": "Output only. The amount of the reward granted in micros. This field is not set if the reward has not been granted.",
          "type": "string",
          "format": "int64"
        },
        "currentSpendTowardsFulfillmentMicros": {
          "type": "string",
          "format": "int64",
          "description": "Output only. The current amount spent towards the fulfillment requirements, in micros.",
          "readOnly": true
        },
        "fulfillmentExpirationDateTime": {
          "readOnly": true,
          "description": "Output only. The time by which the incentive's fulfillment requirements must be met, in \"YYYY-MM-DD HH:MM:SS\" format in UTC.",
          "type": "string"
        },
        "currencyCode": {
          "description": "Output only. The currency code for all monetary amounts (for example, \"USD\").",
          "readOnly": true,
          "type": "string"
        },
        "rewardExpirationDateTime": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The time when the granted reward expires in \"YYYY-MM-DD HH:MM:SS\" format in UTC. This field is not set if the reward has not been granted."
        },
        "requiredMinSpendMicros": {
          "readOnly": true,
          "format": "int64",
          "type": "string",
          "description": "Output only. The minimum amount that must be spent to fulfill the coupon requirements, in micros."
        },
        "rewardBalanceRemainingMicros": {
          "format": "int64",
          "description": "Output only. The remaining balance of the granted reward in micros. This field is not set if the reward has not been granted.",
          "readOnly": true,
          "type": "string"
        },
        "rewardAmountMicros": {
          "description": "Output only. The maximum potential reward amount in micros for the incentive.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "resourceName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the incentive. Incentive resource names have the form: `customers/{customer_id}/appliedIncentives/{coupon_code}`"
        },
        "couponCode": {
          "readOnly": true,
          "description": "Output only. The coupon code of the incentive.",
          "type": "string"
        },
        "rewardGrantDateTime": {
          "readOnly": true,
          "description": "Output only. The time when the reward was granted in \"YYYY-MM-DD HH:MM:SS\" format in UTC. This field is not set if the reward has not been granted.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources_BillingSetup_PaymentsAccountInfo": {
      "description": "Container of payments account information for this billing.",
      "properties": {
        "paymentsAccountId": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. A 16 digit id used to identify the payments account associated with the billing setup. This must be passed as a string with dashes, for example, \"1234-5678-9012-3456\"."
        },
        "paymentsProfileId": {
          "type": "string",
          "description": "Immutable. A 12 digit id used to identify the payments profile associated with the billing setup. This must be passed in as a string with dashes, for example, \"1234-5678-9012\"."
        },
        "secondaryPaymentsProfileId": {
          "description": "Output only. A secondary payments profile id present in uncommon situations, for example, when a sequential liability agreement has been arranged.",
          "readOnly": true,
          "type": "string"
        },
        "paymentsProfileName": {
          "description": "Output only. The name of the payments profile associated with the billing setup.",
          "type": "string",
          "readOnly": true
        },
        "paymentsAccountName": {
          "description": "Immutable. The name of the payments account associated with the billing setup. This enables the user to specify a meaningful name for a payments account to aid in reconciling monthly invoices. This name will be printed in the monthly invoices.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources_BillingSetup_PaymentsAccountInfo"
    },
    "GoogleAdsGoogleadsV23Services__MutateCustomerClientLinkRequest": {
      "type": "object",
      "description": "Request message for CustomerClientLinkService.MutateCustomerClientLink.",
      "id": "GoogleAdsGoogleadsV23Services__MutateCustomerClientLinkRequest",
      "properties": {
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "operation": {
          "description": "Required. The operation to perform on the individual CustomerClientLink.",
          "$ref": "GoogleAdsGoogleadsV23Services__CustomerClientLinkOperation"
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__UserList": {
      "id": "GoogleAdsGoogleadsV23Resources__UserList",
      "description": "A user list. This is a list of users a customer may target.",
      "type": "object",
      "properties": {
        "name": {
          "description": "Name of this user list. Depending on its access_reason, the user list name may not be unique (for example, if access_reason=SHARED)",
          "type": "string"
        },
        "closingReason": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The userlist was closed because of not being used for over one year."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "UNUSED"
          ],
          "description": "Indicating the reason why this user list membership status is closed. It is only populated on lists that were automatically closed due to inactivity, and will be cleared once the list membership status becomes open.",
          "type": "string"
        },
        "sizeRangeForDisplay": {
          "readOnly": true,
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "LESS_THAN_FIVE_HUNDRED",
            "LESS_THAN_ONE_THOUSAND",
            "ONE_THOUSAND_TO_TEN_THOUSAND",
            "TEN_THOUSAND_TO_FIFTY_THOUSAND",
            "FIFTY_THOUSAND_TO_ONE_HUNDRED_THOUSAND",
            "ONE_HUNDRED_THOUSAND_TO_THREE_HUNDRED_THOUSAND",
            "THREE_HUNDRED_THOUSAND_TO_FIVE_HUNDRED_THOUSAND",
            "FIVE_HUNDRED_THOUSAND_TO_ONE_MILLION",
            "ONE_MILLION_TO_TWO_MILLION",
            "TWO_MILLION_TO_THREE_MILLION",
            "THREE_MILLION_TO_FIVE_MILLION",
            "FIVE_MILLION_TO_TEN_MILLION",
            "TEN_MILLION_TO_TWENTY_MILLION",
            "TWENTY_MILLION_TO_THIRTY_MILLION",
            "THIRTY_MILLION_TO_FIFTY_MILLION",
            "OVER_FIFTY_MILLION"
          ],
          "description": "Output only. Size range in terms of number of users of the UserList, on the Google Display Network. This field is read-only.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "User list has less than 500 users.",
            "User list has number of users in range of 500 to 1000.",
            "User list has number of users in range of 1000 to 10000.",
            "User list has number of users in range of 10000 to 50000.",
            "User list has number of users in range of 50000 to 100000.",
            "User list has number of users in range of 100000 to 300000.",
            "User list has number of users in range of 300000 to 500000.",
            "User list has number of users in range of 500000 to 1 million.",
            "User list has number of users in range of 1 to 2 millions.",
            "User list has number of users in range of 2 to 3 millions.",
            "User list has number of users in range of 3 to 5 millions.",
            "User list has number of users in range of 5 to 10 millions.",
            "User list has number of users in range of 10 to 20 millions.",
            "User list has number of users in range of 20 to 30 millions.",
            "User list has number of users in range of 30 to 50 millions.",
            "User list has over 50 million users."
          ]
        },
        "lookalikeUserList": {
          "$ref": "GoogleAdsGoogleadsV23Common__LookalikeUserListInfo",
          "description": "Immutable. Lookalike User List."
        },
        "membershipStatus": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "OPEN",
            "CLOSED"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Open status - List is accruing members and can be targeted to.",
            "Closed status - No new members being added. Cannot be used for targeting."
          ],
          "type": "string",
          "description": "Membership status of this user list. Indicates whether a user list is open or active. Only open user lists can accumulate more users and can be targeted to."
        },
        "sizeForDisplay": {
          "type": "string",
          "description": "Output only. Estimated number of users in this user list, on the Google Display Network. This value is null if the number of users has not yet been determined. This field is read-only.",
          "readOnly": true,
          "format": "int64"
        },
        "readOnly": {
          "readOnly": true,
          "type": "boolean",
          "description": "Output only. An option that indicates if a user may edit a list. Depends on the list ownership and list type. For example, external remarketing user lists are not editable. This field is read-only."
        },
        "membershipLifeSpan": {
          "type": "string",
          "description": "Number of days a user's cookie stays on your list since its most recent addition to the list. This field must be between 0 and 540 inclusive. However, for CRM based userlists, this field can be set to 10000 which means no expiration. Beginning on April 7, 2025, using a value of 10000 to indicate no expiration will no longer be supported. This field is ignored for logical_user_list and rule_based_user_list types. Membership to lists of these types depends on the rules defined by the lists.",
          "format": "int64"
        },
        "logicalUserList": {
          "$ref": "GoogleAdsGoogleadsV23Common__LogicalUserListInfo",
          "description": "User list that is a custom combination of user lists and user interests."
        },
        "sizeForSearch": {
          "type": "string",
          "description": "Output only. Estimated number of users in this user list in the google.com domain. These are the users available for targeting in Search campaigns. This value is null if the number of users has not yet been determined. This field is read-only.",
          "format": "int64",
          "readOnly": true
        },
        "sizeRangeForSearch": {
          "description": "Output only. Size range in terms of number of users of the UserList, for Search ads. This field is read-only.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "User list has less than 500 users.",
            "User list has number of users in range of 500 to 1000.",
            "User list has number of users in range of 1000 to 10000.",
            "User list has number of users in range of 10000 to 50000.",
            "User list has number of users in range of 50000 to 100000.",
            "User list has number of users in range of 100000 to 300000.",
            "User list has number of users in range of 300000 to 500000.",
            "User list has number of users in range of 500000 to 1 million.",
            "User list has number of users in range of 1 to 2 millions.",
            "User list has number of users in range of 2 to 3 millions.",
            "User list has number of users in range of 3 to 5 millions.",
            "User list has number of users in range of 5 to 10 millions.",
            "User list has number of users in range of 10 to 20 millions.",
            "User list has number of users in range of 20 to 30 millions.",
            "User list has number of users in range of 30 to 50 millions.",
            "User list has over 50 million users."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "LESS_THAN_FIVE_HUNDRED",
            "LESS_THAN_ONE_THOUSAND",
            "ONE_THOUSAND_TO_TEN_THOUSAND",
            "TEN_THOUSAND_TO_FIFTY_THOUSAND",
            "FIFTY_THOUSAND_TO_ONE_HUNDRED_THOUSAND",
            "ONE_HUNDRED_THOUSAND_TO_THREE_HUNDRED_THOUSAND",
            "THREE_HUNDRED_THOUSAND_TO_FIVE_HUNDRED_THOUSAND",
            "FIVE_HUNDRED_THOUSAND_TO_ONE_MILLION",
            "ONE_MILLION_TO_TWO_MILLION",
            "TWO_MILLION_TO_THREE_MILLION",
            "THREE_MILLION_TO_FIVE_MILLION",
            "FIVE_MILLION_TO_TEN_MILLION",
            "TEN_MILLION_TO_TWENTY_MILLION",
            "TWENTY_MILLION_TO_THIRTY_MILLION",
            "THIRTY_MILLION_TO_FIFTY_MILLION",
            "OVER_FIFTY_MILLION"
          ],
          "type": "string",
          "readOnly": true
        },
        "accessReason": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "OWNED",
            "SHARED",
            "LICENSED",
            "SUBSCRIBED",
            "AFFILIATED"
          ],
          "readOnly": true,
          "description": "Output only. Indicates the reason this account has been granted access to the list. The reason can be SHARED, OWNED, LICENSED or SUBSCRIBED. This field is read-only.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The resource is owned by the user.",
            "The resource is shared to the user.",
            "The resource is licensed to the user.",
            "The user subscribed to the resource.",
            "The resource is accessible to the user."
          ]
        },
        "id": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. Id of the user list.",
          "format": "int64"
        },
        "accountUserListStatus": {
          "description": "Indicates if this share is still enabled. When a UserList is shared with the user this field is set to ENABLED. Later the userList owner can decide to revoke the share and make it DISABLED. The default value of this field is set to ENABLED.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The access is enabled.",
            "The access is disabled."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "DISABLED"
          ]
        },
        "crmBasedUserList": {
          "description": "User list of CRM users provided by the advertiser.",
          "$ref": "GoogleAdsGoogleadsV23Common__CrmBasedUserListInfo"
        },
        "eligibleForDisplay": {
          "type": "boolean",
          "description": "Output only. Indicates this user list is eligible for Google Display Network. This field is read-only.",
          "readOnly": true
        },
        "type": {
          "description": "Output only. Type of this list. This field is read-only.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "REMARKETING",
            "LOGICAL",
            "EXTERNAL_REMARKETING",
            "RULE_BASED",
            "SIMILAR",
            "CRM_BASED",
            "LOOKALIKE"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "UserList represented as a collection of conversion types.",
            "UserList represented as a combination of other user lists/interests.",
            "UserList created in the Google Ad Manager platform.",
            "UserList associated with a rule.",
            "UserList with users similar to users of another UserList.",
            "UserList of first-party CRM data provided by advertiser in the form of emails or other formats.",
            "LookalikeUserlist, composed of users similar to those of a configurable seed (set of UserLists)"
          ],
          "readOnly": true
        },
        "eligibleForSearch": {
          "description": "Indicates if this user list is eligible for Google Search Network.",
          "type": "boolean"
        },
        "description": {
          "type": "string",
          "description": "Description of this user list."
        },
        "ruleBasedUserList": {
          "$ref": "GoogleAdsGoogleadsV23Common__RuleBasedUserListInfo",
          "description": "User list generated by a rule."
        },
        "similarUserList": {
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV23Common__SimilarUserListInfo",
          "description": "Output only. User list which are similar to users from another UserList. These lists are readonly and automatically created by google."
        },
        "resourceName": {
          "description": "Immutable. The resource name of the user list. User list resource names have the form: `customers/{customer_id}/userLists/{user_list_id}`",
          "type": "string"
        },
        "basicUserList": {
          "description": "User list targeting as a collection of conversion or remarketing actions.",
          "$ref": "GoogleAdsGoogleadsV23Common__BasicUserListInfo"
        },
        "integrationCode": {
          "type": "string",
          "description": "An ID from external system. It is used by user list sellers to correlate IDs on their systems."
        },
        "matchRatePercentage": {
          "type": "integer",
          "readOnly": true,
          "format": "int32",
          "description": "Output only. Indicates match rate for Customer Match lists. The range of this field is [0-100]. This will be null for other list types or when it's not possible to calculate the match rate. This field is read-only."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateKeywordPlansResult": {
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateKeywordPlansResult",
      "description": "The result for the keyword plan mutate."
    },
    "GoogleAdsGoogleadsV23Services__MutateRecommendationSubscriptionResult": {
      "description": "Result message for RecommendationSubscriptionService.MutateRecommendationSubscription",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateRecommendationSubscriptionResult",
      "properties": {
        "resourceName": {
          "description": "Resource name of the subscription that was modified.",
          "type": "string"
        },
        "recommendationSubscription": {
          "description": "The mutated recommendation subscription with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV23Resources__RecommendationSubscription"
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__VideoOutstreamAdInfo": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__VideoOutstreamAdInfo",
      "description": "Representation of video out-stream ad format (ad shown alongside a feed with automatic playback, without sound).",
      "properties": {
        "headline": {
          "type": "string",
          "description": "The headline of the ad."
        },
        "description": {
          "description": "The description line.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__GoogleAdsIdentifier": {
      "type": "object",
      "description": "The identifier for Google Ads account.",
      "id": "GoogleAdsGoogleadsV23Resources__GoogleAdsIdentifier",
      "properties": {
        "customer": {
          "description": "Immutable. The resource name of the Google Ads account. This field is required and should not be empty when creating a new Google Ads link. It is unable to be modified after the creation of the link.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__AdOperation": {
      "id": "GoogleAdsGoogleadsV23Services__AdOperation",
      "type": "object",
      "properties": {
        "update": {
          "$ref": "GoogleAdsGoogleadsV23Resources__Ad",
          "description": "Update operation: The ad is expected to have a valid resource name in this format: `customers/{customer_id}/ads/{ad_id}`"
        },
        "updateMask": {
          "format": "google-fieldmask",
          "type": "string",
          "description": "FieldMask that determines which resource fields are modified in an update."
        },
        "policyValidationParameter": {
          "$ref": "GoogleAdsGoogleadsV23Common__PolicyValidationParameter",
          "description": "Configuration for how policies are validated."
        }
      },
      "description": "A single update operation on an ad."
    },
    "GoogleAdsGoogleadsV23Services__MutateCustomerAssetResult": {
      "id": "GoogleAdsGoogleadsV23Services__MutateCustomerAssetResult",
      "description": "The result for the customer asset mutate.",
      "type": "object",
      "properties": {
        "customerAsset": {
          "description": "The mutated customer asset with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV23Resources__CustomerAsset"
        },
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateCampaignAssetSetResult": {
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        },
        "campaignAssetSet": {
          "$ref": "GoogleAdsGoogleadsV23Resources__CampaignAssetSet",
          "description": "The mutated campaign asset set with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\"."
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateCampaignAssetSetResult",
      "description": "The result for the campaign asset set mutate."
    },
    "GoogleAdsGoogleadsV23Services__GenerateSuggestedTargetingInsightsRequest": {
      "properties": {
        "insightsApplicationInfo": {
          "description": "Optional. Additional information on the application issuing the request.",
          "$ref": "GoogleAdsGoogleadsV23Common__AdditionalApplicationInfo"
        },
        "audienceDescription": {
          "$ref": "GoogleAdsGoogleadsV23Services__InsightsAudienceDescription",
          "description": "Provide a text description of an audience to get AI-generated targeting suggestions. This can take around 5 or more seconds to complete. Supported marketing objectives are: AWARENESS and CONSIDERATION. Supported dimensions are: AGE_RANGE, GENDER, PARENTAL_STATUS, AFFINITY_USER_INTEREST, IN_MARKET_USER_INTEREST and LIFE_EVENT_USER_INTEREST."
        },
        "customerInsightsGroup": {
          "description": "Optional. The name of the customer being planned for. This is a user-defined value.",
          "type": "string"
        },
        "audienceDefinition": {
          "description": "Provide a seed audience to get suggestions for.",
          "$ref": "GoogleAdsGoogleadsV23Services__InsightsAudienceDefinition"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__GenerateSuggestedTargetingInsightsRequest",
      "description": "Request message for AudienceInsightsService.GenerateSuggestedTargetingInsights."
    },
    "GoogleAdsGoogleadsV23Services__MutateCampaignBidModifierResult": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateCampaignBidModifierResult",
      "properties": {
        "campaignBidModifier": {
          "description": "The mutated campaign bid modifier with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV23Resources__CampaignBidModifier"
        },
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      },
      "description": "The result for the criterion mutate."
    },
    "GoogleAdsGoogleadsV23Services__CustomerOperation": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__CustomerOperation",
      "properties": {
        "updateMask": {
          "type": "string",
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask"
        },
        "update": {
          "description": "Mutate operation. Only updates are supported for customer.",
          "$ref": "GoogleAdsGoogleadsV23Resources__Customer"
        }
      },
      "description": "A single update on a customer."
    },
    "GoogleAdsGoogleadsV23Resources__Label": {
      "id": "GoogleAdsGoogleadsV23Resources__Label",
      "type": "object",
      "description": "A label.",
      "properties": {
        "id": {
          "description": "Output only. ID of the label. Read only.",
          "format": "int64",
          "readOnly": true,
          "type": "string"
        },
        "name": {
          "description": "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.",
          "type": "string"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. Name of the resource. Label resource names have the form: `customers/{customer_id}/labels/{label_id}`"
        },
        "textLabel": {
          "description": "A type of label displaying text on a colored background.",
          "$ref": "GoogleAdsGoogleadsV23Common__TextLabel"
        },
        "status": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "description": "Output only. Status of the label. Read only.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Label is enabled.",
            "Label is removed."
          ],
          "readOnly": true
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__YouTubeCreatorInsights": {
      "description": "A YouTube creator and the insights for this creator.",
      "id": "GoogleAdsGoogleadsV23Services__YouTubeCreatorInsights",
      "properties": {
        "creatorName": {
          "type": "string",
          "description": "The name of the creator."
        },
        "creatorChannels": {
          "description": "The list of YouTube Channels",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__YouTubeChannelInsights"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__SearchSettings": {
      "properties": {
        "returnTotalResultsCount": {
          "description": "If true, the total number of results that match the query ignoring the LIMIT clause will be included in the response. Default is false.",
          "type": "boolean"
        },
        "returnSummaryRow": {
          "description": "If true, summary row will be included in the response and sent in a response by itself after all other query results are returned. Default is false.",
          "type": "boolean"
        },
        "omitResults": {
          "type": "boolean",
          "description": "If true, results will be excluded from the response. Otherwise, results will be returned. Default is false."
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__SearchSettings",
      "type": "object",
      "description": "Indicates search settings in request parameter."
    },
    "GoogleAdsGoogleadsV23Common__AudienceInsightsLineup": {
      "id": "GoogleAdsGoogleadsV23Common__AudienceInsightsLineup",
      "description": "A YouTube Lineup.",
      "properties": {
        "lineupId": {
          "type": "string",
          "description": "Required. The numeric ID of the lineup."
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources_AssetSet_MerchantCenterFeed": {
      "properties": {
        "feedLabel": {
          "description": "Optional. Feed Label from Google Merchant Center.",
          "type": "string"
        },
        "merchantId": {
          "description": "Required. Merchant ID from Google Merchant Center",
          "format": "int64",
          "type": "string"
        }
      },
      "description": "Merchant ID and Feed Label from Google Merchant Center.",
      "id": "GoogleAdsGoogleadsV23Resources_AssetSet_MerchantCenterFeed",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__ListPlannableUserListsRequest": {
      "description": "Request message for ReachPlanService.ListPlannableUserLists that lists the available user lists for a customer.",
      "properties": {
        "reachApplicationInfo": {
          "description": "Optional. Additional information on the application issuing the request.",
          "$ref": "GoogleAdsGoogleadsV23Common__AdditionalApplicationInfo"
        },
        "customerId": {
          "type": "string",
          "description": "Required. The ID of the customer."
        },
        "customerReachGroup": {
          "description": "The name of the customer being planned for. This is a user-defined value.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__ListPlannableUserListsRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateConversionActionsResponse": {
      "description": "Response message for ConversionActionService.MutateConversionActions.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateConversionActionsResponse",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateConversionActionResult"
          },
          "description": "All results for the mutate.",
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__AssetGroupTopCombinationView": {
      "type": "object",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "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}~{asset_combination_category}\"",
          "readOnly": true
        },
        "assetGroupTopCombinations": {
          "type": "array",
          "readOnly": true,
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Resources__AssetGroupAssetCombinationData"
          },
          "description": "Output only. The top combinations of assets that served together."
        }
      },
      "description": "A view on the usage of asset group asset top combinations.",
      "id": "GoogleAdsGoogleadsV23Resources__AssetGroupTopCombinationView"
    },
    "GoogleAdsGoogleadsV23Common__CustomerThirdPartyIntegrationPartners": {
      "type": "object",
      "description": "Container for Customer level third party integration partners.",
      "properties": {
        "reachIntegrationPartners": {
          "description": "Allowed third party integration partners for reach verification.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__CustomerThirdPartyReachIntegrationPartner"
          }
        },
        "brandSafetyIntegrationPartners": {
          "description": "Allowed third party integration partners for brand safety verification.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__CustomerThirdPartyBrandSafetyIntegrationPartner"
          }
        },
        "viewabilityIntegrationPartners": {
          "description": "Allowed third party integration partners for YouTube viewability verification.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__CustomerThirdPartyViewabilityIntegrationPartner"
          },
          "type": "array"
        },
        "brandLiftIntegrationPartners": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__CustomerThirdPartyBrandLiftIntegrationPartner"
          },
          "description": "Allowed third party integration partners for Brand Lift verification.",
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__CustomerThirdPartyIntegrationPartners"
    },
    "GoogleAdsGoogleadsV23Resources__SharedSet": {
      "properties": {
        "type": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NEGATIVE_KEYWORDS",
            "NEGATIVE_PLACEMENTS",
            "ACCOUNT_LEVEL_NEGATIVE_KEYWORDS",
            "BRANDS",
            "WEBPAGES",
            "VERTICAL_ADS_ITEM_GROUP_RULE_LIST"
          ],
          "description": "Immutable. The type of this shared set: each shared set holds only a single kind of resource. Required. Immutable.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "A set of keywords that can be excluded from targeting.",
            "A set of placements that can be excluded from targeting.",
            "An account-level set of keywords that can be excluded from targeting.",
            "A set of brands can be included or excluded from targeting.",
            "A set of webpages that can be excluded from targeting. This shared set type is not publicly available.",
            "A set of vertical ads item group rules that can be included or excluded from targeting in Vertical Ads (e.g., for hotel ads)."
          ],
          "type": "string"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the shared set. Shared set resource names have the form: `customers/{customer_id}/sharedSets/{shared_set_id}`"
        },
        "name": {
          "type": "string",
          "description": "The name of this shared set. Required. Shared Sets must have names that are unique among active shared sets of the same type. The length of this string should be between 1 and 255 UTF-8 bytes, inclusive."
        },
        "referenceCount": {
          "format": "int64",
          "readOnly": true,
          "description": "Output only. The number of campaigns associated with this shared set. Read only.",
          "type": "string"
        },
        "verticalAdsItemVerticalType": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Hotels travel vertical.",
            "Vacation rentals travel vertical.",
            "Rental cars travel vertical.",
            "Events travel vertical.",
            "Things to do travel vertical.",
            "Flights travel vertical."
          ],
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HOTELS",
            "VACATION_RENTALS",
            "RENTAL_CARS",
            "EVENTS",
            "THINGS_TO_DO",
            "FLIGHTS"
          ],
          "description": "Immutable. Shared sets of type VERTICAL_ADS_ITEM_GROUP_RULE_LIST are associated with a particular vertical (e.g. hotels, things to do, flights, etc.). This field is required for shared sets of type VERTICAL_ADS_ITEM_GROUP_RULE_LIST."
        },
        "id": {
          "description": "Output only. The ID of this shared set. Read only.",
          "format": "int64",
          "type": "string",
          "readOnly": true
        },
        "status": {
          "description": "Output only. The status of this shared set. Read only.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The shared set is enabled.",
            "The shared set is removed and can no longer be used."
          ]
        },
        "memberCount": {
          "format": "int64",
          "description": "Output only. The number of shared criteria within this shared set. Read only.",
          "readOnly": true,
          "type": "string"
        }
      },
      "type": "object",
      "description": "SharedSets are used for sharing criterion exclusions across multiple campaigns.",
      "id": "GoogleAdsGoogleadsV23Resources__SharedSet"
    },
    "GoogleAdsGoogleadsV23Services__PromoteExperimentRequest": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__PromoteExperimentRequest",
      "properties": {
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        }
      },
      "description": "Request message for ExperimentService.PromoteExperiment."
    },
    "GoogleAdsGoogleadsV23Common__TransactionAttribute": {
      "properties": {
        "transactionDateTime": {
          "description": "Timestamp when transaction occurred. Required. The format is \"YYYY-MM-DD HH:MM:SS[+/-HH:MM]\", where [+/-HH:MM] is an optional timezone offset from UTC. If the offset is absent, the API will use the account's timezone as default. Examples: \"2018-03-05 09:15:00\" or \"2018-02-01 14:34:30+03:00\"",
          "type": "string"
        },
        "currencyCode": {
          "description": "Transaction currency code. ISO 4217 three-letter code is used. Required.",
          "type": "string"
        },
        "transactionAmountMicros": {
          "format": "double",
          "type": "number",
          "description": "Transaction amount in micros. Required. Transaction amount in micros needs to be greater than 1000. If item Attributes are provided, it represents the total value of the items, after multiplying the unit price per item by the quantity provided in the ItemAttributes."
        },
        "conversionAction": {
          "type": "string",
          "description": "The resource name of conversion action to report conversions to. Required."
        },
        "itemAttribute": {
          "description": "Item attributes of the transaction. Accessible only to customers on the allow-list.",
          "$ref": "GoogleAdsGoogleadsV23Common__ItemAttribute"
        },
        "customValue": {
          "description": "Value of the custom variable for each transaction. Allowed only if a custom key is provided in the store sales metadata.",
          "type": "string"
        },
        "storeAttribute": {
          "$ref": "GoogleAdsGoogleadsV23Common__StoreAttribute",
          "description": "Store attributes of the transaction."
        },
        "orderId": {
          "description": "Transaction order id. Useful to group transactions which are part of the same order.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__TransactionAttribute",
      "description": "Attribute of the store sales transaction.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources_CampaignVideoCampaignSettings_NonSkippableInStreamRestrictions": {
      "properties": {
        "maxDuration": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MAX_DURATION_FIFTEEN_SECONDS",
            "MAX_DURATION_THIRTY_SECONDS",
            "MAX_DURATION_SIXTY_SECONDS"
          ],
          "description": "The maximum allowed duration for non-skippable ads.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Indicates that non-skippable ads must be at most 15 seconds long.",
            "Indicates that non-skippable ads must be at most 30 seconds long.",
            "Indicates that non-skippable ads must be at most 60 seconds long."
          ]
        },
        "minDuration": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MIN_DURATION_FIVE_SECONDS",
            "MIN_DURATION_SEVEN_SECONDS",
            "MIN_DURATION_SIXTEEN_SECONDS",
            "MIN_DURATION_THIRTY_ONE_SECONDS"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Indicates that non-skippable ads must be at least 5 seconds long.",
            "Indicates that non-skippable ads must be at least 7 seconds long.",
            "Indicates that non-skippable ads must be at least 16 seconds long.",
            "Indicates that non-skippable ads must be at least 31 seconds long."
          ],
          "type": "string",
          "description": "The minimum allowed duration for non-skippable ads."
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources_CampaignVideoCampaignSettings_NonSkippableInStreamRestrictions",
      "description": "Restrictions for non-skippable format."
    },
    "GoogleAdsGoogleadsV23Services__GenerateTextRequest": {
      "id": "GoogleAdsGoogleadsV23Services__GenerateTextRequest",
      "description": "Request message for AssetGenerationService.GenerateText",
      "type": "object",
      "properties": {
        "keywords": {
          "description": "Optional. A freeform list of keywords that are relevant, used to inform asset generation.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "existingGenerationContext": {
          "$ref": "GoogleAdsGoogleadsV23Services__AssetGenerationExistingContext",
          "description": "Optional. The setting for which assets are being generated, such as an existing AssetGroup or AdGroupAd."
        },
        "assetFieldTypes": {
          "items": {
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "HEADLINE",
              "DESCRIPTION",
              "MANDATORY_AD_TEXT",
              "MARKETING_IMAGE",
              "MEDIA_BUNDLE",
              "YOUTUBE_VIDEO",
              "BOOK_ON_GOOGLE",
              "LEAD_FORM",
              "PROMOTION",
              "CALLOUT",
              "STRUCTURED_SNIPPET",
              "SITELINK",
              "MOBILE_APP",
              "HOTEL_CALLOUT",
              "CALL",
              "PRICE",
              "LONG_HEADLINE",
              "BUSINESS_NAME",
              "SQUARE_MARKETING_IMAGE",
              "PORTRAIT_MARKETING_IMAGE",
              "LOGO",
              "LANDSCAPE_LOGO",
              "VIDEO",
              "CALL_TO_ACTION_SELECTION",
              "AD_IMAGE",
              "BUSINESS_LOGO",
              "HOTEL_PROPERTY",
              "DEMAND_GEN_CAROUSEL_CARD",
              "BUSINESS_MESSAGE",
              "TALL_PORTRAIT_MARKETING_IMAGE",
              "RELATED_YOUTUBE_VIDEOS",
              "LANDING_PAGE_PREVIEW",
              "LONG_DESCRIPTION",
              "CALL_TO_ACTION"
            ],
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "The asset is linked for use as a headline.",
              "The asset is linked for use as a description.",
              "The asset is linked for use as mandatory ad text.",
              "The asset is linked for use as a marketing image.",
              "The asset is linked for use as a media bundle.",
              "The asset is linked for use as a YouTube video.",
              "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
              "The asset is linked for use as a Lead Form extension.",
              "The asset is linked for use as a Promotion extension.",
              "The asset is linked for use as a Callout extension.",
              "The asset is linked for use as a Structured Snippet extension.",
              "The asset is linked for use as a Sitelink.",
              "The asset is linked for use as a Mobile App extension.",
              "The asset is linked for use as a Hotel Callout extension.",
              "The asset is linked for use as a Call extension.",
              "The asset is linked for use as a Price extension.",
              "The asset is linked for use as a long headline.",
              "The asset is linked for use as a business name.",
              "The asset is linked for use as a square marketing image.",
              "The asset is linked for use as a portrait marketing image.",
              "The asset is linked for use as a logo.",
              "The asset is linked for use as a landscape logo.",
              "The asset is linked for use as a non YouTube logo.",
              "The asset is linked for use to select a call-to-action.",
              "The asset is linked for use to select an ad image.",
              "The asset is linked for use as a business logo.",
              "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
              "The asset is linked for use as a Demand Gen carousel card.",
              "The asset is linked for use as a Business Message.",
              "The asset is linked for use as a tall portrait marketing image.",
              "The asset is linked for use as related YouTube videos.",
              "The asset is linked for use as a landing page preview image.",
              "The asset is linked for use as a long description.",
              "The asset is linked for use as a call-to-action."
            ]
          },
          "type": "array",
          "description": "Required. Which field types text is being generated for. Supported values are: HEADLINE, LONG_HEADLINE, DESCRIPTION. Required."
        },
        "freeformPrompt": {
          "type": "string",
          "description": "Optional. A freeform description of what assets should be generated. The string length must be between 1 and 1500, inclusive."
        },
        "finalUrl": {
          "type": "string",
          "description": "Optional. Final url to use as a source for generating assets. Required if existing_generation_context is not provided or does not have a final url associated with it."
        },
        "advertisingChannelType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SEARCH",
            "DISPLAY",
            "SHOPPING",
            "HOTEL",
            "VIDEO",
            "MULTI_CHANNEL",
            "LOCAL",
            "SMART",
            "PERFORMANCE_MAX",
            "LOCAL_SERVICES",
            "TRAVEL",
            "DEMAND_GEN"
          ],
          "description": "Optional. The advertising channel for which to generate assets. Required if existing_context is not provided. Supported channel types: SEARCH, PERFORMANCE_MAX, DISPLAY, and DEMAND_GEN",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Search Network. Includes display bundled, and Search+ campaigns.",
            "Google Display Network only.",
            "Shopping campaigns serve on the shopping property and on google.com search results.",
            "Hotel Ads campaigns.",
            "Video campaigns.",
            "App Campaigns, and App Campaigns for Engagement, that run across multiple channels.",
            "Local ads campaigns.",
            "Smart campaigns.",
            "Performance Max campaigns.",
            "Local services campaigns.",
            "Travel campaigns.",
            "Demand Gen campaigns."
          ],
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__UserListCustomerTypeOperation": {
      "type": "object",
      "properties": {
        "create": {
          "description": "Attach a user list customer type to a user list. No resource name is expected for the new user list customer type.",
          "$ref": "GoogleAdsGoogleadsV23Resources__UserListCustomerType"
        },
        "remove": {
          "type": "string",
          "description": "Remove an existing user list customer type. A resource name for the removed user list customer type is expected, in this format: `customers/{customer_id}/userListCustomerTypes/{user_list_id}~{customer_type_category}`"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__UserListCustomerTypeOperation",
      "description": "A single mutate operation on the user list customer type."
    },
    "GoogleAdsGoogleadsV23Common__CallAsset": {
      "properties": {
        "callConversionReportingState": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DISABLED",
            "USE_ACCOUNT_LEVEL_CALL_CONVERSION_ACTION",
            "USE_RESOURCE_LEVEL_CALL_CONVERSION_ACTION"
          ],
          "type": "string",
          "description": "Indicates whether this CallAsset should use its own call conversion setting, follow the account level setting, or disable call conversion.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Call conversion action is disabled.",
            "Call conversion action will use call conversion type set at the account level.",
            "Call conversion action will use call conversion type set at the resource (call only ads/call extensions) level."
          ]
        },
        "phoneNumber": {
          "type": "string",
          "description": "Required. The advertiser's raw phone number. Examples: '1234567890', '(123)456-7890'"
        },
        "adScheduleTargets": {
          "type": "array",
          "description": "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.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdScheduleInfo"
          }
        },
        "callConversionAction": {
          "type": "string",
          "description": "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."
        },
        "countryCode": {
          "type": "string",
          "description": "Required. Two-letter country code of the phone number. Examples: 'US', 'us'."
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__CallAsset",
      "description": "A Call asset.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__GenerateShareablePreviewsRequest": {
      "properties": {
        "shareablePreviews": {
          "type": "array",
          "description": "Required. The list of shareable previews to generate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__ShareablePreview"
          }
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__GenerateShareablePreviewsRequest",
      "type": "object",
      "description": "Request message for ShareablePreviewService.GenerateShareablePreviews."
    },
    "GoogleAdsGoogleadsV23Services__RemoveProductLinkInvitationResponse": {
      "description": "Response message for product link invitation removeal.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__RemoveProductLinkInvitationResponse",
      "properties": {
        "resourceName": {
          "description": "Result for the remove request.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__EffectiveFrequencyBreakdown": {
      "id": "GoogleAdsGoogleadsV23Services__EffectiveFrequencyBreakdown",
      "properties": {
        "onTargetEffectiveCoviewReach": {
          "format": "int64",
          "type": "string",
          "description": "The number of users (including co-viewing users) reached for the associated effective_frequency value within the specified plan demographic."
        },
        "effectiveFrequency": {
          "description": "The effective frequency [1-10].",
          "type": "integer",
          "format": "int32"
        },
        "onTargetReach": {
          "format": "int64",
          "description": "The number of unique people reached at least effective_frequency times that exactly matches the Targeting. Note that a minimum number of unique people must be reached in order for data to be reported. If the minimum number is not met, the on_target_reach value will be rounded to 0.",
          "type": "string"
        },
        "totalReach": {
          "format": "int64",
          "description": "Total number of unique people reached at least effective_frequency times. This includes people that may fall outside the specified Targeting. Note that a minimum number of unique people must be reached in order for data to be reported. If the minimum number is not met, the total_reach value will be rounded to 0.",
          "type": "string"
        },
        "effectiveCoviewReach": {
          "format": "int64",
          "type": "string",
          "description": "The number of users (including co-viewing users) reached for the associated effective_frequency value."
        }
      },
      "type": "object",
      "description": "A breakdown of the number of unique people reached at a given effective frequency."
    },
    "GoogleAdsGoogleadsV23Resources__DistanceView": {
      "id": "GoogleAdsGoogleadsV23Resources__DistanceView",
      "properties": {
        "metricSystem": {
          "type": "boolean",
          "description": "Output only. True if the DistanceBucket is using the metric system, false otherwise.",
          "readOnly": true
        },
        "resourceName": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The resource name of the distance view. Distance view resource names have the form: `customers/{customer_id}/distanceViews/1~{distance_bucket}`"
        },
        "distanceBucket": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "WITHIN_700M",
            "WITHIN_1KM",
            "WITHIN_5KM",
            "WITHIN_10KM",
            "WITHIN_15KM",
            "WITHIN_20KM",
            "WITHIN_25KM",
            "WITHIN_30KM",
            "WITHIN_35KM",
            "WITHIN_40KM",
            "WITHIN_45KM",
            "WITHIN_50KM",
            "WITHIN_55KM",
            "WITHIN_60KM",
            "WITHIN_65KM",
            "BEYOND_65KM",
            "WITHIN_0_7MILES",
            "WITHIN_1MILE",
            "WITHIN_5MILES",
            "WITHIN_10MILES",
            "WITHIN_15MILES",
            "WITHIN_20MILES",
            "WITHIN_25MILES",
            "WITHIN_30MILES",
            "WITHIN_35MILES",
            "WITHIN_40MILES",
            "BEYOND_40MILES"
          ],
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "User was within 700m of the location.",
            "User was within 1KM of the location.",
            "User was within 5KM of the location.",
            "User was within 10KM of the location.",
            "User was within 15KM of the location.",
            "User was within 20KM of the location.",
            "User was within 25KM of the location.",
            "User was within 30KM of the location.",
            "User was within 35KM of the location.",
            "User was within 40KM of the location.",
            "User was within 45KM of the location.",
            "User was within 50KM of the location.",
            "User was within 55KM of the location.",
            "User was within 60KM of the location.",
            "User was within 65KM of the location.",
            "User was beyond 65KM of the location.",
            "User was within 0.7 miles of the location.",
            "User was within 1 mile of the location.",
            "User was within 5 miles of the location.",
            "User was within 10 miles of the location.",
            "User was within 15 miles of the location.",
            "User was within 20 miles of the location.",
            "User was within 25 miles of the location.",
            "User was within 30 miles of the location.",
            "User was within 35 miles of the location.",
            "User was within 40 miles of the location.",
            "User was beyond 40 miles of the location."
          ],
          "description": "Output only. Grouping of user distance from location extensions.",
          "type": "string"
        }
      },
      "description": "A distance view with metrics aggregated by the user's distance from an advertiser's location extensions. Each DistanceBucket includes all impressions that fall within its distance and a single impression will contribute to the metrics for all DistanceBuckets that include the user's distance.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateAssetSetAssetResult": {
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        },
        "assetSetAsset": {
          "description": "The mutated asset set asset with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV23Resources__AssetSetAsset"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateAssetSetAssetResult",
      "type": "object",
      "description": "The result for the asset set asset mutate."
    },
    "GoogleAdsGoogleadsV23Resources__GroupPlacementView": {
      "description": "A group placement view.",
      "type": "object",
      "properties": {
        "resourceName": {
          "readOnly": true,
          "description": "Output only. The resource name of the group placement view. Group placement view resource names have the form: `customers/{customer_id}/groupPlacementViews/{ad_group_id}~{base64_placement}`",
          "type": "string"
        },
        "targetUrl": {
          "description": "Output only. URL of the group placement, for example, domain, link to the mobile application in app store, or a YouTube channel URL.",
          "readOnly": true,
          "type": "string"
        },
        "placementType": {
          "readOnly": true,
          "description": "Output only. Type of the placement, for example, Website, YouTube Channel, Mobile Application.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "WEBSITE",
            "MOBILE_APP_CATEGORY",
            "MOBILE_APPLICATION",
            "YOUTUBE_VIDEO",
            "YOUTUBE_CHANNEL",
            "GOOGLE_PRODUCTS"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Websites(for example, 'www.flowers4sale.com').",
            "Mobile application categories(for example, 'Games').",
            "mobile applications(for example, 'mobileapp::2-com.whatsthewordanswers').",
            "YouTube videos(for example, 'youtube.com/video/wtLJPvx7-ys').",
            "YouTube channels(for example, 'youtube.com::L8ZULXASCc1I_oaOT0NaOQ').",
            "Surfaces owned and operated by Google(for example, 'tv.google.com')."
          ]
        },
        "displayName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Domain name for websites and YouTube channel name for YouTube channels."
        },
        "placement": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The automatic placement string at group level, e. g. web domain, mobile app ID, or a YouTube channel ID."
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__GroupPlacementView"
    },
    "GoogleAdsGoogleadsV23Common__PlacementListInfo": {
      "properties": {
        "sharedSet": {
          "description": "The PlacementListInfo shared set resource name.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__PlacementListInfo",
      "description": "A Placement List criterion. Represents a shared set of placements that can be excluded at the account-level."
    },
    "GoogleAdsGoogleadsV23Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_Event": {
      "properties": {
        "eventCounter": {
          "type": "string",
          "readOnly": true,
          "format": "int64",
          "description": "Output only. For specific event counter values."
        },
        "mappedEventName": {
          "description": "Output only. Google event name represented by this conversion value.",
          "type": "string",
          "readOnly": true
        },
        "currencyCode": {
          "type": "string",
          "description": "Output only. The reported currency for the event_revenue. ISO 4217 three-letter currency code, for example, \"USD\"",
          "readOnly": true
        },
        "eventRevenueValue": {
          "readOnly": true,
          "format": "double",
          "type": "number",
          "description": "Output only. The specific event revenue value."
        },
        "eventRevenueRange": {
          "description": "Output only. The event revenue range.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV23Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaEvent_RevenueRange"
        },
        "eventOccurrenceRange": {
          "readOnly": true,
          "description": "Output only. The event counter range.",
          "$ref": "GoogleAdsGoogleadsV23Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaEvent_EventOccurrenceRange"
        }
      },
      "description": "Defines a Google conversion event that the conversion value is mapped to.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_Event"
    },
    "GoogleAdsGoogleadsV23Common__YoutubeVideoAsset": {
      "properties": {
        "youtubeVideoTitle": {
          "description": "YouTube video title.",
          "type": "string"
        },
        "youtubeVideoId": {
          "description": "YouTube video id. This is the 11 character string value used in the YouTube video URL.",
          "type": "string"
        }
      },
      "type": "object",
      "description": "A YouTube asset.",
      "id": "GoogleAdsGoogleadsV23Common__YoutubeVideoAsset"
    },
    "GoogleAdsGoogleadsV23Resources_BatchJob_BatchJobMetadata": {
      "description": "Additional information about the batch job. This message is also used as metadata returned in batch job Long Running Operations.",
      "id": "GoogleAdsGoogleadsV23Resources_BatchJob_BatchJobMetadata",
      "type": "object",
      "properties": {
        "creationDateTime": {
          "description": "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\"",
          "type": "string",
          "readOnly": true
        },
        "estimatedCompletionRatio": {
          "description": "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.",
          "type": "number",
          "readOnly": true,
          "format": "double"
        },
        "startDateTime": {
          "readOnly": true,
          "type": "string",
          "description": "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\""
        },
        "executedOperationCount": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The number of mutate operations executed by the batch job. Present only if the job has started running.",
          "format": "int64"
        },
        "executionLimitSeconds": {
          "description": "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.",
          "type": "integer",
          "format": "int32"
        },
        "completionDateTime": {
          "readOnly": true,
          "type": "string",
          "description": "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\""
        },
        "operationCount": {
          "type": "string",
          "format": "int64",
          "readOnly": true,
          "description": "Output only. The number of mutate operations in the batch job."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateAssetGroupListingGroupFilterResult": {
      "type": "object",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        },
        "assetGroupListingGroupFilter": {
          "description": "The mutated AssetGroupListingGroupFilter with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV23Resources__AssetGroupListingGroupFilter"
        }
      },
      "description": "The result for the asset group listing group filter mutate.",
      "id": "GoogleAdsGoogleadsV23Services__MutateAssetGroupListingGroupFilterResult"
    },
    "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_RaiseTargetCpaBidTooLowParameters": {
      "type": "object",
      "description": "Parameters to use when applying a raise target CPA bid too low recommendation. The apply is asynchronous and can take minutes depending on the number of ad groups there is in the related campaign..",
      "id": "GoogleAdsGoogleadsV23Services_ApplyRecommendationOperation_RaiseTargetCpaBidTooLowParameters",
      "properties": {
        "targetMultiplier": {
          "description": "Required. A number greater than 1.0 indicating the factor by which to increase the target CPA. This is a required field.",
          "type": "number",
          "format": "double"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services_GenerateRecommendationsRequest_BiddingInfo": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services_GenerateRecommendationsRequest_BiddingInfo",
      "properties": {
        "targetCpaMicros": {
          "description": "Current target_cpa in micros. This can be populated for campaigns with a bidding strategy type of TARGET_CPA or MAXIMIZE_CONVERSIONS.",
          "type": "string",
          "format": "int64"
        },
        "targetRoas": {
          "type": "number",
          "format": "double",
          "description": "Current target_roas. This can be populated for campaigns with a bidding strategy type of TARGET_ROAS or MAXIMIZE_CONVERSION_VALUE."
        },
        "targetImpressionShareInfo": {
          "$ref": "GoogleAdsGoogleadsV23Services_GenerateRecommendationsRequest_TargetImpressionShareInfo",
          "description": "Optional. Current Target Impression Share information of the campaign. This field is necessary for the following recommendation_types: CAMPAIGN_BUDGET"
        },
        "biddingStrategyType": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Commission is an automatic bidding strategy in which the advertiser pays a certain portion of the conversion value.",
            "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.",
            "Fixed CPM is a manual bidding strategy with a fixed CPM.",
            "Fixed share of voice is a manual bidding strategy for YouTube Sponsorships that bills either on CPM or a fixed cost per day.",
            "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 bidding strategy that allows advertiser to set the bid per advertiser-specified action.",
            "Manual click based bidding where user pays per click.",
            "Manual impression based bidding where user pays per thousand impressions.",
            "A bidding strategy that pays a configurable amount per video view.",
            "A bidding strategy that automatically maximizes number of conversions given a daily budget.",
            "An automated bidding strategy that automatically sets bids to maximize revenue while spending your budget.",
            "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 is bidding strategy where bids are a fraction of the advertised price for some good or service.",
            "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 CPC is an automated bid strategy that sets bids to help get as many clicks as possible at the target cost-per-click (CPC) you set.",
            "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 CPV is an automated bidding strategy that sets bids to optimize performance given the average target cost per view.",
            "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 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 is an automated bidding strategy that helps you maximize revenue while averaging a specific target Return On Average Spend (ROAS).",
            "Target Spend is an automated bid strategy that sets your bids to help get as many clicks as possible within your budget."
          ],
          "type": "string",
          "description": "Current bidding strategy. This field is necessary for the following recommendation_types: CAMPAIGN_BUDGET, MAXIMIZE_CLICKS_OPT_IN, MAXIMIZE_CONVERSIONS_OPT_IN, MAXIMIZE_CONVERSION_VALUE_OPT_IN, SET_TARGET_CPA, SET_TARGET_ROAS, TARGET_CPA_OPT_IN, TARGET_ROAS_OPT_IN",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "COMMISSION",
            "ENHANCED_CPC",
            "FIXED_CPM",
            "FIXED_SHARE_OF_VOICE",
            "INVALID",
            "MANUAL_CPA",
            "MANUAL_CPC",
            "MANUAL_CPM",
            "MANUAL_CPV",
            "MAXIMIZE_CONVERSIONS",
            "MAXIMIZE_CONVERSION_VALUE",
            "PAGE_ONE_PROMOTED",
            "PERCENT_CPC",
            "TARGET_CPA",
            "TARGET_CPC",
            "TARGET_CPM",
            "TARGET_CPV",
            "TARGET_IMPRESSION_SHARE",
            "TARGET_OUTRANK_SHARE",
            "TARGET_ROAS",
            "TARGET_SPEND"
          ]
        }
      },
      "description": "Current bidding information of the campaign. Provides a wrapper for bidding-related signals that inform recommendations."
    },
    "GoogleAdsGoogleadsV23Common__AdCallToActionAsset": {
      "description": "A call to action asset used inside an ad.",
      "properties": {
        "asset": {
          "type": "string",
          "description": "The Asset resource name of this call to action asset."
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__AdCallToActionAsset"
    },
    "GoogleAdsGoogleadsV23Resources_Campaign_VideoCampaignSettings": {
      "description": "Settings for Video campaign.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources_Campaign_VideoCampaignSettings",
      "properties": {
        "videoAdSequence": {
          "$ref": "GoogleAdsGoogleadsV23Resources_CampaignVideoCampaignSettings_VideoAdSequence",
          "description": "Container for video ads sequencing definition."
        },
        "videoAdFormatControl": {
          "description": "Format-restricting control enabling usage of video responsive ads in format defined Video campaigns (for example, non-skippable).",
          "$ref": "GoogleAdsGoogleadsV23Resources_CampaignVideoCampaignSettings_VideoAdFormatControl"
        },
        "videoAdInventoryControl": {
          "description": "Inventory control for video responsive ads in reach campaigns.",
          "$ref": "GoogleAdsGoogleadsV23Resources_CampaignVideoCampaignSettings_VideoAdInventoryControl"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__LabelOperation": {
      "id": "GoogleAdsGoogleadsV23Services__LabelOperation",
      "properties": {
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string",
          "format": "google-fieldmask"
        },
        "update": {
          "description": "Update operation: The label is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV23Resources__Label"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the label being removed, in this format: `customers/{customer_id}/labels/{label_id}`"
        },
        "create": {
          "$ref": "GoogleAdsGoogleadsV23Resources__Label",
          "description": "Create operation: No resource name is expected for the new label."
        }
      },
      "type": "object",
      "description": "A single operation (create, remove, update) on a label."
    },
    "GoogleAdsGoogleadsV23Services__MutateCustomAudienceResult": {
      "description": "The result for the custom audience mutate.",
      "type": "object",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateCustomAudienceResult"
    },
    "GoogleAdsGoogleadsV23Services__GenerateAudienceCompositionInsightsRequest": {
      "id": "GoogleAdsGoogleadsV23Services__GenerateAudienceCompositionInsightsRequest",
      "description": "Request message for AudienceInsightsService.GenerateAudienceCompositionInsights.",
      "properties": {
        "baselineAudience": {
          "$ref": "GoogleAdsGoogleadsV23Services__InsightsAudience",
          "description": "The baseline audience to which the audience of interest is being compared."
        },
        "customerInsightsGroup": {
          "description": "The name of the customer being planned for. This is a user-defined value.",
          "type": "string"
        },
        "audience": {
          "description": "Required. The audience of interest for which insights are being requested.",
          "$ref": "GoogleAdsGoogleadsV23Services__InsightsAudience"
        },
        "insightsApplicationInfo": {
          "$ref": "GoogleAdsGoogleadsV23Common__AdditionalApplicationInfo",
          "description": "Optional. Additional information on the application issuing the request."
        },
        "dataMonth": {
          "type": "string",
          "description": "The one-month range of historical data to use for insights, in the format \"yyyy-mm\". If unset, insights will be returned for the last thirty days of data."
        },
        "dimensions": {
          "type": "array",
          "items": {
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "CATEGORY",
              "KNOWLEDGE_GRAPH",
              "GEO_TARGET_COUNTRY",
              "SUB_COUNTRY_LOCATION",
              "YOUTUBE_CHANNEL",
              "AFFINITY_USER_INTEREST",
              "IN_MARKET_USER_INTEREST",
              "PARENTAL_STATUS",
              "INCOME_RANGE",
              "AGE_RANGE",
              "GENDER",
              "YOUTUBE_VIDEO",
              "DEVICE",
              "YOUTUBE_LINEUP",
              "USER_LIST",
              "LIFE_EVENT_USER_INTEREST"
            ],
            "enumDescriptions": [
              "Not specified.",
              "The value is unknown in this version.",
              "A Product & Service category.",
              "A Knowledge Graph entity.",
              "A country, represented by a geo target.",
              "A geographic location within a country.",
              "A YouTube channel.",
              "An Affinity UserInterest.",
              "An In-Market UserInterest.",
              "A Parental Status value (parent, or not a parent).",
              "A household income percentile range.",
              "An age range.",
              "A gender.",
              "A YouTube video.",
              "A device type, such as Mobile, Desktop, Tablet, and Connected TV.",
              "A YouTube Lineup.",
              "A User List.",
              "A Life Event UserInterest."
            ],
            "type": "string"
          },
          "description": "Required. The audience dimensions for which composition insights should be returned. Supported dimensions are KNOWLEDGE_GRAPH, GEO_TARGET_COUNTRY, SUB_COUNTRY_LOCATION, YOUTUBE_CHANNEL, YOUTUBE_LINEUP, AFFINITY_USER_INTEREST, IN_MARKET_USER_INTEREST, LIFE_EVENT_USER_INTEREST, PARENTAL_STATUS, INCOME_RANGE, AGE_RANGE, and GENDER."
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__Goal": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__Goal",
      "properties": {
        "resourceName": {
          "description": "Immutable. The resource name of the goal. Goal resource names have the form: `customers/{customer_id}/goals/{goal_id}`",
          "type": "string"
        },
        "ownerCustomer": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The resource name of the goal owner customer."
        },
        "retentionGoalSettings": {
          "$ref": "GoogleAdsGoogleadsV23Common_GoalSetting_RetentionGoal",
          "description": "Retention goal settings."
        },
        "optimizationEligibility": {
          "description": "Output only. Indicates if this goal is eligible for campaign optimization.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ELIGIBLE",
            "INELIGIBLE"
          ],
          "enumDescriptions": [
            "The goal optimization status has not been specified.",
            "The goal optimization status is not known in this version.",
            "The goal is eligible for campaign optimization.",
            "The goal is not eligible for campaign optimization."
          ],
          "type": "string",
          "readOnly": true
        },
        "goalType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CUSTOMER_RETENTION"
          ],
          "readOnly": true,
          "type": "string",
          "description": "Output only. The type of this goal.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Retention goal, which allows advertisers to optimize campaigns to win back lapsed customers. (https://support.google.com/google-ads/answer/14792043?hl=en)"
          ]
        },
        "goalId": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The ID of this goal.",
          "format": "int64"
        }
      },
      "description": "Representation of goals."
    },
    "GoogleAdsGoogleadsV23Resources_ListingGroupFilterDimension_ProductCondition": {
      "id": "GoogleAdsGoogleadsV23Resources_ListingGroupFilterDimension_ProductCondition",
      "description": "Condition of a product offer.",
      "type": "object",
      "properties": {
        "condition": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NEW",
            "REFURBISHED",
            "USED"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The product condition is new.",
            "The product condition is refurbished.",
            "The product condition is used."
          ],
          "description": "Value of the condition.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources_Recommendation_CustomAudienceOptInRecommendation": {
      "description": "The Custom Audience Opt In recommendation.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources_Recommendation_CustomAudienceOptInRecommendation",
      "properties": {
        "keywords": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__KeywordInfo"
          },
          "readOnly": true,
          "description": "Output only. The list of keywords to use for custom audience creation.",
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__UserListActionInfo": {
      "id": "GoogleAdsGoogleadsV23Common__UserListActionInfo",
      "description": "Represents an action type used for building remarketing user lists.",
      "type": "object",
      "properties": {
        "conversionAction": {
          "description": "A conversion action that's not generated from remarketing.",
          "type": "string"
        },
        "remarketingAction": {
          "description": "A remarketing action.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__DisplayKeywordView": {
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the display keyword view. Display Keyword view resource names have the form: `customers/{customer_id}/displayKeywordViews/{ad_group_id}~{criterion_id}`",
          "readOnly": true
        }
      },
      "type": "object",
      "description": "A display keyword view. Provides performance data for keywords used in Display Network campaigns. This view lets you analyze how your display keywords are performing across various segments. This view is primarily used to track the effectiveness of keyword targeting within your Display campaigns. To understand which network the metrics apply to, you can select the `segments.ad_network_type` field in your query. This field will segment the data by networks such as the Google Display Network, YouTube, Gmail, and so on. You can select fields from this resource along with metrics like impressions, clicks, and conversions to gauge performance. Attributed resources like `ad_group` and `campaign` can also be selected without segmenting metrics.",
      "id": "GoogleAdsGoogleadsV23Resources__DisplayKeywordView"
    },
    "GoogleAdsGoogleadsV23Resources__KeywordPlanAdGroup": {
      "type": "object",
      "description": "A Keyword Planner ad group. Max number of keyword plan ad groups per plan: 200.",
      "properties": {
        "keywordPlanCampaign": {
          "description": "The keyword plan campaign to which this ad group belongs.",
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "The name of the keyword plan ad group. This field is required and should not be empty when creating keyword plan ad group."
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the Keyword Planner ad group. KeywordPlanAdGroup resource names have the form: `customers/{customer_id}/keywordPlanAdGroups/{kp_ad_group_id}`"
        },
        "cpcBidMicros": {
          "description": "A default ad group max cpc bid in micros in account currency for all biddable keywords under the keyword plan ad group. If not set, will inherit from parent campaign.",
          "format": "int64",
          "type": "string"
        },
        "id": {
          "format": "int64",
          "description": "Output only. The ID of the keyword plan ad group.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__KeywordPlanAdGroup"
    },
    "GoogleAdsGoogleadsV23Services__MutateCampaignSharedSetsResponse": {
      "id": "GoogleAdsGoogleadsV23Services__MutateCampaignSharedSetsResponse",
      "description": "Response message for a campaign shared set mutate.",
      "properties": {
        "results": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateCampaignSharedSetResult"
          },
          "type": "array",
          "description": "All results for the mutate."
        },
        "partialFailureError": {
          "$ref": "GoogleRpc__Status",
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error."
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__AssetGroupAsset": {
      "description": "AssetGroupAsset is the link between an asset and an asset group. Adding an AssetGroupAsset links an asset with an asset group.",
      "id": "GoogleAdsGoogleadsV23Resources__AssetGroupAsset",
      "type": "object",
      "properties": {
        "policySummary": {
          "readOnly": true,
          "description": "Output only. The policy information for this asset group asset.",
          "$ref": "GoogleAdsGoogleadsV23Common__PolicySummary"
        },
        "primaryStatusReasons": {
          "readOnly": true,
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "ASSET_LINK_PAUSED",
              "ASSET_LINK_REMOVED",
              "ASSET_DISAPPROVED",
              "ASSET_UNDER_REVIEW",
              "ASSET_APPROVED_LABELED"
            ],
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "The asset is paused for its linked rollup level. Contributes to a PrimaryStatus of PAUSED.",
              "The asset is removed for its linked rollup level. Contributes to a PrimaryStatus of REMOVED.",
              "The asset has been marked as disapproved. Contributes to a PrimaryStatus of NOT_ELIGIBLE",
              "The asset has not completed policy review. Contributes to a PrimaryStatus of PENDING.",
              "The asset is approved with policies applied. Contributes to a PrimaryStatus of LIMITED."
            ]
          },
          "description": "Output only. Provides a list of reasons for why an asset is not serving or not serving at full capacity."
        },
        "status": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED",
            "PAUSED"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Asset link is enabled.",
            "Asset link has been removed.",
            "Asset link is paused."
          ],
          "description": "The status of the link between an asset and asset group.",
          "type": "string"
        },
        "fieldType": {
          "description": "The description of the placement of the asset within the asset group. For example: HEADLINE, YOUTUBE_VIDEO etc",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE",
            "DESCRIPTION",
            "MANDATORY_AD_TEXT",
            "MARKETING_IMAGE",
            "MEDIA_BUNDLE",
            "YOUTUBE_VIDEO",
            "BOOK_ON_GOOGLE",
            "LEAD_FORM",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "LONG_HEADLINE",
            "BUSINESS_NAME",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "VIDEO",
            "CALL_TO_ACTION_SELECTION",
            "AD_IMAGE",
            "BUSINESS_LOGO",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "TALL_PORTRAIT_MARKETING_IMAGE",
            "RELATED_YOUTUBE_VIDEOS",
            "LANDING_PAGE_PREVIEW",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is linked for use as a headline.",
            "The asset is linked for use as a description.",
            "The asset is linked for use as mandatory ad text.",
            "The asset is linked for use as a marketing image.",
            "The asset is linked for use as a media bundle.",
            "The asset is linked for use as a YouTube video.",
            "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
            "The asset is linked for use as a Lead Form extension.",
            "The asset is linked for use as a Promotion extension.",
            "The asset is linked for use as a Callout extension.",
            "The asset is linked for use as a Structured Snippet extension.",
            "The asset is linked for use as a Sitelink.",
            "The asset is linked for use as a Mobile App extension.",
            "The asset is linked for use as a Hotel Callout extension.",
            "The asset is linked for use as a Call extension.",
            "The asset is linked for use as a Price extension.",
            "The asset is linked for use as a long headline.",
            "The asset is linked for use as a business name.",
            "The asset is linked for use as a square marketing image.",
            "The asset is linked for use as a portrait marketing image.",
            "The asset is linked for use as a logo.",
            "The asset is linked for use as a landscape logo.",
            "The asset is linked for use as a non YouTube logo.",
            "The asset is linked for use to select a call-to-action.",
            "The asset is linked for use to select an ad image.",
            "The asset is linked for use as a business logo.",
            "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
            "The asset is linked for use as a Demand Gen carousel card.",
            "The asset is linked for use as a Business Message.",
            "The asset is linked for use as a tall portrait marketing image.",
            "The asset is linked for use as related YouTube videos.",
            "The asset is linked for use as a landing page preview image.",
            "The asset is linked for use as a long description.",
            "The asset is linked for use as a call-to-action."
          ],
          "type": "string"
        },
        "source": {
          "description": "Output only. Source of the asset group asset.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADVERTISER",
            "AUTOMATICALLY_CREATED"
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset or asset link is provided by advertiser.",
            "The asset or asset link is generated by Google."
          ],
          "type": "string",
          "readOnly": true
        },
        "asset": {
          "description": "Immutable. The asset which this asset group asset is linking.",
          "type": "string"
        },
        "resourceName": {
          "description": "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}`",
          "type": "string"
        },
        "assetGroup": {
          "type": "string",
          "description": "Immutable. The asset group which this asset group asset is linking."
        },
        "primaryStatusDetails": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AssetLinkPrimaryStatusDetails"
          },
          "readOnly": true,
          "description": "Output only. Provides the details of the primary status and its associated reasons.",
          "type": "array"
        },
        "primaryStatus": {
          "type": "string",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ELIGIBLE",
            "PAUSED",
            "REMOVED",
            "PENDING",
            "LIMITED",
            "NOT_ELIGIBLE"
          ],
          "description": "Output only. Provides the PrimaryStatus of this asset link. Primary status is meant essentially to differentiate between the plain \"status\" field, which has advertiser set values of enabled, paused, or removed. The primary status takes into account other signals (for assets its mainly policy and quality approvals) to come up with a more comprehensive status to indicate its serving state.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is eligible to serve.",
            "The user-specified asset link status is paused.",
            "The user-specified asset link status is removed.",
            "The asset may serve in the future.",
            "The asset is serving in a partial capacity.",
            "The asset is not eligible to serve."
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__UrlSeed": {
      "properties": {
        "url": {
          "description": "The URL to crawl in order to generate keyword ideas.",
          "type": "string"
        }
      },
      "type": "object",
      "description": "Url Seed",
      "id": "GoogleAdsGoogleadsV23Services__UrlSeed"
    },
    "GoogleAdsGoogleadsV23Services__SmartCampaignRemovedDetails": {
      "description": "Details related to removed Smart campaigns.",
      "type": "object",
      "properties": {
        "removedDateTime": {
          "type": "string",
          "description": "The timestamp of when the campaign was removed. The timestamp is in the customer’s timezone and in “yyyy-MM-dd HH:mm:ss” format."
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__SmartCampaignRemovedDetails"
    },
    "GoogleAdsGoogleadsV23Services__CampaignDuration": {
      "description": "The duration of a planned campaign.",
      "id": "GoogleAdsGoogleadsV23Services__CampaignDuration",
      "properties": {
        "durationInDays": {
          "description": "The duration value in days. This field cannot be combined with the date_range field.",
          "type": "integer",
          "format": "int32"
        },
        "dateRange": {
          "description": "Date range of the campaign. Dates are in the yyyy-mm-dd format and inclusive. The end date must be < 1 year in the future and the date range must be <= 92 days long. This field cannot be combined with the duration_in_days field.",
          "$ref": "GoogleAdsGoogleadsV23Common__DateRange"
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services_CartData_Item": {
      "properties": {
        "productId": {
          "type": "string",
          "description": "The shopping id of the item. Must be equal to the Merchant Center product identifier."
        },
        "quantity": {
          "format": "int32",
          "description": "Number of items sold.",
          "type": "integer"
        },
        "unitPrice": {
          "description": "Unit price excluding tax, shipping, and any transaction level discounts. The currency code is the same as that in the ClickConversion message.",
          "format": "double",
          "type": "number"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services_CartData_Item",
      "description": "Contains data of the items purchased."
    },
    "GoogleAdsGoogleadsV23Common__FlexibleRuleUserListInfo": {
      "description": "Flexible rule representation of visitors with one or multiple actions. The flexible user list is defined by two lists of operands – inclusive_operands and exclusive_operands; each operand represents a set of users based on actions they took in a given timeframe. These lists of operands are combined with the AND_NOT operator, so that users represented by the inclusive operands are included in the user list, minus the users represented by the exclusive operands.",
      "type": "object",
      "properties": {
        "inclusiveOperands": {
          "description": "Rules representing users that should be included in the user list. These are located on the left side of the AND_NOT operator, and joined together by either AND/OR as specified by the inclusive_rule_operator.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__FlexibleRuleOperandInfo"
          }
        },
        "exclusiveOperands": {
          "description": "Rules representing users that should be excluded from the user list. These are located on the right side of the AND_NOT operator, and joined together by OR.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__FlexibleRuleOperandInfo"
          }
        },
        "inclusiveRuleOperator": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "A AND B.",
            "A OR B."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AND",
            "OR"
          ],
          "description": "Operator that defines how the inclusive operands are combined.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__FlexibleRuleUserListInfo"
    },
    "GoogleAdsGoogleadsV23Resources__HotelGroupView": {
      "type": "object",
      "description": "A hotel group view.",
      "id": "GoogleAdsGoogleadsV23Resources__HotelGroupView",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the hotel group view. Hotel Group view resource names have the form: `customers/{customer_id}/hotelGroupViews/{ad_group_id}~{criterion_id}`",
          "readOnly": true
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources_Recommendation_AccountInfo": {
      "id": "GoogleAdsGoogleadsV23Resources_Recommendation_AccountInfo",
      "properties": {
        "descriptiveName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The descriptive name of the account."
        },
        "customerId": {
          "description": "Output only. The customer ID of the account.",
          "format": "int64",
          "type": "string",
          "readOnly": true
        }
      },
      "type": "object",
      "description": "Wrapper for information about a Google Ads account."
    },
    "GoogleAdsGoogleadsV23Resources_Recommendation_ShoppingTargetAllOffersRecommendation": {
      "properties": {
        "feedLabel": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The offer feed label."
        },
        "merchant": {
          "readOnly": true,
          "description": "Output only. The details of the Merchant Center account.",
          "$ref": "GoogleAdsGoogleadsV23Resources_Recommendation_MerchantInfo"
        },
        "untargetedOffersCount": {
          "readOnly": true,
          "format": "int64",
          "description": "Output only. The number of untargeted offers.",
          "type": "string"
        }
      },
      "description": "The shopping recommendation to create a catch-all campaign that targets all offers.",
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources_Recommendation_ShoppingTargetAllOffersRecommendation"
    },
    "GoogleAdsGoogleadsV23Services__SurfaceTargeting": {
      "description": "Container for surfaces for a product. Surfaces refer to the available types of ad inventories such as In-Feed, In-Stream, and Shorts.",
      "id": "GoogleAdsGoogleadsV23Services__SurfaceTargeting",
      "type": "object",
      "properties": {
        "surfaces": {
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "The value is unknown in this version.",
              "Discover feed ad surface.",
              "Gmail ad surface.",
              "In-Feed ad surface.",
              "In-Stream bumper ad surface.",
              "In-Stream non-skippable ad surface.",
              "In-Stream skippable ad surface.",
              "Shorts ad surface."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "DISCOVER_FEED",
              "GMAIL",
              "IN_FEED",
              "IN_STREAM_BUMPER",
              "IN_STREAM_NON_SKIPPABLE",
              "IN_STREAM_SKIPPABLE",
              "SHORTS"
            ]
          },
          "type": "array",
          "description": "List of surfaces available to target."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__GclidDateTimePair": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__GclidDateTimePair",
      "description": "Uniquely identifies a conversion that was reported without an order ID specified.",
      "properties": {
        "gclid": {
          "description": "Google click ID (gclid) associated with the original conversion for this adjustment.",
          "type": "string"
        },
        "conversionDateTime": {
          "type": "string",
          "description": "The date time at which the original conversion for this adjustment occurred. The timezone must be specified. The format is \"yyyy-mm-dd hh:mm:ss+|-hh:mm\", for example, \"2019-01-01 12:32:45-08:00\"."
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__Metrics": {
      "description": "Metrics data.",
      "type": "object",
      "properties": {
        "platformComparableConversionsValueByConversionDate": {
          "description": "The value of platform comparable conversions. When this metric is segmented by date, the values in the date segment represent the conversion date. This only includes conversion actions for which include_in_conversions_metric attribute is set to true. If you use conversion-based bidding, your bid strategies will optimize for these conversions.",
          "type": "number",
          "format": "double"
        },
        "messageImpressions": {
          "description": "Number of Click To Message impressions that were message tracking eligible.",
          "type": "string",
          "format": "int64"
        },
        "topImpressionPercentage": {
          "type": "number",
          "format": "double",
          "description": "The percent of your ad impressions that are shown adjacent to the top organic search results."
        },
        "activeViewAudibleThirtySecondsImpressions": {
          "format": "int64",
          "type": "string",
          "description": "The number of impressions that were audible for at least 30 seconds (cumulative)."
        },
        "combinedClicks": {
          "type": "string",
          "description": "The number of times your ad or your site's listing in the unpaid results was clicked. See the help page at https://support.google.com/google-ads/answer/3097241 for details.",
          "format": "int64"
        },
        "storeVisitsLastClickModelAttributedConversions": {
          "format": "double",
          "type": "number",
          "description": "The amount of business visits attributed by the last click model."
        },
        "assetPinnedAsDescriptionPositionTwoCount": {
          "format": "int64",
          "type": "string",
          "description": "Number of entities in which the asset is pinned to description 2. This metric can only be selected with ChannelAggregateAssetView and CampaignAggregateAssetView. This metric is only supported in Search channel."
        },
        "costMicros": {
          "format": "int64",
          "description": "The sum of your cost-per-click (CPC) and cost-per-thousand impressions (CPM) costs during this period.",
          "type": "string"
        },
        "optimizationScoreUplift": {
          "type": "number",
          "description": "Total optimization score uplift of all recommendations.",
          "format": "double"
        },
        "videoTrueviewViewRate": {
          "description": "The number of TrueView views your video ad receives divided by its number of impressions, including thumbnail impressions for TrueView in-display ads.",
          "format": "double",
          "type": "number"
        },
        "allConversionsValuePerCost": {
          "type": "number",
          "format": "double",
          "description": "The value of all conversions divided by the total cost of ad interactions (such as clicks for text ads or views for video ads)."
        },
        "averageOrderValueMicros": {
          "description": "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.",
          "type": "string",
          "format": "int64"
        },
        "allConversions": {
          "type": "number",
          "format": "double",
          "description": "The total number of conversions. This includes all conversions regardless of the value of include_in_conversions_metric."
        },
        "currentModelAttributedConversionsFromInteractionsValuePerInteraction": {
          "format": "double",
          "type": "number",
          "description": "The value of current model attributed 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."
        },
        "averageImpressionFrequencyPerUser": {
          "description": "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.",
          "format": "double",
          "type": "number"
        },
        "searchVolume": {
          "$ref": "GoogleAdsGoogleadsV23Common__SearchVolumeRange",
          "description": "Search volume range for a search term insight category."
        },
        "viewThroughConversions": {
          "format": "int64",
          "type": "string",
          "description": "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."
        },
        "averageCartSize": {
          "type": "number",
          "description": "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.",
          "format": "double"
        },
        "viewThroughConversionsFromLocationAssetOtherEngagement": {
          "format": "double",
          "type": "number",
          "description": "Number of other types of local action clicks on any location surface after an impression. This measure is coming from Asset based location."
        },
        "leadUnitsSold": {
          "format": "double",
          "type": "number",
          "description": "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."
        },
        "valuePerConversion": {
          "description": "The value of conversions divided by 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.",
          "type": "number",
          "format": "double"
        },
        "viewThroughConversionsFromLocationAssetWebsite": {
          "type": "number",
          "description": "Number of website URL clicks on any location surface after an impression. This measure is coming from Asset based location.",
          "format": "double"
        },
        "currentModelAttributedConversionsFromInteractionsRate": {
          "description": "Current model attributed conversions from interactions divided by the number of ad interactions (such as clicks for text ads or views for video ads). 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.",
          "type": "number",
          "format": "double"
        },
        "impressions": {
          "format": "int64",
          "description": "Count of how often your ad has appeared on a search results page or website on the Google Network.",
          "type": "string"
        },
        "bounceRate": {
          "format": "double",
          "description": "Percentage of clicks where the user only visited a single page on your site. Imported from Google Analytics.",
          "type": "number"
        },
        "videoTrueviewViewRateShorts": {
          "format": "double",
          "description": "The number of TrueView views divided by number of impressions that can potentially lead to TrueView views for Shorts ads.",
          "type": "number"
        },
        "phoneCalls": {
          "type": "string",
          "description": "Number of offline phone calls.",
          "format": "int64"
        },
        "organicClicks": {
          "format": "int64",
          "description": "The number of times someone clicked your site's listing in the unpaid results for a particular query. See the help page at https://support.google.com/google-ads/answer/3097241 for details.",
          "type": "string"
        },
        "allConversionsFromLocationAssetOrder": {
          "description": "Number of order clicks on any location surface after a chargeable ad event (click or impression). This measure is coming from Asset based location.",
          "type": "number",
          "format": "double"
        },
        "platformComparableConversionsFromInteractionsRate": {
          "description": "Platform comparable conversions from interactions divided by the number of ad interactions (such as clicks for text ads or views for video ads). This only includes conversion actions for which include_in_conversions_metric attribute is set to true. If you use conversion-based bidding, your bid strategies will optimize for these conversions.",
          "format": "double",
          "type": "number"
        },
        "allConversionsFromOrder": {
          "type": "number",
          "format": "double",
          "description": "The number of times people placed an order at a business after clicking an ad. This metric applies to feed items only."
        },
        "phoneImpressions": {
          "type": "string",
          "format": "int64",
          "description": "Number of offline phone impressions."
        },
        "viewThroughConversionsFromLocationAssetDirections": {
          "description": "Number of driving directions clicks on any location surface after an impression. This measure is coming from Asset based location.",
          "format": "double",
          "type": "number"
        },
        "auctionInsightSearchTopImpressionPercentage": {
          "type": "number",
          "description": "This metric is part of the Auction Insights report, and tells how often the ads of another participant showed adjacent to the top organic search results. This percentage is computed only over the auctions that you appeared in the page. This metric is not publicly available.",
          "format": "double"
        },
        "costPerCurrentModelAttributedConversion": {
          "description": "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.",
          "format": "double",
          "type": "number"
        },
        "allConversionsFromMenu": {
          "type": "number",
          "format": "double",
          "description": "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."
        },
        "assetPinnedTotalCount": {
          "type": "string",
          "description": "Number of total usages in which the asset is pinned. This metric can only be selected with ChannelAggregateAssetView and CampaignAggregateAssetView. This metric is only supported in Search channel.",
          "format": "int64"
        },
        "activeViewAudibilityMeasurableImpressionsRate": {
          "format": "double",
          "description": "The number of impressions for which Active View could measure if the ad was audible, divided by the total number of impressions with Active View audio enabled.",
          "type": "number"
        },
        "costPerConversion": {
          "description": "The cost of ad interactions divided by 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.",
          "format": "double",
          "type": "number"
        },
        "biddableAppInstallConversions": {
          "description": "Number of app installs.",
          "format": "double",
          "type": "number"
        },
        "ctr": {
          "format": "double",
          "description": "The number of clicks your ad receives (Clicks) divided by the number of times your ad is shown (Impressions).",
          "type": "number"
        },
        "clicksUniqueQueryClusters": {
          "description": "Unique query intent cluster count for clicks.",
          "format": "int64",
          "type": "string"
        },
        "searchRankLostImpressionShare": {
          "format": "double",
          "type": "number",
          "description": "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."
        },
        "historicalLandingPageQualityScore": {
          "type": "string",
          "description": "The quality of historical landing page experience.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Quality of the creative is below average.",
            "Quality of the creative is average.",
            "Quality of the creative is above average."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BELOW_AVERAGE",
            "AVERAGE",
            "ABOVE_AVERAGE"
          ]
        },
        "publisherUnknownClicks": {
          "type": "string",
          "format": "int64",
          "description": "Clicks from traffic which is not identified as \"Publisher Purchased\" or \"Publisher Organic\""
        },
        "newCustomerLifetimeValue": {
          "description": "New customers' lifetime conversion value. If you have set up customer acquisition goal at either account level or campaign level, this will include the additional conversion value from new customers for biddable conversions. If your campaign has adopted the customer acquisition goal and selected \"bid higher for new customers\", these values will be included in \"conversions_value\" for optimization. See https://support.google.com/google-ads/answer/12080169 for more details.",
          "format": "double",
          "type": "number"
        },
        "svr": {
          "description": "This feature is available to allowlisted accounts only.",
          "format": "int64",
          "type": "string"
        },
        "hotelPriceDifferencePercentage": {
          "description": "The average price difference between the price offered by reporting hotel advertiser and the cheapest price offered by the competing advertiser.",
          "type": "number",
          "format": "double"
        },
        "videoTrueviewViews": {
          "type": "string",
          "format": "int64",
          "description": "The number of TrueView views your video ads received."
        },
        "skAdNetworkInstalls": {
          "type": "string",
          "description": "The number of iOS Store Kit Ad Network conversions.",
          "format": "int64"
        },
        "videoTrueviewViewRateInFeed": {
          "format": "double",
          "type": "number",
          "description": "The number of TrueView views divided by number of impressions that can potentially lead to TrueView views for in-feed formats."
        },
        "trueviewAverageCpv": {
          "description": "The average amount you pay each time someone views your ad. The average CPV is defined by the total cost of all ad views divided by the number of TrueView views.",
          "format": "double",
          "type": "number"
        },
        "allConversionsFromStoreVisit": {
          "type": "number",
          "description": "Estimated number of times people visited a business after clicking an ad. This metric applies to feed items only.",
          "format": "double"
        },
        "activeViewAudibilityMeasurableImpressions": {
          "description": "The number of impressions for which Active View could measure if the ad was audible.",
          "type": "string",
          "format": "int64"
        },
        "gmailSecondaryClicks": {
          "description": "The number of clicks to the landing page on the expanded state of Gmail ads.",
          "format": "int64",
          "type": "string"
        },
        "conversionsFromInteractionsRate": {
          "description": "Conversions from interactions divided by the number of ad interactions (such as clicks for text ads or views for video ads). 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.",
          "type": "number",
          "format": "double"
        },
        "valuePerPlatformComparableConversion": {
          "type": "number",
          "description": "The value of platform comparable conversions divided by the number of platform comparable conversions. This only includes conversion actions for which include_in_conversions_metric attribute is set to true. If you use conversion-based bidding, your bid strategies will optimize for these conversions.",
          "format": "double"
        },
        "activeViewCtr": {
          "format": "double",
          "description": "Active view measurable clicks divided by active view viewable impressions. This metric is reported only for the Display Network.",
          "type": "number"
        },
        "averageTargetRoas": {
          "type": "number",
          "description": "The average Target ROAS, or unset if not available (for example, for campaigns that had traffic from portfolio bidding strategies or non-tROAS).",
          "format": "double"
        },
        "optimizationScoreUrl": {
          "description": "URL for the optimization score page in the Google Ads web interface. This metric can be selected from `customer` or `campaign`, and can be segmented by `segments.recommendation_type`. For example, `SELECT metrics.optimization_score_url, segments.recommendation_type FROM customer` will return a URL for each unique (customer, recommendation_type) combination.",
          "type": "string"
        },
        "assetPinnedAsHeadlinePositionOneCount": {
          "type": "string",
          "format": "int64",
          "description": "Number of entities in which the asset is pinned to headline 1. This metric can only be selected with ChannelAggregateAssetView and CampaignAggregateAssetView. This metric is only supported in Search channel."
        },
        "relativeCtr": {
          "type": "number",
          "description": "Your clickthrough rate (Ctr) divided by the average clickthrough rate of all advertisers on the websites that show your ads. Measures how your ads perform on Display Network sites compared to other ads on the same sites.",
          "format": "double"
        },
        "auctionInsightSearchOverlapRate": {
          "format": "double",
          "description": "This metric is part of the Auction Insights report, and tells how often another participant's ad received an impression when your ad also received an impression. This metric is not publicly available.",
          "type": "number"
        },
        "grossProfitMargin": {
          "format": "double",
          "description": "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.",
          "type": "number"
        },
        "costPerAllConversions": {
          "description": "The cost of ad interactions divided by all conversions.",
          "format": "double",
          "type": "number"
        },
        "percentNewVisitors": {
          "format": "double",
          "description": "Percentage of first-time sessions (from people who had never visited your site before). Imported from Google Analytics.",
          "type": "number"
        },
        "averagePageViews": {
          "format": "double",
          "description": "Average number of pages viewed per session.",
          "type": "number"
        },
        "hotelAverageLeadValueMicros": {
          "type": "number",
          "description": "Average lead value based on clicks.",
          "format": "double"
        },
        "averageVideoWatchTimeDurationMillis": {
          "format": "int64",
          "type": "string",
          "description": "Average video watch time duration in milliseconds for video impressions that started playing."
        },
        "searchRankLostAbsoluteTopImpressionShare": {
          "description": "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.",
          "type": "number",
          "format": "double"
        },
        "linkedSampleEntities": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "A list of up to 20 sample linked resources in which the asset is used. This metric can only be selected with ChannelAggregateAssetView and CampaignAggregateAssetView."
        },
        "uniqueUsers": {
          "description": "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.",
          "format": "int64",
          "type": "string"
        },
        "allConversionsValueByConversionDate": {
          "format": "double",
          "description": "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/google-ads/answer/9549009.",
          "type": "number"
        },
        "searchExactMatchImpressionShare": {
          "format": "double",
          "description": "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.",
          "type": "number"
        },
        "auctionInsightSearchAbsoluteTopImpressionPercentage": {
          "description": "This metric is part of the Auction Insights report, and tells how often the ads of another participant showed in the most prominent position on the search results page. This percentage is computed only over the auctions that you appeared in the page. This metric is not publicly available.",
          "type": "number",
          "format": "double"
        },
        "videoTrueviewViewRateInStream": {
          "type": "number",
          "format": "double",
          "description": "The number of TrueView views divided by number of impressions that can potentially lead to TrueView views for in-stream formats."
        },
        "activeViewAudibleQuartileP25Rate": {
          "description": "The number of impressions that were audible at the first quartile of the ad playback, divided by the total number of impressions measurable for audibility.",
          "format": "double",
          "type": "number"
        },
        "assetPinnedAsDescriptionPositionOneCount": {
          "type": "string",
          "description": "Number of entities in which the asset is pinned to description 1. This metric can only be selected with ChannelAggregateAssetView and CampaignAggregateAssetView. This metric is only supported in Search channel.",
          "format": "int64"
        },
        "allConversionsFromInteractionsValuePerInteraction": {
          "description": "The value of all conversions from interactions divided by the total number of interactions.",
          "format": "double",
          "type": "number"
        },
        "activeViewAudibilityInvalidGivtMeasurableImpressionsRate": {
          "type": "number",
          "format": "double",
          "description": "The number of impressions for which Active View could measure audibility, but that were filtered out by traffic quality filters, divided by the total number of impressions measurable for audibility. Only includes GIVT (general invalid traffic) impressions."
        },
        "biddableCohortAppPostInstallConversions": {
          "description": "Participated in-app actions. The number of in app actions that come directly or indirectly from the campaign.",
          "type": "number",
          "format": "double"
        },
        "activeViewViewability": {
          "format": "double",
          "description": "The percentage of time when your ad appeared on an Active View enabled site (measurable impressions) and was viewable (viewable impressions).",
          "type": "number"
        },
        "invalidClickRate": {
          "format": "double",
          "description": "The percentage of clicks filtered out of your total number of clicks (filtered + non-filtered clicks) during the reporting period.",
          "type": "number"
        },
        "linkedEntitiesCount": {
          "type": "string",
          "description": "Number of linked resources in which the asset is used. This metric can only be selected with ChannelAggregateAssetView and CampaignAggregateAssetView.",
          "format": "int64"
        },
        "costPerPlatformComparableConversion": {
          "type": "number",
          "description": "The cost of ad interactions divided by the number of platform comparable conversions. This only includes conversion actions for which include_in_conversions_metric attribute is set to true. If you use conversion-based bidding, your bid strategies will optimize for these conversions.",
          "format": "double"
        },
        "conversionLastConversionDate": {
          "description": "The date of the most recent conversion for this conversion action. The date is in the customer's time zone.",
          "type": "string"
        },
        "hotelCommissionRateMicros": {
          "format": "int64",
          "type": "string",
          "description": "Commission bid rate in micros. A 20% commission is represented as 200,000."
        },
        "messageChatRate": {
          "format": "double",
          "description": "Number of message chats initiated (message_chats) divided by the number of message impressions (message_impressions). Rate at which a user initiates a message chat from an ad impression with a messaging option and message tracking enabled. Note that this rate can be more than 1.0 for a given message impression.",
          "type": "number"
        },
        "generalInvalidClickRate": {
          "format": "double",
          "type": "number",
          "description": "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."
        },
        "invalidClicks": {
          "format": "int64",
          "type": "string",
          "description": "Number of clicks Google considers illegitimate and doesn't charge you for."
        },
        "organicQueries": {
          "type": "string",
          "description": "The total number of searches that returned your site's listing in the unpaid results. See the help page at https://support.google.com/google-ads/answer/3097241 for details.",
          "format": "int64"
        },
        "searchBudgetLostImpressionShare": {
          "type": "number",
          "description": "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.",
          "format": "double"
        },
        "crossDeviceConversions": {
          "format": "double",
          "type": "number",
          "description": "Conversions from when a customer clicks on a Google Ads ad on one device, then converts on a different device or browser. Cross-device conversions are already included in all_conversions."
        },
        "activeViewAudibleTwoSecondsImpressions": {
          "type": "string",
          "description": "The number of impressions that were audible for at least 2 seconds (cumulative).",
          "format": "int64"
        },
        "primaryImpressions": {
          "type": "string",
          "format": "int64",
          "description": "Primary impression is counted each time your ad is served. This metric is only available for the Campaign resource with adjusted_age_range and adjusted_gender segments. These segmentations are mandatory to get the primary impressions."
        },
        "averageCpc": {
          "description": "The total cost of all clicks divided by the total number of clicks received.",
          "type": "number",
          "format": "double"
        },
        "averageCpm": {
          "type": "number",
          "description": "Average cost-per-thousand impressions (CPM).",
          "format": "double"
        },
        "crossDeviceConversionsByConversionDate": {
          "format": "double",
          "description": "The number of cross-device conversions by conversion date. Details for the by_conversion_date columns are available at https://support.google.com/google-ads/answer/9549009.",
          "type": "number"
        },
        "crossDeviceConversionsValueMicros": {
          "format": "int64",
          "description": "The sum of the value of cross-device conversions, in micros.",
          "type": "string"
        },
        "publisherOrganicClicks": {
          "type": "string",
          "description": "Clicks from properties for which the traffic the publisher has not paid for or acquired through incentivized activity",
          "format": "int64"
        },
        "hotelExpectedCommissionCost": {
          "format": "double",
          "type": "number",
          "description": "Expected commission cost. The result of multiplying the commission value times the hotel_commission_rate in advertiser currency."
        },
        "orders": {
          "format": "double",
          "type": "number",
          "description": "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."
        },
        "leadGrossProfitMicros": {
          "description": "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.",
          "format": "int64",
          "type": "string"
        },
        "publisherPurchasedClicks": {
          "type": "string",
          "description": "Clicks from properties not owned by the publisher for which the traffic the publisher has paid for or acquired through incentivized activity",
          "format": "int64"
        },
        "crossSellCostOfGoodsSoldMicros": {
          "format": "int64",
          "type": "string",
          "description": "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."
        },
        "averageCost": {
          "type": "number",
          "description": "The average amount you pay per interaction. This amount is the total cost of your ads divided by the total number of interactions.",
          "format": "double"
        },
        "unitsSold": {
          "description": "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.",
          "type": "number",
          "format": "double"
        },
        "videoQuartileP75Rate": {
          "type": "number",
          "description": "Percentage of impressions where the viewer watched 75% of your video.",
          "format": "double"
        },
        "allConversionsFromClickToCall": {
          "type": "number",
          "format": "double",
          "description": "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."
        },
        "videoQuartileP50Rate": {
          "format": "double",
          "description": "Percentage of impressions where the viewer watched 50% of your video.",
          "type": "number"
        },
        "skAdNetworkTotalConversions": {
          "format": "int64",
          "description": "The total number of iOS Store Kit Ad Network conversions.",
          "type": "string"
        },
        "crossSellGrossProfitMicros": {
          "description": "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.",
          "format": "int64",
          "type": "string"
        },
        "activeViewAudibleQuartileP50Rate": {
          "description": "The number of impressions that were audible at the second quartile of the ad playback, divided by the total number of impressions measurable for audibility.",
          "type": "number",
          "format": "double"
        },
        "assetPinnedAsHeadlinePositionTwoCount": {
          "type": "string",
          "format": "int64",
          "description": "Number of entities in which the asset is pinned to headline 2. This metric can only be selected with ChannelAggregateAssetView and CampaignAggregateAssetView. This metric is only supported in Search channel."
        },
        "searchBudgetLostTopImpressionShare": {
          "description": "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.",
          "type": "number",
          "format": "double"
        },
        "contentRankLostImpressionShare": {
          "format": "double",
          "description": "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.",
          "type": "number"
        },
        "organicImpressionsPerQuery": {
          "type": "number",
          "format": "double",
          "description": "The number of times a page from your site was listed in the unpaid search results (organic_impressions) divided by the number of searches returning your site's listing in the unpaid results (organic_queries). See the help page at https://support.google.com/google-ads/answer/3097241 for details."
        },
        "allConversionsFromLocationAssetStoreVisits": {
          "type": "number",
          "description": "Estimated number of visits to the business after a chargeable ad event (click or impression). This measure is coming from Asset based location.",
          "format": "double"
        },
        "mobileFriendlyClicksPercentage": {
          "description": "The percentage of mobile clicks that go to a mobile-friendly page.",
          "format": "double",
          "type": "number"
        },
        "crossSellRevenueMicros": {
          "description": "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.",
          "type": "string",
          "format": "int64"
        },
        "interactionEventTypes": {
          "items": {
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "CLICK",
              "ENGAGEMENT",
              "VIDEO_VIEW",
              "NONE"
            ],
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "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.",
              "The user's expressed intent to engage with the ad in-place.",
              "User viewed a video ad.",
              "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."
            ]
          },
          "description": "The types of payable and free interactions.",
          "type": "array"
        },
        "videoQuartileP100Rate": {
          "format": "double",
          "description": "Percentage of impressions where the viewer watched all of your video.",
          "type": "number"
        },
        "searchRankLostTopImpressionShare": {
          "description": "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.",
          "type": "number",
          "format": "double"
        },
        "generalInvalidClicks": {
          "description": "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.",
          "format": "int64",
          "type": "string"
        },
        "searchTopImpressionShare": {
          "format": "double",
          "description": "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.",
          "type": "number"
        },
        "viewThroughConversionsFromLocationAssetStoreVisits": {
          "type": "number",
          "description": "Estimated number of visits to the business after an impression. This measure is coming from Asset based location.",
          "format": "double"
        },
        "combinedQueries": {
          "type": "string",
          "description": "The number of searches that returned pages from your site in the unpaid results or showed one of your text ads. See the help page at https://support.google.com/google-ads/answer/3097241 for details.",
          "format": "int64"
        },
        "impressionsUniqueQueryClusters": {
          "type": "string",
          "description": "Unique query intent cluster count for impressions.",
          "format": "int64"
        },
        "activeViewImpressions": {
          "description": "A measurement of how often your ad has become viewable on a Display Network site.",
          "format": "int64",
          "type": "string"
        },
        "engagementRate": {
          "type": "number",
          "description": "How often people engage with your ad after it's shown to them. This is the number of ad expansions divided by the number of times your ad is shown.",
          "format": "double"
        },
        "activeViewMeasurableCostMicros": {
          "type": "string",
          "format": "int64",
          "description": "The cost of the impressions you received that were measurable by Active View."
        },
        "gmailForwards": {
          "description": "The number of times the ad was forwarded to someone else as a message.",
          "type": "string",
          "format": "int64"
        },
        "crossDeviceConversionsValue": {
          "format": "double",
          "description": "The sum of the value of cross-device conversions.",
          "type": "number"
        },
        "absoluteTopImpressionPercentage": {
          "description": "Search absolute top impression share is the percentage of your Search ad impressions that are shown in the most prominent Search position.",
          "format": "double",
          "type": "number"
        },
        "auctionInsightSearchImpressionShare": {
          "format": "double",
          "type": "number",
          "description": "This metric is part of the Auction Insights report, and tells the percentage of impressions that another participant obtained, over the total number of impressions that your ads were eligible for. Any value below 0.1 is reported as 0.0999. This metric is not publicly available."
        },
        "leadCostOfGoodsSoldMicros": {
          "format": "int64",
          "type": "string",
          "description": "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."
        },
        "conversionsByConversionDate": {
          "description": "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. 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/google-ads/answer/9549009.",
          "format": "double",
          "type": "number"
        },
        "costConvertedCurrencyPerPlatformComparableConversion": {
          "description": "The cost of the platform comparable conversion in the currency of the authorized customer.",
          "type": "number",
          "format": "double"
        },
        "historicalSearchPredictedCtr": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Quality of the creative is below average.",
            "Quality of the creative is average.",
            "Quality of the creative is above average."
          ],
          "description": "The historical search predicted click through rate (CTR).",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BELOW_AVERAGE",
            "AVERAGE",
            "ABOVE_AVERAGE"
          ],
          "type": "string"
        },
        "conversionsValuePerCost": {
          "format": "double",
          "description": "The value of conversions divided by the cost 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.",
          "type": "number"
        },
        "valueAdjustment": {
          "type": "number",
          "description": "The conversion value rule adjustment from biddable conversions in all conversion categories.",
          "format": "double"
        },
        "conversions": {
          "type": "number",
          "format": "double",
          "description": "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."
        },
        "currentModelAttributedConversions": {
          "format": "double",
          "type": "number",
          "description": "Shows how your historic conversions data would look under the attribution model you've currently selected. 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."
        },
        "viewThroughConversionsFromLocationAssetOrder": {
          "description": "Number of order clicks on any location surface after an impression. This measure is coming from Asset based location.",
          "format": "double",
          "type": "number"
        },
        "allConversionsValue": {
          "format": "double",
          "type": "number",
          "description": "The value of all conversions."
        },
        "conversionLastReceivedRequestDateTime": {
          "type": "string",
          "description": "The last date/time a conversion tag for this conversion action successfully fired and was seen by Google Ads. This firing event may not have been the result of an attributable conversion (for example, because the tag was fired from a browser that did not previously click an ad from an appropriate advertiser). The date/time is in the customer's time zone."
        },
        "averageCpe": {
          "format": "double",
          "type": "number",
          "description": "The average amount that you've been charged for an ad engagement. This amount is the total cost of all ad engagements divided by the total number of ad engagements."
        },
        "valuePerAllConversions": {
          "description": "The value of all conversions divided by the number of all conversions.",
          "type": "number",
          "format": "double"
        },
        "conversionsFromInteractionsValuePerInteraction": {
          "type": "number",
          "description": "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.",
          "format": "double"
        },
        "platformComparableConversions": {
          "format": "double",
          "type": "number",
          "description": "The number of platform comparable conversions. This only includes conversion actions for which include_in_conversions_metric attribute is set to true. If you use conversion-based bidding, your bid strategies will optimize for these conversions."
        },
        "allConversionsFromLocationAssetWebsite": {
          "description": "Number of website URL clicks on any location surface after a chargeable ad event (click or impression). This measure is coming from Asset based location.",
          "format": "double",
          "type": "number"
        },
        "benchmarkAverageMaxCpc": {
          "type": "number",
          "format": "double",
          "description": "An indication of how other advertisers are bidding on similar products."
        },
        "speedScore": {
          "description": "A measure of how quickly your page loads after clicks on your mobile ads. The score is a range from 1 to 10, 10 being the fastest.",
          "format": "int64",
          "type": "string"
        },
        "leadRevenueMicros": {
          "type": "string",
          "description": "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.",
          "format": "int64"
        },
        "activeViewCpm": {
          "description": "Average cost of viewable impressions (`active_view_impressions`).",
          "type": "number",
          "format": "double"
        },
        "resultsConversionsPurchase": {
          "format": "double",
          "description": "The purchase conversion stats for the unified goals results.",
          "type": "number"
        },
        "allValueAdjustment": {
          "type": "number",
          "format": "double",
          "description": "The conversion value rule adjustment from all conversions in all conversion categories."
        },
        "combinedClicksPerQuery": {
          "description": "The number of times your ad or your site's listing in the unpaid results was clicked (combined_clicks) divided by combined_queries. See the help page at https://support.google.com/google-ads/answer/3097241 for details.",
          "type": "number",
          "format": "double"
        },
        "validAcceleratedMobilePagesClicksPercentage": {
          "type": "number",
          "format": "double",
          "description": "The percentage of ad clicks to Accelerated Mobile Pages (AMP) landing pages that reach a valid AMP page."
        },
        "organicImpressions": {
          "description": "The number of listings for your site in the unpaid search results. See the help page at https://support.google.com/google-ads/answer/3097241 for details.",
          "format": "int64",
          "type": "string"
        },
        "conversionsValueByConversionDate": {
          "format": "double",
          "type": "number",
          "description": "The value 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. 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/google-ads/answer/9549009."
        },
        "allConversionsFromLocationAssetMenu": {
          "description": "Number of menu link clicks on any location surface after a chargeable ad event (click or impression). This measure is coming from Asset based location.",
          "format": "double",
          "type": "number"
        },
        "searchBudgetLostAbsoluteTopImpressionShare": {
          "format": "double",
          "description": "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.",
          "type": "number"
        },
        "activeViewAudibleTwoSecondsImpressionsRate": {
          "description": "The number of impressions that were audible for at least 2 seconds (cumulative), divided by the total number of impressions measurable for audibility.",
          "type": "number",
          "format": "double"
        },
        "activeViewAudibleQuartileP75Rate": {
          "type": "number",
          "format": "double",
          "description": "The number of impressions that were audible at the third quartile of the ad playback, divided by the total number of impressions measurable for audibility."
        },
        "searchClickShare": {
          "format": "double",
          "description": "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.",
          "type": "number"
        },
        "allConversionsFromInteractionsRate": {
          "type": "number",
          "description": "All conversions from interactions (as oppose to view through conversions) divided by the number of ad interactions.",
          "format": "double"
        },
        "activeViewAudibleThirtySecondsImpressionsRate": {
          "type": "number",
          "format": "double",
          "description": "The number of impressions that were audible for at least 30 seconds (cumulative), divided by the total number of impressions measurable for audibility."
        },
        "assetPinnedAsHeadlinePositionThreeCount": {
          "description": "Number of entities in which the asset is pinned to headline 3. This metric can only be selected with ChannelAggregateAssetView and CampaignAggregateAssetView. This metric is only supported in Search channel.",
          "type": "string",
          "format": "int64"
        },
        "platformComparableConversionsValuePerCost": {
          "description": "The value of conversions divided by the cost of ad interactions. This only includes conversion actions for which include_in_conversions_metric attribute is set to true. If you use conversion-based bidding, your bid strategies will optimize for these conversions.",
          "type": "number",
          "format": "double"
        },
        "coviewedImpressions": {
          "description": "All co-viewed impressions represent the total number of people who saw your ad. This includes people who are signed into their Google Account, as well as other people who are watching the same ad on a connected TV. This metric is only available for the Campaign resource with adjusted_age_range and adjusted_gender segments. These segmentations are mandatory to get the all coviewed impressions.",
          "type": "string",
          "format": "int64"
        },
        "currentModelAttributedConversionsValuePerCost": {
          "type": "number",
          "description": "The value of current model attributed conversions divided by the cost 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.",
          "format": "double"
        },
        "impressionsFromStoreReach": {
          "type": "string",
          "description": "The number of times a business's location-based ad was shown. This metric applies to feed items only.",
          "format": "int64"
        },
        "benchmarkCtr": {
          "format": "double",
          "description": "An indication on how other advertisers' Shopping ads for similar products are performing based on how often people who see their ad click on it.",
          "type": "number"
        },
        "revenueMicros": {
          "description": "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.",
          "format": "int64",
          "type": "string"
        },
        "activeViewMeasurableImpressions": {
          "description": "The number of times your ads are appearing on placements in positions where they can be seen.",
          "format": "int64",
          "type": "string"
        },
        "activeViewAudibleImpressionsRate": {
          "description": "The number of impressions that were audible (volume > 0%) at any point during the ad playback, divided by the total number of impressions measurable for audibility.",
          "type": "number",
          "format": "double"
        },
        "activeViewMeasurability": {
          "format": "double",
          "type": "number",
          "description": "The ratio of impressions that could be measured by Active View over the number of served impressions."
        },
        "conversionsValue": {
          "type": "number",
          "format": "double",
          "description": "The value 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."
        },
        "videoWatchTimeDurationMillis": {
          "description": "Total watch time duration in milliseconds for video impressions that started playing. For a small percentage of impressions, we may not be able to measure the watch time accurately. In such cases, we adjust the total time to account for any unmeasured time by applying the average watch time of impressions that were measured.",
          "format": "int64",
          "type": "string"
        },
        "contentImpressionShare": {
          "type": "number",
          "format": "double",
          "description": "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."
        },
        "currentModelAttributedConversionsValue": {
          "format": "double",
          "description": "The value of 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.",
          "type": "number"
        },
        "biddableAppPostInstallConversions": {
          "type": "number",
          "format": "double",
          "description": "Number of in-app actions."
        },
        "allConversionsByConversionDate": {
          "type": "number",
          "description": "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/google-ads/answer/9549009.",
          "format": "double"
        },
        "organicClicksPerQuery": {
          "description": "The number of times someone clicked your site's listing in the unpaid results (organic_clicks) divided by the total number of searches that returned pages from your site (organic_queries). See the help page at https://support.google.com/google-ads/answer/3097241 for details.",
          "type": "number",
          "format": "double"
        },
        "videoQuartileP25Rate": {
          "type": "number",
          "format": "double",
          "description": "Percentage of impressions where the viewer watched 25% of your video."
        },
        "allConversionsFromLocationAssetClickToCall": {
          "description": "Number of call button clicks on any location surface after a chargeable ad event (click or impression). This measure is coming from Asset based location.",
          "format": "double",
          "type": "number"
        },
        "viewThroughConversionsFromLocationAssetMenu": {
          "type": "number",
          "description": "Number of menu link clicks on any location surface after an impression. This measure is coming from Asset based location.",
          "format": "double"
        },
        "valuePerPlatformComparableConversionsByConversionDate": {
          "description": "The value of platform comparable conversions divided by the number of platform comparable conversions. When this metric is segmented by date, the values in the date segment represent the conversion date. This only includes conversion actions for which include_in_conversions_metric attribute is set to true. If you use conversion-based bidding, your bid strategies will optimize for these conversions.",
          "format": "double",
          "type": "number"
        },
        "conversionsUniqueQueryClusters": {
          "description": "Unique query intent cluster count for conversions.",
          "type": "string",
          "format": "int64"
        },
        "viewThroughConversionsFromLocationAssetClickToCall": {
          "type": "number",
          "description": "Number of call button clicks on any location surface after an impression. This measure is coming from Asset based location.",
          "format": "double"
        },
        "searchAbsoluteTopImpressionShare": {
          "format": "double",
          "type": "number",
          "description": "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/google-ads/answer/7501826 for details. Any value below 0.1 is reported as 0.0999."
        },
        "crossDeviceConversionsValueByConversionDate": {
          "description": "The sum of cross-device conversions value by conversion date. Details for the by_conversion_date columns are available at https://support.google.com/google-ads/answer/9549009.",
          "format": "double",
          "type": "number"
        },
        "auctionInsightSearchOutrankingShare": {
          "description": "This metric is part of the Auction Insights report, and tells the percentage of impressions that your ads outranked (showed above) another participant in the auction, compared to the total number of impressions that your ads were eligible for. Any value below 0.1 is reported as 0.0999. This metric is not publicly available.",
          "type": "number",
          "format": "double"
        },
        "activeViewAudibilityInvalidMeasurableImpressionsRate": {
          "format": "double",
          "description": "The number of impressions for which Active View could measure audibility, but that were filtered out by traffic quality filters, divided by the total number of impressions measurable for audibility.",
          "type": "number"
        },
        "allConversionsFromLocationAssetOtherEngagement": {
          "type": "number",
          "description": "Number of other types of local action clicks on any location surface after a chargeable ad event (click or impression). This measure is coming from Asset based location.",
          "format": "double"
        },
        "crossSellUnitsSold": {
          "type": "number",
          "format": "double",
          "description": "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."
        },
        "allConversionsFromOtherEngagement": {
          "description": "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.",
          "type": "number",
          "format": "double"
        },
        "averageTargetCpaMicros": {
          "type": "string",
          "format": "int64",
          "description": "The average Target CPA, or unset if not available (for example, for campaigns that had traffic from portfolio bidding strategies or non-tCPA)."
        },
        "platformComparableConversionsFromInteractionsValuePerInteraction": {
          "format": "double",
          "description": "The value of platform comparable conversions from interactions divided by the number of ad interactions. This only includes conversion actions for which include_in_conversions_metric attribute is set to true. If you use conversion-based bidding, your bid strategies will optimize for these conversions.",
          "type": "number"
        },
        "platformComparableConversionsValue": {
          "type": "number",
          "format": "double",
          "description": "The value of platform comparable 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."
        },
        "allNewCustomerLifetimeValue": {
          "description": "All of new customers' lifetime conversion value. If you have set up customer acquisition goal at either account level or campaign level, this will include the additional conversion value from new customers for both biddable and non-biddable conversions. If your campaign has adopted the customer acquisition goal and selected \"bid higher for new customers\", these values will be included in \"all_conversions_value\". See https://support.google.com/google-ads/answer/12080169 for more details.",
          "type": "number",
          "format": "double"
        },
        "interactionRate": {
          "description": "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.",
          "format": "double",
          "type": "number"
        },
        "platformComparableConversionsByConversionDate": {
          "description": "The number of platform comparable conversions. When this metric is segmented by date, the values in the date segment represent the conversion date. This only includes conversion actions for which include_in_conversions_metric attribute is set to true. If you use conversion-based bidding, your bid strategies will optimize for these conversions.",
          "type": "number",
          "format": "double"
        },
        "searchImpressionShare": {
          "description": "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.",
          "type": "number",
          "format": "double"
        },
        "valuePerConversionsByConversionDate": {
          "description": "The value of conversions divided by 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. 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/google-ads/answer/9549009.",
          "format": "double",
          "type": "number"
        },
        "valuePerCurrentModelAttributedConversion": {
          "description": "The value of current model attributed conversions divided by the number of the 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.",
          "format": "double",
          "type": "number"
        },
        "messageChats": {
          "description": "Number of message chats initiated for Click To Message impressions that were message tracking eligible.",
          "format": "int64",
          "type": "string"
        },
        "grossProfitMicros": {
          "description": "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.",
          "type": "string",
          "format": "int64"
        },
        "valuePerAllConversionsByConversionDate": {
          "description": "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/google-ads/answer/9549009.",
          "type": "number",
          "format": "double"
        },
        "historicalQualityScore": {
          "type": "string",
          "format": "int64",
          "description": "The historical quality score."
        },
        "interactions": {
          "description": "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.",
          "type": "string",
          "format": "int64"
        },
        "engagements": {
          "type": "string",
          "format": "int64",
          "description": "The number of engagements. An engagement occurs when a viewer expands your Lightbox ad. Also, in the future, other ad types may support engagement metrics."
        },
        "phoneThroughRate": {
          "type": "number",
          "format": "double",
          "description": "Number of phone calls received (phone_calls) divided by the number of times your phone number is shown (phone_impressions)."
        },
        "averageTimeOnSite": {
          "description": "Total duration of all sessions (in seconds) / number of sessions. Imported from Google Analytics.",
          "format": "double",
          "type": "number"
        },
        "gmailSaves": {
          "type": "string",
          "format": "int64",
          "description": "The number of times someone has saved your Gmail ad to their inbox as a message."
        },
        "allConversionsFromLocationAssetDirections": {
          "format": "double",
          "description": "Number of driving directions clicks on any location surface after a chargeable ad event (click or impression). This measure is coming from Asset based location.",
          "type": "number"
        },
        "activeViewAudibleImpressions": {
          "format": "int64",
          "type": "string",
          "description": "The number of impressions that were audible (volume > 0%) at any point during the ad playback."
        },
        "hotelEligibleImpressions": {
          "format": "int64",
          "description": "The number of impressions that hotel partners could have had given their feed performance.",
          "type": "string"
        },
        "clicks": {
          "type": "string",
          "format": "int64",
          "description": "The number of clicks."
        },
        "costOfGoodsSoldMicros": {
          "description": "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.",
          "type": "string",
          "format": "int64"
        },
        "allConversionsFromDirections": {
          "format": "double",
          "type": "number",
          "description": "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."
        },
        "contentBudgetLostImpressionShare": {
          "description": "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.",
          "type": "number",
          "format": "double"
        },
        "allConversionsFromStoreWebsite": {
          "type": "number",
          "format": "double",
          "description": "The number of times that people were taken to a business's URL after clicking an ad. This metric applies to feed items only."
        },
        "auctionInsightSearchPositionAboveRate": {
          "type": "number",
          "description": "This metric is part of the Auction Insights report, and tells how often another participant's ad was shown in a higher position than yours, when both of your ads were shown at the same page. This metric is not publicly available.",
          "format": "double"
        },
        "eligibleImpressionsFromLocationAssetStoreReach": {
          "description": "Number of impressions in which the business location was shown or the location was used for targeting. This measure is coming from Asset based location.",
          "format": "int64",
          "type": "string"
        },
        "activeViewAudibleQuartileP100Rate": {
          "description": "The number of impressions that were audible at the fourth quartile of the ad playback, divided by the total number of impressions measurable for audibility.",
          "format": "double",
          "type": "number"
        },
        "historicalCreativeQualityScore": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Quality of the creative is below average.",
            "Quality of the creative is average.",
            "Quality of the creative is above average."
          ],
          "description": "The creative historical quality score.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BELOW_AVERAGE",
            "AVERAGE",
            "ABOVE_AVERAGE"
          ],
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__Metrics"
    },
    "GoogleAdsGoogleadsV23Services__MutateAdsResponse": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateAdsResponse",
      "description": "Response message for an ad mutate.",
      "properties": {
        "results": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateAdResult"
          },
          "description": "All results for the mutate.",
          "type": "array"
        },
        "partialFailureError": {
          "$ref": "GoogleRpc__Status",
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error."
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__MutateCampaignConversionGoalsResponse": {
      "id": "GoogleAdsGoogleadsV23Services__MutateCampaignConversionGoalsResponse",
      "properties": {
        "results": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateCampaignConversionGoalResult"
          },
          "type": "array",
          "description": "All results for the mutate."
        }
      },
      "description": "Response message for a campaign conversion goal mutate.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__OperatingSystemVersionConstant": {
      "description": "A mobile operating system version or a range of versions, depending on `operator_type`. List of available mobile platforms at https://developers.google.com/google-ads/api/reference/data/codes-formats#mobile-platforms",
      "id": "GoogleAdsGoogleadsV23Resources__OperatingSystemVersionConstant",
      "properties": {
        "operatorType": {
          "type": "string",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EQUALS_TO",
            "GREATER_THAN_EQUALS_TO"
          ],
          "description": "Output only. Determines whether this constant represents a single version or a range of versions.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Equals to the specified version.",
            "Greater than or equals to the specified version."
          ]
        },
        "id": {
          "description": "Output only. The ID of the operating system version.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "osMinorVersion": {
          "description": "Output only. The OS Minor Version number.",
          "readOnly": true,
          "type": "integer",
          "format": "int32"
        },
        "resourceName": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The resource name of the operating system version constant. Operating system version constant resource names have the form: `operatingSystemVersionConstants/{criterion_id}`"
        },
        "name": {
          "description": "Output only. Name of the operating system.",
          "type": "string",
          "readOnly": true
        },
        "osMajorVersion": {
          "format": "int32",
          "type": "integer",
          "readOnly": true,
          "description": "Output only. The OS Major Version number."
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__IdentityVerification": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__IdentityVerification",
      "properties": {
        "verificationProgress": {
          "description": "Information regarding progress for this verification program for this customer.",
          "$ref": "GoogleAdsGoogleadsV23Services__IdentityVerificationProgress"
        },
        "verificationProgram": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADVERTISER_IDENTITY_VERIFICATION"
          ],
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Advertiser submits documents to verify their identity."
          ],
          "description": "The verification program type.",
          "type": "string"
        },
        "identityVerificationRequirement": {
          "$ref": "GoogleAdsGoogleadsV23Services__IdentityVerificationRequirement",
          "description": "The verification requirement for this verification program for this customer."
        }
      },
      "description": "An identity verification for a customer."
    },
    "GoogleAdsGoogleadsV23Common__TargetCpaSimulationPoint": {
      "description": "Projected metrics for a specific target CPA amount.",
      "properties": {
        "biddableConversions": {
          "description": "Projected number of biddable conversions.",
          "type": "number",
          "format": "double"
        },
        "costMicros": {
          "format": "int64",
          "description": "Projected cost in micros.",
          "type": "string"
        },
        "biddableConversionsValue": {
          "format": "double",
          "type": "number",
          "description": "Projected total value of biddable conversions."
        },
        "impressions": {
          "type": "string",
          "format": "int64",
          "description": "Projected number of impressions."
        },
        "targetCpaMicros": {
          "type": "string",
          "description": "The simulated target CPA upon which projected metrics are based.",
          "format": "int64"
        },
        "appInstalls": {
          "format": "double",
          "description": "Projected number of app installs.",
          "type": "number"
        },
        "requiredBudgetAmountMicros": {
          "type": "string",
          "format": "int64",
          "description": "Projected required daily budget that the advertiser must set in order to receive the estimated traffic, in micros of advertiser currency."
        },
        "inAppActions": {
          "description": "Projected number of in-app actions.",
          "type": "number",
          "format": "double"
        },
        "clicks": {
          "type": "string",
          "format": "int64",
          "description": "Projected number of clicks."
        },
        "interactions": {
          "format": "int64",
          "type": "string",
          "description": "Projected number of interactions. Only discovery advertising channel type supports this field."
        },
        "topSlotImpressions": {
          "format": "int64",
          "type": "string",
          "description": "Projected number of top slot impressions. Only search advertising channel type supports this field."
        },
        "targetCpaScalingModifier": {
          "format": "double",
          "description": "The simulated scaling modifier upon which projected metrics are based. All CPA targets relevant to the simulated entity are scaled by this modifier.",
          "type": "number"
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__TargetCpaSimulationPoint",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__SuggestSmartCampaignBudgetOptionsResponse": {
      "type": "object",
      "properties": {
        "high": {
          "description": "Optional. The highest budget option.",
          "$ref": "GoogleAdsGoogleadsV23Services_SuggestSmartCampaignBudgetOptionsResponse_BudgetOption"
        },
        "low": {
          "description": "Optional. The lowest budget option.",
          "$ref": "GoogleAdsGoogleadsV23Services_SuggestSmartCampaignBudgetOptionsResponse_BudgetOption"
        },
        "recommended": {
          "$ref": "GoogleAdsGoogleadsV23Services_SuggestSmartCampaignBudgetOptionsResponse_BudgetOption",
          "description": "Optional. The recommended budget option."
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__SuggestSmartCampaignBudgetOptionsResponse",
      "description": "Response message for SmartCampaignSuggestService.SuggestSmartCampaignBudgetOptions. Depending on whether the system could suggest the options, either all of the options or none of them might be returned."
    },
    "GoogleAdsGoogleadsV23Common__AudienceDimension": {
      "properties": {
        "householdIncome": {
          "description": "Dimension specifying users by their household income.",
          "$ref": "GoogleAdsGoogleadsV23Common__HouseholdIncomeDimension"
        },
        "gender": {
          "$ref": "GoogleAdsGoogleadsV23Common__GenderDimension",
          "description": "Dimension specifying users by their gender."
        },
        "age": {
          "description": "Dimension specifying users by their age.",
          "$ref": "GoogleAdsGoogleadsV23Common__AgeDimension"
        },
        "parentalStatus": {
          "description": "Dimension specifying users by their parental status.",
          "$ref": "GoogleAdsGoogleadsV23Common__ParentalStatusDimension"
        },
        "audienceSegments": {
          "$ref": "GoogleAdsGoogleadsV23Common__AudienceSegmentDimension",
          "description": "Dimension specifying users by their membership in other audience segments."
        }
      },
      "description": "Positive dimension specifying user's audience.",
      "id": "GoogleAdsGoogleadsV23Common__AudienceDimension",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__KeywordThemeConstant": {
      "type": "object",
      "description": "A Smart Campaign keyword theme constant.",
      "id": "GoogleAdsGoogleadsV23Resources__KeywordThemeConstant",
      "properties": {
        "displayName": {
          "readOnly": true,
          "description": "Output only. The display name of the keyword theme or sub keyword theme.",
          "type": "string"
        },
        "languageCode": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The ISO-639-1 language code with 2 letters of the constant, eg. \"en\". To display and query matching purpose, the keyword theme needs to be localized."
        },
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the keyword theme constant. Keyword theme constant resource names have the form: `keywordThemeConstants/{keyword_theme_id}~{sub_keyword_theme_id}`",
          "readOnly": true
        },
        "countryCode": {
          "readOnly": true,
          "description": "Output only. The ISO-3166 Alpha-2 country code of the constant, eg. \"US\". To display and query matching purpose, the keyword theme needs to be localized.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Common__StoreSalesThirdPartyMetadata": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Common__StoreSalesThirdPartyMetadata",
      "description": "Metadata for a third party Store Sales. This product is only for customers on the allow-list. Contact your Google business development representative for details on the upload configuration.",
      "properties": {
        "partnerMatchFraction": {
          "format": "double",
          "type": "number",
          "description": "The fraction of valid transactions that are matched to a third party assigned user ID on the partner side. Required. The fraction needs to be between 0 and 1 (excluding 0)."
        },
        "advertiserUploadDateTime": {
          "description": "Time the advertiser uploaded the data to the partner. Required. The format is \"YYYY-MM-DD HH:MM:SS\". Examples: \"2018-03-05 09:15:00\" or \"2018-02-01 14:34:30\"",
          "type": "string"
        },
        "partnerUploadFraction": {
          "type": "number",
          "format": "double",
          "description": "The fraction of valid transactions that are uploaded by the partner to Google. Required. The fraction needs to be between 0 and 1 (excluding 0)."
        },
        "partnerId": {
          "format": "int64",
          "description": "ID of the third party partner updating the transaction feed.",
          "type": "string"
        },
        "bridgeMapVersionId": {
          "type": "string",
          "description": "Version of partner IDs to be used for uploads. Required."
        },
        "validTransactionFraction": {
          "description": "The fraction of transactions that are valid. Invalid transactions may include invalid formats or values. Required. The fraction needs to be between 0 and 1 (excluding 0).",
          "type": "number",
          "format": "double"
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__AdGroupAssetSet": {
      "id": "GoogleAdsGoogleadsV23Resources__AdGroupAssetSet",
      "type": "object",
      "properties": {
        "assetSet": {
          "type": "string",
          "description": "Immutable. The asset set which is linked to the ad group."
        },
        "adGroup": {
          "type": "string",
          "description": "Immutable. The ad group to which this asset set is linked."
        },
        "status": {
          "type": "string",
          "enumDescriptions": [
            "The status has not been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The linkage between asset set and its container is enabled.",
            "The linkage between asset set and its container is removed."
          ],
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "description": "Output only. The status of the ad group asset set. Read-only."
        },
        "resourceName": {
          "description": "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}`",
          "type": "string"
        }
      },
      "description": "AdGroupAssetSet is the linkage between an ad group and an asset set. Creating an AdGroupAssetSet links an asset set with an ad group."
    },
    "GoogleAdsGoogleadsV23Common__CustomerMatchUserListMetadata": {
      "type": "object",
      "properties": {
        "consent": {
          "$ref": "GoogleAdsGoogleadsV23Common__Consent",
          "description": "The consent setting for all the users in this job."
        },
        "userList": {
          "type": "string",
          "description": "The resource name of remarketing list to update data. Required for job of CUSTOMER_MATCH_USER_LIST type."
        }
      },
      "description": "Metadata for customer match user list.",
      "id": "GoogleAdsGoogleadsV23Common__CustomerMatchUserListMetadata"
    },
    "GoogleAdsGoogleadsV23Resources_AdGroupCriterion_PositionEstimates": {
      "type": "object",
      "description": "Estimates for criterion bids at various positions.",
      "id": "GoogleAdsGoogleadsV23Resources_AdGroupCriterion_PositionEstimates",
      "properties": {
        "estimatedAddClicksAtFirstPositionCpc": {
          "type": "string",
          "format": "int64",
          "description": "Output only. Estimate of how many clicks per week you might get by changing your keyword bid to the value in first_position_cpc_micros.",
          "readOnly": true
        },
        "firstPageCpcMicros": {
          "format": "int64",
          "description": "Output only. The estimate of the CPC bid required for ad to be shown on first page of search results.",
          "type": "string",
          "readOnly": true
        },
        "topOfPageCpcMicros": {
          "type": "string",
          "format": "int64",
          "description": "Output only. The estimate of the CPC bid required for ad to be displayed at the top of the first page of search results.",
          "readOnly": true
        },
        "firstPositionCpcMicros": {
          "readOnly": true,
          "description": "Output only. The estimate of the CPC bid required for ad to be displayed in first position, at the top of the first page of search results.",
          "format": "int64",
          "type": "string"
        },
        "estimatedAddCostAtFirstPositionCpc": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. Estimate of how your cost per week might change when changing your keyword bid to the value in first_position_cpc_micros.",
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV23Resources__HotelPerformanceView": {
      "description": "A hotel performance view.",
      "properties": {
        "resourceName": {
          "description": "Output only. The resource name of the hotel performance view. Hotel performance view resource names have the form: `customers/{customer_id}/hotelPerformanceView`",
          "type": "string",
          "readOnly": true
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__HotelPerformanceView"
    },
    "GoogleAdsGoogleadsV23Common__VideoBumperInStreamAdInfo": {
      "properties": {
        "actionButtonLabel": {
          "description": "Label on the \"Call To Action\" button taking the user to the video ad's final URL.",
          "type": "string"
        },
        "companionBanner": {
          "description": "The image assets of the companion banner used with the ad.",
          "$ref": "GoogleAdsGoogleadsV23Common__AdImageAsset"
        },
        "actionHeadline": {
          "type": "string",
          "description": "Additional text displayed with the CTA (call-to-action) button to give context and encourage clicking on the button."
        }
      },
      "id": "GoogleAdsGoogleadsV23Common__VideoBumperInStreamAdInfo",
      "description": "Representation of video bumper in-stream ad format (very short in-stream non-skippable video ad).",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateRemarketingActionsResponse": {
      "id": "GoogleAdsGoogleadsV23Services__MutateRemarketingActionsResponse",
      "description": "Response message for remarketing action mutate.",
      "properties": {
        "results": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateRemarketingActionResult"
          },
          "type": "array",
          "description": "All results for the mutate."
        },
        "partialFailureError": {
          "$ref": "GoogleRpc__Status",
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error."
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__ApplyRecommendationResult": {
      "description": "The result of applying a recommendation.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful applies."
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__ApplyRecommendationResult",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__CampaignLabelOperation": {
      "id": "GoogleAdsGoogleadsV23Services__CampaignLabelOperation",
      "description": "A single operation (create, remove) on a campaign-label relationship.",
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new campaign-label relationship.",
          "$ref": "GoogleAdsGoogleadsV23Resources__CampaignLabel"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the campaign-label relationship being removed, in this format: `customers/{customer_id}/campaignLabels/{campaign_id}~{label_id}`"
        }
      },
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateConversionValueRuleSetResult": {
      "properties": {
        "conversionValueRuleSet": {
          "description": "The mutated conversion value rule set with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV23Resources__ConversionValueRuleSet"
        },
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateConversionValueRuleSetResult",
      "description": "The result for the conversion value rule set mutate."
    },
    "GoogleAdsGoogleadsV23Services__MutateCampaignsRequest": {
      "description": "Request message for CampaignService.MutateCampaigns.",
      "properties": {
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "operations": {
          "description": "Required. The list of operations to perform on individual campaigns.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__CampaignOperation"
          },
          "type": "array"
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "responseContentType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation."
        }
      },
      "id": "GoogleAdsGoogleadsV23Services__MutateCampaignsRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Resources__LocationInterestView": {
      "id": "GoogleAdsGoogleadsV23Resources__LocationInterestView",
      "description": "A location interest view summarizes the performance of adgroup location interest criteria.",
      "type": "object",
      "properties": {
        "resourceName": {
          "description": "Output only. The resource name of the location interest view. Location interest view resource names have the form: `customers/{customer_id}/locationInterestViews/{campaign_id}~{ad_group_id}~{criterion_id}`",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV23Services__ReachForecast": {
      "id": "GoogleAdsGoogleadsV23Services__ReachForecast",
      "properties": {
        "costMicros": {
          "description": "The cost in micros.",
          "type": "string",
          "format": "int64"
        },
        "plannedProductReachForecasts": {
          "description": "The forecasted allocation and traffic metrics for each planned product at this point on the reach curve.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__PlannedProductReachForecast"
          },
          "type": "array"
        },
        "forecast": {
          "description": "Forecasted traffic metrics for this point.",
          "$ref": "GoogleAdsGoogleadsV23Services__Forecast"
        }
      },
      "description": "A point on reach curve.",
      "type": "object"
    },
    "GoogleAdsGoogleadsV23Services__MutateSmartCampaignSettingsResponse": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__MutateSmartCampaignSettingsResponse",
      "properties": {
        "partialFailureError": {
          "$ref": "GoogleRpc__Status",
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error."
        },
        "results": {
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateSmartCampaignSettingResult"
          },
          "type": "array"
        }
      },
      "description": "Response message for campaign mutate."
    },
    "GoogleAdsGoogleadsV23Resources_AdGroupDemandGenAdGroupSettingsDemandGenChannelControls_DemandGenSelectedChannels": {
      "type": "object",
      "properties": {
        "youtubeInStream": {
          "description": "Whether to enable ads on the YouTube In-Stream channel.",
          "type": "boolean"
        },
        "discover": {
          "description": "Whether to enable ads on the Discover channel.",
          "type": "boolean"
        },
        "display": {
          "description": "Whether to enable ads on the Display channel.",
          "type": "boolean"
        },
        "gmail": {
          "type": "boolean",
          "description": "Whether to enable ads on the Gmail channel."
        },
        "youtubeShorts": {
          "description": "Whether to enable ads on the YouTube Shorts channel.",
          "type": "boolean"
        },
        "youtubeInFeed": {
          "type": "boolean",
          "description": "Whether to enable ads on the YouTube In-Feed channel."
        }
      },
      "description": "Explicitly selected channels for channel controls in Demand Gen ad groups.",
      "id": "GoogleAdsGoogleadsV23Resources_AdGroupDemandGenAdGroupSettingsDemandGenChannelControls_DemandGenSelectedChannels"
    },
    "GoogleAdsGoogleadsV23Services__MutateKeywordPlanCampaignsRequest": {
      "id": "GoogleAdsGoogleadsV23Services__MutateKeywordPlanCampaignsRequest",
      "type": "object",
      "properties": {
        "operations": {
          "description": "Required. The list of operations to perform on individual Keyword Plan campaigns.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Services__KeywordPlanCampaignOperation"
          }
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        }
      },
      "description": "Request message for KeywordPlanCampaignService.MutateKeywordPlanCampaigns."
    },
    "GoogleAdsGoogleadsV23Services__AdGroupAdLabelOperation": {
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Services__AdGroupAdLabelOperation",
      "properties": {
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the ad group ad label being removed, in this format: `customers/{customer_id}/adGroupAdLabels/{ad_group_id}~{ad_id}~{label_id}`"
        },
        "create": {
          "$ref": "GoogleAdsGoogleadsV23Resources__AdGroupAdLabel",
          "description": "Create operation: No resource name is expected for the new ad group ad label."
        }
      },
      "description": "A single operation (create, remove) on an ad group ad label."
    },
    "GoogleAdsGoogleadsV23Resources__MediaFile": {
      "description": "A media file.",
      "properties": {
        "mediaBundle": {
          "description": "Immutable. A ZIP archive media the content of which contains HTML5 assets.",
          "$ref": "GoogleAdsGoogleadsV23Resources__MediaBundle"
        },
        "type": {
          "description": "Immutable. Type of the media file.",
          "enumDescriptions": [
            "The media type has not been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "Static image, used for image ad.",
            "Small image, used for map ad.",
            "ZIP file, used in fields of template ads.",
            "Audio file.",
            "Video file.",
            "Animated image, such as animated GIF."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "IMAGE",
            "ICON",
            "MEDIA_BUNDLE",
            "AUDIO",
            "VIDEO",
            "DYNAMIC_IMAGE"
          ],
          "type": "string"
        },
        "video": {
          "description": "Immutable. Encapsulates a Video.",
          "$ref": "GoogleAdsGoogleadsV23Resources__MediaVideo"
        },
        "sourceUrl": {
          "type": "string",
          "description": "Immutable. The URL of where the original media file was downloaded from (or a file name). Only used for media of type AUDIO and IMAGE."
        },
        "fileSize": {
          "description": "Output only. The size of the media file in bytes.",
          "type": "string",
          "readOnly": true,
          "format": "int64"
        },
        "image": {
          "description": "Immutable. Encapsulates an Image.",
          "$ref": "GoogleAdsGoogleadsV23Resources__MediaImage"
        },
        "mimeType": {
          "type": "string",
          "description": "Output only. The mime type of the media file.",
          "readOnly": true,
          "enumDescriptions": [
            "The mime type has not been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "MIME type of image/jpeg.",
            "MIME type of image/gif.",
            "MIME type of image/png.",
            "MIME type of application/x-shockwave-flash.",
            "MIME type of text/html.",
            "MIME type of application/pdf.",
            "MIME type of application/msword.",
            "MIME type of application/vnd.ms-excel.",
            "MIME type of application/rtf.",
            "MIME type of audio/wav.",
            "MIME type of audio/mp3.",
            "MIME type of application/x-html5-ad-zip."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "IMAGE_JPEG",
            "IMAGE_GIF",
            "IMAGE_PNG",
            "FLASH",
            "TEXT_HTML",
            "PDF",
            "MSWORD",
            "MSEXCEL",
            "RTF",
            "AUDIO_WAV",
            "AUDIO_MP3",
            "HTML5_AD_ZIP"
          ]
        },
        "id": {
          "format": "int64",
          "description": "Output only. The ID of the media file.",
          "readOnly": true,
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "Immutable. The name of the media file. The name can be used by clients to help identify previously uploaded media."
        },
        "audio": {
          "description": "Output only. Encapsulates an Audio.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV23Resources__MediaAudio"
        },
        "resourceName": {
          "description": "Immutable. The resource name of the media file. Media file resource names have the form: `customers/{customer_id}/mediaFiles/{media_file_id}`",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources__MediaFile"
    },
    "GoogleAdsGoogleadsV23Services_SmartCampaignSuggestionInfo_LocationList": {
      "type": "object",
      "properties": {
        "locations": {
          "description": "Required. Locations.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__LocationInfo"
          }
        }
      },
      "id": "GoogleAdsGoogleadsV23Services_SmartCampaignSuggestionInfo_LocationList",
      "description": "A list of locations."
    },
    "GoogleAdsGoogleadsV23Common__AdVideoAssetInfo": {
      "id": "GoogleAdsGoogleadsV23Common__AdVideoAssetInfo",
      "properties": {
        "adVideoAssetFeatureControl": {
          "description": "Defines feature controls for this AdVideoAsset during serving time. For example, whether YouTube comments should be enabled for Partnership Ads served on YouTube Shorts.",
          "$ref": "GoogleAdsGoogleadsV23Common__AdVideoAssetLinkFeatureControl"
        },
        "adVideoAssetInventoryPreferences": {
          "$ref": "GoogleAdsGoogleadsV23Common__AdVideoAssetInventoryPreferences",
          "description": "List of inventory preferences for this AdVideoAsset. This field can only be set for DiscoveryVideoResponsiveAd. The video assets with an inventory asset preference set will be preferred over other videos from the same ad during serving time. For example, consider this ad being served for a specific inventory. The server will first try to match an eligible video with a matching preference for that inventory. Videos with no preferences are chosen only when a video with matching preference and eligible for a given ad slot can be found."
        }
      },
      "type": "object",
      "description": "Contains info fields for AdVideoAssets."
    },
    "GoogleAdsGoogleadsV23Common__LocalAdInfo": {
      "properties": {
        "path1": {
          "description": "First part of optional text that can be appended to the URL in the ad.",
          "type": "string"
        },
        "logoImages": {
          "description": "List of logo image assets that may be displayed with the ad. The images must be 128x128 pixels and not larger than 120KB. At least 1 and at most 5 image assets must be specified.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdImageAsset"
          },
          "type": "array"
        },
        "path2": {
          "type": "string",
          "description": "Second part of optional text that can be appended to the URL in the ad. This field can only be set when `path1` is also set."
        },
        "callToActions": {
          "description": "List of text assets for call-to-actions. When the ad serves the call-to-actions will be selected from this list. At least 1 and at most 5 call-to-actions must be specified.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdTextAsset"
          }
        },
        "descriptions": {
          "description": "List of text assets for descriptions. When the ad serves the descriptions will be selected from this list. At least 1 and at most 5 descriptions must be specified.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdTextAsset"
          }
        },
        "headlines": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdTextAsset"
          },
          "description": "List of text assets for headlines. When the ad serves the headlines will be selected from this list. At least 1 and at most 5 headlines must be specified.",
          "type": "array"
        },
        "videos": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdVideoAsset"
          },
          "type": "array",
          "description": "List of YouTube video assets that may be displayed with the ad. At least 1 and at most 20 video assets must be specified."
        },
        "marketingImages": {
          "type": "array",
          "description": "List of marketing image assets that may be displayed with the ad. The images must be 314x600 pixels or 320x320 pixels. At least 1 and at most 20 image assets must be specified.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AdImageAsset"
          }
        }
      },
      "type": "object",
      "description": "A local ad.",
      "id": "GoogleAdsGoogleadsV23Common__LocalAdInfo"
    },
    "GoogleAdsGoogleadsV23Resources__Audience": {
      "properties": {
        "dimensions": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV23Common__AudienceDimension"
          },
          "description": "Positive dimensions specifying the audience composition."
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the audience. Audience names have the form: `customers/{customer_id}/audiences/{audience_id}`"
        },
        "description": {
          "description": "Description of this audience.",
          "type": "string"
        },
        "exclusionDimension": {
          "$ref": "GoogleAdsGoogleadsV23Common__AudienceExclusionDimension",
          "description": "Negative dimension specifying the audience composition."
        },
        "status": {
          "description": "Output only. Status of this audience. Indicates whether the audience is enabled or removed.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Enabled status - audience is enabled and can be targeted.",
            "Removed status - audience is removed and cannot be used for targeting."
          ],
          "type": "string"
        },
        "assetGroup": {
          "description": "Immutable. The asset group that this audience is scoped under. Must be set if and only if scope is ASSET_GROUP. Immutable after creation. If an audience with ASSET_GROUP scope is upgraded to CUSTOMER scope, this field will automatically be cleared.",
          "type": "string"
        },
        "scope": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CUSTOMER",
            "ASSET_GROUP"
          ],
          "type": "string",
          "description": "Defines the scope this audience can be used in. By default, the scope is CUSTOMER. Audiences can be created with a scope of ASSET_GROUP for exclusive use by a single asset_group. Scope may change from ASSET_GROUP to CUSTOMER but not from CUSTOMER to ASSET_GROUP.",
          "enumDescriptions": [
            "The scope has not been specified.",
            "The received value is not known in this version.",
            "The audience is scoped at the customer level.",
            "The audience is scoped under a specific AssetGroup."
          ]
        },
        "name": {
          "type": "string",
          "description": "Name of the audience. It should be unique across all audiences within the account. It must have a minimum length of 1 and maximum length of 255. Required when scope is not set or is set to CUSTOMER. Cannot be set or updated when scope is ASSET_GROUP."
        },
        "id": {
          "type": "string",
          "readOnly": true,
          "format": "int64",
          "description": "Output only. ID of the audience."
        }
      },
      "id": "GoogleAdsGoogleadsV23Resources__Audience",
      "type": "object",
      "description": "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."
    },
    "GoogleAdsGoogleadsV23Resources_AccessibleBiddingStrategy_TargetRoas": {
      "description": "An automated bidding strategy that helps you maximize revenue while averaging a specific target return on ad spend (ROAS).",
      "properties": {
        "targetRoas": {
          "description": "Output only. The chosen revenue (based on conversion data) per unit of spend.",
          "readOnly": true,
          "format": "double",
          "type": "number"
        }
      },
      "type": "object",
      "id": "GoogleAdsGoogleadsV23Resources_AccessibleBiddingStrategy_TargetRoas"
    }
  },
  "mtlsRootUrl": "https://googleads.mtls.googleapis.com/",
  "id": "googleads:v23",
  "kind": "discovery#restDescription",
  "ownerName": "Google",
  "rootUrl": "https://googleads.googleapis.com/",
  "revision": "20260127",
  "servicePath": "",
  "version_module": true,
  "discoveryVersion": "v1",
  "description": "Manage your Google Ads accounts, campaigns, and reports with this API.",
  "resources": {
    "keywordThemeConstants": {
      "methods": {
        "suggest": {
          "id": "googleads.keywordThemeConstants.suggest",
          "parameters": {},
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "response": {
            "$ref": "GoogleAdsGoogleadsV23Services__SuggestKeywordThemeConstantsResponse"
          },
          "request": {
            "$ref": "GoogleAdsGoogleadsV23Services__SuggestKeywordThemeConstantsRequest"
          },
          "parameterOrder": [],
          "httpMethod": "POST",
          "path": "v23/keywordThemeConstants:suggest",
          "description": "Returns KeywordThemeConstant suggestions by keyword themes. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
          "flatPath": "v23/keywordThemeConstants:suggest"
        }
      }
    },
    "customers": {
      "methods": {
        "createCustomerClient": {
          "parameterOrder": [
            "customerId"
          ],
          "httpMethod": "POST",
          "request": {
            "$ref": "GoogleAdsGoogleadsV23Services__CreateCustomerClientRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "parameters": {
            "customerId": {
              "location": "path",
              "required": true,
              "pattern": "^[^/]+$",
              "description": "Required. The ID of the Manager under whom client customer is being created.",
              "type": "string"
            }
          },
          "path": "v23/customers/{+customerId}:createCustomerClient",
          "flatPath": "v23/customers/{customersId}:createCustomerClient",
          "id": "googleads.customers.createCustomerClient",
          "response": {
            "$ref": "GoogleAdsGoogleadsV23Services__CreateCustomerClientResponse"
          },
          "description": "Creates a new client under manager. The new client customer is returned. List of thrown errors: [AccessInvitationError]() [AuthenticationError]() [AuthorizationError]() [CurrencyCodeError]() [HeaderError]() [InternalError]() [ManagerLinkError]() [QuotaError]() [RequestError]() [StringLengthError]() [TimeZoneError]()"
        },
        "suggestBrands": {
          "flatPath": "v23/customers/{customersId}:suggestBrands",
          "parameters": {
            "customerId": {
              "description": "Required. The ID of the customer onto which to apply the brand suggestion operation.",
              "pattern": "^[^/]+$",
              "location": "path",
              "type": "string",
              "required": true
            }
          },
          "parameterOrder": [
            "customerId"
          ],
          "request": {
            "$ref": "GoogleAdsGoogleadsV23Services__SuggestBrandsRequest"
          },
          "id": "googleads.customers.suggestBrands",
          "description": "Rpc to return a list of matching brands based on a prefix for this customer.",
          "response": {
            "$ref": "GoogleAdsGoogleadsV23Services__SuggestBrandsResponse"
          },
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "path": "v23/customers/{+customerId}:suggestBrands"
        },
        "uploadCallConversions": {
          "response": {
            "$ref": "GoogleAdsGoogleadsV23Services__UploadCallConversionsResponse"
          },
          "flatPath": "v23/customers/{customersId}:uploadCallConversions",
          "parameters": {
            "customerId": {
              "required": true,
              "pattern": "^[^/]+$",
              "type": "string",
              "location": "path",
              "description": "Required. The ID of the customer performing the upload."
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "description": "Processes the given call conversions. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [PartialFailureError]() [QuotaError]() [RequestError]()",
          "request": {
            "$ref": "GoogleAdsGoogleadsV23Services__UploadCallConversionsRequest"
          },
          "id": "googleads.customers.uploadCallConversions",
          "path": "v23/customers/{+customerId}:uploadCallConversions",
          "httpMethod": "POST",
          "parameterOrder": [
            "customerId"
          ]
        },
        "generateCreatorInsights": {
          "request": {
            "$ref": "GoogleAdsGoogleadsV23Services__GenerateCreatorInsightsRequest"
          },
          "flatPath": "v23/customers/{customersId}:generateCreatorInsights",
          "parameters": {
            "customerId": {
              "description": "Required. The ID of the customer.",
              "required": true,
              "location": "path",
              "type": "string",
              "pattern": "^[^/]+$"
            }
          },
          "parameterOrder": [
            "customerId"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "httpMethod": "POST",
          "description": "Returns insights for a collection of YouTube Creators and Channels. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RangeError]() [RequestError]()",
          "path": "v23/customers/{+customerId}:generateCreatorInsights",
          "response": {
            "$ref": "GoogleAdsGoogleadsV23Services__GenerateCreatorInsightsResponse"
          },
          "id": "googleads.customers.generateCreatorInsights"
        },
        "generateAudienceOverlapInsights": {
          "id": "googleads.customers.generateAudienceOverlapInsights",
          "parameterOrder": [
            "customerId"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "description": "Returns a collection of audience attributes along with estimates of the overlap between their potential YouTube reach and that of a given input attribute. List of thrown errors: [AudienceInsightsError]() [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RangeError]() [RequestError]()",
          "response": {
            "$ref": "GoogleAdsGoogleadsV23Services__GenerateAudienceOverlapInsightsResponse"
          },
          "path": "v23/customers/{+customerId}:generateAudienceOverlapInsights",
          "request": {
            "$ref": "GoogleAdsGoogleadsV23Services__GenerateAudienceOverlapInsightsRequest"
          },
          "parameters": {
            "customerId": {
              "type": "string",
              "description": "Required. The ID of the customer.",
              "pattern": "^[^/]+$",
              "required": true,
              "location": "path"
            }
          },
          "flatPath": "v23/customers/{customersId}:generateAudienceOverlapInsights",
          "httpMethod": "POST"
        },
        "generateAudienceDefinition": {
          "parameters": {
            "customerId": {
              "location": "path",
              "type": "string",
              "description": "Required. The ID of the customer.",
              "pattern": "^[^/]+$",
              "required": true
            }
          },
          "request": {
            "$ref": "GoogleAdsGoogleadsV23Services__GenerateAudienceDefinitionRequest"
          },
          "id": "googleads.customers.generateAudienceDefinition",
          "response": {
            "$ref": "GoogleAdsGoogleadsV23Services__GenerateAudienceDefinitionResponse"
          },
          "httpMethod": "POST",
          "description": "Returns a collection of audience attributes using generative AI based on the provided audience description. List of thrown errors: [AudienceInsightsError]() [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
          "path": "v23/customers/{+customerId}:generateAudienceDefinition",
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "parameterOrder": [
            "customerId"
          ],
          "flatPath": "v23/customers/{customersId}:generateAudienceDefinition"
        },
        "generateShareablePreviews": {
          "request": {
            "$ref": "GoogleAdsGoogleadsV23Services__GenerateShareablePreviewsRequest"
          },
          "flatPath": "v23/customers/{customersId}:generateShareablePreviews",
          "httpMethod": "POST",
          "response": {
            "$ref": "GoogleAdsGoogleadsV23Services__GenerateShareablePreviewsResponse"
          },
          "description": "Returns the requested Shareable Preview.",
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "id": "googleads.customers.generateShareablePreviews",
          "parameterOrder": [
            "customerId"
          ],
          "parameters": {
            "customerId": {
              "description": "Required. The customer creating the shareable previews request.",
              "type": "string",
              "pattern": "^[^/]+$",
              "required": true,
              "location": "path"
            }
          },
          "path": "v23/customers/{+customerId}:generateShareablePreviews"
        },
        "uploadUserData": {
          "path": "v23/customers/{+customerId}:uploadUserData",
          "response": {
            "$ref": "GoogleAdsGoogleadsV23Services__UploadUserDataResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "httpMethod": "POST",
          "id": "googleads.customers.uploadUserData",
          "request": {
            "$ref": "GoogleAdsGoogleadsV23Services__UploadUserDataRequest"
          },
          "parameterOrder": [
            "customerId"
          ],
          "description": "Uploads the given user data. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [CollectionSizeError]() [FieldError]() [HeaderError]() [InternalError]() [MutateError]() [OfflineUserDataJobError]() [QuotaError]() [RequestError]() [UserDataError]()",
          "flatPath": "v23/customers/{customersId}:uploadUserData",
          "parameters": {
            "customerId": {
              "pattern": "^[^/]+$",
              "required": true,
              "type": "string",
              "description": "Required. The ID of the customer for which to update the user data.",
              "location": "path"
            }
          }
        },
        "uploadClickConversions": {
          "parameterOrder": [
            "customerId"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "response": {
            "$ref": "GoogleAdsGoogleadsV23Services__UploadClickConversionsResponse"
          },
          "request": {
            "$ref": "GoogleAdsGoogleadsV23Services__UploadClickConversionsRequest"
          },
          "httpMethod": "POST",
          "parameters": {
            "customerId": {
              "type": "string",
              "required": true,
              "location": "path",
              "pattern": "^[^/]+$",
              "description": "Required. The ID of the customer performing the upload."
            }
          },
          "path": "v23/customers/{+customerId}:uploadClickConversions",
          "flatPath": "v23/customers/{customersId}:uploadClickConversions",
          "description": "Processes the given click conversions. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [ConversionUploadError]() [HeaderError]() [InternalError]() [PartialFailureError]() [QuotaError]() [RequestError]()",
          "id": "googleads.customers.uploadClickConversions"
        },
        "generateTrendingInsights": {
          "path": "v23/customers/{+customerId}:generateTrendingInsights",
          "request": {
            "$ref": "GoogleAdsGoogleadsV23Services__GenerateTrendingInsightsRequest"
          },
          "parameters": {
            "customerId": {
              "location": "path",
              "required": true,
              "type": "string",
              "pattern": "^[^/]+$",
              "description": "Required. The ID of the customer."
            }
          },
          "response": {
            "$ref": "GoogleAdsGoogleadsV23Services__GenerateTrendingInsightsResponse"
          },
          "flatPath": "v23/customers/{customersId}:generateTrendingInsights",
          "description": "Returns insights for trending content on YouTube. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RangeError]() [RequestError]()",
          "parameterOrder": [
            "customerId"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "id": "googleads.customers.generateTrendingInsights",
          "httpMethod": "POST"
        },
        "generateReachForecast": {
          "response": {
            "$ref": "GoogleAdsGoogleadsV23Services__GenerateReachForecastResponse"
          },
          "parameters": {
            "customerId": {
              "pattern": "^[^/]+$",
              "type": "string",
              "required": true,
              "location": "path",
              "description": "Required. The ID of the customer."
            }
          },
          "httpMethod": "POST",
          "parameterOrder": [
            "customerId"
          ],
          "flatPath": "v23/customers/{customersId}:generateReachForecast",
          "path": "v23/customers/{+customerId}:generateReachForecast",
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "id": "googleads.customers.generateReachForecast",
          "description": "Generates a reach forecast for a given targeting / product mix. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RangeError]() [ReachPlanError]() [RequestError]()",
          "request": {
            "$ref": "GoogleAdsGoogleadsV23Services__GenerateReachForecastRequest"
          }
        },
        "listAccessibleCustomers": {
          "description": "Returns resource names of customers directly accessible by the user authenticating the call. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
          "path": "v23/customers:listAccessibleCustomers",
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "response": {
            "$ref": "GoogleAdsGoogleadsV23Services__ListAccessibleCustomersResponse"
          },
          "parameterOrder": [],
          "parameters": {},
          "httpMethod": "GET",
          "id": "googleads.customers.listAccessibleCustomers",
          "flatPath": "v23/customers:listAccessibleCustomers"
        },
        "generateKeywordIdeas": {
          "response": {
            "$ref": "GoogleAdsGoogleadsV23Services__GenerateKeywordIdeaResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "flatPath": "v23/customers/{customersId}:generateKeywordIdeas",
          "id": "googleads.customers.generateKeywordIdeas",
          "description": "Returns a list of keyword ideas. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [CollectionSizeError]() [HeaderError]() [InternalError]() [KeywordPlanIdeaError]() [QuotaError]() [RequestError]()",
          "httpMethod": "POST",
          "path": "v23/customers/{+customerId}:generateKeywordIdeas",
          "request": {
            "$ref": "GoogleAdsGoogleadsV23Services__GenerateKeywordIdeasRequest"
          },
          "parameterOrder": [
            "customerId"
          ],
          "parameters": {
            "customerId": {
              "required": true,
              "location": "path",
              "type": "string",
              "description": "The ID of the customer with the recommendation.",
              "pattern": "^[^/]+$"
            }
          }
        },
        "suggestKeywordThemes": {
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "path": "v23/customers/{+customerId}:suggestKeywordThemes",
          "flatPath": "v23/customers/{customersId}:suggestKeywordThemes",
          "parameterOrder": [
            "customerId"
          ],
          "httpMethod": "POST",
          "response": {
            "$ref": "GoogleAdsGoogleadsV23Services__SuggestKeywordThemesResponse"
          },
          "id": "googleads.customers.suggestKeywordThemes",
          "parameters": {
            "customerId": {
              "required": true,
              "type": "string",
              "description": "Required. The ID of the customer.",
              "pattern": "^[^/]+$",
              "location": "path"
            }
          },
          "description": "Suggests keyword themes to advertise on.",
          "request": {
            "$ref": "GoogleAdsGoogleadsV23Services__SuggestKeywordThemesRequest"
          }
        },
        "searchAudienceInsightsAttributes": {
          "request": {
            "$ref": "GoogleAdsGoogleadsV23Services__ListAudienceInsightsAttributesRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "description": "Searches for audience attributes that can be used to generate insights. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RangeError]() [RequestError]()",
          "path": "v23/customers/{+customerId}:searchAudienceInsightsAttributes",
          "httpMethod": "POST",
          "parameters": {
            "customerId": {
              "pattern": "^[^/]+$",
              "location": "path",
              "required": true,
              "type": "string",
              "description": "Required. The ID of the customer."
            }
          },
          "flatPath": "v23/customers/{customersId}:searchAudienceInsightsAttributes",
          "parameterOrder": [
            "customerId"
          ],
          "response": {
            "$ref": "GoogleAdsGoogleadsV23Services__ListAudienceInsightsAttributesResponse"
          },
          "id": "googleads.customers.searchAudienceInsightsAttributes"
        },
        "generateBenchmarksMetrics": {
          "path": "v23/customers/{+customerId}:generateBenchmarksMetrics",
          "response": {
            "$ref": "GoogleAdsGoogleadsV23Services__GenerateBenchmarksMetricsResponse"
          },
          "id": "googleads.customers.generateBenchmarksMetrics",
          "parameterOrder": [
            "customerId"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "request": {
            "$ref": "GoogleAdsGoogleadsV23Services__GenerateBenchmarksMetricsRequest"
          },
          "httpMethod": "POST",
          "description": "Returns YouTube advertisement metrics for the given client against industry benchmarks. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [BenchmarksError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RangeError]() [RequestError]()",
          "flatPath": "v23/customers/{customersId}:generateBenchmarksMetrics",
          "parameters": {
            "customerId": {
              "location": "path",
              "description": "Required. The ID of the customer. Supply a client customer ID to generate metrics for the customer. A manager account customer ID will not return customer metrics since it does not have any associated direct ad campaigns.",
              "pattern": "^[^/]+$",
              "required": true,
              "type": "string"
            }
          }
        },
        "getIdentityVerification": {
          "path": "v23/customers/{+customerId}/getIdentityVerification",
          "response": {
            "$ref": "GoogleAdsGoogleadsV23Services__GetIdentityVerificationResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "id": "googleads.customers.getIdentityVerification",
          "parameters": {
            "customerId": {
              "pattern": "^[^/]+$",
              "required": true,
              "location": "path",
              "description": "Required. The ID of the customer for whom we are requesting verification information.",
              "type": "string"
            }
          },
          "flatPath": "v23/customers/{customersId}/getIdentityVerification",
          "description": "Returns Identity Verification information. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
          "httpMethod": "GET",
          "parameterOrder": [
            "customerId"
          ]
        },
        "generateAdGroupThemes": {
          "httpMethod": "POST",
          "parameters": {
            "customerId": {
              "required": true,
              "pattern": "^[^/]+$",
              "type": "string",
              "location": "path",
              "description": "Required. The ID of the customer."
            }
          },
          "parameterOrder": [
            "customerId"
          ],
          "description": "Returns a list of suggested AdGroups and suggested modifications (text, match type) for the given keywords. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [CollectionSizeError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "path": "v23/customers/{+customerId}:generateAdGroupThemes",
          "id": "googleads.customers.generateAdGroupThemes",
          "flatPath": "v23/customers/{customersId}:generateAdGroupThemes",
          "request": {
            "$ref": "GoogleAdsGoogleadsV23Services__GenerateAdGroupThemesRequest"
          },
          "response": {
            "$ref": "GoogleAdsGoogleadsV23Services__GenerateAdGroupThemesResponse"
          }
        },
        "mutate": {
          "response": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomerResponse"
          },
          "description": "Updates a customer. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldMaskError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]() [UrlFieldError]()",
          "flatPath": "v23/customers/{customersId}:mutate",
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "path": "v23/customers/{+customerId}:mutate",
          "parameters": {
            "customerId": {
              "required": true,
              "pattern": "^[^/]+$",
              "description": "Required. The ID of the customer being modified.",
              "location": "path",
              "type": "string"
            }
          },
          "parameterOrder": [
            "customerId"
          ],
          "request": {
            "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomerRequest"
          },
          "id": "googleads.customers.mutate"
        },
        "uploadConversionAdjustments": {
          "httpMethod": "POST",
          "parameterOrder": [
            "customerId"
          ],
          "request": {
            "$ref": "GoogleAdsGoogleadsV23Services__UploadConversionAdjustmentsRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "id": "googleads.customers.uploadConversionAdjustments",
          "description": "Processes the given conversion adjustments. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [PartialFailureError]() [QuotaError]() [RequestError]()",
          "path": "v23/customers/{+customerId}:uploadConversionAdjustments",
          "flatPath": "v23/customers/{customersId}:uploadConversionAdjustments",
          "response": {
            "$ref": "GoogleAdsGoogleadsV23Services__UploadConversionAdjustmentsResponse"
          },
          "parameters": {
            "customerId": {
              "type": "string",
              "required": true,
              "pattern": "^[^/]+$",
              "location": "path",
              "description": "Required. The ID of the customer performing the upload."
            }
          }
        },
        "suggestTravelAssets": {
          "httpMethod": "POST",
          "path": "v23/customers/{+customerId}:suggestTravelAssets",
          "parameters": {
            "customerId": {
              "required": true,
              "location": "path",
              "type": "string",
              "description": "Required. The ID of the customer.",
              "pattern": "^[^/]+$"
            }
          },
          "parameterOrder": [
            "customerId"
          ],
          "id": "googleads.customers.suggestTravelAssets",
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "request": {
            "$ref": "GoogleAdsGoogleadsV23Services__SuggestTravelAssetsRequest"
          },
          "description": "Returns Travel Asset suggestions. Asset suggestions are returned on a best-effort basis. There are no guarantees that all possible asset types will be returned for any given hotel property.",
          "response": {
            "$ref": "GoogleAdsGoogleadsV23Services__SuggestTravelAssetsResponse"
          },
          "flatPath": "v23/customers/{customersId}:suggestTravelAssets"
        },
        "suggestSmartCampaignBudgetOptions": {
          "request": {
            "$ref": "GoogleAdsGoogleadsV23Services__SuggestSmartCampaignBudgetOptionsRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "parameters": {
            "customerId": {
              "required": true,
              "description": "Required. The ID of the customer whose budget options are to be suggested.",
              "type": "string",
              "location": "path",
              "pattern": "^[^/]+$"
            }
          },
          "description": "Returns BudgetOption suggestions.",
          "response": {
            "$ref": "GoogleAdsGoogleadsV23Services__SuggestSmartCampaignBudgetOptionsResponse"
          },
          "parameterOrder": [
            "customerId"
          ],
          "path": "v23/customers/{+customerId}:suggestSmartCampaignBudgetOptions",
          "id": "googleads.customers.suggestSmartCampaignBudgetOptions",
          "httpMethod": "POST",
          "flatPath": "v23/customers/{customersId}:suggestSmartCampaignBudgetOptions"
        },
        "removeCampaignAutomaticallyCreatedAsset": {
          "flatPath": "v23/customers/{customersId}:removeCampaignAutomaticallyCreatedAsset",
          "id": "googleads.customers.removeCampaignAutomaticallyCreatedAsset",
          "path": "v23/customers/{+customerId}:removeCampaignAutomaticallyCreatedAsset",
          "parameterOrder": [
            "customerId"
          ],
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "description": "Removes automatically created assets from a campaign. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [ContextError]() [FieldError]() [InternalError]() [MutateError]() [PartialFailureError]() [QuotaError]() [RequestError]()",
          "response": {
            "$ref": "GoogleAdsGoogleadsV23Services__RemoveCampaignAutomaticallyCreatedAssetResponse"
          },
          "request": {
            "$ref": "GoogleAdsGoogleadsV23Services__RemoveCampaignAutomaticallyCreatedAssetRequest"
          },
          "parameters": {
            "customerId": {
              "pattern": "^[^/]+$",
              "description": "Required. The ID of the customer whose assets are being removed.",
              "required": true,
              "type": "string",
              "location": "path"
            }
          }
        },
        "generateAudienceCompositionInsights": {
          "parameterOrder": [
            "customerId"
          ],
          "description": "Returns a collection of attributes that are represented in an audience of interest, with metrics that compare each attribute's share of the audience with its share of a baseline audience. List of thrown errors: [AudienceInsightsError]() [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RangeError]() [RequestError]()",
          "parameters": {
            "customerId": {
              "description": "Required. The ID of the customer.",
              "location": "path",
              "type": "string",
              "pattern": "^[^/]+$",
              "required": true
            }
          },
          "flatPath": "v23/customers/{customersId}:generateAudienceCompositionInsights",
          "path": "v23/customers/{+customerId}:generateAudienceCompositionInsights",
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "id": "googleads.customers.generateAudienceCompositionInsights",
          "response": {
            "$ref": "GoogleAdsGoogleadsV23Services__GenerateAudienceCompositionInsightsResponse"
          },
          "request": {
            "$ref": "GoogleAdsGoogleadsV23Services__GenerateAudienceCompositionInsightsRequest"
          }
        },
        "generateSuggestedTargetingInsights": {
          "path": "v23/customers/{+customerId}:generateSuggestedTargetingInsights",
          "description": "Returns a collection of targeting insights (e.g. targetable audiences) that are relevant to the requested audience. List of thrown errors: [AudienceInsightsError]() [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RangeError]() [RequestError]()",
          "flatPath": "v23/customers/{customersId}:generateSuggestedTargetingInsights",
          "httpMethod": "POST",
          "request": {
            "$ref": "GoogleAdsGoogleadsV23Services__GenerateSuggestedTargetingInsightsRequest"
          },
          "parameterOrder": [
            "customerId"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "id": "googleads.customers.generateSuggestedTargetingInsights",
          "response": {
            "$ref": "GoogleAdsGoogleadsV23Services__GenerateSuggestedTargetingInsightsResponse"
          },
          "parameters": {
            "customerId": {
              "pattern": "^[^/]+$",
              "description": "Required. The ID of the customer.",
              "required": true,
              "type": "string",
              "location": "path"
            }
          }
        },
        "generateKeywordForecastMetrics": {
          "path": "v23/customers/{+customerId}:generateKeywordForecastMetrics",
          "response": {
            "$ref": "GoogleAdsGoogleadsV23Services__GenerateKeywordForecastMetricsResponse"
          },
          "httpMethod": "POST",
          "id": "googleads.customers.generateKeywordForecastMetrics",
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "request": {
            "$ref": "GoogleAdsGoogleadsV23Services__GenerateKeywordForecastMetricsRequest"
          },
          "parameters": {
            "customerId": {
              "required": true,
              "description": "The ID of the customer.",
              "pattern": "^[^/]+$",
              "location": "path",
              "type": "string"
            }
          },
          "flatPath": "v23/customers/{customersId}:generateKeywordForecastMetrics",
          "parameterOrder": [
            "customerId"
          ],
          "description": "Returns metrics (such as impressions, clicks, total cost) of a keyword forecast for the given campaign. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [CollectionSizeError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()"
        },
        "startIdentityVerification": {
          "response": {
            "$ref": "GoogleProtobuf__Empty"
          },
          "description": "Starts Identity Verification for a given verification program type. Statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
          "httpMethod": "POST",
          "path": "v23/customers/{+customerId}:startIdentityVerification",
          "parameterOrder": [
            "customerId"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "id": "googleads.customers.startIdentityVerification",
          "request": {
            "$ref": "GoogleAdsGoogleadsV23Services__StartIdentityVerificationRequest"
          },
          "parameters": {
            "customerId": {
              "location": "path",
              "description": "Required. The Id of the customer for whom we are creating this verification.",
              "type": "string",
              "required": true,
              "pattern": "^[^/]+$"
            }
          },
          "flatPath": "v23/customers/{customersId}:startIdentityVerification"
        },
        "generateKeywordHistoricalMetrics": {
          "path": "v23/customers/{+customerId}:generateKeywordHistoricalMetrics",
          "id": "googleads.customers.generateKeywordHistoricalMetrics",
          "parameterOrder": [
            "customerId"
          ],
          "parameters": {
            "customerId": {
              "pattern": "^[^/]+$",
              "description": "The ID of the customer with the recommendation.",
              "type": "string",
              "location": "path",
              "required": true
            }
          },
          "response": {
            "$ref": "GoogleAdsGoogleadsV23Services__GenerateKeywordHistoricalMetricsResponse"
          },
          "flatPath": "v23/customers/{customersId}:generateKeywordHistoricalMetrics",
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "description": "Returns a list of keyword historical metrics. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [CollectionSizeError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
          "httpMethod": "POST",
          "request": {
            "$ref": "GoogleAdsGoogleadsV23Services__GenerateKeywordHistoricalMetricsRequest"
          }
        },
        "generateInsightsFinderReport": {
          "response": {
            "$ref": "GoogleAdsGoogleadsV23Services__GenerateInsightsFinderReportResponse"
          },
          "id": "googleads.customers.generateInsightsFinderReport",
          "request": {
            "$ref": "GoogleAdsGoogleadsV23Services__GenerateInsightsFinderReportRequest"
          },
          "path": "v23/customers/{+customerId}:generateInsightsFinderReport",
          "httpMethod": "POST",
          "description": "Creates a saved report that can be viewed in the Insights Finder tool. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RangeError]() [RequestError]()",
          "parameterOrder": [
            "customerId"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "flatPath": "v23/customers/{customersId}:generateInsightsFinderReport",
          "parameters": {
            "customerId": {
              "location": "path",
              "pattern": "^[^/]+$",
              "required": true,
              "description": "Required. The ID of the customer.",
              "type": "string"
            }
          }
        },
        "generateTargetingSuggestionMetrics": {
          "httpMethod": "POST",
          "parameterOrder": [
            "customerId"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "request": {
            "$ref": "GoogleAdsGoogleadsV23Services__GenerateTargetingSuggestionMetricsRequest"
          },
          "flatPath": "v23/customers/{customersId}:generateTargetingSuggestionMetrics",
          "parameters": {
            "customerId": {
              "type": "string",
              "required": true,
              "description": "Required. The ID of the customer.",
              "pattern": "^[^/]+$",
              "location": "path"
            }
          },
          "response": {
            "$ref": "GoogleAdsGoogleadsV23Services__GenerateTargetingSuggestionMetricsResponse"
          },
          "path": "v23/customers/{+customerId}:generateTargetingSuggestionMetrics",
          "id": "googleads.customers.generateTargetingSuggestionMetrics",
          "description": "Returns potential reach metrics for targetable audiences. This method helps answer questions like \"How many Men aged 18+ interested in Camping can be reached on YouTube?\" List of thrown errors: [AudienceInsightsError]() [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RangeError]() [RequestError]()"
        },
        "suggestSmartCampaignAd": {
          "path": "v23/customers/{+customerId}:suggestSmartCampaignAd",
          "id": "googleads.customers.suggestSmartCampaignAd",
          "request": {
            "$ref": "GoogleAdsGoogleadsV23Services__SuggestSmartCampaignAdRequest"
          },
          "httpMethod": "POST",
          "parameterOrder": [
            "customerId"
          ],
          "response": {
            "$ref": "GoogleAdsGoogleadsV23Services__SuggestSmartCampaignAdResponse"
          },
          "parameters": {
            "customerId": {
              "description": "Required. The ID of the customer.",
              "type": "string",
              "pattern": "^[^/]+$",
              "required": true,
              "location": "path"
            }
          },
          "description": "Suggests a Smart campaign ad compatible with the Ad family of resources, based on data points such as targeting and the business to advertise.",
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "flatPath": "v23/customers/{customersId}:suggestSmartCampaignAd"
        }
      },
      "resources": {
        "conversionActions": {
          "methods": {
            "mutate": {
              "flatPath": "v23/customers/{customersId}/conversionActions:mutate",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "description": "Required. The ID of the customer whose conversion actions are being modified.",
                  "location": "path",
                  "required": true
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameterOrder": [
                "customerId"
              ],
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateConversionActionsResponse"
              },
              "httpMethod": "POST",
              "id": "googleads.customers.conversionActions.mutate",
              "path": "v23/customers/{+customerId}/conversionActions:mutate",
              "description": "Creates, updates or removes conversion actions. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [ConversionActionError]() [CurrencyCodeError]() [DatabaseError]() [FieldError]() [FieldMaskError]() [HeaderError]() [InternalError]() [MutateError]() [NewResourceCreationError]() [QuotaError]() [RangeError]() [RequestError]() [ResourceCountLimitExceededError]() [StringLengthError]()",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateConversionActionsRequest"
              }
            }
          }
        },
        "userListCustomerTypes": {
          "methods": {
            "mutate": {
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. The ID of the customer whose user list customer types are being modified.",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$"
                }
              },
              "description": "Attach or remove user list customer types. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [UserListCustomerTypeError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
              "httpMethod": "POST",
              "path": "v23/customers/{+customerId}/userListCustomerTypes:mutate",
              "flatPath": "v23/customers/{customersId}/userListCustomerTypes:mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateUserListCustomerTypesResponse"
              },
              "id": "googleads.customers.userListCustomerTypes.mutate",
              "parameterOrder": [
                "customerId"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateUserListCustomerTypesRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ]
            }
          }
        },
        "campaignAssets": {
          "methods": {
            "mutate": {
              "description": "Creates, updates, or removes campaign assets. Operation statuses are returned. List of thrown errors: [AssetLinkError]() [AuthenticationError]() [AuthorizationError]() [ContextError]() [DatabaseError]() [FieldError]() [HeaderError]() [InternalError]() [MutateError]() [NotAllowlistedError]() [QuotaError]() [RequestError]()",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCampaignAssetsRequest"
              },
              "path": "v23/customers/{+customerId}/campaignAssets:mutate",
              "id": "googleads.customers.campaignAssets.mutate",
              "flatPath": "v23/customers/{customersId}/campaignAssets:mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCampaignAssetsResponse"
              },
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose campaign assets are being modified.",
                  "type": "string",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$"
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST"
            }
          }
        },
        "campaignBudgets": {
          "methods": {
            "mutate": {
              "parameters": {
                "customerId": {
                  "required": true,
                  "location": "path",
                  "description": "Required. The ID of the customer whose campaign budgets are being modified.",
                  "type": "string",
                  "pattern": "^[^/]+$"
                }
              },
              "parameterOrder": [
                "customerId"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCampaignBudgetsRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCampaignBudgetsResponse"
              },
              "httpMethod": "POST",
              "path": "v23/customers/{+customerId}/campaignBudgets:mutate",
              "flatPath": "v23/customers/{customersId}/campaignBudgets:mutate",
              "id": "googleads.customers.campaignBudgets.mutate",
              "description": "Creates, updates, or removes campaign budgets. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [CampaignBudgetError]() [DatabaseError]() [DistinctError]() [FieldError]() [FieldMaskError]() [HeaderError]() [InternalError]() [MutateError]() [NewResourceCreationError]() [OperationAccessDeniedError]() [QuotaError]() [RangeError]() [RequestError]() [ResourceCountLimitExceededError]() [StringLengthError]()"
            }
          }
        },
        "sharedCriteria": {
          "methods": {
            "mutate": {
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "required": true,
                  "location": "path",
                  "description": "Required. The ID of the customer whose shared criteria are being modified.",
                  "type": "string"
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameterOrder": [
                "customerId"
              ],
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateSharedCriteriaResponse"
              },
              "description": "Creates or removes shared criteria. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [CriterionError]() [DatabaseError]() [DistinctError]() [FieldError]() [HeaderError]() [IdError]() [InternalError]() [MutateError]() [NotEmptyError]() [NullError]() [OperatorError]() [QuotaError]() [RangeError]() [RequestError]() [ResourceCountLimitExceededError]() [SizeLimitError]() [StringFormatError]() [StringLengthError]()",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateSharedCriteriaRequest"
              },
              "flatPath": "v23/customers/{customersId}/sharedCriteria:mutate",
              "httpMethod": "POST",
              "id": "googleads.customers.sharedCriteria.mutate",
              "path": "v23/customers/{+customerId}/sharedCriteria:mutate"
            }
          }
        },
        "conversionCustomVariables": {
          "methods": {
            "mutate": {
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "httpMethod": "POST",
              "path": "v23/customers/{+customerId}/conversionCustomVariables:mutate",
              "id": "googleads.customers.conversionCustomVariables.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateConversionCustomVariablesResponse"
              },
              "parameterOrder": [
                "customerId"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateConversionCustomVariablesRequest"
              },
              "flatPath": "v23/customers/{customersId}/conversionCustomVariables:mutate",
              "description": "Creates or updates conversion custom variables. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [ConversionCustomVariableError]() [DatabaseError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose conversion custom variables are being modified.",
                  "type": "string",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$"
                }
              }
            }
          }
        },
        "customerUserAccesses": {
          "methods": {
            "mutate": {
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomerUserAccessResponse"
              },
              "parameters": {
                "customerId": {
                  "location": "path",
                  "description": "Required. The ID of the customer being modified.",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "type": "string"
                }
              },
              "path": "v23/customers/{+customerId}/customerUserAccesses:mutate",
              "description": "Updates, removes permission of a user on a given customer. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [CustomerUserAccessError]() [FieldMaskError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]()",
              "parameterOrder": [
                "customerId"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomerUserAccessRequest"
              },
              "id": "googleads.customers.customerUserAccesses.mutate",
              "flatPath": "v23/customers/{customersId}/customerUserAccesses:mutate",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "httpMethod": "POST"
            }
          }
        },
        "accountBudgetProposals": {
          "methods": {
            "mutate": {
              "id": "googleads.customers.accountBudgetProposals.mutate",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateAccountBudgetProposalRequest"
              },
              "parameters": {
                "customerId": {
                  "required": true,
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "description": "Required. The ID of the customer.",
                  "type": "string"
                }
              },
              "parameterOrder": [
                "customerId"
              ],
              "path": "v23/customers/{+customerId}/accountBudgetProposals:mutate",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "flatPath": "v23/customers/{customersId}/accountBudgetProposals:mutate",
              "description": "Creates, updates, or removes account budget proposals. Operation statuses are returned. List of thrown errors: [AccountBudgetProposalError]() [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [DateError]() [FieldError]() [FieldMaskError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]() [StringLengthError]()",
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateAccountBudgetProposalResponse"
              },
              "httpMethod": "POST"
            }
          }
        },
        "campaignLabels": {
          "methods": {
            "mutate": {
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCampaignLabelsRequest"
              },
              "description": "Creates and removes campaign-label relationships. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldError]() [HeaderError]() [InternalError]() [LabelError]() [MutateError]() [NewResourceCreationError]() [QuotaError]() [RequestError]()",
              "id": "googleads.customers.campaignLabels.mutate",
              "httpMethod": "POST",
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "required": true,
                  "description": "Required. ID of the customer whose campaign-label relationships are being modified.",
                  "type": "string",
                  "location": "path"
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCampaignLabelsResponse"
              },
              "parameterOrder": [
                "customerId"
              ],
              "path": "v23/customers/{+customerId}/campaignLabels:mutate",
              "flatPath": "v23/customers/{customersId}/campaignLabels:mutate"
            }
          }
        },
        "CampaignGoalConfigs": {
          "methods": {
            "mutate": {
              "parameterOrder": [
                "customerId"
              ],
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose campaign goal configs are being modified.",
                  "type": "string",
                  "required": true,
                  "location": "path",
                  "pattern": "^[^/]+$"
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "id": "googleads.customers.CampaignGoalConfigs.mutate",
              "description": "Create or update campaign goal configs. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]() [CampaignGoalConfigError]() [GoalServicesError]()",
              "path": "v23/customers/{+customerId}/CampaignGoalConfigs:mutate",
              "flatPath": "v23/customers/{customersId}/CampaignGoalConfigs:mutate",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCampaignGoalConfigsRequest"
              },
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCampaignGoalConfigsResponse"
              },
              "httpMethod": "POST"
            }
          }
        },
        "accountLinks": {
          "methods": {
            "mutate": {
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer being modified.",
                  "required": true,
                  "location": "path",
                  "pattern": "^[^/]+$",
                  "type": "string"
                }
              },
              "description": "Creates or removes an account link. From V5, create is not supported through AccountLinkService.MutateAccountLink. Use AccountLinkService.CreateAccountLink instead. List of thrown errors: [AccountLinkError]() [AuthenticationError]() [AuthorizationError]() [FieldMaskError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]()",
              "parameterOrder": [
                "customerId"
              ],
              "flatPath": "v23/customers/{customersId}/accountLinks:mutate",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "httpMethod": "POST",
              "id": "googleads.customers.accountLinks.mutate",
              "path": "v23/customers/{+customerId}/accountLinks:mutate",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateAccountLinkRequest"
              },
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateAccountLinkResponse"
              }
            },
            "create": {
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__CreateAccountLinkRequest"
              },
              "description": "Creates an account link. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]() [ThirdPartyAppAnalyticsLinkError]()",
              "id": "googleads.customers.accountLinks.create",
              "path": "v23/customers/{+customerId}/accountLinks:create",
              "flatPath": "v23/customers/{customersId}/accountLinks:create",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__CreateAccountLinkResponse"
              },
              "parameters": {
                "customerId": {
                  "required": true,
                  "pattern": "^[^/]+$",
                  "type": "string",
                  "location": "path",
                  "description": "Required. The ID of the customer for which the account link is created."
                }
              },
              "httpMethod": "POST",
              "parameterOrder": [
                "customerId"
              ]
            }
          }
        },
        "billingSetups": {
          "methods": {
            "mutate": {
              "description": "Creates a billing setup, or cancels an existing billing setup. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [BillingSetupError]() [DateError]() [FieldError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]()",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "required": true,
                  "description": "Required. Id of the customer to apply the billing setup mutate operation to.",
                  "location": "path",
                  "pattern": "^[^/]+$"
                }
              },
              "id": "googleads.customers.billingSetups.mutate",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateBillingSetupRequest"
              },
              "flatPath": "v23/customers/{customersId}/billingSetups:mutate",
              "path": "v23/customers/{+customerId}/billingSetups:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateBillingSetupResponse"
              },
              "httpMethod": "POST",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ]
            }
          }
        },
        "customInterests": {
          "methods": {
            "mutate": {
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomInterestsRequest"
              },
              "flatPath": "v23/customers/{customersId}/customInterests:mutate",
              "path": "v23/customers/{+customerId}/customInterests:mutate",
              "description": "Creates or updates custom interests. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [CriterionError]() [CustomInterestError]() [HeaderError]() [InternalError]() [MutateError]() [PolicyViolationError]() [QuotaError]() [RequestError]() [StringLengthError]()",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameters": {
                "customerId": {
                  "required": true,
                  "location": "path",
                  "pattern": "^[^/]+$",
                  "type": "string",
                  "description": "Required. The ID of the customer whose custom interests are being modified."
                }
              },
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomInterestsResponse"
              },
              "id": "googleads.customers.customInterests.mutate",
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST"
            }
          }
        },
        "conversionValueRules": {
          "methods": {
            "mutate": {
              "flatPath": "v23/customers/{customersId}/conversionValueRules:mutate",
              "id": "googleads.customers.conversionValueRules.mutate",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateConversionValueRulesRequest"
              },
              "parameterOrder": [
                "customerId"
              ],
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateConversionValueRulesResponse"
              },
              "description": "Creates, updates, or removes conversion value rules. Operation statuses are returned.",
              "path": "v23/customers/{+customerId}/conversionValueRules:mutate",
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose conversion value rules are being modified.",
                  "location": "path",
                  "type": "string",
                  "required": true,
                  "pattern": "^[^/]+$"
                }
              }
            }
          }
        },
        "thirdPartyAppAnalyticsLinks": {
          "methods": {
            "regenerateShareableLinkId": {
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "flatPath": "v23/customers/{customersId}/thirdPartyAppAnalyticsLinks/{thirdPartyAppAnalyticsLinksId}:regenerateShareableLinkId",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__RegenerateShareableLinkIdRequest"
              },
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__RegenerateShareableLinkIdResponse"
              },
              "path": "v23/{+resourceName}:regenerateShareableLinkId",
              "parameters": {
                "resourceName": {
                  "required": true,
                  "location": "path",
                  "type": "string",
                  "pattern": "^customers/[^/]+/thirdPartyAppAnalyticsLinks/[^/]+$",
                  "description": "Resource name of the third party app analytics link."
                }
              },
              "httpMethod": "POST",
              "description": "Regenerate ThirdPartyAppAnalyticsLink.shareable_link_id that should be provided to the third party when setting up app analytics. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
              "parameterOrder": [
                "resourceName"
              ],
              "id": "googleads.customers.thirdPartyAppAnalyticsLinks.regenerateShareableLinkId"
            }
          }
        },
        "Goals": {
          "methods": {
            "mutate": {
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateGoalsResponse"
              },
              "path": "v23/customers/{+customerId}/Goals:mutate",
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateGoalsRequest"
              },
              "parameterOrder": [
                "customerId"
              ],
              "description": "Create or update goals. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]() [GoalError]() [GoalServicesError]()",
              "parameters": {
                "customerId": {
                  "location": "path",
                  "required": true,
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "description": "Required. The ID of the customer whose goals are being modified."
                }
              },
              "flatPath": "v23/customers/{customersId}/Goals:mutate",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "id": "googleads.customers.Goals.mutate"
            }
          }
        },
        "assetGroupSignals": {
          "methods": {
            "mutate": {
              "httpMethod": "POST",
              "parameterOrder": [
                "customerId"
              ],
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "description": "Creates or removes asset group signals. Operation statuses are returned.",
              "flatPath": "v23/customers/{customersId}/assetGroupSignals:mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateAssetGroupSignalsResponse"
              },
              "id": "googleads.customers.assetGroupSignals.mutate",
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "description": "Required. The ID of the customer whose asset group signals are being modified.",
                  "type": "string",
                  "location": "path",
                  "required": true
                }
              },
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateAssetGroupSignalsRequest"
              },
              "path": "v23/customers/{+customerId}/assetGroupSignals:mutate"
            }
          }
        },
        "conversionValueRuleSets": {
          "methods": {
            "mutate": {
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateConversionValueRuleSetsRequest"
              },
              "description": "Creates, updates or removes conversion value rule sets. Operation statuses are returned.",
              "flatPath": "v23/customers/{customersId}/conversionValueRuleSets:mutate",
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose conversion value rule sets are being modified.",
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "type": "string",
                  "required": true
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateConversionValueRuleSetsResponse"
              },
              "id": "googleads.customers.conversionValueRuleSets.mutate",
              "parameterOrder": [
                "customerId"
              ],
              "path": "v23/customers/{+customerId}/conversionValueRuleSets:mutate",
              "httpMethod": "POST"
            }
          }
        },
        "customerUserAccessInvitations": {
          "methods": {
            "mutate": {
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomerUserAccessInvitationRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomerUserAccessInvitationResponse"
              },
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "type": "string",
                  "location": "path",
                  "description": "Required. The ID of the customer whose access invitation is being modified.",
                  "required": true
                }
              },
              "httpMethod": "POST",
              "description": "Creates or removes an access invitation. List of thrown errors: [AccessInvitationError]() [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
              "flatPath": "v23/customers/{customersId}/customerUserAccessInvitations:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "id": "googleads.customers.customerUserAccessInvitations.mutate",
              "path": "v23/customers/{+customerId}/customerUserAccessInvitations:mutate"
            }
          }
        },
        "assets": {
          "methods": {
            "mutate": {
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateAssetsResponse"
              },
              "parameterOrder": [
                "customerId"
              ],
              "path": "v23/customers/{+customerId}/assets:mutate",
              "description": "Creates assets. Operation statuses are returned. List of thrown errors: [AssetError]() [AuthenticationError]() [AuthorizationError]() [CollectionSizeError]() [CurrencyCodeError]() [DatabaseError]() [DateError]() [DistinctError]() [FieldError]() [FieldMaskError]() [HeaderError]() [IdError]() [InternalError]() [ListOperationError]() [MediaUploadError]() [MutateError]() [NotAllowlistedError]() [NotEmptyError]() [OperatorError]() [QuotaError]() [RangeError]() [RequestError]() [SizeLimitError]() [StringFormatError]() [StringLengthError]() [UrlFieldError]() [YoutubeVideoRegistrationError]()",
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose assets are being modified.",
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "required": true,
                  "location": "path"
                }
              },
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateAssetsRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "httpMethod": "POST",
              "flatPath": "v23/customers/{customersId}/assets:mutate",
              "id": "googleads.customers.assets.mutate"
            }
          }
        },
        "campaignCustomizers": {
          "methods": {
            "mutate": {
              "flatPath": "v23/customers/{customersId}/campaignCustomizers:mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCampaignCustomizersResponse"
              },
              "id": "googleads.customers.campaignCustomizers.mutate",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCampaignCustomizersRequest"
              },
              "parameterOrder": [
                "customerId"
              ],
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose campaign customizers are being modified.",
                  "location": "path",
                  "pattern": "^[^/]+$",
                  "type": "string",
                  "required": true
                }
              },
              "httpMethod": "POST",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "description": "Creates, updates or removes campaign customizers. Operation statuses are returned.",
              "path": "v23/customers/{+customerId}/campaignCustomizers:mutate"
            }
          }
        },
        "recommendations": {
          "methods": {
            "dismiss": {
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer with the recommendation.",
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "type": "string",
                  "required": true
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "flatPath": "v23/customers/{customersId}/recommendations:dismiss",
              "httpMethod": "POST",
              "path": "v23/customers/{+customerId}/recommendations:dismiss",
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__DismissRecommendationResponse"
              },
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__DismissRecommendationRequest"
              },
              "parameterOrder": [
                "customerId"
              ],
              "id": "googleads.customers.recommendations.dismiss",
              "description": "Dismisses given recommendations. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RecommendationError]() [RequestError]()"
            },
            "apply": {
              "flatPath": "v23/customers/{customersId}/recommendations:apply",
              "description": "Applies given recommendations with corresponding apply parameters. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RecommendationError]() [RequestError]() [UrlFieldError]()",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer with the recommendation.",
                  "pattern": "^[^/]+$",
                  "type": "string",
                  "location": "path",
                  "required": true
                }
              },
              "parameterOrder": [
                "customerId"
              ],
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__ApplyRecommendationResponse"
              },
              "path": "v23/customers/{+customerId}/recommendations:apply",
              "id": "googleads.customers.recommendations.apply",
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__ApplyRecommendationRequest"
              }
            },
            "generate": {
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "parameters": {
                "customerId": {
                  "required": true,
                  "pattern": "^[^/]+$",
                  "description": "Required. The ID of the customer generating recommendations.",
                  "type": "string",
                  "location": "path"
                }
              },
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__GenerateRecommendationsRequest"
              },
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__GenerateRecommendationsResponse"
              },
              "id": "googleads.customers.recommendations.generate",
              "flatPath": "v23/customers/{customersId}/recommendations:generate",
              "description": "Generates Recommendations based off the requested recommendation_types. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RecommendationError]() [RequestError]()",
              "path": "v23/customers/{+customerId}/recommendations:generate"
            }
          }
        },
        "invoices": {
          "methods": {
            "list": {
              "parameterOrder": [
                "customerId"
              ],
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "path": "v23/customers/{+customerId}/invoices",
              "httpMethod": "GET",
              "id": "googleads.customers.invoices.list",
              "parameters": {
                "billingSetup": {
                  "location": "query",
                  "type": "string",
                  "description": "Required. The billing setup resource name of the requested invoices. `customers/{customer_id}/billingSetups/{billing_setup_id}`"
                },
                "issueMonth": {
                  "type": "string",
                  "enum": [
                    "UNSPECIFIED",
                    "UNKNOWN",
                    "JANUARY",
                    "FEBRUARY",
                    "MARCH",
                    "APRIL",
                    "MAY",
                    "JUNE",
                    "JULY",
                    "AUGUST",
                    "SEPTEMBER",
                    "OCTOBER",
                    "NOVEMBER",
                    "DECEMBER"
                  ],
                  "description": "Required. The issue month to retrieve invoices.",
                  "enumDescriptions": [
                    "Not specified.",
                    "The value is unknown in this version.",
                    "January.",
                    "February.",
                    "March.",
                    "April.",
                    "May.",
                    "June.",
                    "July.",
                    "August.",
                    "September.",
                    "October.",
                    "November.",
                    "December."
                  ],
                  "location": "query"
                },
                "includeGranularLevelInvoiceDetails": {
                  "type": "boolean",
                  "description": "Optional. When true, the response will include more granular level invoice details such as campaign level cost breakdown, itemized regulatory costs and adjustments. The default value is false.",
                  "location": "query"
                },
                "issueYear": {
                  "location": "query",
                  "type": "string",
                  "description": "Required. The issue year to retrieve invoices, in yyyy format. Only invoices issued in 2019 or later can be retrieved."
                },
                "customerId": {
                  "description": "Required. The ID of the customer to fetch invoices for.",
                  "type": "string",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$"
                }
              },
              "flatPath": "v23/customers/{customersId}/invoices",
              "description": "Returns all invoices associated with a billing setup, for a given month. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [InvoiceError]() [QuotaError]() [RequestError]()",
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__ListInvoicesResponse"
              }
            }
          }
        },
        "adGroupAssetSets": {
          "methods": {
            "mutate": {
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "required": true,
                  "location": "path",
                  "description": "Required. The ID of the customer whose ad group asset sets are being modified.",
                  "type": "string"
                }
              },
              "id": "googleads.customers.adGroupAssetSets.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateAdGroupAssetSetsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "flatPath": "v23/customers/{customersId}/adGroupAssetSets:mutate",
              "description": "Creates, or removes ad group asset sets. Operation statuses are returned.",
              "httpMethod": "POST",
              "path": "v23/customers/{+customerId}/adGroupAssetSets:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateAdGroupAssetSetsRequest"
              }
            }
          }
        },
        "campaigns": {
          "methods": {
            "enablePMaxBrandGuidelines": {
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "description": "Enables Brand Guidelines for Performance Max campaigns. List of thrown errors: [AuthenticationError]() [AssetError]() [AssetLinkError]() [AuthorizationError]() [BrandGuidelinesMigrationError]() [CampaignError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]() [ResourceCountLimitExceededError]()",
              "id": "googleads.customers.campaigns.enablePMaxBrandGuidelines",
              "httpMethod": "POST",
              "flatPath": "v23/customers/{customersId}/campaigns:enablePMaxBrandGuidelines",
              "parameterOrder": [
                "customerId"
              ],
              "path": "v23/customers/{+customerId}/campaigns:enablePMaxBrandGuidelines",
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__EnablePMaxBrandGuidelinesResponse"
              },
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__EnablePMaxBrandGuidelinesRequest"
              },
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose campaigns are being enabled.",
                  "pattern": "^[^/]+$",
                  "type": "string",
                  "location": "path",
                  "required": true
                }
              }
            },
            "mutate": {
              "id": "googleads.customers.campaigns.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCampaignsResponse"
              },
              "path": "v23/customers/{+customerId}/campaigns:mutate",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameterOrder": [
                "customerId"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCampaignsRequest"
              },
              "parameters": {
                "customerId": {
                  "required": true,
                  "location": "path",
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "description": "Required. The ID of the customer whose campaigns are being modified."
                }
              },
              "httpMethod": "POST",
              "description": "Creates, updates, or removes campaigns. Operation statuses are returned. List of thrown errors: [AdxError]() [AuthenticationError]() [AuthorizationError]() [BiddingError]() [BiddingStrategyError]() [CampaignBudgetError]() [CampaignError]() [ContextError]() [DatabaseError]() [DateError]() [DateRangeError]() [DistinctError]() [FieldError]() [FieldMaskError]() [HeaderError]() [IdError]() [InternalError]() [ListOperationError]() [MutateError]() [NewResourceCreationError]() [NotAllowlistedError]() [NotEmptyError]() [NullError]() [OperationAccessDeniedError]() [OperatorError]() [QuotaError]() [RangeError]() [RegionCodeError]() [RequestError]() [ResourceCountLimitExceededError]() [SettingError]() [SizeLimitError]() [StringFormatError]() [StringLengthError]() [UrlFieldError]()",
              "flatPath": "v23/customers/{customersId}/campaigns:mutate"
            }
          }
        },
        "campaignBidModifiers": {
          "methods": {
            "mutate": {
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCampaignBidModifiersResponse"
              },
              "path": "v23/customers/{+customerId}/campaignBidModifiers:mutate",
              "parameters": {
                "customerId": {
                  "location": "path",
                  "type": "string",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "description": "Required. ID of the customer whose campaign bid modifiers are being modified."
                }
              },
              "flatPath": "v23/customers/{customersId}/campaignBidModifiers:mutate",
              "httpMethod": "POST",
              "id": "googleads.customers.campaignBidModifiers.mutate",
              "description": "Creates, updates, or removes campaign bid modifiers. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [ContextError]() [CriterionError]() [DatabaseError]() [DateError]() [DistinctError]() [FieldError]() [HeaderError]() [IdError]() [InternalError]() [MutateError]() [NewResourceCreationError]() [NotEmptyError]() [NullError]() [OperatorError]() [QuotaError]() [RangeError]() [RequestError]() [SizeLimitError]() [StringFormatError]() [StringLengthError]()",
              "parameterOrder": [
                "customerId"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCampaignBidModifiersRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ]
            }
          }
        },
        "userLists": {
          "methods": {
            "mutate": {
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateUserListsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateUserListsRequest"
              },
              "id": "googleads.customers.userLists.mutate",
              "path": "v23/customers/{+customerId}/userLists:mutate",
              "parameters": {
                "customerId": {
                  "required": true,
                  "description": "Required. The ID of the customer whose user lists are being modified.",
                  "type": "string",
                  "location": "path",
                  "pattern": "^[^/]+$"
                }
              },
              "httpMethod": "POST",
              "parameterOrder": [
                "customerId"
              ],
              "flatPath": "v23/customers/{customersId}/userLists:mutate",
              "description": "Creates or updates user lists. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [CollectionSizeError]() [DatabaseError]() [DistinctError]() [FieldError]() [FieldMaskError]() [HeaderError]() [InternalError]() [MutateError]() [NewResourceCreationError]() [NotAllowlistedError]() [NotEmptyError]() [OperationAccessDeniedError]() [QuotaError]() [RangeError]() [RequestError]() [StringFormatError]() [StringLengthError]() [UserListError]()"
            }
          }
        },
        "campaignCriteria": {
          "methods": {
            "mutate": {
              "path": "v23/customers/{+customerId}/campaignCriteria:mutate",
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCampaignCriteriaRequest"
              },
              "parameters": {
                "customerId": {
                  "required": true,
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "description": "Required. The ID of the customer whose criteria are being modified.",
                  "type": "string"
                }
              },
              "description": "Creates, updates, or removes criteria. Operation statuses are returned. List of thrown errors: [AdxError]() [AuthenticationError]() [AuthorizationError]() [CampaignCriterionError]() [CollectionSizeError]() [ContextError]() [CriterionError]() [DatabaseError]() [DistinctError]() [FieldError]() [FieldMaskError]() [FunctionError]() [HeaderError]() [IdError]() [InternalError]() [MutateError]() [NewResourceCreationError]() [NotEmptyError]() [NullError]() [OperationAccessDeniedError]() [OperatorError]() [QuotaError]() [RangeError]() [RegionCodeError]() [RequestError]() [ResourceCountLimitExceededError]() [SizeLimitError]() [StringFormatError]() [StringLengthError]()",
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCampaignCriteriaResponse"
              },
              "flatPath": "v23/customers/{customersId}/campaignCriteria:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "id": "googleads.customers.campaignCriteria.mutate"
            }
          }
        },
        "customerSkAdNetworkConversionValueSchemas": {
          "methods": {
            "mutate": {
              "httpMethod": "POST",
              "flatPath": "v23/customers/{customersId}/customerSkAdNetworkConversionValueSchemas:mutate",
              "description": "Creates or updates the CustomerSkAdNetworkConversionValueSchema. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [FieldError]() [InternalError]() [MutateError]()",
              "path": "v23/customers/{+customerId}/customerSkAdNetworkConversionValueSchemas:mutate",
              "id": "googleads.customers.customerSkAdNetworkConversionValueSchemas.mutate",
              "parameters": {
                "customerId": {
                  "required": true,
                  "type": "string",
                  "location": "path",
                  "description": "The ID of the customer whose shared sets are being modified.",
                  "pattern": "^[^/]+$"
                }
              },
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomerSkAdNetworkConversionValueSchemaRequest"
              },
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomerSkAdNetworkConversionValueSchemaResponse"
              },
              "parameterOrder": [
                "customerId"
              ],
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ]
            }
          }
        },
        "customerAssetSets": {
          "methods": {
            "mutate": {
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomerAssetSetsRequest"
              },
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose customer asset sets are being modified.",
                  "required": true,
                  "type": "string",
                  "location": "path",
                  "pattern": "^[^/]+$"
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "id": "googleads.customers.customerAssetSets.mutate",
              "flatPath": "v23/customers/{customersId}/customerAssetSets:mutate",
              "httpMethod": "POST",
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomerAssetSetsResponse"
              },
              "parameterOrder": [
                "customerId"
              ],
              "description": "Creates, or removes customer asset sets. Operation statuses are returned.",
              "path": "v23/customers/{+customerId}/customerAssetSets:mutate"
            }
          }
        },
        "adGroupAdLabels": {
          "methods": {
            "mutate": {
              "description": "Creates and removes ad group ad labels. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [HeaderError]() [InternalError]() [LabelError]() [MutateError]() [NewResourceCreationError]() [QuotaError]() [RequestError]()",
              "path": "v23/customers/{+customerId}/adGroupAdLabels:mutate",
              "flatPath": "v23/customers/{customersId}/adGroupAdLabels:mutate",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateAdGroupAdLabelsRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateAdGroupAdLabelsResponse"
              },
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "id": "googleads.customers.adGroupAdLabels.mutate",
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "description": "Required. ID of the customer whose ad group ad labels are being modified.",
                  "required": true,
                  "type": "string"
                }
              }
            }
          }
        },
        "keywordPlans": {
          "methods": {
            "mutate": {
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose keyword plans are being modified.",
                  "type": "string",
                  "required": true,
                  "location": "path",
                  "pattern": "^[^/]+$"
                }
              },
              "id": "googleads.customers.keywordPlans.mutate",
              "description": "Creates, updates, or removes keyword plans. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldError]() [HeaderError]() [InternalError]() [KeywordPlanError]() [MutateError]() [NewResourceCreationError]() [QuotaError]() [RequestError]() [ResourceCountLimitExceededError]() [StringLengthError]()",
              "httpMethod": "POST",
              "parameterOrder": [
                "customerId"
              ],
              "path": "v23/customers/{+customerId}/keywordPlans:mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateKeywordPlansResponse"
              },
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateKeywordPlansRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "flatPath": "v23/customers/{customersId}/keywordPlans:mutate"
            }
          }
        },
        "campaignDrafts": {
          "methods": {
            "listAsyncErrors": {
              "parameterOrder": [
                "resourceName"
              ],
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "httpMethod": "GET",
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__ListCampaignDraftAsyncErrorsResponse"
              },
              "flatPath": "v23/customers/{customersId}/campaignDrafts/{campaignDraftsId}:listAsyncErrors",
              "description": "Returns all errors that occurred during CampaignDraft promote. Throws an error if called before campaign draft is promoted. Supports standard list paging. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
              "id": "googleads.customers.campaignDrafts.listAsyncErrors",
              "parameters": {
                "pageSize": {
                  "location": "query",
                  "description": "Number of elements to retrieve in a single page. When a page request is too large, the server may decide to further limit the number of returned resources.",
                  "format": "int32",
                  "type": "integer"
                },
                "pageToken": {
                  "location": "query",
                  "description": "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.",
                  "type": "string"
                },
                "resourceName": {
                  "pattern": "^customers/[^/]+/campaignDrafts/[^/]+$",
                  "description": "Required. The name of the campaign draft from which to retrieve the async errors.",
                  "required": true,
                  "type": "string",
                  "location": "path"
                }
              },
              "path": "v23/{+resourceName}:listAsyncErrors"
            },
            "mutate": {
              "id": "googleads.customers.campaignDrafts.mutate",
              "parameterOrder": [
                "customerId"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCampaignDraftsRequest"
              },
              "path": "v23/customers/{+customerId}/campaignDrafts:mutate",
              "flatPath": "v23/customers/{customersId}/campaignDrafts:mutate",
              "description": "Creates, updates, or removes campaign drafts. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [CampaignDraftError]() [DatabaseError]() [FieldError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]()",
              "httpMethod": "POST",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "description": "Required. The ID of the customer whose campaign drafts are being modified.",
                  "required": true,
                  "location": "path"
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCampaignDraftsResponse"
              }
            },
            "promote": {
              "parameters": {
                "campaignDraft": {
                  "pattern": "^customers/[^/]+/campaignDrafts/[^/]+$",
                  "required": true,
                  "description": "Required. The resource name of the campaign draft to promote.",
                  "location": "path",
                  "type": "string"
                }
              },
              "flatPath": "v23/customers/{customersId}/campaignDrafts/{campaignDraftsId}:promote",
              "path": "v23/{+campaignDraft}:promote",
              "description": "Promotes the changes in a draft back to the base campaign. This method returns a Long Running Operation (LRO) indicating if the Promote is done. Use google.longrunning.Operations.GetOperation to poll the LRO until it is done. Only a done status is returned in the response. See the status in the Campaign Draft resource to determine if the promotion was successful. If the LRO failed, use CampaignDraftService.ListCampaignDraftAsyncErrors to view the list of error reasons. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [CampaignDraftError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
              "response": {
                "$ref": "GoogleLongrunning__Operation"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__PromoteCampaignDraftRequest"
              },
              "id": "googleads.customers.campaignDrafts.promote",
              "parameterOrder": [
                "campaignDraft"
              ],
              "httpMethod": "POST"
            }
          }
        },
        "operations": {
          "methods": {
            "delete": {
              "description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameters": {
                "name": {
                  "location": "path",
                  "pattern": "^customers/[^/]+/operations/[^/]+$",
                  "description": "The name of the operation resource to be deleted.",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v23/{+name}",
              "parameterOrder": [
                "name"
              ],
              "httpMethod": "DELETE",
              "response": {
                "$ref": "GoogleProtobuf__Empty"
              },
              "id": "googleads.customers.operations.delete",
              "flatPath": "v23/customers/{customersId}/operations/{operationsId}"
            },
            "cancel": {
              "parameters": {
                "name": {
                  "location": "path",
                  "required": true,
                  "description": "The name of the operation resource to be cancelled.",
                  "type": "string",
                  "pattern": "^customers/[^/]+/operations/[^/]+$"
                }
              },
              "path": "v23/{+name}:cancel",
              "response": {
                "$ref": "GoogleProtobuf__Empty"
              },
              "flatPath": "v23/customers/{customersId}/operations/{operationsId}:cancel",
              "id": "googleads.customers.operations.cancel",
              "request": {
                "$ref": "GoogleLongrunning__CancelOperationRequest"
              },
              "httpMethod": "POST",
              "parameterOrder": [
                "name"
              ],
              "description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ]
            },
            "get": {
              "description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.",
              "id": "googleads.customers.operations.get",
              "httpMethod": "GET",
              "flatPath": "v23/customers/{customersId}/operations/{operationsId}",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "path": "v23/{+name}",
              "response": {
                "$ref": "GoogleLongrunning__Operation"
              },
              "parameterOrder": [
                "name"
              ],
              "parameters": {
                "name": {
                  "type": "string",
                  "location": "path",
                  "description": "The name of the operation resource.",
                  "required": true,
                  "pattern": "^customers/[^/]+/operations/[^/]+$"
                }
              }
            },
            "wait": {
              "id": "googleads.customers.operations.wait",
              "path": "v23/{+name}:wait",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "httpMethod": "POST",
              "flatPath": "v23/customers/{customersId}/operations/{operationsId}:wait",
              "parameterOrder": [
                "name"
              ],
              "description": "Waits until the specified long-running operation is done or reaches at most a specified timeout, returning the latest state. If the operation is already done, the latest state is immediately returned. If the timeout specified is greater than the default HTTP/RPC timeout, the HTTP/RPC timeout is used. If the server does not support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Note that this method is on a best-effort basis. It may return the latest state before the specified timeout (including immediately), meaning even an immediate response is no guarantee that the operation is done.",
              "response": {
                "$ref": "GoogleLongrunning__Operation"
              },
              "request": {
                "$ref": "GoogleLongrunning__WaitOperationRequest"
              },
              "parameters": {
                "name": {
                  "location": "path",
                  "pattern": "^customers/[^/]+/operations/[^/]+$",
                  "description": "The name of the operation resource to wait on.",
                  "required": true,
                  "type": "string"
                }
              }
            },
            "list": {
              "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.",
              "flatPath": "v23/customers/{customersId}/operations",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "id": "googleads.customers.operations.list",
              "path": "v23/{+name}",
              "response": {
                "$ref": "GoogleLongrunning__ListOperationsResponse"
              },
              "httpMethod": "GET",
              "parameters": {
                "filter": {
                  "type": "string",
                  "description": "The standard list filter.",
                  "location": "query"
                },
                "name": {
                  "description": "The name of the operation's parent resource.",
                  "required": true,
                  "location": "path",
                  "type": "string",
                  "pattern": "^customers/[^/]+/operations$"
                },
                "pageToken": {
                  "type": "string",
                  "location": "query",
                  "description": "The standard list page token."
                },
                "returnPartialSuccess": {
                  "location": "query",
                  "type": "boolean",
                  "description": "When set to `true`, operations that are reachable are returned as normal, and those that are unreachable are returned in the ListOperationsResponse.unreachable field. This can only be `true` when reading across collections. For example, when `parent` is set to `\"projects/example/locations/-\"`. This field is not supported by default and will result in an `UNIMPLEMENTED` error if set unless explicitly documented otherwise in service or product specific documentation."
                },
                "pageSize": {
                  "format": "int32",
                  "description": "The standard list page size.",
                  "location": "query",
                  "type": "integer"
                }
              },
              "parameterOrder": [
                "name"
              ]
            }
          }
        },
        "customerConversionGoals": {
          "methods": {
            "mutate": {
              "id": "googleads.customers.customerConversionGoals.mutate",
              "flatPath": "v23/customers/{customersId}/customerConversionGoals:mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomerConversionGoalsResponse"
              },
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomerConversionGoalsRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "httpMethod": "POST",
              "parameters": {
                "customerId": {
                  "location": "path",
                  "description": "Required. The ID of the customer whose customer conversion goals are being modified.",
                  "pattern": "^[^/]+$",
                  "type": "string",
                  "required": true
                }
              },
              "parameterOrder": [
                "customerId"
              ],
              "path": "v23/customers/{+customerId}/customerConversionGoals:mutate",
              "description": "Creates, updates or removes customer conversion goals. Operation statuses are returned."
            }
          }
        },
        "experiments": {
          "methods": {
            "scheduleExperiment": {
              "httpMethod": "POST",
              "id": "googleads.customers.experiments.scheduleExperiment",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__ScheduleExperimentRequest"
              },
              "parameters": {
                "resourceName": {
                  "required": true,
                  "location": "path",
                  "pattern": "^customers/[^/]+/experiments/[^/]+$",
                  "type": "string",
                  "description": "Required. The scheduled experiment."
                }
              },
              "parameterOrder": [
                "resourceName"
              ],
              "response": {
                "$ref": "GoogleLongrunning__Operation"
              },
              "description": "Schedule an experiment. The in design campaign will be converted into a real campaign (called the experiment campaign) that will begin serving ads if successfully created. The experiment is scheduled immediately with status INITIALIZING. This method returns a long running operation that tracks the forking of the in design campaign. If the forking fails, a list of errors can be retrieved using the ListExperimentAsyncErrors method. The operation's metadata will be a string containing the resource name of the created experiment. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [ExperimentError]() [DatabaseError]() [DateError]() [DateRangeError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RangeError]() [RequestError]()",
              "flatPath": "v23/customers/{customersId}/experiments/{experimentsId}:scheduleExperiment",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "path": "v23/{+resourceName}:scheduleExperiment"
            },
            "mutate": {
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateExperimentsResponse"
              },
              "description": "Creates, updates, or removes experiments. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [ExperimentError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateExperimentsRequest"
              },
              "parameterOrder": [
                "customerId"
              ],
              "path": "v23/customers/{+customerId}/experiments:mutate",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "flatPath": "v23/customers/{customersId}/experiments:mutate",
              "id": "googleads.customers.experiments.mutate",
              "httpMethod": "POST",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "description": "Required. The ID of the customer whose experiments are being modified."
                }
              }
            },
            "promoteExperiment": {
              "flatPath": "v23/customers/{customersId}/experiments/{experimentsId}:promoteExperiment",
              "id": "googleads.customers.experiments.promoteExperiment",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "description": "Promotes the trial campaign thus applying changes in the trial campaign to the base campaign. This method returns a long running operation that tracks the promotion of the experiment campaign. If it fails, a list of errors can be retrieved using the ListExperimentAsyncErrors method. The operation's metadata will be a string containing the resource name of the created experiment. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [ExperimentError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
              "parameterOrder": [
                "resourceName"
              ],
              "parameters": {
                "resourceName": {
                  "type": "string",
                  "description": "Required. The resource name of the experiment to promote.",
                  "location": "path",
                  "pattern": "^customers/[^/]+/experiments/[^/]+$",
                  "required": true
                }
              },
              "path": "v23/{+resourceName}:promoteExperiment",
              "response": {
                "$ref": "GoogleLongrunning__Operation"
              },
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__PromoteExperimentRequest"
              },
              "httpMethod": "POST"
            },
            "listExperimentAsyncErrors": {
              "id": "googleads.customers.experiments.listExperimentAsyncErrors",
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__ListExperimentAsyncErrorsResponse"
              },
              "parameterOrder": [
                "resourceName"
              ],
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameters": {
                "resourceName": {
                  "required": true,
                  "pattern": "^customers/[^/]+/experiments/[^/]+$",
                  "type": "string",
                  "description": "Required. The name of the experiment from which to retrieve the async errors.",
                  "location": "path"
                },
                "pageToken": {
                  "type": "string",
                  "description": "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.",
                  "location": "query"
                },
                "pageSize": {
                  "location": "query",
                  "format": "int32",
                  "description": "Number of elements to retrieve in a single page. When a page request is too large, the server may decide to further limit the number of returned resources. The maximum page size is 1000.",
                  "type": "integer"
                }
              },
              "path": "v23/{+resourceName}:listExperimentAsyncErrors",
              "description": "Returns all errors that occurred during the last Experiment update (either scheduling or promotion). Supports standard list paging. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
              "flatPath": "v23/customers/{customersId}/experiments/{experimentsId}:listExperimentAsyncErrors",
              "httpMethod": "GET"
            },
            "graduateExperiment": {
              "httpMethod": "POST",
              "flatPath": "v23/customers/{customersId}/experiments/{experimentsId}:graduateExperiment",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "description": "Graduates an experiment to a full campaign. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [ExperimentError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]()",
              "response": {
                "$ref": "GoogleProtobuf__Empty"
              },
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__GraduateExperimentRequest"
              },
              "path": "v23/{+experiment}:graduateExperiment",
              "id": "googleads.customers.experiments.graduateExperiment",
              "parameters": {
                "experiment": {
                  "required": true,
                  "pattern": "^customers/[^/]+/experiments/[^/]+$",
                  "description": "Required. The experiment to be graduated.",
                  "type": "string",
                  "location": "path"
                }
              },
              "parameterOrder": [
                "experiment"
              ]
            },
            "endExperiment": {
              "response": {
                "$ref": "GoogleProtobuf__Empty"
              },
              "description": "Immediately ends an experiment, changing the experiment's scheduled end date and without waiting for end of day. End date is updated to be the time of the request. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [ExperimentError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
              "id": "googleads.customers.experiments.endExperiment",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameters": {
                "experiment": {
                  "pattern": "^customers/[^/]+/experiments/[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Required. The resource name of the campaign experiment to end.",
                  "type": "string"
                }
              },
              "flatPath": "v23/customers/{customersId}/experiments/{experimentsId}:endExperiment",
              "path": "v23/{+experiment}:endExperiment",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__EndExperimentRequest"
              },
              "parameterOrder": [
                "experiment"
              ],
              "httpMethod": "POST"
            }
          }
        },
        "adGroups": {
          "methods": {
            "mutate": {
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose ad groups are being modified.",
                  "location": "path",
                  "pattern": "^[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateAdGroupsRequest"
              },
              "httpMethod": "POST",
              "parameterOrder": [
                "customerId"
              ],
              "path": "v23/customers/{+customerId}/adGroups:mutate",
              "description": "Creates, updates, or removes ad groups. Operation statuses are returned. List of thrown errors: [AdGroupError]() [AdxError]() [AuthenticationError]() [AuthorizationError]() [BiddingError]() [BiddingStrategyError]() [DatabaseError]() [DateError]() [DistinctError]() [FieldError]() [FieldMaskError]() [HeaderError]() [IdError]() [InternalError]() [ListOperationError]() [MultiplierError]() [MutateError]() [NewResourceCreationError]() [NotEmptyError]() [NullError]() [OperationAccessDeniedError]() [OperatorError]() [QuotaError]() [RangeError]() [RequestError]() [ResourceCountLimitExceededError]() [SettingError]() [SizeLimitError]() [StringFormatError]() [StringLengthError]() [UrlFieldError]()",
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateAdGroupsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "id": "googleads.customers.adGroups.mutate",
              "flatPath": "v23/customers/{customersId}/adGroups:mutate"
            }
          }
        },
        "campaignGroups": {
          "methods": {
            "mutate": {
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCampaignGroupsRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameterOrder": [
                "customerId"
              ],
              "id": "googleads.customers.campaignGroups.mutate",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "location": "path",
                  "description": "Required. The ID of the customer whose campaign groups are being modified.",
                  "pattern": "^[^/]+$",
                  "required": true
                }
              },
              "path": "v23/customers/{+customerId}/campaignGroups:mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCampaignGroupsResponse"
              },
              "description": "Creates, updates, or removes campaign groups. Operation statuses are returned.",
              "httpMethod": "POST",
              "flatPath": "v23/customers/{customersId}/campaignGroups:mutate"
            }
          }
        },
        "customConversionGoals": {
          "methods": {
            "mutate": {
              "httpMethod": "POST",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "path": "v23/customers/{+customerId}/customConversionGoals:mutate",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomConversionGoalsRequest"
              },
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomConversionGoalsResponse"
              },
              "id": "googleads.customers.customConversionGoals.mutate",
              "flatPath": "v23/customers/{customersId}/customConversionGoals:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "description": "Creates, updates or removes custom conversion goals. Operation statuses are returned.",
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "required": true,
                  "location": "path",
                  "type": "string",
                  "description": "Required. The ID of the customer whose custom conversion goals are being modified."
                }
              }
            }
          }
        },
        "customerAssets": {
          "methods": {
            "mutate": {
              "description": "Creates, updates, or removes customer assets. Operation statuses are returned. List of thrown errors: [AssetLinkError]() [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]()",
              "parameterOrder": [
                "customerId"
              ],
              "id": "googleads.customers.customerAssets.mutate",
              "path": "v23/customers/{+customerId}/customerAssets:mutate",
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomerAssetsRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameters": {
                "customerId": {
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "description": "Required. The ID of the customer whose customer assets are being modified.",
                  "location": "path",
                  "required": true
                }
              },
              "flatPath": "v23/customers/{customersId}/customerAssets:mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomerAssetsResponse"
              }
            }
          }
        },
        "adParameters": {
          "methods": {
            "mutate": {
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateAdParametersResponse"
              },
              "parameterOrder": [
                "customerId"
              ],
              "description": "Creates, updates, or removes ad parameters. Operation statuses are returned. List of thrown errors: [AdParameterError]() [AuthenticationError]() [AuthorizationError]() [ContextError]() [DatabaseError]() [FieldError]() [FieldMaskError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]()",
              "parameters": {
                "customerId": {
                  "location": "path",
                  "description": "Required. The ID of the customer whose ad parameters are being modified.",
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "required": true
                }
              },
              "id": "googleads.customers.adParameters.mutate",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateAdParametersRequest"
              },
              "flatPath": "v23/customers/{customersId}/adParameters:mutate",
              "path": "v23/customers/{+customerId}/adParameters:mutate",
              "httpMethod": "POST",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ]
            }
          }
        },
        "customerNegativeCriteria": {
          "methods": {
            "mutate": {
              "flatPath": "v23/customers/{customersId}/customerNegativeCriteria:mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomerNegativeCriteriaResponse"
              },
              "id": "googleads.customers.customerNegativeCriteria.mutate",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameterOrder": [
                "customerId"
              ],
              "parameters": {
                "customerId": {
                  "type": "string",
                  "location": "path",
                  "pattern": "^[^/]+$",
                  "description": "Required. The ID of the customer whose criteria are being modified.",
                  "required": true
                }
              },
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomerNegativeCriteriaRequest"
              },
              "description": "Creates or removes criteria. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [CriterionError]() [DatabaseError]() [FieldError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]()",
              "path": "v23/customers/{+customerId}/customerNegativeCriteria:mutate"
            }
          }
        },
        "customerManagerLinks": {
          "methods": {
            "mutate": {
              "id": "googleads.customers.customerManagerLinks.mutate",
              "parameterOrder": [
                "customerId"
              ],
              "description": "Updates customer manager links. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldError]() [FieldMaskError]() [HeaderError]() [InternalError]() [ManagerLinkError]() [MutateError]() [QuotaError]() [RequestError]()",
              "path": "v23/customers/{+customerId}/customerManagerLinks:mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomerManagerLinkResponse"
              },
              "flatPath": "v23/customers/{customersId}/customerManagerLinks:mutate",
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose customer manager links are being modified.",
                  "type": "string",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$"
                }
              },
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomerManagerLinkRequest"
              },
              "httpMethod": "POST",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ]
            },
            "moveManagerLink": {
              "flatPath": "v23/customers/{customersId}/customerManagerLinks:moveManagerLink",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MoveManagerLinkRequest"
              },
              "httpMethod": "POST",
              "id": "googleads.customers.customerManagerLinks.moveManagerLink",
              "parameterOrder": [
                "customerId"
              ],
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MoveManagerLinkResponse"
              },
              "path": "v23/customers/{+customerId}/customerManagerLinks:moveManagerLink",
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "description": "Required. The ID of the client customer that is being moved.",
                  "required": true,
                  "location": "path",
                  "type": "string"
                }
              },
              "description": "Moves a client customer to a new manager customer. This simplifies the complex request that requires two operations to move a client customer to a new manager, for example: 1. Update operation with Status INACTIVE (previous manager) and, 2. Update operation with Status ACTIVE (new manager). List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]()"
            }
          }
        },
        "assetGroups": {
          "methods": {
            "mutate": {
              "description": "Creates, updates or removes asset groups. Operation statuses are returned.",
              "path": "v23/customers/{+customerId}/assetGroups:mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateAssetGroupsResponse"
              },
              "httpMethod": "POST",
              "flatPath": "v23/customers/{customersId}/assetGroups:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose asset groups are being modified.",
                  "pattern": "^[^/]+$",
                  "required": true,
                  "type": "string",
                  "location": "path"
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateAssetGroupsRequest"
              },
              "id": "googleads.customers.assetGroups.mutate"
            }
          }
        },
        "customerClientLinks": {
          "methods": {
            "mutate": {
              "id": "googleads.customers.customerClientLinks.mutate",
              "httpMethod": "POST",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomerClientLinkResponse"
              },
              "path": "v23/customers/{+customerId}/customerClientLinks:mutate",
              "description": "Creates or updates a customer client link. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldError]() [FieldMaskError]() [HeaderError]() [InternalError]() [ManagerLinkError]() [MutateError]() [NewResourceCreationError]() [QuotaError]() [RequestError]()",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomerClientLinkRequest"
              },
              "flatPath": "v23/customers/{customersId}/customerClientLinks:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "parameters": {
                "customerId": {
                  "location": "path",
                  "type": "string",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "description": "Required. The ID of the customer whose customer link are being modified."
                }
              }
            }
          }
        },
        "customizerAttributes": {
          "methods": {
            "mutate": {
              "description": "Creates, updates or removes customizer attributes. Operation statuses are returned.",
              "parameters": {
                "customerId": {
                  "location": "path",
                  "type": "string",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "description": "Required. The ID of the customer whose customizer attributes are being modified."
                }
              },
              "flatPath": "v23/customers/{customersId}/customizerAttributes:mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomizerAttributesResponse"
              },
              "httpMethod": "POST",
              "id": "googleads.customers.customizerAttributes.mutate",
              "path": "v23/customers/{+customerId}/customizerAttributes:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomizerAttributesRequest"
              }
            }
          }
        },
        "assetSetAssets": {
          "methods": {
            "mutate": {
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose asset set assets are being modified.",
                  "required": true,
                  "type": "string",
                  "location": "path",
                  "pattern": "^[^/]+$"
                }
              },
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateAssetSetAssetsRequest"
              },
              "parameterOrder": [
                "customerId"
              ],
              "flatPath": "v23/customers/{customersId}/assetSetAssets:mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateAssetSetAssetsResponse"
              },
              "path": "v23/customers/{+customerId}/assetSetAssets:mutate",
              "description": "Creates, updates or removes asset set assets. Operation statuses are returned.",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "id": "googleads.customers.assetSetAssets.mutate"
            }
          }
        },
        "productLinkInvitations": {
          "methods": {
            "remove": {
              "httpMethod": "POST",
              "description": "Remove a product link invitation.",
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__RemoveProductLinkInvitationResponse"
              },
              "flatPath": "v23/customers/{customersId}/productLinkInvitations:remove",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__RemoveProductLinkInvitationRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameterOrder": [
                "customerId"
              ],
              "id": "googleads.customers.productLinkInvitations.remove",
              "parameters": {
                "customerId": {
                  "location": "path",
                  "description": "Required. The ID of the product link invitation being removed.",
                  "type": "string",
                  "required": true,
                  "pattern": "^[^/]+$"
                }
              },
              "path": "v23/customers/{+customerId}/productLinkInvitations:remove"
            },
            "create": {
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameters": {
                "customerId": {
                  "type": "string",
                  "required": true,
                  "location": "path",
                  "description": "Required. The ID of the customer being modified.",
                  "pattern": "^[^/]+$"
                }
              },
              "description": "Creates a product link invitation.",
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__CreateProductLinkInvitationRequest"
              },
              "id": "googleads.customers.productLinkInvitations.create",
              "path": "v23/customers/{+customerId}/productLinkInvitations:create",
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__CreateProductLinkInvitationResponse"
              },
              "flatPath": "v23/customers/{customersId}/productLinkInvitations:create"
            },
            "update": {
              "path": "v23/customers/{+customerId}/productLinkInvitations:update",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__UpdateProductLinkInvitationResponse"
              },
              "description": "Update a product link invitation.",
              "flatPath": "v23/customers/{customersId}/productLinkInvitations:update",
              "id": "googleads.customers.productLinkInvitations.update",
              "parameterOrder": [
                "customerId"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__UpdateProductLinkInvitationRequest"
              },
              "parameters": {
                "customerId": {
                  "location": "path",
                  "required": true,
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "description": "Required. The ID of the customer being modified."
                }
              },
              "httpMethod": "POST"
            }
          }
        },
        "campaignLifecycleGoal": {
          "methods": {
            "configureCampaignLifecycleGoals": {
              "parameterOrder": [
                "customerId"
              ],
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__ConfigureCampaignLifecycleGoalsResponse"
              },
              "httpMethod": "POST",
              "flatPath": "v23/customers/{customersId}/campaignLifecycleGoal:configureCampaignLifecycleGoals",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__ConfigureCampaignLifecycleGoalsRequest"
              },
              "path": "v23/customers/{+customerId}/campaignLifecycleGoal:configureCampaignLifecycleGoals",
              "id": "googleads.customers.campaignLifecycleGoal.configureCampaignLifecycleGoals",
              "description": "Process the given campaign lifecycle configurations. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [CampaignLifecycleGoalConfigError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
              "parameters": {
                "customerId": {
                  "location": "path",
                  "pattern": "^[^/]+$",
                  "description": "Required. The ID of the customer performing the upload.",
                  "required": true,
                  "type": "string"
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ]
            }
          }
        },
        "adGroupLabels": {
          "methods": {
            "mutate": {
              "httpMethod": "POST",
              "id": "googleads.customers.adGroupLabels.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateAdGroupLabelsResponse"
              },
              "parameters": {
                "customerId": {
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "description": "Required. ID of the customer whose ad group labels are being modified.",
                  "required": true
                }
              },
              "path": "v23/customers/{+customerId}/adGroupLabels:mutate",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateAdGroupLabelsRequest"
              },
              "description": "Creates and removes ad group labels. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldError]() [HeaderError]() [InternalError]() [LabelError]() [MutateError]() [NewResourceCreationError]() [QuotaError]() [RequestError]()",
              "parameterOrder": [
                "customerId"
              ],
              "flatPath": "v23/customers/{customersId}/adGroupLabels:mutate"
            }
          }
        },
        "CustomerCustomizers": {
          "methods": {
            "mutate": {
              "description": "Creates, updates or removes customer customizers. Operation statuses are returned.",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomerCustomizersRequest"
              },
              "parameters": {
                "customerId": {
                  "required": true,
                  "location": "path",
                  "description": "Required. The ID of the customer whose customer customizers are being modified.",
                  "pattern": "^[^/]+$",
                  "type": "string"
                }
              },
              "httpMethod": "POST",
              "id": "googleads.customers.CustomerCustomizers.mutate",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "path": "v23/customers/{+customerId}/CustomerCustomizers:mutate",
              "flatPath": "v23/customers/{customersId}/CustomerCustomizers:mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomerCustomizersResponse"
              },
              "parameterOrder": [
                "customerId"
              ]
            }
          }
        },
        "assetGenerations": {
          "methods": {
            "generateImages": {
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "type": "string",
                  "description": "Required. The ID of the customer for whom the images are being generated. Required.",
                  "location": "path",
                  "required": true
                }
              },
              "path": "v23/customers/{+customerId}/assetGenerations:generateImages",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__GenerateImagesRequest"
              },
              "httpMethod": "POST",
              "parameterOrder": [
                "customerId"
              ],
              "description": "Uses generative AI to generate images that can be used as assets in a campaign. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [AssetGenerationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__GenerateImagesResponse"
              },
              "id": "googleads.customers.assetGenerations.generateImages",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "flatPath": "v23/customers/{customersId}/assetGenerations:generateImages"
            },
            "generateText": {
              "parameters": {
                "customerId": {
                  "location": "path",
                  "description": "Required. The ID of the customer to generate assets for. Required.",
                  "type": "string",
                  "required": true,
                  "pattern": "^[^/]+$"
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "description": "Uses generative AI to generate text that can be used as assets in a campaign. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [AssetGenerationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
              "id": "googleads.customers.assetGenerations.generateText",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__GenerateTextRequest"
              },
              "httpMethod": "POST",
              "parameterOrder": [
                "customerId"
              ],
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__GenerateTextResponse"
              },
              "path": "v23/customers/{+customerId}/assetGenerations:generateText",
              "flatPath": "v23/customers/{customersId}/assetGenerations:generateText"
            }
          }
        },
        "assetGroupAssets": {
          "methods": {
            "mutate": {
              "parameterOrder": [
                "customerId"
              ],
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateAssetGroupAssetsResponse"
              },
              "path": "v23/customers/{+customerId}/assetGroupAssets:mutate",
              "flatPath": "v23/customers/{customersId}/assetGroupAssets:mutate",
              "httpMethod": "POST",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateAssetGroupAssetsRequest"
              },
              "description": "Creates, updates or removes asset group assets. Operation statuses are returned.",
              "id": "googleads.customers.assetGroupAssets.mutate",
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose asset group assets are being modified.",
                  "type": "string",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$"
                }
              }
            }
          }
        },
        "assetSets": {
          "methods": {
            "mutate": {
              "description": "Creates, updates or removes asset sets. Operation statuses are returned.",
              "httpMethod": "POST",
              "parameterOrder": [
                "customerId"
              ],
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "id": "googleads.customers.assetSets.mutate",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateAssetSetsRequest"
              },
              "flatPath": "v23/customers/{customersId}/assetSets:mutate",
              "path": "v23/customers/{+customerId}/assetSets:mutate",
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose asset sets are being modified.",
                  "pattern": "^[^/]+$",
                  "type": "string",
                  "required": true,
                  "location": "path"
                }
              },
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateAssetSetsResponse"
              }
            }
          }
        },
        "keywordPlanAdGroupKeywords": {
          "methods": {
            "mutate": {
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateKeywordPlanAdGroupKeywordsResponse"
              },
              "flatPath": "v23/customers/{customersId}/keywordPlanAdGroupKeywords:mutate",
              "path": "v23/customers/{+customerId}/keywordPlanAdGroupKeywords:mutate",
              "description": "Creates, updates, or removes Keyword Plan ad group keywords. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldError]() [HeaderError]() [InternalError]() [KeywordPlanAdGroupKeywordError]() [KeywordPlanError]() [MutateError]() [QuotaError]() [RequestError]() [ResourceCountLimitExceededError]()",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateKeywordPlanAdGroupKeywordsRequest"
              },
              "id": "googleads.customers.keywordPlanAdGroupKeywords.mutate",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose Keyword Plan ad group keywords are being modified.",
                  "location": "path",
                  "pattern": "^[^/]+$",
                  "type": "string",
                  "required": true
                }
              },
              "httpMethod": "POST",
              "parameterOrder": [
                "customerId"
              ]
            }
          }
        },
        "adGroupCriteria": {
          "methods": {
            "mutate": {
              "description": "Creates, updates, or removes criteria. Operation statuses are returned. List of thrown errors: [AdGroupCriterionError]() [AdxError]() [AuthenticationError]() [AuthorizationError]() [BiddingError]() [BiddingStrategyError]() [CollectionSizeError]() [ContextError]() [CriterionError]() [DatabaseError]() [DateError]() [DistinctError]() [FieldError]() [FieldMaskError]() [HeaderError]() [IdError]() [InternalError]() [MultiplierError]() [MutateError]() [NewResourceCreationError]() [NotEmptyError]() [NullError]() [OperationAccessDeniedError]() [OperatorError]() [PolicyViolationError]() [QuotaError]() [RangeError]() [RequestError]() [ResourceCountLimitExceededError]() [SizeLimitError]() [StringFormatError]() [StringLengthError]() [UrlFieldError]()",
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateAdGroupCriteriaResponse"
              },
              "parameters": {
                "customerId": {
                  "required": true,
                  "location": "path",
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "description": "Required. ID of the customer whose criteria are being modified."
                }
              },
              "path": "v23/customers/{+customerId}/adGroupCriteria:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "flatPath": "v23/customers/{customersId}/adGroupCriteria:mutate",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "id": "googleads.customers.adGroupCriteria.mutate",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateAdGroupCriteriaRequest"
              }
            }
          }
        },
        "campaignAssetSets": {
          "methods": {
            "mutate": {
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose campaign asset sets are being modified.",
                  "type": "string",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "location": "path"
                }
              },
              "description": "Creates, updates or removes campaign asset sets. Operation statuses are returned.",
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCampaignAssetSetsResponse"
              },
              "flatPath": "v23/customers/{customersId}/campaignAssetSets:mutate",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "id": "googleads.customers.campaignAssetSets.mutate",
              "path": "v23/customers/{+customerId}/campaignAssetSets:mutate",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCampaignAssetSetsRequest"
              },
              "httpMethod": "POST",
              "parameterOrder": [
                "customerId"
              ]
            }
          }
        },
        "adGroupCustomizers": {
          "methods": {
            "mutate": {
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "id": "googleads.customers.adGroupCustomizers.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateAdGroupCustomizersResponse"
              },
              "path": "v23/customers/{+customerId}/adGroupCustomizers:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. The ID of the customer whose ad group customizers are being modified.",
                  "required": true,
                  "location": "path",
                  "pattern": "^[^/]+$"
                }
              },
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateAdGroupCustomizersRequest"
              },
              "flatPath": "v23/customers/{customersId}/adGroupCustomizers:mutate",
              "httpMethod": "POST",
              "description": "Creates, updates or removes ad group customizers. Operation statuses are returned."
            }
          }
        },
        "experimentArms": {
          "methods": {
            "mutate": {
              "parameters": {
                "customerId": {
                  "location": "path",
                  "description": "Required. The ID of the customer whose experiments are being modified.",
                  "required": true,
                  "type": "string",
                  "pattern": "^[^/]+$"
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "id": "googleads.customers.experimentArms.mutate",
              "parameterOrder": [
                "customerId"
              ],
              "flatPath": "v23/customers/{customersId}/experimentArms:mutate",
              "description": "Creates, updates, or removes experiment arms. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [ExperimentArmError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateExperimentArmsRequest"
              },
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateExperimentArmsResponse"
              },
              "path": "v23/customers/{+customerId}/experimentArms:mutate",
              "httpMethod": "POST"
            }
          }
        },
        "customerLabels": {
          "methods": {
            "mutate": {
              "parameterOrder": [
                "customerId"
              ],
              "description": "Creates and removes customer-label relationships. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [HeaderError]() [InternalError]() [LabelError]() [MutateError]() [QuotaError]() [RequestError]()",
              "httpMethod": "POST",
              "path": "v23/customers/{+customerId}/customerLabels:mutate",
              "parameters": {
                "customerId": {
                  "location": "path",
                  "pattern": "^[^/]+$",
                  "description": "Required. ID of the customer whose customer-label relationships are being modified.",
                  "type": "string",
                  "required": true
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "id": "googleads.customers.customerLabels.mutate",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomerLabelsRequest"
              },
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomerLabelsResponse"
              },
              "flatPath": "v23/customers/{customersId}/customerLabels:mutate"
            }
          }
        },
        "batchJobs": {
          "methods": {
            "listResults": {
              "description": "Returns the results of the batch job. The job must be done. Supports standard list paging. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [BatchJobError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
              "id": "googleads.customers.batchJobs.listResults",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameterOrder": [
                "resourceName"
              ],
              "path": "v23/{+resourceName}:listResults",
              "flatPath": "v23/customers/{customersId}/batchJobs/{batchJobsId}:listResults",
              "httpMethod": "GET",
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__ListBatchJobResultsResponse"
              },
              "parameters": {
                "pageToken": {
                  "description": "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.",
                  "location": "query",
                  "type": "string"
                },
                "resourceName": {
                  "pattern": "^customers/[^/]+/batchJobs/[^/]+$",
                  "required": true,
                  "description": "Required. The resource name of the batch job whose results are being listed.",
                  "location": "path",
                  "type": "string"
                },
                "responseContentType": {
                  "enum": [
                    "UNSPECIFIED",
                    "RESOURCE_NAME_ONLY",
                    "MUTABLE_RESOURCE"
                  ],
                  "type": "string",
                  "location": "query",
                  "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned.",
                  "enumDescriptions": [
                    "Not specified. Will return the resource name only in the response.",
                    "The mutate response will be the resource name.",
                    "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
                  ]
                },
                "pageSize": {
                  "location": "query",
                  "type": "integer",
                  "description": "Number of elements to retrieve in a single page. The default and the page_size limit is 1000. A value of 0 or an unset page size will be defaulted to 1000. A page size less than 0 or greater than 1000 will result in an INVALID_PAGE_SIZE error.",
                  "format": "int32"
                }
              }
            },
            "run": {
              "description": "Runs the batch job. The Operation.metadata field type is BatchJobMetadata. When finished, the long running operation will not contain errors or a response. Instead, use ListBatchJobResults to get the results of the job. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [BatchJobError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
              "response": {
                "$ref": "GoogleLongrunning__Operation"
              },
              "id": "googleads.customers.batchJobs.run",
              "flatPath": "v23/customers/{customersId}/batchJobs/{batchJobsId}:run",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__RunBatchJobRequest"
              },
              "parameters": {
                "resourceName": {
                  "required": true,
                  "description": "Required. The resource name of the BatchJob to run.",
                  "location": "path",
                  "type": "string",
                  "pattern": "^customers/[^/]+/batchJobs/[^/]+$"
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameterOrder": [
                "resourceName"
              ],
              "path": "v23/{+resourceName}:run",
              "httpMethod": "POST"
            },
            "addOperations": {
              "path": "v23/{+resourceName}:addOperations",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "flatPath": "v23/customers/{customersId}/batchJobs/{batchJobsId}:addOperations",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__AddBatchJobOperationsRequest"
              },
              "parameters": {
                "resourceName": {
                  "type": "string",
                  "description": "Required. The resource name of the batch job.",
                  "location": "path",
                  "required": true,
                  "pattern": "^customers/[^/]+/batchJobs/[^/]+$"
                }
              },
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__AddBatchJobOperationsResponse"
              },
              "httpMethod": "POST",
              "description": "Add operations to the batch job. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [BatchJobError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]() [ResourceCountLimitExceededError]()",
              "parameterOrder": [
                "resourceName"
              ],
              "id": "googleads.customers.batchJobs.addOperations"
            },
            "mutate": {
              "path": "v23/customers/{+customerId}/batchJobs:mutate",
              "parameters": {
                "customerId": {
                  "location": "path",
                  "pattern": "^[^/]+$",
                  "required": true,
                  "type": "string",
                  "description": "Required. The ID of the customer for which to create a batch job."
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateBatchJobRequest"
              },
              "description": "Mutates a batch job. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]() [ResourceCountLimitExceededError]()",
              "httpMethod": "POST",
              "id": "googleads.customers.batchJobs.mutate",
              "flatPath": "v23/customers/{customersId}/batchJobs:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateBatchJobResponse"
              }
            }
          }
        },
        "ads": {
          "methods": {
            "mutate": {
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. The ID of the customer whose ads are being modified.",
                  "required": true,
                  "location": "path",
                  "pattern": "^[^/]+$"
                }
              },
              "flatPath": "v23/customers/{customersId}/ads:mutate",
              "id": "googleads.customers.ads.mutate",
              "description": "Updates ads. Operation statuses are returned. Updating ads is not supported for TextAd, ExpandedDynamicSearchAd, GmailAd and ImageAd. List of thrown errors: [AdCustomizerError]() [AdError]() [AdSharingError]() [AdxError]() [AssetError]() [AssetLinkError]() [AuthenticationError]() [AuthorizationError]() [CollectionSizeError]() [DatabaseError]() [DateError]() [DistinctError]() [FeedAttributeReferenceError]() [FieldError]() [FieldMaskError]() [FunctionError]() [FunctionParsingError]() [HeaderError]() [IdError]() [ImageError]() [InternalError]() [ListOperationError]() [MediaBundleError]() [MediaFileError]() [MutateError]() [NewResourceCreationError]() [NotEmptyError]() [NullError]() [OperatorError]() [PolicyFindingError]() [PolicyViolationError]() [QuotaError]() [RangeError]() [RequestError]() [SizeLimitError]() [StringFormatError]() [StringLengthError]() [UrlFieldError]()",
              "path": "v23/customers/{+customerId}/ads:mutate",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateAdsRequest"
              },
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateAdsResponse"
              },
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST"
            }
          }
        },
        "offlineUserDataJobs": {
          "methods": {
            "addOperations": {
              "httpMethod": "POST",
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__AddOfflineUserDataJobOperationsResponse"
              },
              "path": "v23/{+resourceName}:addOperations",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "id": "googleads.customers.offlineUserDataJobs.addOperations",
              "parameters": {
                "resourceName": {
                  "location": "path",
                  "description": "Required. The resource name of the OfflineUserDataJob.",
                  "pattern": "^customers/[^/]+/offlineUserDataJobs/[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__AddOfflineUserDataJobOperationsRequest"
              },
              "flatPath": "v23/customers/{customersId}/offlineUserDataJobs/{offlineUserDataJobsId}:addOperations",
              "description": "Adds operations to the offline user data job. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldError]() [HeaderError]() [InternalError]() [MutateError]() [OfflineUserDataJobError]() [QuotaError]() [RequestError]()",
              "parameterOrder": [
                "resourceName"
              ]
            },
            "run": {
              "description": "Runs the offline user data job. When finished, the long running operation will contain the processing result or failure information, if any. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [HeaderError]() [InternalError]() [OfflineUserDataJobError]() [QuotaError]() [RequestError]()",
              "parameters": {
                "resourceName": {
                  "location": "path",
                  "pattern": "^customers/[^/]+/offlineUserDataJobs/[^/]+$",
                  "description": "Required. The resource name of the OfflineUserDataJob to run.",
                  "type": "string",
                  "required": true
                }
              },
              "parameterOrder": [
                "resourceName"
              ],
              "response": {
                "$ref": "GoogleLongrunning__Operation"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "flatPath": "v23/customers/{customersId}/offlineUserDataJobs/{offlineUserDataJobsId}:run",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__RunOfflineUserDataJobRequest"
              },
              "id": "googleads.customers.offlineUserDataJobs.run",
              "httpMethod": "POST",
              "path": "v23/{+resourceName}:run"
            },
            "create": {
              "parameterOrder": [
                "customerId"
              ],
              "parameters": {
                "customerId": {
                  "required": true,
                  "pattern": "^[^/]+$",
                  "type": "string",
                  "description": "Required. The ID of the customer for which to create an offline user data job.",
                  "location": "path"
                }
              },
              "id": "googleads.customers.offlineUserDataJobs.create",
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__CreateOfflineUserDataJobResponse"
              },
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__CreateOfflineUserDataJobRequest"
              },
              "description": "Creates an offline user data job. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldError]() [HeaderError]() [InternalError]() [NotAllowlistedError]() [OfflineUserDataJobError]() [QuotaError]() [RequestError]()",
              "path": "v23/customers/{+customerId}/offlineUserDataJobs:create",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "httpMethod": "POST",
              "flatPath": "v23/customers/{customersId}/offlineUserDataJobs:create"
            }
          }
        },
        "biddingDataExclusions": {
          "methods": {
            "mutate": {
              "id": "googleads.customers.biddingDataExclusions.mutate",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateBiddingDataExclusionsRequest"
              },
              "flatPath": "v23/customers/{customersId}/biddingDataExclusions:mutate",
              "parameters": {
                "customerId": {
                  "location": "path",
                  "required": true,
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "description": "Required. ID of the customer whose data exclusions are being modified."
                }
              },
              "parameterOrder": [
                "customerId"
              ],
              "path": "v23/customers/{+customerId}/biddingDataExclusions:mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateBiddingDataExclusionsResponse"
              },
              "httpMethod": "POST",
              "description": "Creates, updates, or removes data exclusions. Operation statuses are returned.",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ]
            }
          }
        },
        "assetGroupListingGroupFilters": {
          "methods": {
            "mutate": {
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateAssetGroupListingGroupFiltersResponse"
              },
              "flatPath": "v23/customers/{customersId}/assetGroupListingGroupFilters:mutate",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateAssetGroupListingGroupFiltersRequest"
              },
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose asset group listing group filters are being modified.",
                  "location": "path",
                  "pattern": "^[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "path": "v23/customers/{+customerId}/assetGroupListingGroupFilters:mutate",
              "id": "googleads.customers.assetGroupListingGroupFilters.mutate",
              "description": "Creates, updates or removes asset group listing group filters. Operation statuses are returned.",
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST"
            }
          }
        },
        "labels": {
          "methods": {
            "mutate": {
              "id": "googleads.customers.labels.mutate",
              "description": "Creates, updates, or removes labels. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [DateError]() [DistinctError]() [FieldError]() [FieldMaskError]() [HeaderError]() [IdError]() [InternalError]() [LabelError]() [MutateError]() [NewResourceCreationError]() [NotEmptyError]() [NullError]() [OperatorError]() [QuotaError]() [RangeError]() [RequestError]() [ResourceCountLimitExceededError]() [SizeLimitError]() [StringFormatError]() [StringLengthError]()",
              "parameters": {
                "customerId": {
                  "description": "Required. ID of the customer whose labels are being modified.",
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "type": "string",
                  "required": true
                }
              },
              "path": "v23/customers/{+customerId}/labels:mutate",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateLabelsRequest"
              },
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateLabelsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "flatPath": "v23/customers/{customersId}/labels:mutate"
            }
          }
        },
        "adGroupCriterionLabels": {
          "methods": {
            "mutate": {
              "parameters": {
                "customerId": {
                  "description": "Required. ID of the customer whose ad group criterion labels are being modified.",
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true,
                  "type": "string"
                }
              },
              "parameterOrder": [
                "customerId"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateAdGroupCriterionLabelsRequest"
              },
              "path": "v23/customers/{+customerId}/adGroupCriterionLabels:mutate",
              "httpMethod": "POST",
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateAdGroupCriterionLabelsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "flatPath": "v23/customers/{customersId}/adGroupCriterionLabels:mutate",
              "id": "googleads.customers.adGroupCriterionLabels.mutate",
              "description": "Creates and removes ad group criterion labels. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()"
            }
          }
        },
        "keywordPlanCampaignKeywords": {
          "methods": {
            "mutate": {
              "description": "Creates, updates, or removes Keyword Plan campaign keywords. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldError]() [HeaderError]() [InternalError]() [KeywordPlanAdGroupKeywordError]() [KeywordPlanCampaignKeywordError]() [QuotaError]() [RequestError]() [ResourceCountLimitExceededError]()",
              "parameters": {
                "customerId": {
                  "required": true,
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "description": "Required. The ID of the customer whose campaign keywords are being modified.",
                  "location": "path"
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateKeywordPlanCampaignKeywordsRequest"
              },
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateKeywordPlanCampaignKeywordsResponse"
              },
              "flatPath": "v23/customers/{customersId}/keywordPlanCampaignKeywords:mutate",
              "httpMethod": "POST",
              "parameterOrder": [
                "customerId"
              ],
              "path": "v23/customers/{+customerId}/keywordPlanCampaignKeywords:mutate",
              "id": "googleads.customers.keywordPlanCampaignKeywords.mutate"
            }
          }
        },
        "biddingSeasonalityAdjustments": {
          "methods": {
            "mutate": {
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateBiddingSeasonalityAdjustmentsResponse"
              },
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateBiddingSeasonalityAdjustmentsRequest"
              },
              "description": "Creates, updates, or removes seasonality adjustments. Operation statuses are returned.",
              "path": "v23/customers/{+customerId}/biddingSeasonalityAdjustments:mutate",
              "httpMethod": "POST",
              "parameterOrder": [
                "customerId"
              ],
              "id": "googleads.customers.biddingSeasonalityAdjustments.mutate",
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "type": "string",
                  "location": "path",
                  "description": "Required. ID of the customer whose seasonality adjustments are being modified.",
                  "required": true
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "flatPath": "v23/customers/{customersId}/biddingSeasonalityAdjustments:mutate"
            }
          }
        },
        "productLinks": {
          "methods": {
            "remove": {
              "flatPath": "v23/customers/{customersId}/productLinks:remove",
              "description": "Removes a product link. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [FieldMaskError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]()",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__RemoveProductLinkRequest"
              },
              "id": "googleads.customers.productLinks.remove",
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "description": "Required. The ID of the customer being modified.",
                  "type": "string",
                  "required": true
                }
              },
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__RemoveProductLinkResponse"
              },
              "httpMethod": "POST",
              "path": "v23/customers/{+customerId}/productLinks:remove",
              "parameterOrder": [
                "customerId"
              ],
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ]
            },
            "create": {
              "path": "v23/customers/{+customerId}/productLinks:create",
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__CreateProductLinkResponse"
              },
              "parameters": {
                "customerId": {
                  "location": "path",
                  "type": "string",
                  "description": "Required. The ID of the customer for which the product link is created.",
                  "pattern": "^[^/]+$",
                  "required": true
                }
              },
              "httpMethod": "POST",
              "id": "googleads.customers.productLinks.create",
              "parameterOrder": [
                "customerId"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__CreateProductLinkRequest"
              },
              "description": "Creates a product link. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]()",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "flatPath": "v23/customers/{customersId}/productLinks:create"
            }
          }
        },
        "keywordPlanCampaigns": {
          "methods": {
            "mutate": {
              "parameterOrder": [
                "customerId"
              ],
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "path": "v23/customers/{+customerId}/keywordPlanCampaigns:mutate",
              "parameters": {
                "customerId": {
                  "required": true,
                  "location": "path",
                  "description": "Required. The ID of the customer whose Keyword Plan campaigns are being modified.",
                  "pattern": "^[^/]+$",
                  "type": "string"
                }
              },
              "id": "googleads.customers.keywordPlanCampaigns.mutate",
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateKeywordPlanCampaignsRequest"
              },
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateKeywordPlanCampaignsResponse"
              },
              "description": "Creates, updates, or removes Keyword Plan campaigns. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldError]() [FieldMaskError]() [HeaderError]() [InternalError]() [KeywordPlanCampaignError]() [KeywordPlanError]() [ListOperationError]() [MutateError]() [QuotaError]() [RangeError]() [RequestError]() [ResourceCountLimitExceededError]()",
              "flatPath": "v23/customers/{customersId}/keywordPlanCampaigns:mutate"
            }
          }
        },
        "biddingStrategies": {
          "methods": {
            "mutate": {
              "id": "googleads.customers.biddingStrategies.mutate",
              "parameterOrder": [
                "customerId"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateBiddingStrategiesRequest"
              },
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose bidding strategies are being modified.",
                  "type": "string",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$"
                }
              },
              "path": "v23/customers/{+customerId}/biddingStrategies:mutate",
              "description": "Creates, updates, or removes bidding strategies. Operation statuses are returned. List of thrown errors: [AdxError]() [AuthenticationError]() [AuthorizationError]() [BiddingError]() [BiddingStrategyError]() [ContextError]() [DatabaseError]() [DateError]() [DistinctError]() [FieldError]() [FieldMaskError]() [HeaderError]() [IdError]() [InternalError]() [MutateError]() [NewResourceCreationError]() [NotEmptyError]() [NullError]() [OperationAccessDeniedError]() [OperatorError]() [QuotaError]() [RangeError]() [RequestError]() [SizeLimitError]() [StringFormatError]() [StringLengthError]()",
              "flatPath": "v23/customers/{customersId}/biddingStrategies:mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateBiddingStrategiesResponse"
              },
              "httpMethod": "POST",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ]
            }
          }
        },
        "customAudiences": {
          "methods": {
            "mutate": {
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomAudiencesResponse"
              },
              "description": "Creates or updates custom audiences. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [CustomAudienceError]() [CustomInterestError]() [FieldError]() [FieldMaskError]() [HeaderError]() [InternalError]() [MutateError]() [OperationAccessDeniedError]() [PolicyViolationError]() [QuotaError]() [RequestError]()",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCustomAudiencesRequest"
              },
              "flatPath": "v23/customers/{customersId}/customAudiences:mutate",
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose custom audiences are being modified.",
                  "pattern": "^[^/]+$",
                  "required": true,
                  "location": "path",
                  "type": "string"
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "httpMethod": "POST",
              "parameterOrder": [
                "customerId"
              ],
              "path": "v23/customers/{+customerId}/customAudiences:mutate",
              "id": "googleads.customers.customAudiences.mutate"
            }
          }
        },
        "customerLifecycleGoal": {
          "methods": {
            "configureCustomerLifecycleGoals": {
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__ConfigureCustomerLifecycleGoalsResponse"
              },
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer performing the upload.",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "type": "string"
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "httpMethod": "POST",
              "path": "v23/customers/{+customerId}/customerLifecycleGoal:configureCustomerLifecycleGoals",
              "id": "googleads.customers.customerLifecycleGoal.configureCustomerLifecycleGoals",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__ConfigureCustomerLifecycleGoalsRequest"
              },
              "flatPath": "v23/customers/{customersId}/customerLifecycleGoal:configureCustomerLifecycleGoals",
              "description": "Process the given customer lifecycle configurations. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [CustomerLifecycleGoalConfigError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
              "parameterOrder": [
                "customerId"
              ]
            }
          }
        },
        "audiences": {
          "methods": {
            "mutate": {
              "id": "googleads.customers.audiences.mutate",
              "parameters": {
                "customerId": {
                  "location": "path",
                  "description": "Required. The ID of the customer whose audiences are being modified.",
                  "pattern": "^[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "flatPath": "v23/customers/{customersId}/audiences:mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateAudiencesResponse"
              },
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateAudiencesRequest"
              },
              "description": "Creates audiences. Operation statuses are returned. List of thrown errors: [AudienceError]()",
              "httpMethod": "POST",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "path": "v23/customers/{+customerId}/audiences:mutate",
              "parameterOrder": [
                "customerId"
              ]
            }
          }
        },
        "remarketingActions": {
          "methods": {
            "mutate": {
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateRemarketingActionsRequest"
              },
              "flatPath": "v23/customers/{customersId}/remarketingActions:mutate",
              "description": "Creates or updates remarketing actions. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [ConversionActionError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
              "parameterOrder": [
                "customerId"
              ],
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateRemarketingActionsResponse"
              },
              "httpMethod": "POST",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose remarketing actions are being modified.",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "type": "string"
                }
              },
              "id": "googleads.customers.remarketingActions.mutate",
              "path": "v23/customers/{+customerId}/remarketingActions:mutate"
            }
          }
        },
        "recommendationSubscriptions": {
          "methods": {
            "mutateRecommendationSubscription": {
              "httpMethod": "POST",
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateRecommendationSubscriptionResponse"
              },
              "parameters": {
                "customerId": {
                  "required": true,
                  "location": "path",
                  "pattern": "^[^/]+$",
                  "description": "Required. The ID of the subscribing customer.",
                  "type": "string"
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameterOrder": [
                "customerId"
              ],
              "flatPath": "v23/customers/{customersId}/recommendationSubscriptions:mutateRecommendationSubscription",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateRecommendationSubscriptionRequest"
              },
              "description": "Mutates given subscription with corresponding apply parameters. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RecommendationError]() [RecommendationSubscriptionError]() [RequestError]() [UrlFieldError]()",
              "id": "googleads.customers.recommendationSubscriptions.mutateRecommendationSubscription",
              "path": "v23/customers/{+customerId}/recommendationSubscriptions:mutateRecommendationSubscription"
            }
          }
        },
        "conversionGoalCampaignConfigs": {
          "methods": {
            "mutate": {
              "description": "Creates, updates or removes conversion goal campaign config. Operation statuses are returned.",
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateConversionGoalCampaignConfigsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "path": "v23/customers/{+customerId}/conversionGoalCampaignConfigs:mutate",
              "flatPath": "v23/customers/{customersId}/conversionGoalCampaignConfigs:mutate",
              "httpMethod": "POST",
              "parameters": {
                "customerId": {
                  "required": true,
                  "pattern": "^[^/]+$",
                  "type": "string",
                  "description": "Required. The ID of the customer whose custom conversion goals are being modified.",
                  "location": "path"
                }
              },
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateConversionGoalCampaignConfigsRequest"
              },
              "parameterOrder": [
                "customerId"
              ],
              "id": "googleads.customers.conversionGoalCampaignConfigs.mutate"
            }
          }
        },
        "googleAds": {
          "methods": {
            "search": {
              "flatPath": "v23/customers/{customersId}/googleAds:search",
              "description": "Returns all rows that match the search query. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [ChangeEventError]() [ChangeStatusError]() [ClickViewError]() [HeaderError]() [InternalError]() [QueryError]() [QuotaError]() [RequestError]()",
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer being queried.",
                  "type": "string",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$"
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "id": "googleads.customers.googleAds.search",
              "parameterOrder": [
                "customerId"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__SearchGoogleAdsRequest"
              },
              "path": "v23/customers/{+customerId}/googleAds:search",
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__SearchGoogleAdsResponse"
              },
              "httpMethod": "POST"
            },
            "searchStream": {
              "httpMethod": "POST",
              "parameters": {
                "customerId": {
                  "location": "path",
                  "type": "string",
                  "description": "Required. The ID of the customer being queried.",
                  "required": true,
                  "pattern": "^[^/]+$"
                }
              },
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__SearchGoogleAdsStreamRequest"
              },
              "flatPath": "v23/customers/{customersId}/googleAds:searchStream",
              "description": "Returns all rows that match the search stream query. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [ChangeEventError]() [ChangeStatusError]() [ClickViewError]() [HeaderError]() [InternalError]() [QueryError]() [QuotaError]() [RequestError]()",
              "path": "v23/customers/{+customerId}/googleAds:searchStream",
              "parameterOrder": [
                "customerId"
              ],
              "id": "googleads.customers.googleAds.searchStream",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__SearchGoogleAdsStreamResponse"
              }
            },
            "mutate": {
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "id": "googleads.customers.googleAds.mutate",
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "flatPath": "v23/customers/{customersId}/googleAds:mutate",
              "description": "Creates, updates, or removes resources. This method supports atomic transactions with multiple types of resources. For example, you can atomically create a campaign and a campaign budget, or perform up to thousands of mutates atomically. This method is essentially a wrapper around a series of mutate methods. The only features it offers over calling those methods directly are: - Atomic transactions - Temp resource names (described below) - Somewhat reduced latency over making a series of mutate calls Note: Only resources that support atomic transactions are included, so this method can't replace all calls to individual services. ## Atomic Transaction Benefits Atomicity makes error handling much easier. If you're making a series of changes and one fails, it can leave your account in an inconsistent state. With atomicity, you either reach the chosen state directly, or the request fails and you can retry. ## Temp Resource Names Temp resource names are a special type of resource name used to create a resource and reference that resource in the same request. For example, if a campaign budget is created with `resource_name` equal to `customers/123/campaignBudgets/-1`, that resource name can be reused in the `Campaign.budget` field in the same request. That way, the two resources are created and linked atomically. To create a temp resource name, put a negative number in the part of the name that the server would normally allocate. Note: - Resources must be created with a temp name before the name can be reused. For example, the previous CampaignBudget+Campaign example would fail if the mutate order was reversed. - Temp names are not remembered across requests. - There's no limit to the number of temp names in a request. - Each temp name must use a unique negative number, even if the resource types differ. ## Latency It's important to group mutates by resource type or the request may time out and fail. Latency is roughly equal to a series of calls to individual mutate methods, where each change in resource type is a new call. For example, mutating 10 campaigns then 10 ad groups is like 2 calls, while mutating 1 campaign, 1 ad group, 1 campaign, 1 ad group is like 4 calls. List of thrown errors: [AdCustomizerError]() [AdError]() [AdGroupAdError]() [AdGroupCriterionError]() [AdGroupError]() [AssetError]() [AuthenticationError]() [AuthorizationError]() [BiddingError]() [CampaignBudgetError]() [CampaignCriterionError]() [CampaignError]() [CampaignExperimentError]() [CampaignSharedSetError]() [CollectionSizeError]() [ContextError]() [ConversionActionError]() [CriterionError]() [CustomerFeedError]() [DatabaseError]() [DateError]() [DateRangeError]() [DistinctError]() [ExtensionFeedItemError]() [ExtensionSettingError]() [FeedAttributeReferenceError]() [FeedError]() [FeedItemError]() [FeedItemSetError]() [FieldError]() [FieldMaskError]() [FunctionParsingError]() [HeaderError]() [ImageError]() [InternalError]() [KeywordPlanAdGroupKeywordError]() [KeywordPlanCampaignError]() [KeywordPlanError]() [LabelError]() [ListOperationError]() [MediaUploadError]() [MutateError]() [NewResourceCreationError]() [NullError]() [OperationAccessDeniedError]() [PolicyFindingError]() [PolicyViolationError]() [QuotaError]() [RangeError]() [RequestError]() [ResourceCountLimitExceededError]() [SettingError]() [SharedSetError]() [SizeLimitError]() [StringFormatError]() [StringLengthError]() [UrlFieldError]() [UserListError]() [YoutubeVideoRegistrationError]()",
              "path": "v23/customers/{+customerId}/googleAds:mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateGoogleAdsResponse"
              },
              "parameters": {
                "customerId": {
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "description": "Required. The ID of the customer whose resources are being modified.",
                  "required": true
                }
              },
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateGoogleAdsRequest"
              }
            }
          }
        },
        "campaignConversionGoals": {
          "methods": {
            "mutate": {
              "parameters": {
                "customerId": {
                  "required": true,
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "description": "Required. The ID of the customer whose campaign conversion goals are being modified.",
                  "location": "path"
                }
              },
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCampaignConversionGoalsRequest"
              },
              "path": "v23/customers/{+customerId}/campaignConversionGoals:mutate",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCampaignConversionGoalsResponse"
              },
              "flatPath": "v23/customers/{customersId}/campaignConversionGoals:mutate",
              "httpMethod": "POST",
              "description": "Creates, updates or removes campaign conversion goals. Operation statuses are returned.",
              "parameterOrder": [
                "customerId"
              ],
              "id": "googleads.customers.campaignConversionGoals.mutate"
            }
          }
        },
        "incentives": {
          "methods": {
            "applyIncentive": {
              "flatPath": "v23/customers/{customersId}/incentives/{incentivesId}:applyIncentive",
              "id": "googleads.customers.incentives.applyIncentive",
              "httpMethod": "POST",
              "parameters": {
                "customerId": {
                  "description": "The customer ID of the account that the incentive is being applied to.",
                  "location": "path",
                  "required": true,
                  "type": "string",
                  "pattern": "^[^/]+$"
                },
                "selectedIncentiveId": {
                  "format": "int64",
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "description": "The incentive ID of this incentive. This is used to identify which incentive is selected by the user in the CYO flow.",
                  "location": "path",
                  "required": true
                }
              },
              "path": "v23/customers/{+customerId}/incentives/{+selectedIncentiveId}:applyIncentive",
              "parameterOrder": [
                "customerId",
                "selectedIncentiveId"
              ],
              "description": "Applies the incentive for the ads customer.",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__ApplyIncentiveResponse"
              },
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__ApplyIncentiveRequest"
              }
            }
          }
        },
        "campaignSharedSets": {
          "methods": {
            "mutate": {
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "path": "v23/customers/{+customerId}/campaignSharedSets:mutate",
              "flatPath": "v23/customers/{customersId}/campaignSharedSets:mutate",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCampaignSharedSetsRequest"
              },
              "description": "Creates or removes campaign shared sets. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [CampaignSharedSetError]() [ContextError]() [DatabaseError]() [DateError]() [DistinctError]() [FieldError]() [HeaderError]() [IdError]() [InternalError]() [MutateError]() [NewResourceCreationError]() [NotEmptyError]() [NullError]() [OperatorError]() [QuotaError]() [RangeError]() [RequestError]() [SizeLimitError]() [StringFormatError]() [StringLengthError]()",
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose campaign shared sets are being modified.",
                  "required": true,
                  "location": "path",
                  "pattern": "^[^/]+$",
                  "type": "string"
                }
              },
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateCampaignSharedSetsResponse"
              },
              "id": "googleads.customers.campaignSharedSets.mutate",
              "httpMethod": "POST",
              "parameterOrder": [
                "customerId"
              ]
            }
          }
        },
        "paymentsAccounts": {
          "methods": {
            "list": {
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__ListPaymentsAccountsResponse"
              },
              "description": "Returns all payments accounts associated with all managers between the login customer ID and specified serving customer in the hierarchy, inclusive. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [PaymentsAccountError]() [QuotaError]() [RequestError]()",
              "path": "v23/customers/{+customerId}/paymentsAccounts",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "httpMethod": "GET",
              "parameters": {
                "customerId": {
                  "location": "path",
                  "description": "Required. The ID of the customer to apply the PaymentsAccount list operation to.",
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "required": true
                }
              },
              "flatPath": "v23/customers/{customersId}/paymentsAccounts",
              "parameterOrder": [
                "customerId"
              ],
              "id": "googleads.customers.paymentsAccounts.list"
            }
          }
        },
        "adGroupAds": {
          "methods": {
            "removeAutomaticallyCreatedAssets": {
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__RemoveAutomaticallyCreatedAssetsRequest"
              },
              "parameters": {
                "adGroupAd": {
                  "required": true,
                  "pattern": "^customers/[^/]+/adGroupAds/[^/]+$",
                  "location": "path",
                  "type": "string",
                  "description": "Required. The resource name of the AdGroupAd from which to remove automatically created assets."
                }
              },
              "parameterOrder": [
                "adGroupAd"
              ],
              "flatPath": "v23/customers/{customersId}/adGroupAds/{adGroupAdsId}:removeAutomaticallyCreatedAssets",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "httpMethod": "POST",
              "id": "googleads.customers.adGroupAds.removeAutomaticallyCreatedAssets",
              "response": {
                "$ref": "GoogleProtobuf__Empty"
              },
              "path": "v23/{+adGroupAd}:removeAutomaticallyCreatedAssets",
              "description": "Remove automatically created assets from an ad. List of thrown errors: [AdError]() [AuthenticationError]() [AuthorizationError]() [AutomaticallyCreatedAssetRemovalError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]()"
            },
            "mutate": {
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "description": "Creates, updates, or removes ads. Operation statuses are returned. List of thrown errors: [AdCustomizerError]() [AdError]() [AdGroupAdError]() [AdSharingError]() [AdxError]() [AssetError]() [AssetLinkError]() [AuthenticationError]() [AuthorizationError]() [CollectionSizeError]() [ContextError]() [DatabaseError]() [DateError]() [DistinctError]() [FeedAttributeReferenceError]() [FieldError]() [FieldMaskError]() [FunctionError]() [FunctionParsingError]() [HeaderError]() [IdError]() [ImageError]() [InternalError]() [ListOperationError]() [MediaBundleError]() [MediaFileError]() [MutateError]() [NewResourceCreationError]() [NotEmptyError]() [NullError]() [OperationAccessDeniedError]() [OperatorError]() [PolicyFindingError]() [PolicyValidationParameterError]() [PolicyViolationError]() [QuotaError]() [RangeError]() [RequestError]() [ResourceCountLimitExceededError]() [SizeLimitError]() [StringFormatError]() [StringLengthError]() [UrlFieldError]()",
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateAdGroupAdsResponse"
              },
              "flatPath": "v23/customers/{customersId}/adGroupAds:mutate",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateAdGroupAdsRequest"
              },
              "id": "googleads.customers.adGroupAds.mutate",
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "path": "v23/customers/{+customerId}/adGroupAds:mutate",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. The ID of the customer whose ads are being modified.",
                  "pattern": "^[^/]+$",
                  "required": true,
                  "location": "path"
                }
              }
            }
          }
        },
        "smartCampaignSettings": {
          "methods": {
            "mutate": {
              "description": "Updates Smart campaign settings for campaigns.",
              "parameters": {
                "customerId": {
                  "required": true,
                  "location": "path",
                  "pattern": "^[^/]+$",
                  "type": "string",
                  "description": "Required. The ID of the customer whose Smart campaign settings are being modified."
                }
              },
              "path": "v23/customers/{+customerId}/smartCampaignSettings:mutate",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateSmartCampaignSettingsRequest"
              },
              "parameterOrder": [
                "customerId"
              ],
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateSmartCampaignSettingsResponse"
              },
              "id": "googleads.customers.smartCampaignSettings.mutate",
              "flatPath": "v23/customers/{customersId}/smartCampaignSettings:mutate",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "httpMethod": "POST"
            },
            "getSmartCampaignStatus": {
              "path": "v23/{+resourceName}:getSmartCampaignStatus",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "id": "googleads.customers.smartCampaignSettings.getSmartCampaignStatus",
              "description": "Returns the status of the requested Smart campaign.",
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__GetSmartCampaignStatusResponse"
              },
              "parameterOrder": [
                "resourceName"
              ],
              "httpMethod": "GET",
              "flatPath": "v23/customers/{customersId}/smartCampaignSettings/{smartCampaignSettingsId}:getSmartCampaignStatus",
              "parameters": {
                "resourceName": {
                  "description": "Required. The resource name of the Smart campaign setting belonging to the Smart campaign to fetch the status of.",
                  "type": "string",
                  "location": "path",
                  "required": true,
                  "pattern": "^customers/[^/]+/smartCampaignSettings/[^/]+$"
                }
              }
            }
          }
        },
        "sharedSets": {
          "methods": {
            "mutate": {
              "flatPath": "v23/customers/{customersId}/sharedSets:mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateSharedSetsResponse"
              },
              "parameters": {
                "customerId": {
                  "type": "string",
                  "location": "path",
                  "description": "Required. The ID of the customer whose shared sets are being modified.",
                  "required": true,
                  "pattern": "^[^/]+$"
                }
              },
              "parameterOrder": [
                "customerId"
              ],
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "path": "v23/customers/{+customerId}/sharedSets:mutate",
              "id": "googleads.customers.sharedSets.mutate",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateSharedSetsRequest"
              },
              "description": "Creates, updates, or removes shared sets. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [DateError]() [DistinctError]() [FieldError]() [FieldMaskError]() [HeaderError]() [IdError]() [InternalError]() [MutateError]() [NewResourceCreationError]() [NotEmptyError]() [NullError]() [OperatorError]() [QuotaError]() [RangeError]() [RequestError]() [ResourceCountLimitExceededError]() [SharedSetError]() [SizeLimitError]() [StringFormatError]() [StringLengthError]()",
              "httpMethod": "POST"
            }
          }
        },
        "localServicesLeads": {
          "methods": {
            "provideLeadFeedback": {
              "parameters": {
                "resourceName": {
                  "location": "path",
                  "description": "Required. The resource name of the local services lead that for which the feedback is being provided.",
                  "type": "string",
                  "pattern": "^customers/[^/]+/localServicesLeads/[^/]+$",
                  "required": true
                }
              },
              "flatPath": "v23/customers/{customersId}/localServicesLeads/{localServicesLeadsId}:provideLeadFeedback",
              "parameterOrder": [
                "resourceName"
              ],
              "description": "RPC to provide feedback on Local Services Lead resources.",
              "httpMethod": "POST",
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__ProvideLeadFeedbackResponse"
              },
              "id": "googleads.customers.localServicesLeads.provideLeadFeedback",
              "path": "v23/{+resourceName}:provideLeadFeedback",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__ProvideLeadFeedbackRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ]
            }
          }
        },
        "adGroupAssets": {
          "methods": {
            "mutate": {
              "id": "googleads.customers.adGroupAssets.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateAdGroupAssetsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameterOrder": [
                "customerId"
              ],
              "path": "v23/customers/{+customerId}/adGroupAssets:mutate",
              "flatPath": "v23/customers/{customersId}/adGroupAssets:mutate",
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose ad group assets are being modified.",
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true
                }
              },
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateAdGroupAssetsRequest"
              },
              "httpMethod": "POST",
              "description": "Creates, updates, or removes ad group assets. Operation statuses are returned. List of thrown errors: [AssetLinkError]() [AuthenticationError]() [AuthorizationError]() [ContextError]() [FieldError]() [HeaderError]() [InternalError]() [MutateError]() [NotAllowlistedError]() [QuotaError]() [RequestError]()"
            }
          }
        },
        "localServices": {
          "methods": {
            "appendLeadConversation": {
              "id": "googleads.customers.localServices.appendLeadConversation",
              "flatPath": "v23/customers/{customersId}/localServices:appendLeadConversation",
              "path": "v23/customers/{+customerId}/localServices:appendLeadConversation",
              "parameterOrder": [
                "customerId"
              ],
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__AppendLeadConversationResponse"
              },
              "description": "RPC to append Local Services Lead Conversation resources to Local Services Lead resources.",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__AppendLeadConversationRequest"
              },
              "httpMethod": "POST",
              "parameters": {
                "customerId": {
                  "location": "path",
                  "required": true,
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "description": "Required. The Id of the customer which owns the leads onto which the conversations will be appended."
                }
              }
            }
          }
        },
        "keywordPlanAdGroups": {
          "methods": {
            "mutate": {
              "id": "googleads.customers.keywordPlanAdGroups.mutate",
              "parameters": {
                "customerId": {
                  "location": "path",
                  "type": "string",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "description": "Required. The ID of the customer whose Keyword Plan ad groups are being modified."
                }
              },
              "parameterOrder": [
                "customerId"
              ],
              "description": "Creates, updates, or removes Keyword Plan ad groups. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldError]() [FieldMaskError]() [HeaderError]() [InternalError]() [KeywordPlanAdGroupError]() [KeywordPlanError]() [MutateError]() [NewResourceCreationError]() [QuotaError]() [RequestError]() [ResourceCountLimitExceededError]()",
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateKeywordPlanAdGroupsResponse"
              },
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateKeywordPlanAdGroupsRequest"
              },
              "flatPath": "v23/customers/{customersId}/keywordPlanAdGroups:mutate",
              "httpMethod": "POST",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "path": "v23/customers/{+customerId}/keywordPlanAdGroups:mutate"
            }
          }
        },
        "dataLinks": {
          "methods": {
            "update": {
              "httpMethod": "POST",
              "flatPath": "v23/customers/{customersId}/dataLinks:update",
              "parameterOrder": [
                "customerId"
              ],
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__UpdateDataLinkResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "id": "googleads.customers.dataLinks.update",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__UpdateDataLinkRequest"
              },
              "description": "Update a data link. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [DataLinkError]() [FieldError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]()",
              "path": "v23/customers/{+customerId}/dataLinks:update",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. The ID of the customer for which the data link is created.",
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true
                }
              }
            },
            "create": {
              "id": "googleads.customers.dataLinks.create",
              "description": "Creates a data link. The requesting Google Ads account name and account ID will be shared with the third party (such as YouTube creators for video links) to whom you are creating the link with. Only customers on the allow-list can create data links. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [DataLinkError]() [FieldError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]()",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__CreateDataLinkRequest"
              },
              "parameters": {
                "customerId": {
                  "location": "path",
                  "description": "Required. The ID of the customer for which the data link is created.",
                  "pattern": "^[^/]+$",
                  "type": "string",
                  "required": true
                }
              },
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__CreateDataLinkResponse"
              },
              "parameterOrder": [
                "customerId"
              ],
              "path": "v23/customers/{+customerId}/dataLinks:create",
              "httpMethod": "POST",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "flatPath": "v23/customers/{customersId}/dataLinks:create"
            },
            "remove": {
              "httpMethod": "POST",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "path": "v23/customers/{+customerId}/dataLinks:remove",
              "description": "Remove a data link. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [DataLinkError]() [FieldError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]()",
              "flatPath": "v23/customers/{customersId}/dataLinks:remove",
              "parameterOrder": [
                "customerId"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__RemoveDataLinkRequest"
              },
              "id": "googleads.customers.dataLinks.remove",
              "parameters": {
                "customerId": {
                  "required": true,
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "description": "Required. The ID of the customer for which the data link is updated.",
                  "type": "string"
                }
              },
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__RemoveDataLinkResponse"
              }
            }
          }
        },
        "AdGroupCriterionCustomizers": {
          "methods": {
            "mutate": {
              "path": "v23/customers/{+customerId}/AdGroupCriterionCustomizers:mutate",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "httpMethod": "POST",
              "id": "googleads.customers.AdGroupCriterionCustomizers.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateAdGroupCriterionCustomizersResponse"
              },
              "parameterOrder": [
                "customerId"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateAdGroupCriterionCustomizersRequest"
              },
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose ad group criterion customizers are being modified.",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "type": "string"
                }
              },
              "flatPath": "v23/customers/{customersId}/AdGroupCriterionCustomizers:mutate",
              "description": "Creates, updates or removes ad group criterion customizers. Operation statuses are returned."
            }
          }
        },
        "adGroupBidModifiers": {
          "methods": {
            "mutate": {
              "response": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateAdGroupBidModifiersResponse"
              },
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV23Services__MutateAdGroupBidModifiersRequest"
              },
              "id": "googleads.customers.adGroupBidModifiers.mutate",
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "description": "Required. ID of the customer whose ad group bid modifiers are being modified.",
                  "required": true,
                  "type": "string",
                  "location": "path"
                }
              },
              "path": "v23/customers/{+customerId}/adGroupBidModifiers:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "flatPath": "v23/customers/{customersId}/adGroupBidModifiers:mutate",
              "description": "Creates, updates, or removes ad group bid modifiers. Operation statuses are returned. List of thrown errors: [AdGroupBidModifierError]() [AuthenticationError]() [AuthorizationError]() [ContextError]() [CriterionError]() [DatabaseError]() [DistinctError]() [FieldError]() [FieldMaskError]() [HeaderError]() [IdError]() [InternalError]() [MutateError]() [NewResourceCreationError]() [NotEmptyError]() [OperatorError]() [QuotaError]() [RangeError]() [RequestError]() [ResourceCountLimitExceededError]() [SizeLimitError]() [StringFormatError]() [StringLengthError]()",
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ]
            }
          }
        }
      }
    },
    "geoTargetConstants": {
      "methods": {
        "suggest": {
          "parameters": {},
          "response": {
            "$ref": "GoogleAdsGoogleadsV23Services__SuggestGeoTargetConstantsResponse"
          },
          "parameterOrder": [],
          "request": {
            "$ref": "GoogleAdsGoogleadsV23Services__SuggestGeoTargetConstantsRequest"
          },
          "id": "googleads.geoTargetConstants.suggest",
          "httpMethod": "POST",
          "path": "v23/geoTargetConstants:suggest",
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "description": "Returns GeoTargetConstant suggestions by location name or by resource name. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [GeoTargetConstantSuggestionError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
          "flatPath": "v23/geoTargetConstants:suggest"
        }
      }
    },
    "audienceInsights": {
      "methods": {
        "listInsightsEligibleDates": {
          "id": "googleads.audienceInsights.listInsightsEligibleDates",
          "parameters": {},
          "request": {
            "$ref": "GoogleAdsGoogleadsV23Services__ListInsightsEligibleDatesRequest"
          },
          "parameterOrder": [],
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "path": "v23/audienceInsights:listInsightsEligibleDates",
          "description": "Lists date ranges for which audience insights data can be requested. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RangeError]() [RequestError]()",
          "flatPath": "v23/audienceInsights:listInsightsEligibleDates",
          "response": {
            "$ref": "GoogleAdsGoogleadsV23Services__ListInsightsEligibleDatesResponse"
          }
        }
      }
    },
    "v23": {
      "methods": {
        "listPlannableProducts": {
          "request": {
            "$ref": "GoogleAdsGoogleadsV23Services__ListPlannableProductsRequest"
          },
          "parameterOrder": [],
          "description": "Returns the list of per-location plannable YouTube ad formats with allowed targeting. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
          "httpMethod": "POST",
          "parameters": {},
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "response": {
            "$ref": "GoogleAdsGoogleadsV23Services__ListPlannableProductsResponse"
          },
          "path": "v23:listPlannableProducts",
          "id": "googleads.listPlannableProducts",
          "flatPath": "v23:listPlannableProducts"
        },
        "listPlannableUserLists": {
          "flatPath": "v23:listPlannableUserLists",
          "parameters": {},
          "response": {
            "$ref": "GoogleAdsGoogleadsV23Services__ListPlannableUserListsResponse"
          },
          "request": {
            "$ref": "GoogleAdsGoogleadsV23Services__ListPlannableUserListsRequest"
          },
          "parameterOrder": [],
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "description": "Returns the list of plannable user lists with their plannable status. User lists may not be plannable for a number of reasons, including: - They are less than 10 days old. - They have a membership lifespan that is less than 30 days - They have less than 10,000 or more than 700,000 users. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RangeError]() [ReachPlanError]() [RequestError]()",
          "path": "v23:listPlannableUserLists",
          "id": "googleads.listPlannableUserLists"
        },
        "listBenchmarksLocations": {
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "request": {
            "$ref": "GoogleAdsGoogleadsV23Services__ListBenchmarksLocationsRequest"
          },
          "parameterOrder": [],
          "flatPath": "v23:listBenchmarksLocations",
          "id": "googleads.listBenchmarksLocations",
          "description": "Returns the list of locations that support benchmarks (for example, countries). List of thrown errors: [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
          "httpMethod": "POST",
          "parameters": {},
          "response": {
            "$ref": "GoogleAdsGoogleadsV23Services__ListBenchmarksLocationsResponse"
          },
          "path": "v23:listBenchmarksLocations"
        },
        "listPlannableLocations": {
          "httpMethod": "POST",
          "path": "v23:listPlannableLocations",
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "request": {
            "$ref": "GoogleAdsGoogleadsV23Services__ListPlannableLocationsRequest"
          },
          "flatPath": "v23:listPlannableLocations",
          "id": "googleads.listPlannableLocations",
          "description": "Returns the list of plannable locations (for example, countries). List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
          "parameterOrder": [],
          "parameters": {},
          "response": {
            "$ref": "GoogleAdsGoogleadsV23Services__ListPlannableLocationsResponse"
          }
        },
        "listBenchmarksAvailableDates": {
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "path": "v23:listBenchmarksAvailableDates",
          "id": "googleads.listBenchmarksAvailableDates",
          "flatPath": "v23:listBenchmarksAvailableDates",
          "parameters": {},
          "httpMethod": "POST",
          "response": {
            "$ref": "GoogleAdsGoogleadsV23Services__ListBenchmarksAvailableDatesResponse"
          },
          "parameterOrder": [],
          "description": "Returns a date range that supports benchmarks. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
          "request": {
            "$ref": "GoogleAdsGoogleadsV23Services__ListBenchmarksAvailableDatesRequest"
          }
        },
        "listPlannableUserInterests": {
          "path": "v23:listPlannableUserInterests",
          "parameterOrder": [],
          "request": {
            "$ref": "GoogleAdsGoogleadsV23Services__ListPlannableUserInterestsRequest"
          },
          "flatPath": "v23:listPlannableUserInterests",
          "id": "googleads.listPlannableUserInterests",
          "description": "Returns the list of plannable user interests. A plannable user interest is one that can be targeted in a reach forecast using ReachPlanService.GenerateReachForecast. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [ListOperationError]() [QuotaError]() [RequestError]() [StringLengthError]()",
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "httpMethod": "POST",
          "parameters": {},
          "response": {
            "$ref": "GoogleAdsGoogleadsV23Services__ListPlannableUserInterestsResponse"
          }
        },
        "generateConversionRates": {
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "parameters": {},
          "request": {
            "$ref": "GoogleAdsGoogleadsV23Services__GenerateConversionRatesRequest"
          },
          "description": "Returns a collection of conversion rate suggestions for supported plannable products. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
          "parameterOrder": [],
          "httpMethod": "POST",
          "response": {
            "$ref": "GoogleAdsGoogleadsV23Services__GenerateConversionRatesResponse"
          },
          "id": "googleads.generateConversionRates",
          "flatPath": "v23:generateConversionRates",
          "path": "v23:generateConversionRates"
        },
        "listBenchmarksProducts": {
          "parameterOrder": [],
          "description": "Returns the list of products that supports benchmarks. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
          "path": "v23:listBenchmarksProducts",
          "response": {
            "$ref": "GoogleAdsGoogleadsV23Services__ListBenchmarksProductsResponse"
          },
          "id": "googleads.listBenchmarksProducts",
          "parameters": {},
          "flatPath": "v23:listBenchmarksProducts",
          "request": {
            "$ref": "GoogleAdsGoogleadsV23Services__ListBenchmarksProductsRequest"
          },
          "httpMethod": "POST",
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ]
        },
        "listBenchmarksSources": {
          "id": "googleads.listBenchmarksSources",
          "response": {
            "$ref": "GoogleAdsGoogleadsV23Services__ListBenchmarksSourcesResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "httpMethod": "POST",
          "request": {
            "$ref": "GoogleAdsGoogleadsV23Services__ListBenchmarksSourcesRequest"
          },
          "description": "Returns the list of benchmarks sources (for example, Industry Verticals). List of thrown errors: [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
          "parameters": {},
          "parameterOrder": [],
          "path": "v23:listBenchmarksSources",
          "flatPath": "v23:listBenchmarksSources"
        }
      }
    },
    "incentives": {
      "methods": {
        "fetchIncentive": {
          "description": "Returns incentives for a given user.",
          "path": "v23/incentives:fetchIncentive",
          "parameters": {
            "languageCode": {
              "location": "query",
              "description": "Optional. User's language code. If not provided, the server will default to \"en\". Possible language codes: https://developers.google.com/google-ads/api/data/codes-formats#languages",
              "type": "string"
            },
            "countryCode": {
              "location": "query",
              "type": "string",
              "description": "Optional. User's country code. If not provided, the server will default to \"US\". Possible country codes: https://developers.google.com/google-ads/api/data/codes-formats#country_codes"
            },
            "type": {
              "enumDescriptions": [
                "Not specified.",
                "Unknown incentive type. Should not be used as a value explicitly.",
                "An acquisition incentive."
              ],
              "enum": [
                "UNSPECIFIED",
                "UNKNOWN",
                "ACQUISITION"
              ],
              "type": "string",
              "location": "query",
              "description": "Optional. The type of incentive to get. Defaults to ACQUISITION."
            },
            "email": {
              "type": "string",
              "location": "query",
              "description": "Optional. Email of the user that the requested incentive is meant for. Will be used for channel partners who do NOT use OAuth to authenticate on behalf of user."
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "flatPath": "v23/incentives:fetchIncentive",
          "parameterOrder": [],
          "response": {
            "$ref": "GoogleAdsGoogleadsV23Services__FetchIncentiveResponse"
          },
          "httpMethod": "GET",
          "id": "googleads.incentives.fetchIncentive"
        }
      }
    },
    "googleAdsFields": {
      "methods": {
        "search": {
          "description": "Returns all fields that match the search query. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QueryError]() [QuotaError]() [RequestError]()",
          "httpMethod": "POST",
          "response": {
            "$ref": "GoogleAdsGoogleadsV23Services__SearchGoogleAdsFieldsResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "parameterOrder": [],
          "id": "googleads.googleAdsFields.search",
          "path": "v23/googleAdsFields:search",
          "request": {
            "$ref": "GoogleAdsGoogleadsV23Services__SearchGoogleAdsFieldsRequest"
          },
          "parameters": {},
          "flatPath": "v23/googleAdsFields:search"
        },
        "get": {
          "path": "v23/{+resourceName}",
          "id": "googleads.googleAdsFields.get",
          "parameterOrder": [
            "resourceName"
          ],
          "response": {
            "$ref": "GoogleAdsGoogleadsV23Resources__GoogleAdsField"
          },
          "description": "Returns just the requested field. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
          "httpMethod": "GET",
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "flatPath": "v23/googleAdsFields/{googleAdsFieldsId}",
          "parameters": {
            "resourceName": {
              "location": "path",
              "pattern": "^googleAdsFields/[^/]+$",
              "description": "Required. The resource name of the field to get.",
              "type": "string",
              "required": true
            }
          }
        }
      }
    }
  },
  "fullyEncodeReservedExpansion": true,
  "title": "Google Ads API",
  "protocol": "rest",
  "parameters": {
    "$.xgafv": {
      "description": "V1 error format.",
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ],
      "location": "query",
      "enum": [
        "1",
        "2"
      ],
      "type": "string"
    },
    "key": {
      "location": "query",
      "type": "string",
      "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token."
    },
    "alt": {
      "description": "Data format for response.",
      "location": "query",
      "type": "string",
      "enumDescriptions": [
        "Responses with Content-Type of application/json",
        "Media download with context-dependent Content-Type",
        "Responses with Content-Type of application/x-protobuf"
      ],
      "default": "json",
      "enum": [
        "json",
        "media",
        "proto"
      ]
    },
    "access_token": {
      "type": "string",
      "description": "OAuth access token.",
      "location": "query"
    },
    "oauth_token": {
      "type": "string",
      "location": "query",
      "description": "OAuth 2.0 token for the current user."
    },
    "upload_protocol": {
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
      "type": "string",
      "location": "query"
    },
    "quotaUser": {
      "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
      "location": "query",
      "type": "string"
    },
    "callback": {
      "description": "JSONP",
      "type": "string",
      "location": "query"
    },
    "uploadType": {
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
      "location": "query",
      "type": "string"
    },
    "prettyPrint": {
      "default": "true",
      "description": "Returns response with indentations and line breaks.",
      "location": "query",
      "type": "boolean"
    },
    "fields": {
      "type": "string",
      "description": "Selector specifying which fields to include in a partial response.",
      "location": "query"
    }
  },
  "auth": {
    "oauth2": {
      "scopes": {
        "https://www.googleapis.com/auth/adwords": {
          "description": "See, edit, create, and delete your Google Ads accounts and data."
        }
      }
    }
  },
  "version": "v23",
  "batchPath": "batch",
  "ownerDomain": "google.com",
  "icons": {
    "x32": "http://www.google.com/images/icons/product/search-32.gif",
    "x16": "http://www.google.com/images/icons/product/search-16.gif"
  },
  "basePath": "",
  "baseUrl": "https://googleads.googleapis.com/",
  "name": "googleads"
}