{
  "auth": {
    "oauth2": {
      "scopes": {
        "https://www.googleapis.com/auth/doubleclicksearch": {
          "description": "View and manage your advertising data in DoubleClick Search"
        }
      }
    }
  },
  "basePath": "",
  "version": "v0",
  "batchPath": "batch",
  "kind": "discovery#restDescription",
  "title": "Search Ads 360 Reporting API",
  "name": "searchads360",
  "resources": {
    "customers": {
      "methods": {
        "listAccessibleCustomers": {
          "id": "searchads360.customers.listAccessibleCustomers",
          "scopes": [
            "https://www.googleapis.com/auth/doubleclicksearch"
          ],
          "parameterOrder": [],
          "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": "v0/customers:listAccessibleCustomers",
          "flatPath": "v0/customers:listAccessibleCustomers",
          "httpMethod": "GET",
          "parameters": {},
          "response": {
            "$ref": "GoogleAdsSearchads360V0Services__ListAccessibleCustomersResponse"
          }
        }
      },
      "resources": {
        "customColumns": {
          "methods": {
            "get": {
              "path": "v0/{+resourceName}",
              "parameterOrder": [
                "resourceName"
              ],
              "description": "Returns the requested custom column in full detail.",
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "id": "searchads360.customers.customColumns.get",
              "httpMethod": "GET",
              "parameters": {
                "resourceName": {
                  "description": "Required. The resource name of the custom column to fetch.",
                  "required": true,
                  "pattern": "^customers/[^/]+/customColumns/[^/]+$",
                  "location": "path",
                  "type": "string"
                }
              },
              "response": {
                "$ref": "GoogleAdsSearchads360V0Resources__CustomColumn"
              },
              "flatPath": "v0/customers/{customersId}/customColumns/{customColumnsId}"
            },
            "list": {
              "parameterOrder": [
                "customerId"
              ],
              "description": "Returns all the custom columns associated with the customer in full detail.",
              "path": "v0/customers/{+customerId}/customColumns",
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "id": "searchads360.customers.customColumns.list",
              "httpMethod": "GET",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "description": "Required. The ID of the customer to apply the CustomColumn list operation to.",
                  "required": true
                }
              },
              "response": {
                "$ref": "GoogleAdsSearchads360V0Services__ListCustomColumnsResponse"
              },
              "flatPath": "v0/customers/{customersId}/customColumns"
            }
          }
        },
        "searchAds360": {
          "methods": {
            "search": {
              "path": "v0/customers/{+customerId}/searchAds360:search",
              "parameterOrder": [
                "customerId"
              ],
              "description": "Returns all rows that match the search query. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [ChangeEventError]() [ChangeStatusError]() [ClickViewError]() [HeaderError]() [InternalError]() [QueryError]() [QuotaError]() [RequestError]()",
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "id": "searchads360.customers.searchAds360.search",
              "request": {
                "$ref": "GoogleAdsSearchads360V0Services__SearchSearchAds360Request"
              },
              "httpMethod": "POST",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "description": "Required. The ID of the customer being queried.",
                  "required": true
                }
              },
              "response": {
                "$ref": "GoogleAdsSearchads360V0Services__SearchSearchAds360Response"
              },
              "flatPath": "v0/customers/{customersId}/searchAds360:search"
            }
          }
        }
      }
    },
    "searchAds360Fields": {
      "methods": {
        "search": {
          "id": "searchads360.searchAds360Fields.search",
          "request": {
            "$ref": "GoogleAdsSearchads360V0Services__SearchSearchAds360FieldsRequest"
          },
          "parameterOrder": [],
          "description": "Returns all fields that match the search [query](/search-ads/reporting/concepts/field-service#use_a_query_to_get_field_details). List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QueryError]() [QuotaError]() [RequestError]()",
          "path": "v0/searchAds360Fields:search",
          "scopes": [
            "https://www.googleapis.com/auth/doubleclicksearch"
          ],
          "httpMethod": "POST",
          "parameters": {},
          "response": {
            "$ref": "GoogleAdsSearchads360V0Services__SearchSearchAds360FieldsResponse"
          },
          "flatPath": "v0/searchAds360Fields:search"
        },
        "get": {
          "id": "searchads360.searchAds360Fields.get",
          "path": "v0/{+resourceName}",
          "parameterOrder": [
            "resourceName"
          ],
          "description": "Returns just the requested field. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
          "scopes": [
            "https://www.googleapis.com/auth/doubleclicksearch"
          ],
          "httpMethod": "GET",
          "parameters": {
            "resourceName": {
              "pattern": "^searchAds360Fields/[^/]+$",
              "location": "path",
              "type": "string",
              "description": "Required. The resource name of the field to get.",
              "required": true
            }
          },
          "response": {
            "$ref": "GoogleAdsSearchads360V0Resources__SearchAds360Field"
          },
          "flatPath": "v0/searchAds360Fields/{searchAds360FieldsId}"
        }
      }
    }
  },
  "version_module": true,
  "id": "searchads360:v0",
  "revision": "20260413",
  "protocol": "rest",
  "ownerName": "Google",
  "mtlsRootUrl": "https://searchads360.mtls.googleapis.com/",
  "description": "The Search Ads 360 API allows developers to automate downloading reports from Search Ads 360.",
  "canonicalName": "SA360",
  "fullyEncodeReservedExpansion": true,
  "discoveryVersion": "v1",
  "servicePath": "",
  "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"
  },
  "baseUrl": "https://searchads360.googleapis.com/",
  "schemas": {
    "GoogleAdsSearchads360V0Services__SearchSearchAds360FieldsRequest": {
      "id": "GoogleAdsSearchads360V0Services__SearchSearchAds360FieldsRequest",
      "description": "Request message for SearchAds360FieldService.SearchSearchAds360Fields.",
      "type": "object",
      "properties": {
        "pageSize": {
          "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.",
          "type": "integer",
          "format": "int32"
        },
        "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"
        }
      }
    },
    "GoogleAdsSearchads360V0Common__ManualCpm": {
      "description": "Manual impression-based bidding where user pays per thousand impressions.",
      "type": "object",
      "properties": {},
      "id": "GoogleAdsSearchads360V0Common__ManualCpm"
    },
    "GoogleAdsSearchads360V0Resources_AccessibleBiddingStrategy_TargetSpend": {
      "id": "GoogleAdsSearchads360V0Resources_AccessibleBiddingStrategy_TargetSpend",
      "description": "An automated bid strategy that sets your bids to help get as many clicks as possible within your budget.",
      "type": "object",
      "properties": {
        "cpcBidCeilingMicros": {
          "format": "int64",
          "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"
        },
        "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.",
          "deprecated": true,
          "format": "int64"
        }
      }
    },
    "GoogleAdsSearchads360V0Common__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.",
      "type": "object",
      "properties": {
        "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"
        },
        "targetCpaMicros": {
          "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": "string"
        },
        "cpcBidCeilingMicros": {
          "format": "int64",
          "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.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V0Common__TargetCpa"
    },
    "GoogleAdsSearchads360V0Resources__AssetGroupTopCombinationView": {
      "description": "A view on the usage of asset group asset top combinations.",
      "type": "object",
      "properties": {
        "resourceName": {
          "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,
          "type": "string"
        },
        "assetGroupTopCombinations": {
          "description": "Output only. The top combinations of assets that served together.",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V0Resources__AssetGroupAssetCombinationData"
          }
        }
      },
      "id": "GoogleAdsSearchads360V0Resources__AssetGroupTopCombinationView"
    },
    "GoogleAdsSearchads360V0Common__Value": {
      "id": "GoogleAdsSearchads360V0Common__Value",
      "description": "A generic data container.",
      "type": "object",
      "properties": {
        "floatValue": {
          "format": "float",
          "description": "A float.",
          "type": "number"
        },
        "stringValue": {
          "description": "A string.",
          "type": "string"
        },
        "booleanValue": {
          "description": "A boolean.",
          "type": "boolean"
        },
        "int64Value": {
          "format": "int64",
          "description": "An int64.",
          "type": "string"
        },
        "doubleValue": {
          "description": "A double.",
          "type": "number",
          "format": "double"
        }
      }
    },
    "GoogleAdsSearchads360V0Resources_AccessibleBiddingStrategy_MaximizeConversionValue": {
      "id": "GoogleAdsSearchads360V0Resources_AccessibleBiddingStrategy_MaximizeConversionValue",
      "description": "An automated bidding strategy to help get the most conversion value for your campaigns while spending your budget.",
      "type": "object",
      "properties": {
        "targetRoas": {
          "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.",
          "readOnly": true,
          "type": "number",
          "format": "double"
        }
      }
    },
    "GoogleAdsSearchads360V0Common__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",
      "properties": {},
      "id": "GoogleAdsSearchads360V0Common__FrequencyCapEntry"
    },
    "GoogleAdsSearchads360V0Common__TargetRoas": {
      "id": "GoogleAdsSearchads360V0Common__TargetRoas",
      "description": "An automated bidding strategy that helps you maximize revenue while averaging a specific target return on ad spend (ROAS).",
      "type": "object",
      "properties": {
        "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"
        },
        "targetRoas": {
          "format": "double",
          "description": "Required. The chosen revenue (based on conversion data) per unit of spend. Value must be between 0.01 and 1000.0, inclusive.",
          "type": "number"
        },
        "cpcBidCeilingMicros": {
          "format": "int64",
          "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.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__Value": {
      "description": "A generic data container.",
      "type": "object",
      "properties": {
        "int64Value": {
          "description": "An int64.",
          "type": "string",
          "format": "int64"
        },
        "doubleValue": {
          "format": "double",
          "description": "A double.",
          "type": "number"
        },
        "floatValue": {
          "format": "float",
          "description": "A float.",
          "type": "number"
        },
        "stringValue": {
          "description": "A string.",
          "type": "string"
        },
        "booleanValue": {
          "description": "A boolean.",
          "type": "boolean"
        }
      },
      "id": "GoogleAdsSearchads360V23Common__Value"
    },
    "GoogleAdsSearchads360V0Common__AgeRangeInfo": {
      "description": "An age range criterion.",
      "type": "object",
      "properties": {
        "type": {
          "description": "Type of the age range.",
          "type": "string",
          "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."
          ],
          "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"
          ]
        }
      },
      "id": "GoogleAdsSearchads360V0Common__AgeRangeInfo"
    },
    "GoogleAdsSearchads360V0Resources__AdGroupAd": {
      "description": "An ad group ad.",
      "type": "object",
      "properties": {
        "creationTime": {
          "description": "Output only. The timestamp when this ad_group_ad was created. The datetime is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss.ssssss\" format.",
          "readOnly": true,
          "type": "string"
        },
        "engineStatus": {
          "readOnly": true,
          "type": "string",
          "enumDeprecated": [
            false,
            false,
            true,
            false,
            false,
            false,
            false,
            false,
            true,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false
          ],
          "enumDescriptions": [
            "No value has been specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Deprecated. Do not use.",
            "Baidu: Creative was not approved.",
            "Baidu: Mobile URL in process to be reviewed.",
            "Baidu: Creative is invalid on mobile device but valid on desktop.",
            "Baidu: Creative is ready for activation.",
            "Baidu: Creative not reviewed.",
            "Deprecated. Do not use. Previously used by Gemini",
            "Creative has been paused.",
            "Creative has been removed.",
            "Creative is pending review.",
            "Creative is under review.",
            "Creative has been approved.",
            "Creative has been disapproved.",
            "Creative is serving.",
            "Creative has been paused because the account is paused.",
            "Creative has been paused because the campaign is paused.",
            "Creative has been paused because the ad group is paused."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AD_GROUP_AD_ELIGIBLE",
            "AD_GROUP_AD_INAPPROPRIATE_FOR_CAMPAIGN",
            "AD_GROUP_AD_MOBILE_URL_UNDER_REVIEW",
            "AD_GROUP_AD_PARTIALLY_INVALID",
            "AD_GROUP_AD_TO_BE_ACTIVATED",
            "AD_GROUP_AD_NOT_REVIEWED",
            "AD_GROUP_AD_ON_HOLD",
            "AD_GROUP_AD_PAUSED",
            "AD_GROUP_AD_REMOVED",
            "AD_GROUP_AD_PENDING_REVIEW",
            "AD_GROUP_AD_UNDER_REVIEW",
            "AD_GROUP_AD_APPROVED",
            "AD_GROUP_AD_DISAPPROVED",
            "AD_GROUP_AD_SERVING",
            "AD_GROUP_AD_ACCOUNT_PAUSED",
            "AD_GROUP_AD_CAMPAIGN_PAUSED",
            "AD_GROUP_AD_AD_GROUP_PAUSED"
          ],
          "description": "Output only. Additional status of the ad in the external engine account. Possible statuses (depending on the type of external account) include active, eligible, pending review, etc."
        },
        "resourceName": {
          "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}`",
          "type": "string"
        },
        "engineId": {
          "description": "Output only. ID of the ad in the external engine account. This field is for Search Ads 360 account only, for example, Yahoo Japan, Microsoft, Baidu etc. For non-Search Ads 360 entity, use \"ad_group_ad.ad.id\" instead.",
          "readOnly": true,
          "type": "string"
        },
        "effectiveLabels": {
          "items": {
            "type": "string"
          },
          "description": "Output only. The resource names of effective labels attached to this ad. An effective label is a label inherited or directly assigned to this ad.",
          "readOnly": true,
          "type": "array"
        },
        "lastModifiedTime": {
          "description": "Output only. The datetime when this ad group ad was last modified. The datetime is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss.ssssss\" format.",
          "readOnly": true,
          "type": "string"
        },
        "ad": {
          "description": "Immutable. The ad.",
          "$ref": "GoogleAdsSearchads360V0Resources__Ad"
        },
        "labels": {
          "items": {
            "type": "string"
          },
          "description": "Output only. The resource names of labels attached to this ad group ad.",
          "readOnly": true,
          "type": "array"
        },
        "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "PAUSED",
            "REMOVED"
          ],
          "description": "The status of the ad.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V0Resources__AdGroupAd"
    },
    "GoogleAdsSearchads360V0Common__SearchAds360ResponsiveSearchAdInfo": {
      "id": "GoogleAdsSearchads360V0Common__SearchAds360ResponsiveSearchAdInfo",
      "description": "A Search Ads 360 responsive search ad.",
      "type": "object",
      "properties": {
        "headlines": {
          "description": "List of text assets for headlines. When the ad serves the headlines will be selected from this list.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V0Common__AdTextAsset"
          }
        },
        "descriptions": {
          "items": {
            "$ref": "GoogleAdsSearchads360V0Common__AdTextAsset"
          },
          "description": "List of text assets for descriptions. When the ad serves the descriptions will be selected from this list.",
          "type": "array"
        },
        "path1": {
          "description": "Text appended to the auto-generated visible URL with a delimiter.",
          "type": "string"
        },
        "adTrackingId": {
          "description": "The tracking id of the ad.",
          "type": "string",
          "format": "int64"
        },
        "path2": {
          "description": "Text appended to path1 with a delimiter.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V0Resources__CampaignAudienceView": {
      "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",
      "properties": {
        "resourceName": {
          "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}`",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V0Resources__CampaignAudienceView"
    },
    "GoogleAdsSearchads360V0Common__UnifiedPageFeedAsset": {
      "description": "A Unified Page Feed asset.",
      "type": "object",
      "properties": {
        "pageUrl": {
          "description": "The webpage that advertisers want to target.",
          "type": "string"
        },
        "labels": {
          "description": "Labels used to group the page urls.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "id": "GoogleAdsSearchads360V0Common__UnifiedPageFeedAsset"
    },
    "GoogleAdsSearchads360V0Resources__LanguageConstant": {
      "id": "GoogleAdsSearchads360V0Resources__LanguageConstant",
      "description": "A language.",
      "type": "object",
      "properties": {
        "code": {
          "description": "Output only. The language code, for example, \"en_US\", \"en_AU\", \"es\", \"fr\", etc.",
          "readOnly": true,
          "type": "string"
        },
        "targetable": {
          "description": "Output only. Whether the language is targetable.",
          "readOnly": true,
          "type": "boolean"
        },
        "id": {
          "description": "Output only. The ID of the language constant.",
          "readOnly": true,
          "type": "string",
          "format": "int64"
        },
        "resourceName": {
          "description": "Output only. The resource name of the language constant. Language constant resource names have the form: `languageConstants/{criterion_id}`",
          "readOnly": true,
          "type": "string"
        },
        "name": {
          "description": "Output only. The full name of the language in English, for example, \"English (US)\", \"Spanish\", etc.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V0Services__ListAccessibleCustomersResponse": {
      "description": "Response message for CustomerService.ListAccessibleCustomers.",
      "type": "object",
      "properties": {
        "resourceNames": {
          "items": {
            "type": "string"
          },
          "description": "Resource name of customers directly accessible by the user authenticating the call.",
          "type": "array"
        }
      },
      "id": "GoogleAdsSearchads360V0Services__ListAccessibleCustomersResponse"
    },
    "GoogleAdsSearchads360V0Resources__WebpageView": {
      "id": "GoogleAdsSearchads360V0Resources__WebpageView",
      "description": "A webpage view.",
      "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"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__PolicyTopicEvidence": {
      "description": "Additional information that explains a policy finding.",
      "type": "object",
      "properties": {
        "destinationTextList": {
          "description": "The text in the destination of the resource that is causing a policy finding.",
          "$ref": "GoogleAdsSearchads360V23Common_PolicyTopicEvidence_DestinationTextList"
        },
        "websiteList": {
          "description": "List of websites linked with this resource.",
          "$ref": "GoogleAdsSearchads360V23Common_PolicyTopicEvidence_WebsiteList"
        },
        "languageCode": {
          "description": "The language the resource was detected to be written in. This is an IETF language tag such as \"en-US\".",
          "type": "string"
        },
        "textList": {
          "description": "List of evidence found in the text of a resource.",
          "$ref": "GoogleAdsSearchads360V23Common_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": "GoogleAdsSearchads360V23Common_PolicyTopicEvidence_DestinationNotWorking"
        },
        "destinationMismatch": {
          "description": "Mismatch between the destinations of a resource's URLs.",
          "$ref": "GoogleAdsSearchads360V23Common_PolicyTopicEvidence_DestinationMismatch"
        }
      },
      "id": "GoogleAdsSearchads360V23Common__PolicyTopicEvidence"
    },
    "GoogleAdsSearchads360V23Errors__BudgetPerDayMinimumErrorDetails": {
      "id": "GoogleAdsSearchads360V23Errors__BudgetPerDayMinimumErrorDetails",
      "description": "Error details for a budget below per-day minimum error.",
      "type": "object",
      "properties": {
        "minimumBudgetAmountMicros": {
          "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.",
          "type": "string",
          "format": "int64"
        },
        "minimumBudgetTotalAmountMicros": {
          "format": "int64",
          "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.",
          "type": "string"
        },
        "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"
        },
        "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"
        },
        "currencyCode": {
          "description": "The advertiser's currency, represented as a three-letter ISO 4217 currency code (such as \"USD\").",
          "type": "string"
        },
        "budgetPerDayMinimumMicros": {
          "format": "int64",
          "description": "The minimum budget required by the campaign per day, in micros of the advertiser currency. Applies to both daily and custom budgets.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V0Common__MobileAppAsset": {
      "description": "An asset representing a mobile app.",
      "type": "object",
      "properties": {
        "appId": {
          "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.",
          "type": "string"
        },
        "appStore": {
          "description": "Required. The application store that distributes this specific app.",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "APPLE_APP_STORE",
            "GOOGLE_APP_STORE"
          ]
        }
      },
      "id": "GoogleAdsSearchads360V0Common__MobileAppAsset"
    },
    "GoogleAdsSearchads360V0Resources__UserLocationView": {
      "id": "GoogleAdsSearchads360V0Resources__UserLocationView",
      "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.",
      "type": "object",
      "properties": {
        "countryCriterionId": {
          "format": "int64",
          "description": "Output only. Criterion Id for the country.",
          "readOnly": true,
          "type": "string"
        },
        "resourceName": {
          "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}`",
          "readOnly": true,
          "type": "string"
        },
        "targetingLocation": {
          "description": "Output only. Indicates whether location was targeted or not.",
          "readOnly": true,
          "type": "boolean"
        }
      }
    },
    "GoogleAdsSearchads360V0Resources__ConversionAction": {
      "id": "GoogleAdsSearchads360V0Resources__ConversionAction",
      "description": "A conversion action.",
      "type": "object",
      "properties": {
        "clickThroughLookbackWindowDays": {
          "description": "The maximum number of days that may elapse between an interaction (for example, a click) and a conversion event.",
          "type": "string",
          "format": "int64"
        },
        "creationTime": {
          "description": "Output only. Timestamp of the Floodlight activity's creation, formatted in ISO 8601.",
          "readOnly": true,
          "type": "string"
        },
        "id": {
          "description": "Output only. The ID of the conversion action.",
          "readOnly": true,
          "type": "string",
          "format": "int64"
        },
        "floodlightSettings": {
          "description": "Output only. Floodlight settings for Floodlight conversion types.",
          "readOnly": true,
          "$ref": "GoogleAdsSearchads360V0Resources_ConversionAction_FloodlightSettings"
        },
        "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"
        },
        "appId": {
          "description": "App ID for an app conversion action.",
          "type": "string"
        },
        "ownerCustomer": {
          "description": "Output only. The resource name of the conversion action owner customer, or null if this is a system-defined conversion action.",
          "readOnly": true,
          "type": "string"
        },
        "includeInClientAccountConversionsMetric": {
          "description": "Whether this conversion action should be included in the \"client_account_conversions\" metric.",
          "type": "boolean"
        },
        "name": {
          "description": "The name of the conversion action. This field is required and should not be empty when creating new conversion actions.",
          "type": "string"
        },
        "valueSettings": {
          "description": "Settings related to the value for conversion events associated with this conversion action.",
          "$ref": "GoogleAdsSearchads360V0Resources_ConversionAction_ValueSettings"
        },
        "includeInConversionsMetric": {
          "description": "Output only. Whether this conversion action should be included in the \"conversions\" metric.",
          "readOnly": true,
          "type": "boolean"
        },
        "category": {
          "description": "The category of conversions reported for this conversion action.",
          "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.",
            "Lead-generating 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",
            "LEAD",
            "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"
          ]
        },
        "resourceName": {
          "description": "Immutable. The resource name of the conversion action. Conversion action resource names have the form: `customers/{customer_id}/conversionActions/{conversion_action_id}`",
          "type": "string"
        },
        "status": {
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED",
            "HIDDEN"
          ],
          "description": "The status of this conversion action for conversion event accrual.",
          "type": "string"
        },
        "type": {
          "type": "string",
          "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
          ],
          "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."
          ],
          "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"
          ]
        },
        "attributionModelSettings": {
          "description": "Settings related to this conversion action's attribution model.",
          "$ref": "GoogleAdsSearchads360V0Resources_ConversionAction_AttributionModelSettings"
        }
      }
    },
    "GoogleAdsSearchads360V0Common__TextAsset": {
      "id": "GoogleAdsSearchads360V0Common__TextAsset",
      "description": "A Text asset.",
      "type": "object",
      "properties": {
        "text": {
          "description": "Text content of the text asset.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V0Resources_ListingGroupFilterDimension_ProductChannel": {
      "description": "Locality of a product offer.",
      "type": "object",
      "properties": {
        "channel": {
          "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"
          ],
          "description": "Value of the locality.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V0Resources_ListingGroupFilterDimension_ProductChannel"
    },
    "GoogleAdsSearchads360V0Common__CallToActionAsset": {
      "id": "GoogleAdsSearchads360V0Common__CallToActionAsset",
      "description": "A call to action asset.",
      "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."
          ],
          "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"
          ],
          "description": "Call to action.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Errors__ErrorCode": {
      "description": "The error reason represented by type and enum.",
      "type": "object",
      "properties": {
        "customerError": {
          "description": "The reasons for the customer error",
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "STATUS_CHANGE_DISALLOWED",
            "ACCOUNT_NOT_SET_UP",
            "CREATION_DENIED_FOR_POLICY_VIOLATION",
            "CREATION_DENIED_INELIGIBLE_MCC"
          ]
        },
        "campaignLifecycleGoalError": {
          "description": "The reasons for the campaign lifecycle goal error",
          "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"
          ]
        },
        "campaignFeedError": {
          "description": "The reasons for the campaign feed error",
          "type": "string",
          "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"
          ]
        },
        "adGroupFeedError": {
          "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."
          ],
          "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"
          ]
        },
        "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MUTATE_REQUIRES_RESERVATION"
          ],
          "description": "An error with a Video Campaign mutate.",
          "type": "string"
        },
        "experimentArmError": {
          "description": "The reasons for the experiment arm error",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "adParameterError": {
          "description": "The reasons for the ad parameter error",
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AD_GROUP_CRITERION_MUST_BE_KEYWORD",
            "INVALID_INSERTION_TEXT_FORMAT"
          ]
        },
        "regionCodeError": {
          "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",
          "type": "string"
        },
        "dateError": {
          "description": "The reasons for the date error",
          "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."
          ],
          "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"
          ]
        },
        "merchantCenterError": {
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MERCHANT_ID_CANNOT_BE_ACCESSED",
            "CUSTOMER_NOT_ALLOWED_FOR_SHOPPING_PERFORMANCE_MAX"
          ],
          "description": "Container for enum describing possible merchant center errors.",
          "type": "string"
        },
        "assetGroupAssetError": {
          "description": "The reasons for the asset group asset error",
          "type": "string",
          "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"
          ]
        },
        "conversionAdjustmentUploadError": {
          "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`."
          ],
          "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"
        },
        "notAllowlistedError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Customer is not allowlisted for accessing this feature."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CUSTOMER_NOT_ALLOWLISTED_FOR_THIS_FEATURE"
          ],
          "description": "The reasons for the not allowlisted error",
          "type": "string"
        },
        "accessInvitationError": {
          "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"
          ],
          "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"
          ],
          "description": "The reasons for the access invitation error",
          "type": "string"
        },
        "notEmptyError": {
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EMPTY_LIST"
          ]
        },
        "adGroupCriterionError": {
          "description": "Indicates failure to properly authenticate user.",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "customInterestError": {
          "description": "The reasons for the custom interest error",
          "type": "string",
          "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"
          ]
        },
        "sharedSetError": {
          "description": "The reasons for the shared set error",
          "type": "string",
          "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"
          ]
        },
        "feedItemTargetError": {
          "description": "The reasons for the feed item target error",
          "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."
          ],
          "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"
          ]
        },
        "searchTermInsightError": {
          "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."
          ],
          "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"
          ]
        },
        "finalUrlExpansionAssetViewError": {
          "description": "The reasons for the final url expansion asset view error",
          "type": "string",
          "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"
          ]
        },
        "adGroupCustomizerError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN"
          ],
          "description": "The reasons for the ad group customizer error.",
          "type": "string"
        },
        "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EMPTY",
            "TOO_SHORT",
            "TOO_LONG"
          ],
          "description": "The reasons for the string length error",
          "type": "string"
        },
        "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"
          ]
        },
        "customConversionGoalError": {
          "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."
          ],
          "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",
          "type": "string"
        },
        "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ILLEGAL_CHARS",
            "INVALID_FORMAT"
          ],
          "description": "The reasons for the string format error",
          "type": "string"
        },
        "thirdPartyAppAnalyticsLinkError": {
          "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"
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_ANALYTICS_PROVIDER_ID",
            "INVALID_MOBILE_APP_ID",
            "MOBILE_APP_IS_NOT_ENABLED",
            "CANNOT_REGENERATE_SHAREABLE_LINK_ID_FOR_REMOVED_LINK"
          ],
          "description": "The reasons for the third party app analytics link mutate error",
          "type": "string"
        },
        "accountBudgetProposalError": {
          "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"
          ],
          "description": "The reasons for account budget proposal errors.",
          "type": "string"
        },
        "settingError": {
          "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."
          ],
          "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"
          ],
          "description": "The reasons for the setting error",
          "type": "string"
        },
        "listOperationError": {
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "REQUIRED_FIELD_MISSING",
            "DUPLICATE_VALUES"
          ],
          "description": "An error with a list operation.",
          "type": "string"
        },
        "policyValidationParameterError": {
          "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."
          ],
          "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"
          ],
          "description": "The reasons for the policy validation parameter error",
          "type": "string"
        },
        "campaignExperimentError": {
          "description": "The reasons for the campaign experiment error",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "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"
          ],
          "description": "The reasons for the new resource creation error",
          "type": "string"
        },
        "rangeError": {
          "description": "The reasons for the range error",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Too low.",
            "Too high."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "TOO_LOW",
            "TOO_HIGH"
          ]
        },
        "customerSkAdNetworkConversionValueSchemaError": {
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_LINK_ID",
            "INVALID_APP_ID",
            "INVALID_SCHEMA",
            "LINK_CODE_NOT_FOUND",
            "INVALID_EVENT_COUNTER",
            "INVALID_EVENT_NAME"
          ],
          "description": "The reasons for the customer SK Ad network conversion value schema error",
          "type": "string"
        },
        "fieldError": {
          "description": "The reasons for the field error",
          "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."
          ],
          "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"
          ]
        },
        "sharedCriterionError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The criterion is not appropriate for the shared set type."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CRITERION_TYPE_NOT_ALLOWED_FOR_SHARED_SET_TYPE"
          ],
          "description": "The reasons for the shared criterion error",
          "type": "string"
        },
        "keywordPlanCampaignError": {
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_NAME",
            "INVALID_LANGUAGES",
            "INVALID_GEOS",
            "DUPLICATE_NAME",
            "MAX_GEOS_EXCEEDED",
            "MAX_LANGUAGES_EXCEEDED"
          ],
          "description": "The reason for keyword plan campaign error.",
          "type": "string"
        },
        "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"
          ]
        },
        "policyViolationError": {
          "description": "The reasons for the policy violation error",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "A policy was violated. See PolicyViolationDetails for more detail."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "POLICY_ERROR"
          ]
        },
        "experimentError": {
          "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."
          ],
          "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"
          ],
          "description": "The reasons for the experiment error",
          "type": "string"
        },
        "keywordPlanCampaignKeywordError": {
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CAMPAIGN_KEYWORD_IS_POSITIVE"
          ]
        },
        "assetGroupError": {
          "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."
          ],
          "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"
          ],
          "description": "The reasons for the asset group error",
          "type": "string"
        },
        "campaignCustomizerError": {
          "description": "The reasons for the campaign customizer error.",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN"
          ]
        },
        "feedMappingError": {
          "description": "The reasons for the feed mapping error",
          "type": "string",
          "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"
          ]
        },
        "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_ASSET_TYPE",
            "INVALID_ASSET_SET_TYPE",
            "DUPLICATE_EXTERNAL_KEY",
            "PARENT_LINKAGE_DOES_NOT_EXIST"
          ],
          "description": "The reasons for the asset set asset error",
          "type": "string"
        },
        "assetGroupSignalError": {
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "TOO_MANY_WORDS",
            "SEARCH_THEME_POLICY_VIOLATION",
            "AUDIENCE_WITH_WRONG_ASSET_GROUP_ID"
          ],
          "description": "The reasons for the asset group hint error",
          "type": "string"
        },
        "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "START_DATE_TOO_OLD",
            "CHANGE_DATE_RANGE_INFINITE",
            "CHANGE_DATE_RANGE_NEGATIVE",
            "LIMIT_NOT_SPECIFIED",
            "INVALID_LIMIT_CLAUSE"
          ],
          "description": "The reasons for the change event error",
          "type": "string"
        },
        "customColumnError": {
          "description": "The reasons for the custom column error",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The custom column has not been found.",
            "The custom column is not available."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CUSTOM_COLUMN_NOT_FOUND",
            "CUSTOM_COLUMN_NOT_AVAILABLE"
          ]
        },
        "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"
        },
        "quotaError": {
          "description": "An error with the amount of quota remaining.",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "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"
        },
        "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "YEAR_MONTH_TOO_OLD",
            "NOT_INVOICED_CUSTOMER",
            "BILLING_SETUP_NOT_APPROVED",
            "BILLING_SETUP_NOT_ON_MONTHLY_INVOICING",
            "NON_SERVING_CUSTOMER"
          ],
          "description": "The reasons for the invoice error",
          "type": "string"
        },
        "campaignGoalConfigError": {
          "description": "The reasons for the campaign goal config error.",
          "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."
          ],
          "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"
          ]
        },
        "mutateError": {
          "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.",
            "Mutates are generally not allowed if the customer contains non-exempt campaigns without the EU political advertising declaration."
          ],
          "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",
            "EU_POLITICAL_ADVERTISING_DECLARATION_REQUIRED"
          ],
          "description": "An error with a mutate",
          "type": "string"
        },
        "functionError": {
          "description": "The reasons for the function error",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "keywordPlanIdeaError": {
          "description": "The reason for keyword idea error.",
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "URL_CRAWL_ERROR",
            "INVALID_VALUE"
          ]
        },
        "userDataError": {
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "OPERATIONS_FOR_CUSTOMER_MATCH_NOT_ALLOWED",
            "TOO_MANY_USER_IDENTIFIERS",
            "USER_LIST_NOT_APPLICABLE"
          ],
          "description": "The reasons for the user data error.",
          "type": "string"
        },
        "campaignBudgetError": {
          "description": "An error with a Campaign Budget mutate.",
          "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."
          ],
          "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"
          ]
        },
        "adGroupCriterionCustomizerError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Only keyword type criterion is allowed to link customizer attribute."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CRITERION_IS_NOT_KEYWORD"
          ],
          "description": "The reasons for the ad group criterion customizer error.",
          "type": "string"
        },
        "conversionValueRuleError": {
          "description": "The reasons for the conversion value rule error",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "languageCodeError": {
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "LANGUAGE_CODE_NOT_FOUND",
            "INVALID_LANGUAGE_CODE"
          ],
          "description": "The reasons for the language code error",
          "type": "string"
        },
        "productLinkError": {
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_OPERATION",
            "CREATION_NOT_PERMITTED",
            "INVITATION_EXISTS",
            "LINK_EXISTS"
          ],
          "description": "The reasons for the product link error",
          "type": "string"
        },
        "mediaFileError": {
          "description": "The reasons for the media file error",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "mediaBundleError": {
          "description": "The reasons for the media bundle error",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "paymentsAccountError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Manager customers are not supported for payments account service."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NOT_SUPPORTED_FOR_MANAGER_CUSTOMER"
          ],
          "description": "The reasons for errors in payments accounts service",
          "type": "string"
        },
        "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 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 this 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"
          ]
        },
        "campaignSharedSetError": {
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SHARED_SET_ACCESS_DENIED"
          ],
          "description": "The reasons for the campaign shared set error",
          "type": "string"
        },
        "shoppingProductError": {
          "description": "The reasons for error in querying shopping product.",
          "type": "string",
          "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"
          ]
        },
        "urlFieldError": {
          "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."
          ],
          "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"
          ],
          "description": "An error with a URL field mutate.",
          "type": "string"
        },
        "conversionGoalCampaignConfigError": {
          "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."
          ],
          "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"
          ],
          "description": "The reasons for the conversion goal campaign config error",
          "type": "string"
        },
        "invalidParameterError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The specified currency code is invalid."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_CURRENCY_CODE"
          ],
          "description": "The reasons for invalid parameter errors.",
          "type": "string"
        },
        "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."
          ],
          "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"
          ],
          "description": "The reasons for the user list error",
          "type": "string"
        },
        "feedItemSetLinkError": {
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "FEED_ID_MISMATCH",
            "NO_MUTATE_ALLOWED_FOR_DYNAMIC_SET"
          ]
        },
        "batchJobError": {
          "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."
          ],
          "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",
          "type": "string"
        },
        "databaseError": {
          "description": "The reasons for the database error.",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CONCURRENT_MODIFICATION",
            "DATA_CONSTRAINT_VIOLATION",
            "REQUEST_TOO_LARGE"
          ]
        },
        "biddingStrategyError": {
          "description": "An error with a Bidding Strategy mutate.",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "mediaUploadError": {
          "description": "The reasons for media uploading errors.",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "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."
          ],
          "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"
          ],
          "description": "The reasons for the operation access denied error",
          "type": "string"
        },
        "customerUserAccessError": {
          "description": "The reasons for the customer user access mutate error",
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_USER_ID",
            "REMOVAL_DISALLOWED",
            "DISALLOWED_ACCESS_ROLE",
            "LAST_ADMIN_USER_OF_SERVING_CUSTOMER",
            "LAST_ADMIN_USER_OF_MANAGER"
          ]
        },
        "functionParsingError": {
          "description": "The reasons for the function parsing error",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "adGroupAdError": {
          "description": "The reasons for the ad group ad error",
          "type": "string",
          "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"
          ]
        },
        "operatorError": {
          "description": "The reasons for the operator error",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Operator not supported."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "OPERATOR_NOT_SUPPORTED"
          ]
        },
        "adCustomizerError": {
          "description": "The reasons for the ad customizer error",
          "type": "string",
          "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"
          ]
        },
        "resourceAccessDeniedError": {
          "description": "The reasons for the resource access denied error",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "User did not have write access."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "WRITE_ACCESS_DENIED"
          ]
        },
        "incentiveError": {
          "description": "The reasons for the incentive error",
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_INCENTIVE_ID"
          ]
        },
        "campaignConversionGoalError": {
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CANNOT_USE_CAMPAIGN_GOAL_FOR_SEARCH_ADS_360_MANAGED_CAMPAIGN",
            "CANNOT_USE_STORE_SALE_GOAL_FOR_PERFORMANCE_MAX_CAMPAIGN"
          ]
        },
        "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PARTIAL_FAILURE_MODE_REQUIRED"
          ],
          "description": "The reasons for the mutate job error",
          "type": "string"
        },
        "identityVerificationError": {
          "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"
          ],
          "description": "The reasons for an identity verification error.",
          "type": "string"
        },
        "shareablePreviewError": {
          "description": "The reasons for the shareable preview error.",
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "TOO_MANY_ASSET_GROUPS_IN_REQUEST",
            "ASSET_GROUP_DOES_NOT_EXIST_UNDER_THIS_CUSTOMER"
          ]
        },
        "countryCodeError": {
          "description": "The reasons for the country code error",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The country code is invalid."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_COUNTRY_CODE"
          ]
        },
        "brandGuidelinesMigrationError": {
          "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"
          ],
          "description": "The reasons for the brand guidelines migration error.",
          "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"
          ],
          "description": "The reasons for the customizer attribute error.",
          "type": "string"
        },
        "campaignError": {
          "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."
          ],
          "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"
          ],
          "description": "An error with a Campaign mutate.",
          "type": "string"
        },
        "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"
          ],
          "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"
          ],
          "description": "The reasons for the customer manager link error",
          "type": "string"
        },
        "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."
          ],
          "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"
          ],
          "description": "The reasons for the billing setup error",
          "type": "string"
        },
        "customerCustomizerError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN"
          ],
          "description": "The reasons for the customer customizer error.",
          "type": "string"
        },
        "feedAttributeReferenceError": {
          "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"
          ],
          "description": "The reasons for the feed attribute reference error",
          "type": "string"
        },
        "customerFeedError": {
          "description": "The reasons for the customer feed error",
          "type": "string",
          "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"
          ]
        },
        "customAudienceError": {
          "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"
          ],
          "description": "The reasons for the custom audience error",
          "type": "string"
        },
        "currencyCodeError": {
          "description": "The reasons for the currency code error",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The currency code is not supported."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "UNSUPPORTED"
          ]
        },
        "geoTargetConstantSuggestionError": {
          "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.",
          "type": "string"
        },
        "keywordPlanAdGroupKeywordError": {
          "description": "The reason for keyword plan ad group keyword error.",
          "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."
          ],
          "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"
          ]
        },
        "feedItemSetError": {
          "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."
          ],
          "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"
          ],
          "description": "The reasons for the feed item set error",
          "type": "string"
        },
        "criterionError": {
          "description": "The reasons for the criterion error",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "distinctError": {
          "description": "The reasons for the distinct error",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Duplicate element.",
            "Duplicate type."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DUPLICATE_ELEMENT",
            "DUPLICATE_TYPE"
          ]
        },
        "recommendationError": {
          "description": "The reasons for error in applying a recommendation",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "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"
          ]
        },
        "timeZoneError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Time zone is not valid."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_TIME_ZONE"
          ],
          "description": "The reasons for the time zone error",
          "type": "string"
        },
        "requestError": {
          "description": "An error caused by the request",
          "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."
          ],
          "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"
          ]
        },
        "queryError": {
          "description": "An error with the query",
          "type": "string",
          "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",
            "A 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."
          ],
          "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"
          ]
        },
        "audienceError": {
          "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"
          ],
          "description": "The reasons for the audience error",
          "type": "string"
        },
        "assetLinkError": {
          "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",
          "type": "string"
        },
        "nullError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Specified list/container must not contain any null elements"
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NULL_CONTENT"
          ],
          "description": "The reasons for the null error",
          "type": "string"
        },
        "youtubeVideoRegistrationError": {
          "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)."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "VIDEO_NOT_FOUND",
            "VIDEO_NOT_ACCESSIBLE",
            "VIDEO_NOT_ELIGIBLE"
          ],
          "description": "The reasons for YouTube video registration errors.",
          "type": "string"
        },
        "customerLifecycleGoalError": {
          "description": "The reasons for the customer lifecycle goal error",
          "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."
          ],
          "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"
          ]
        },
        "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."
          ],
          "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"
          ],
          "description": "The reasons for the feed error",
          "type": "string"
        },
        "resourceCountLimitExceededError": {
          "description": "The reasons for the resource count limit exceeded error",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "fieldMaskError": {
          "description": "An error with a field mask",
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "FIELD_MASK_MISSING",
            "FIELD_MASK_NOT_ALLOWED",
            "FIELD_NOT_FOUND",
            "FIELD_HAS_SUBFIELDS"
          ]
        },
        "recommendationSubscriptionError": {
          "description": "The reasons for the recommendation subscription error.",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN"
          ]
        },
        "enumError": {
          "description": "The reason for enum error.",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The enum value is not permitted."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENUM_VALUE_NOT_PERMITTED"
          ]
        },
        "keywordPlanAdGroupError": {
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_NAME",
            "DUPLICATE_NAME"
          ],
          "description": "The reason for keyword plan ad group error.",
          "type": "string"
        },
        "collectionSizeError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Too few.",
            "Too many."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "TOO_FEW",
            "TOO_MANY"
          ],
          "description": "The reasons for the collection size error",
          "type": "string"
        },
        "biddingError": {
          "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"
          ],
          "description": "The reasons for the bidding errors",
          "type": "string"
        },
        "automaticallyCreatedAssetRemovalError": {
          "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."
          ],
          "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"
          ],
          "description": "The reasons for error in automatically created asset removal action.",
          "type": "string"
        },
        "campaignDraftError": {
          "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."
          ],
          "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"
          ],
          "description": "The reasons for the campaign draft error",
          "type": "string"
        },
        "goalError": {
          "description": "The reasons for the goal error.",
          "type": "string",
          "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"
          ]
        },
        "userListCustomerTypeError": {
          "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 8. Converted Leads - Loyalty Tier X Members (X = 1..7) 9. Qualified Leads - Loyalty Tier X Members (X = 1..7) 10. Loyalty Tier X Members - Loyalty Tier Y Members (X != Y)",
            "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."
          ],
          "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"
          ],
          "description": "The reasons for a user list customer type error.",
          "type": "string"
        },
        "offlineUserDataJobError": {
          "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."
          ],
          "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"
          ]
        },
        "feedItemValidationError": {
          "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."
          ],
          "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"
          ],
          "description": "The reasons for the feed item validation error",
          "type": "string"
        },
        "conversionCustomVariableError": {
          "description": "The reasons for the conversion custom variable error",
          "type": "string",
          "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"
          ]
        },
        "assetSetLinkError": {
          "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."
          ],
          "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"
          ],
          "description": "The reasons for the asset set link error",
          "type": "string"
        },
        "campaignCriterionError": {
          "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"
          ],
          "description": "The reasons for the campaign criterion error",
          "type": "string"
        },
        "imageError": {
          "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."
          ],
          "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"
          ],
          "description": "The reasons for the image error",
          "type": "string"
        },
        "conversionValueRuleSetError": {
          "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."
          ],
          "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",
          "type": "string"
        },
        "idError": {
          "description": "The reasons for the id error",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "ID not found"
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NOT_FOUND"
          ]
        },
        "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"
        },
        "dataLinkError": {
          "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."
          ],
          "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"
          ],
          "description": "The reasons for the data link error",
          "type": "string"
        },
        "reachPlanError": {
          "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"
          ],
          "description": "The reasons for the reach plan error",
          "type": "string"
        },
        "internalError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "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.",
            "API encountered an unexpected transient error. The user should retry their request in these cases.",
            "The request took longer than a deadline."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INTERNAL_ERROR",
            "ERROR_CODE_NOT_PUBLISHED",
            "TRANSIENT_ERROR",
            "DEADLINE_EXCEEDED"
          ],
          "description": "An unexpected server-side error.",
          "type": "string"
        },
        "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"
        },
        "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"
          ],
          "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"
          ],
          "description": "The reasons for the multiplier error",
          "type": "string"
        },
        "labelError": {
          "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."
          ],
          "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"
          ],
          "description": "The reason for the label error.",
          "type": "string"
        },
        "adSharingError": {
          "description": "The reasons for the ad sharing error",
          "type": "string",
          "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"
          ]
        },
        "conversionActionError": {
          "description": "The reasons for the conversion action error",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "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."
          ],
          "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"
          ],
          "description": "The reasons for the Smart campaign error",
          "type": "string"
        },
        "sizeLimitError": {
          "description": "The reasons for the size limit error",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "REQUEST_SIZE_LIMIT_EXCEEDED",
            "RESPONSE_SIZE_LIMIT_EXCEEDED"
          ]
        },
        "currencyError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Bid must be a multiple of billable unit."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "VALUE_NOT_MULTIPLE_OF_BILLABLE_UNIT"
          ],
          "description": "The reasons for the currency errors.",
          "type": "string"
        },
        "adxError": {
          "description": "The reasons for the adx error",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Attempt to use non-AdX feature by AdX customer."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "UNSUPPORTED_FEATURE"
          ]
        },
        "audienceInsightsError": {
          "description": "The reasons for the Audience Insights error",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The dimensions cannot be used with topic audience combinations."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DIMENSION_INCOMPATIBLE_WITH_TOPIC_AUDIENCE_COMBINATIONS"
          ]
        },
        "adGroupError": {
          "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."
          ],
          "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.",
          "type": "string"
        },
        "extensionSettingError": {
          "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."
          ],
          "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"
          ],
          "description": "The reasons for the extension setting error",
          "type": "string"
        },
        "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"
        },
        "authorizationError": {
          "description": "An error encountered when trying to authorize a user.",
          "type": "string",
          "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/search-ads/reporting/concepts/call-structure#login_customer_id_header",
            "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: https://developers.google.com/terms",
            "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 allowed in Search Ads 360 API. 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"
          ]
        },
        "extensionFeedItemError": {
          "description": "The reasons for the extension feed item error",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "managerLinkError": {
          "description": "The reasons for the manager link error",
          "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."
          ],
          "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"
          ]
        },
        "assetSetError": {
          "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."
          ],
          "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"
          ],
          "description": "The reasons for the asset set error",
          "type": "string"
        },
        "conversionUploadError": {
          "description": "The reasons for the conversion upload error",
          "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."
          ],
          "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"
          ]
        },
        "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"
        },
        "adGroupBidModifierError": {
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CRITERION_ID_NOT_SUPPORTED",
            "CANNOT_OVERRIDE_OPTED_OUT_CAMPAIGN_CRITERION_BID_MODIFIER"
          ],
          "description": "The reasons for the ad group bid modifier error",
          "type": "string"
        },
        "benchmarksError": {
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MAX_QUERY_COMPLEXITY_EXCEEDED"
          ],
          "description": "The reasons for the Benchmarks error.",
          "type": "string"
        },
        "policyFindingError": {
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "POLICY_FINDING",
            "POLICY_TOPIC_NOT_FOUND"
          ],
          "description": "The reasons for the policy finding error.",
          "type": "string"
        },
        "keywordPlanError": {
          "description": "The reason for keyword plan error.",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "contextError": {
          "description": "The reasons for the context error",
          "type": "string",
          "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"
          ]
        },
        "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.",
            "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 Search Ads 360 account. Create a new account, or add the Google account to an existing Search Ads 360 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 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 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."
          ],
          "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"
          ],
          "description": "Indicates failure to properly authenticate user.",
          "type": "string"
        },
        "assetGenerationError": {
          "description": "The reasons for the GenAI asset generation error.",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_LOGIN_CUSTOMER_ID",
            "INVALID_LINKED_CUSTOMER_ID"
          ],
          "description": "The reasons for the header error.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V23Errors__ErrorCode"
    },
    "GoogleAdsSearchads360V0Resources__AdGroupCriterionEffectiveLabel": {
      "description": "A relationship between an ad group criterion and an effective label. An effective label is a label inherited or directly assigned to this ad group criterion.",
      "type": "object",
      "properties": {
        "resourceName": {
          "description": "Immutable. The resource name of the ad group criterion effective label. Ad group criterion effective label resource names have the form: `customers/{owner_customer_id}/adGroupCriterionEffectiveLabels/{ad_group_id}~{criterion_id}~{label_id}`",
          "type": "string"
        },
        "label": {
          "description": "Immutable. The effective label assigned to the ad group criterion.",
          "type": "string"
        },
        "adGroupCriterion": {
          "description": "Immutable. The ad group criterion to which the effective label is attached.",
          "type": "string"
        },
        "ownerCustomerId": {
          "description": "Output only. The ID of the Customer which owns the effective label.",
          "readOnly": true,
          "type": "string",
          "format": "int64"
        }
      },
      "id": "GoogleAdsSearchads360V0Resources__AdGroupCriterionEffectiveLabel"
    },
    "GoogleAdsSearchads360V0Resources__AssetGroupSignal": {
      "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.",
      "type": "object",
      "properties": {
        "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"
        },
        "assetGroup": {
          "description": "Immutable. The asset group which this asset group signal belongs to.",
          "type": "string"
        },
        "audience": {
          "description": "Immutable. The audience signal to be used by the performance max campaign.",
          "$ref": "GoogleAdsSearchads360V0Common__AudienceInfo"
        }
      },
      "id": "GoogleAdsSearchads360V0Resources__AssetGroupSignal"
    },
    "GoogleAdsSearchads360V0Resources__AccessibleBiddingStrategy": {
      "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.",
      "type": "object",
      "properties": {
        "targetSpend": {
          "description": "Output only. A bid strategy that sets your bids to help get as many clicks as possible within your budget.",
          "readOnly": true,
          "$ref": "GoogleAdsSearchads360V0Resources_AccessibleBiddingStrategy_TargetSpend"
        },
        "id": {
          "description": "Output only. The ID of the bidding strategy.",
          "readOnly": true,
          "type": "string",
          "format": "int64"
        },
        "resourceName": {
          "description": "Output only. The resource name of the accessible bidding strategy. AccessibleBiddingStrategy resource names have the form: `customers/{customer_id}/accessibleBiddingStrategies/{bidding_strategy_id}`",
          "readOnly": true,
          "type": "string"
        },
        "ownerCustomerId": {
          "format": "int64",
          "description": "Output only. The ID of the Customer which owns the bidding strategy.",
          "readOnly": true,
          "type": "string"
        },
        "ownerDescriptiveName": {
          "description": "Output only. descriptive_name of the Customer which owns the bidding strategy.",
          "readOnly": true,
          "type": "string"
        },
        "maximizeConversions": {
          "description": "Output only. An automated bidding strategy to help get the most conversions for your campaigns while spending your budget.",
          "readOnly": true,
          "$ref": "GoogleAdsSearchads360V0Resources_AccessibleBiddingStrategy_MaximizeConversions"
        },
        "targetRoas": {
          "description": "Output only. A bidding strategy that helps you maximize revenue while averaging a specific target Return On Ad Spend (ROAS).",
          "readOnly": true,
          "$ref": "GoogleAdsSearchads360V0Resources_AccessibleBiddingStrategy_TargetRoas"
        },
        "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.",
          "readOnly": true,
          "$ref": "GoogleAdsSearchads360V0Resources_AccessibleBiddingStrategy_TargetCpa"
        },
        "type": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The type of the bidding strategy.",
          "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.",
            "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 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.",
            "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "COMMISSION",
            "ENHANCED_CPC",
            "INVALID",
            "MANUAL_CPA",
            "MANUAL_CPC",
            "MANUAL_CPM",
            "MANUAL_CPV",
            "MAXIMIZE_CONVERSIONS",
            "MAXIMIZE_CONVERSION_VALUE",
            "PAGE_ONE_PROMOTED",
            "PERCENT_CPC",
            "TARGET_CPA",
            "TARGET_CPM",
            "TARGET_IMPRESSION_SHARE",
            "TARGET_OUTRANK_SHARE",
            "TARGET_ROAS",
            "TARGET_SPEND"
          ]
        },
        "maximizeConversionValue": {
          "description": "Output only. An automated bidding strategy to help get the most conversion value for your campaigns while spending your budget.",
          "readOnly": true,
          "$ref": "GoogleAdsSearchads360V0Resources_AccessibleBiddingStrategy_MaximizeConversionValue"
        },
        "targetImpressionShare": {
          "description": "Output only. A bidding strategy that automatically optimizes towards a chosen percentage of impressions.",
          "readOnly": true,
          "$ref": "GoogleAdsSearchads360V0Resources_AccessibleBiddingStrategy_TargetImpressionShare"
        },
        "name": {
          "description": "Output only. The name of the bidding strategy.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V0Resources__AccessibleBiddingStrategy"
    },
    "GoogleAdsSearchads360V0Resources__ProductBiddingCategoryConstant": {
      "description": "A Product Bidding Category.",
      "type": "object",
      "properties": {
        "id": {
          "description": "Output only. ID of the product bidding category. This ID is equivalent to the google_product_category ID as described in this article: https://support.google.com/merchants/answer/6324436.",
          "readOnly": true,
          "type": "string",
          "format": "int64"
        },
        "countryCode": {
          "description": "Output only. Two-letter upper-case country code of the product bidding category.",
          "readOnly": true,
          "type": "string"
        },
        "languageCode": {
          "description": "Output only. Language code of the product bidding category.",
          "readOnly": true,
          "type": "string"
        },
        "resourceName": {
          "description": "Output only. The resource name of the product bidding category. Product bidding category resource names have the form: `productBiddingCategoryConstants/{country_code}~{level}~{id}`",
          "readOnly": true,
          "type": "string"
        },
        "productBiddingCategoryConstantParent": {
          "description": "Output only. Resource name of the parent product bidding category.",
          "readOnly": true,
          "type": "string"
        },
        "level": {
          "readOnly": true,
          "type": "string",
          "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": "Output only. Level of the product bidding category."
        },
        "status": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The category is active and can be used for bidding.",
            "The category is obsolete. Used only for reporting purposes."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ACTIVE",
            "OBSOLETE"
          ],
          "description": "Output only. Status of the product bidding category.",
          "readOnly": true,
          "type": "string"
        },
        "localizedName": {
          "description": "Output only. Display value of the product bidding category localized according to language_code.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V0Resources__ProductBiddingCategoryConstant"
    },
    "GoogleAdsSearchads360V0Resources__UserList": {
      "description": "A user list. This is a list of users a customer may target. The unique key of a user list consists of the following fields: `id`. Note that the `name` must also be unique for user lists owned by a given customer, except in some cases where `access_reason` is set to `SHARED`. Violating the unique name constraint produces error: `UserListError.INVALID_NAME`.",
      "type": "object",
      "properties": {
        "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"
        },
        "name": {
          "description": "Name of this user list. Unique per user list, except in some cases where a user list of the same name has `access_reason` set to `SHARED`.",
          "type": "string"
        },
        "id": {
          "description": "Output only. Id of the user list.",
          "readOnly": true,
          "type": "string",
          "format": "int64"
        },
        "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "REMARKETING",
            "LOGICAL",
            "EXTERNAL_REMARKETING",
            "RULE_BASED",
            "SIMILAR",
            "CRM_BASED"
          ],
          "description": "Output only. Type of this list. This field is read-only.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V0Resources__UserList"
    },
    "GoogleAdsSearchads360V0Common__SearchAds360ProductAdInfo": {
      "description": "A Search Ads 360 product ad.",
      "type": "object",
      "properties": {},
      "id": "GoogleAdsSearchads360V0Common__SearchAds360ProductAdInfo"
    },
    "GoogleAdsSearchads360V0Resources__LocationView": {
      "id": "GoogleAdsSearchads360V0Resources__LocationView",
      "description": "A location view summarizes the performance of campaigns by a Location criterion.",
      "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}`",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Common_PolicyTopicEvidence_WebsiteList": {
      "id": "GoogleAdsSearchads360V23Common_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"
          }
        }
      }
    },
    "GoogleAdsSearchads360V0Resources__CustomerManagerLink": {
      "id": "GoogleAdsSearchads360V0Resources__CustomerManagerLink",
      "description": "Represents customer-manager link relationship.",
      "type": "object",
      "properties": {
        "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"
        },
        "managerCustomer": {
          "description": "Output only. The manager customer linked to the customer.",
          "readOnly": true,
          "type": "string"
        },
        "status": {
          "description": "Status of the link between the customer and the manager.",
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ACTIVE",
            "INACTIVE",
            "PENDING",
            "REFUSED",
            "CANCELED"
          ]
        },
        "startTime": {
          "description": "Output only. The timestamp when the CustomerManagerLink was created. The timestamp is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss\" format.",
          "readOnly": true,
          "type": "string"
        },
        "managerLinkId": {
          "description": "Output only. ID of the customer-manager link. This field is read only.",
          "readOnly": true,
          "type": "string",
          "format": "int64"
        }
      }
    },
    "GoogleAdsSearchads360V0Resources__GenderView": {
      "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.",
      "type": "object",
      "properties": {
        "resourceName": {
          "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}`",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V0Resources__GenderView"
    },
    "GoogleAdsSearchads360V0Resources__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 Search Ads 360 UI, you can query impressions and clicks of products appearing in ads by selecting a column from \"Product attributes\" in the report editor. For example, selecting the \"Brand\" column is equivalent to selecting `segments.product_brand`.",
      "type": "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"
        }
      },
      "id": "GoogleAdsSearchads360V0Resources__ShoppingPerformanceView"
    },
    "GoogleAdsSearchads360V0Resources__CampaignLabel": {
      "id": "GoogleAdsSearchads360V0Resources__CampaignLabel",
      "description": "Represents a relationship between a campaign and a label.",
      "type": "object",
      "properties": {
        "resourceName": {
          "description": "Immutable. Name of the resource. Campaign label resource names have the form: `customers/{owner_customer_id}/campaignLabels/{campaign_id}~{label_id}`",
          "type": "string"
        },
        "label": {
          "description": "Immutable. The label assigned to the campaign.",
          "type": "string"
        },
        "campaign": {
          "description": "Immutable. The campaign to which the label is attached.",
          "type": "string"
        },
        "ownerCustomerId": {
          "description": "Output only. The ID of the Customer which owns the label.",
          "readOnly": true,
          "type": "string",
          "format": "int64"
        }
      }
    },
    "GoogleAdsSearchads360V0Errors__ErrorDetails": {
      "id": "GoogleAdsSearchads360V0Errors__ErrorDetails",
      "description": "Additional error details.",
      "type": "object",
      "properties": {
        "quotaErrorDetails": {
          "description": "Details on the quota error, including the scope (account or developer), the rate bucket name and the retry delay.",
          "$ref": "GoogleAdsSearchads360V0Errors__QuotaErrorDetails"
        },
        "unpublishedErrorCode": {
          "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.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V0Resources_AccessibleBiddingStrategy_TargetCpa": {
      "id": "GoogleAdsSearchads360V0Resources_AccessibleBiddingStrategy_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.",
      "type": "object",
      "properties": {
        "targetCpaMicros": {
          "format": "int64",
          "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.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Errors_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": {
          "format": "int32",
          "description": "If field_name is a repeated field, this is the element that failed",
          "type": "integer"
        }
      },
      "id": "GoogleAdsSearchads360V23Errors_ErrorLocation_FieldPathElement"
    },
    "GoogleAdsSearchads360V0Resources__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.",
      "type": "object",
      "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}`",
          "readOnly": true,
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "descriptiveName": {
          "description": "Output only. Descriptive name for the client. Read only.",
          "readOnly": true,
          "type": "string"
        },
        "currencyCode": {
          "description": "Output only. Currency code (for example, 'USD', 'EUR') for the client. Read only.",
          "readOnly": true,
          "type": "string"
        },
        "testAccount": {
          "description": "Output only. Identifies if the client is a test account. Read only.",
          "readOnly": true,
          "type": "boolean"
        },
        "clientCustomer": {
          "description": "Output only. The resource name of the client-customer which is linked to the given customer. Read only.",
          "readOnly": true,
          "type": "string"
        },
        "level": {
          "description": "Output only. Distance between given customer and client. For self link, the level value will be 0. Read only.",
          "readOnly": true,
          "type": "string",
          "format": "int64"
        },
        "status": {
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "CANCELED",
            "SUSPENDED",
            "CLOSED"
          ],
          "readOnly": true,
          "type": "string"
        },
        "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": {
          "format": "int64",
          "description": "Output only. The ID of the client customer. Read only.",
          "readOnly": true,
          "type": "string"
        },
        "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"
        },
        "hidden": {
          "description": "Output only. Specifies whether this is a hidden account. Read only.",
          "readOnly": true,
          "type": "boolean"
        },
        "manager": {
          "description": "Output only. Identifies if the client is a manager. Read only.",
          "readOnly": true,
          "type": "boolean"
        }
      },
      "id": "GoogleAdsSearchads360V0Resources__CustomerClient"
    },
    "GoogleAdsSearchads360V0Errors__ErrorCode": {
      "id": "GoogleAdsSearchads360V0Errors__ErrorCode",
      "description": "The error reason represented by type and enum.",
      "type": "object",
      "properties": {
        "queryError": {
          "description": "An error with the query",
          "type": "string",
          "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",
            "A 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.",
            "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."
          ],
          "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",
            "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"
          ]
        },
        "quotaError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Too many requests.",
            "Too many requests in a short amount of time."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "RESOURCE_EXHAUSTED",
            "RESOURCE_TEMPORARILY_EXHAUSTED"
          ],
          "description": "An error with the amount of quota remaining.",
          "type": "string"
        },
        "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"
        },
        "customColumnError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The custom column has not been found.",
            "The custom column is not available."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CUSTOM_COLUMN_NOT_FOUND",
            "CUSTOM_COLUMN_NOT_AVAILABLE"
          ],
          "description": "The reasons for the custom column error",
          "type": "string"
        },
        "requestError": {
          "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.",
            "Product name is invalid.",
            "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.",
            "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 login-customer-id parameter is required for this request.",
            "Either login-customer-id or linked-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.",
            "The product associated with the request is not supported for the current request."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "RESOURCE_NAME_MISSING",
            "RESOURCE_NAME_MALFORMED",
            "BAD_RESOURCE_ID",
            "INVALID_PRODUCT_NAME",
            "INVALID_CUSTOMER_ID",
            "OPERATION_REQUIRED",
            "RESOURCE_NOT_FOUND",
            "INVALID_PAGE_TOKEN",
            "EXPIRED_PAGE_TOKEN",
            "INVALID_PAGE_SIZE",
            "REQUIRED_FIELD_MISSING",
            "IMMUTABLE_FIELD",
            "TOO_MANY_MUTATE_OPERATIONS",
            "CANNOT_BE_EXECUTED_BY_MANAGER_ACCOUNT",
            "CANNOT_MODIFY_FOREIGN_FIELD",
            "INVALID_ENUM_VALUE",
            "LOGIN_CUSTOMER_ID_PARAMETER_MISSING",
            "LOGIN_OR_LINKED_CUSTOMER_ID_PARAMETER_REQUIRED",
            "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",
            "PRODUCT_NOT_SUPPORTED"
          ],
          "description": "An error caused by the request",
          "type": "string"
        },
        "authorizationError": {
          "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/search-ads/reporting/concepts/call-structure#login_customer_id_header",
            "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: https://developers.google.com/terms",
            "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 allowed in Search Ads 360 API. It belongs to another ads system.",
            "The developer does not have access to the metrics queried."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "USER_PERMISSION_DENIED",
            "PROJECT_DISABLED",
            "AUTHORIZATION_ERROR",
            "ACTION_NOT_PERMITTED",
            "INCOMPLETE_SIGNUP",
            "CUSTOMER_NOT_ENABLED",
            "MISSING_TOS",
            "INVALID_LOGIN_CUSTOMER_ID_SERVING_CUSTOMER_ID_COMBINATION",
            "SERVICE_ACCESS_DENIED",
            "ACCESS_DENIED_FOR_ACCOUNT_TYPE",
            "METRIC_ACCESS_DENIED"
          ],
          "description": "An error encountered when trying to authorize a user.",
          "type": "string"
        },
        "distinctError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Duplicate element.",
            "Duplicate type."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DUPLICATE_ELEMENT",
            "DUPLICATE_TYPE"
          ],
          "description": "The reasons for the distinct error",
          "type": "string"
        },
        "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.",
            "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 Search Ads 360 account. Create a new account, or add the Google account to an existing Search Ads 360 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.",
            "User ID in the header is not a valid ID.",
            "An account administrator changed this account's authentication settings. To access this account, enable 2-Step Verification in your Google account at https://www.google.com/landing/2step.",
            "An account administrator changed this account's authentication settings. To access this account, enable Advanced Protection in your Google account at https://landing.google.com/advancedprotection."
          ],
          "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",
            "USER_ID_INVALID",
            "TWO_STEP_VERIFICATION_NOT_ENROLLED",
            "ADVANCED_PROTECTION_NOT_ENROLLED"
          ],
          "description": "Indicates failure to properly authenticate user.",
          "type": "string"
        },
        "sizeLimitError": {
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "REQUEST_SIZE_LIMIT_EXCEEDED",
            "RESPONSE_SIZE_LIMIT_EXCEEDED"
          ],
          "description": "The reasons for the size limit error",
          "type": "string"
        },
        "headerError": {
          "description": "The reasons for the header error.",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The user selected customer ID could not be validated.",
            "The login customer ID could not be validated."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_USER_SELECTED_CUSTOMER_ID",
            "INVALID_LOGIN_CUSTOMER_ID"
          ]
        },
        "internalError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "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.",
            "API encountered an unexpected transient error. The user should retry their request in these cases.",
            "The request took longer than a deadline."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INTERNAL_ERROR",
            "ERROR_CODE_NOT_PUBLISHED",
            "TRANSIENT_ERROR",
            "DEADLINE_EXCEEDED"
          ],
          "description": "An unexpected server-side error.",
          "type": "string"
        },
        "dateError": {
          "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."
          ],
          "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"
          ],
          "description": "The reasons for the date error",
          "type": "string"
        },
        "conversionCustomVariableError": {
          "description": "The reasons for the conversion custom variable error",
          "type": "string",
          "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.",
            "The conversion custom variable is not found.",
            "The conversion custom variable is not available for use.",
            "The conversion custom variable requested is incompatible with the current request.",
            "The conversion custom variable requested is not of type METRIC.",
            "The conversion custom variable's cardinality exceeds the segmentation limit.",
            "The conversion custom variable requested is not of type DIMENSION.",
            "The conversion custom variable requested is incompatible with the selected resource."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DUPLICATE_NAME",
            "DUPLICATE_TAG",
            "RESERVED_TAG",
            "NOT_FOUND",
            "NOT_AVAILABLE",
            "INCOMPATIBLE_TYPE",
            "INVALID_METRIC",
            "EXCEEDS_CARDINALITY_LIMIT",
            "INVALID_DIMENSION",
            "INCOMPATIBLE_WITH_SELECTED_RESOURCE"
          ]
        },
        "invalidParameterError": {
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The specified currency code is invalid."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_CURRENCY_CODE"
          ],
          "description": "The reasons for invalid parameter errors.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V0Resources_ConversionAction_AttributionModelSettings": {
      "id": "GoogleAdsSearchads360V0Resources_ConversionAction_AttributionModelSettings",
      "description": "Settings related to this conversion action's attribution model.",
      "type": "object",
      "properties": {
        "dataDrivenModelStatus": {
          "readOnly": true,
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AVAILABLE",
            "STALE",
            "EXPIRED",
            "NEVER_GENERATED"
          ],
          "description": "Output only. The status of the data-driven attribution model for the conversion action."
        },
        "attributionModel": {
          "description": "The attribution model type of this conversion action.",
          "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"
          ]
        }
      }
    },
    "GoogleAdsSearchads360V0Errors__QuotaErrorDetails": {
      "description": "Additional quota error details when there is QuotaError.",
      "type": "object",
      "properties": {
        "rateName": {
          "description": "The high level description of the quota bucket. Examples are \"Get requests for standard access\" or \"Requests per account\".",
          "type": "string"
        },
        "rateScope": {
          "enumDescriptions": [
            "Unspecified enum",
            "Used for return value only. Represents value unknown in this version.",
            "Per customer account quota",
            "Per project quota"
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ACCOUNT",
            "DEVELOPER"
          ],
          "description": "The rate scope of the quota limit.",
          "type": "string"
        },
        "retryDelay": {
          "format": "google-duration",
          "description": "Backoff period that customers should wait before sending next request.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V0Errors__QuotaErrorDetails"
    },
    "GoogleAdsSearchads360V0Errors__SearchAds360Failure": {
      "description": "Describes how a Search Ads 360 API call failed. It's returned inside google.rpc.Status.details when a call fails.",
      "type": "object",
      "properties": {
        "errors": {
          "description": "The list of errors that occurred.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V0Errors__SearchAds360Error"
          }
        },
        "requestId": {
          "description": "The unique ID of the request that is used for debugging purposes.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V0Errors__SearchAds360Failure"
    },
    "GoogleAdsSearchads360V0Services__RawEventConversionDimensionHeader": {
      "description": "Message for raw event conversion dimension header.",
      "type": "object",
      "properties": {
        "id": {
          "description": "The conversion custom variable ID.",
          "type": "string",
          "format": "int64"
        },
        "name": {
          "description": "The user defined name of the raw event dimension.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V0Services__RawEventConversionDimensionHeader"
    },
    "GoogleAdsSearchads360V23Resources_BatchJob_BatchJobMetadata": {
      "description": "Additional information about the batch job. This message is also used as metadata returned in batch job Long Running Operations.",
      "type": "object",
      "properties": {
        "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"
        },
        "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.",
          "readOnly": true,
          "type": "number",
          "format": "double"
        },
        "executedOperationCount": {
          "format": "int64",
          "description": "Output only. The number of mutate operations executed by the batch job. Present only if the job has started running.",
          "readOnly": true,
          "type": "string"
        },
        "operationCount": {
          "description": "Output only. The number of mutate operations in the batch job.",
          "readOnly": true,
          "type": "string",
          "format": "int64"
        },
        "startDateTime": {
          "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\"",
          "readOnly": true,
          "type": "string"
        },
        "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\"",
          "readOnly": true,
          "type": "string"
        },
        "completionDateTime": {
          "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\"",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V23Resources_BatchJob_BatchJobMetadata"
    },
    "GoogleAdsSearchads360V0Resources__Label": {
      "description": "A label.",
      "type": "object",
      "properties": {
        "status": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Label is enabled.",
            "Label is removed."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "description": "Output only. Status of the label. Read only.",
          "readOnly": true,
          "type": "string"
        },
        "id": {
          "format": "int64",
          "description": "Output only. ID of the label. Read only.",
          "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"
        },
        "textLabel": {
          "description": "A type of label displaying text on a colored background.",
          "$ref": "GoogleAdsSearchads360V0Common__TextLabel"
        },
        "resourceName": {
          "description": "Immutable. Name of the resource. Label resource names have the form: `customers/{owner_customer_id}/labels/{label_id}`",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V0Resources__Label"
    },
    "GoogleAdsSearchads360V23Errors__SearchAds360Failure": {
      "id": "GoogleAdsSearchads360V23Errors__SearchAds360Failure",
      "description": "Describes how a Search Ads 360 API call failed. It's returned inside google.rpc.Status.details when a call fails.",
      "type": "object",
      "properties": {
        "errors": {
          "items": {
            "$ref": "GoogleAdsSearchads360V23Errors__SearchAds360Error"
          },
          "description": "The list of errors that occurred.",
          "type": "array"
        },
        "requestId": {
          "description": "The unique ID of the request that is used for debugging purposes.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V0Resources__Campaign": {
      "description": "A campaign.",
      "type": "object",
      "properties": {
        "percentCpc": {
          "description": "Standard Percent Cpc bidding strategy where bids are a fraction of the advertised price for some good or service.",
          "$ref": "GoogleAdsSearchads360V0Common__PercentCpc"
        },
        "status": {
          "description": "The status of the campaign. When a new campaign is added, the status defaults to ENABLED.",
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "PAUSED",
            "REMOVED"
          ]
        },
        "dynamicSearchAdsSetting": {
          "description": "The setting for controlling Dynamic Search Ads (DSA).",
          "$ref": "GoogleAdsSearchads360V0Resources_Campaign_DynamicSearchAdsSetting"
        },
        "effectiveLabels": {
          "description": "Output only. The resource names of effective labels attached to this campaign. An effective label is a label inherited or directly assigned to this campaign.",
          "readOnly": true,
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "biddingStrategyType": {
          "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.",
          "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.",
            "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 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.",
            "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "COMMISSION",
            "ENHANCED_CPC",
            "INVALID",
            "MANUAL_CPA",
            "MANUAL_CPC",
            "MANUAL_CPM",
            "MANUAL_CPV",
            "MAXIMIZE_CONVERSIONS",
            "MAXIMIZE_CONVERSION_VALUE",
            "PAGE_ONE_PROMOTED",
            "PERCENT_CPC",
            "TARGET_CPA",
            "TARGET_CPM",
            "TARGET_IMPRESSION_SHARE",
            "TARGET_OUTRANK_SHARE",
            "TARGET_ROAS",
            "TARGET_SPEND"
          ],
          "readOnly": true,
          "type": "string"
        },
        "biddingStrategy": {
          "description": "The resource name of the portfolio bidding strategy used by the campaign.",
          "type": "string"
        },
        "targetCpm": {
          "description": "A bidding strategy that automatically optimizes cost per thousand impressions.",
          "$ref": "GoogleAdsSearchads360V0Common__TargetCpm"
        },
        "frequencyCaps": {
          "items": {
            "$ref": "GoogleAdsSearchads360V0Common__FrequencyCapEntry"
          },
          "description": "A list that limits how often each user will see this campaign's ads.",
          "type": "array"
        },
        "manualCpm": {
          "description": "Standard Manual CPM bidding strategy. Manual impression-based bidding where user pays per thousand impressions.",
          "$ref": "GoogleAdsSearchads360V0Common__ManualCpm"
        },
        "campaignBudget": {
          "description": "The resource name of the campaign budget of the campaign.",
          "type": "string"
        },
        "resourceName": {
          "description": "Immutable. The resource name of the campaign. Campaign resource names have the form: `customers/{customer_id}/campaigns/{campaign_id}`",
          "type": "string"
        },
        "realTimeBiddingSetting": {
          "description": "Settings for Real-Time Bidding, a feature only available for campaigns targeting the Ad Exchange network.",
          "$ref": "GoogleAdsSearchads360V0Common__RealTimeBiddingSetting"
        },
        "feedTypes": {
          "description": "Output only. Types of feeds that are attached directly to this campaign.",
          "readOnly": true,
          "type": "array",
          "items": {
            "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."
            ],
            "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"
            ]
          }
        },
        "startDate": {
          "description": "The date when campaign started in serving customer's timezone in YYYY-MM-DD format.",
          "type": "string"
        },
        "advertisingChannelType": {
          "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.",
          "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.",
            "Discovery campaigns.",
            "Travel campaigns.",
            "Social campaigns."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SEARCH",
            "DISPLAY",
            "SHOPPING",
            "HOTEL",
            "VIDEO",
            "MULTI_CHANNEL",
            "LOCAL",
            "SMART",
            "PERFORMANCE_MAX",
            "LOCAL_SERVICES",
            "DISCOVERY",
            "TRAVEL",
            "SOCIAL"
          ]
        },
        "geoTargetTypeSetting": {
          "description": "The setting for ads geotargeting.",
          "$ref": "GoogleAdsSearchads360V0Resources_Campaign_GeoTargetTypeSetting"
        },
        "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.",
          "$ref": "GoogleAdsSearchads360V0Common__TargetCpa"
        },
        "biddingStrategySystemStatus": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The system status of the campaign's bidding strategy.",
          "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."
          ],
          "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"
          ]
        },
        "servingStatus": {
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SERVING",
            "NONE",
            "ENDED",
            "PENDING",
            "SUSPENDED"
          ],
          "description": "Output only. The ad serving status of the campaign.",
          "readOnly": true,
          "type": "string"
        },
        "optimizationGoalSetting": {
          "description": "Optimization goal setting for this campaign, which includes a set of optimization goal types.",
          "$ref": "GoogleAdsSearchads360V0Resources_Campaign_OptimizationGoalSetting"
        },
        "targetSpend": {
          "description": "Standard Target Spend bidding strategy that automatically sets your bids to help get as many clicks as possible within your budget.",
          "$ref": "GoogleAdsSearchads360V0Common__TargetSpend"
        },
        "manualCpc": {
          "description": "Standard Manual CPC bidding strategy. Manual click-based bidding where user pays per click.",
          "$ref": "GoogleAdsSearchads360V0Common__ManualCpc"
        },
        "finalUrlSuffix": {
          "description": "Suffix used to append query parameters to landing pages that are served with parallel tracking.",
          "type": "string"
        },
        "urlCustomParameters": {
          "items": {
            "$ref": "GoogleAdsSearchads360V0Common__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"
        },
        "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.",
          "readOnly": true,
          "type": "string"
        },
        "adServingOptimizationStatus": {
          "description": "The ad serving optimization status of the campaign.",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "OPTIMIZE",
            "CONVERSION_OPTIMIZE",
            "ROTATE",
            "ROTATE_INDEFINITELY",
            "UNAVAILABLE"
          ]
        },
        "urlExpansionOptOut": {
          "description": "Represents opting out of URL expansion to more targeted URLs. If opted out (true), only the final URLs in the asset group or URLs specified in the advertiser's Google Merchant Center or business data feeds are targeted. If opted in (false), the entire domain will be targeted. This field can only be set for Performance Max campaigns, where the default value is false.",
          "type": "boolean"
        },
        "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.",
          "$ref": "GoogleAdsSearchads360V0Resources_Campaign_SelectiveOptimization"
        },
        "trackingSetting": {
          "description": "Output only. Campaign-level settings for tracking information.",
          "readOnly": true,
          "$ref": "GoogleAdsSearchads360V0Resources_Campaign_TrackingSetting"
        },
        "targetRoas": {
          "description": "Standard Target ROAS bidding strategy that automatically maximizes revenue while averaging a specific target return on ad spend (ROAS).",
          "$ref": "GoogleAdsSearchads360V0Common__TargetRoas"
        },
        "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.",
          "type": "array",
          "items": {
            "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 discovery carousel card.",
              "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",
              "DISCOVERY_CAROUSEL_CARD",
              "LONG_DESCRIPTION",
              "CALL_TO_ACTION"
            ]
          }
        },
        "targetImpressionShare": {
          "description": "Target Impression Share bidding strategy. An automated bidding strategy that sets bids to achieve a chosen percentage of impressions.",
          "$ref": "GoogleAdsSearchads360V0Common__TargetImpressionShare"
        },
        "advertisingChannelSubType": {
          "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 Outstream campaigns.",
            "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.",
            "Video reach campaign with Target Frequency bidding strategy.",
            "Travel Activities campaigns.",
            "Facebook tracking only social campaigns."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SEARCH_MOBILE_APP",
            "DISPLAY_MOBILE_APP",
            "SEARCH_EXPRESS",
            "DISPLAY_EXPRESS",
            "SHOPPING_SMART_ADS",
            "DISPLAY_GMAIL_AD",
            "DISPLAY_SMART_CAMPAIGN",
            "VIDEO_OUTSTREAM",
            "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",
            "SOCIAL_FACEBOOK_TRACKING_ONLY"
          ],
          "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.",
          "type": "string"
        },
        "trackingUrlTemplate": {
          "description": "The URL template for constructing a tracking URL.",
          "type": "string"
        },
        "engineId": {
          "description": "Output only. ID of the campaign in the external engine account. This field is for non-Google Ads account only, for example, Yahoo Japan, Microsoft, Baidu etc. For Google Ads entity, use \"campaign.id\" instead.",
          "readOnly": true,
          "type": "string"
        },
        "shoppingSetting": {
          "description": "The setting for controlling Shopping campaigns.",
          "$ref": "GoogleAdsSearchads360V0Resources_Campaign_ShoppingSetting"
        },
        "createTime": {
          "description": "Output only. The timestamp when this campaign was created. The timestamp is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss\" format. create_time will be deprecated in v1. Use creation_time instead.",
          "readOnly": true,
          "type": "string"
        },
        "maximizeConversions": {
          "description": "Standard Maximize Conversions bidding strategy that automatically maximizes number of conversions while spending your budget.",
          "$ref": "GoogleAdsSearchads360V0Common__MaximizeConversions"
        },
        "lastModifiedTime": {
          "description": "Output only. The datetime when this campaign was last modified. The datetime is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss.ssssss\" format.",
          "readOnly": true,
          "type": "string"
        },
        "maximizeConversionValue": {
          "description": "Standard Maximize Conversion Value bidding strategy that automatically sets bids to maximize revenue while spending your budget.",
          "$ref": "GoogleAdsSearchads360V0Common__MaximizeConversionValue"
        },
        "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"
        },
        "labels": {
          "items": {
            "type": "string"
          },
          "description": "Output only. The resource names of labels attached to this campaign.",
          "readOnly": true,
          "type": "array"
        },
        "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": "GoogleAdsSearchads360V0Common__ManualCpa"
        },
        "creationTime": {
          "description": "Output only. The timestamp when this campaign was created. The timestamp is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss\" format.",
          "readOnly": true,
          "type": "string"
        },
        "id": {
          "format": "int64",
          "description": "Output only. The ID of the campaign.",
          "readOnly": true,
          "type": "string"
        },
        "endDate": {
          "description": "The last day of the campaign in serving customer's timezone in YYYY-MM-DD format. On create, defaults to 2037-12-30, which means the campaign will run indefinitely. To set an existing campaign to run indefinitely, set this field to 2037-12-30.",
          "type": "string"
        },
        "networkSettings": {
          "description": "The network settings for the campaign.",
          "$ref": "GoogleAdsSearchads360V0Resources_Campaign_NetworkSettings"
        }
      },
      "id": "GoogleAdsSearchads360V0Resources__Campaign"
    },
    "GoogleAdsSearchads360V0Resources__AgeRangeView": {
      "id": "GoogleAdsSearchads360V0Resources__AgeRangeView",
      "description": "An age range view.",
      "type": "object",
      "properties": {
        "resourceName": {
          "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}`",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Common_PolicyTopicConstraint_CountryConstraintList": {
      "description": "A list of countries where a resource's serving is constrained.",
      "type": "object",
      "properties": {
        "countries": {
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common_PolicyTopicConstraint_CountryConstraint"
          },
          "description": "Countries in which serving is restricted.",
          "type": "array"
        },
        "totalTargetedCountries": {
          "description": "Total number of countries targeted by the resource.",
          "type": "integer",
          "format": "int32"
        }
      },
      "id": "GoogleAdsSearchads360V23Common_PolicyTopicConstraint_CountryConstraintList"
    },
    "GoogleAdsSearchads360V0Resources__ConversionCustomVariable": {
      "description": "A conversion custom variable. See \"About custom Floodlight metrics and dimensions in the new Search Ads 360\" at https://support.google.com/sa360/answer/13567857",
      "type": "object",
      "properties": {
        "id": {
          "format": "int64",
          "description": "Output only. The ID of the conversion custom variable.",
          "readOnly": true,
          "type": "string"
        },
        "cardinality": {
          "description": "Output only. Cardinality of the conversion custom variable.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The conversion custom variable has cardinality below all limits. The variable can be used for segmentation, and stats can accrue for new values if the variable is enabled.",
            "The conversion custom variable has cardinality that exceeds the segmentation limit, but does not exceed the stats limit. Segmentation will be disabled, but stats can accrue for new values if the variable is enabled.",
            "The conversion custom variable has exceeded the segmentation limits, and is approaching the stats limits (\u003e 90%). Segmentation will be disabled, but stats can accrue for new values if the variable is enabled.",
            "The conversion custom variable has exceeded both the segmentation limits and stats limits. Segmentation will be disabled, and stats for enabled variables can accrue only if the existing values do not increase the cardinality of the variable any further."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BELOW_ALL_LIMITS",
            "EXCEEDS_SEGMENTATION_LIMIT_BUT_NOT_STATS_LIMIT",
            "APPROACHES_STATS_LIMIT",
            "EXCEEDS_STATS_LIMIT"
          ],
          "readOnly": true,
          "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"
        },
        "tag": {
          "description": "Required. Immutable. The tag of the conversion custom variable. Tag should be unique and consist of a \"u\" character directly followed with a number less than ormequal to 100. For example: \"u4\".",
          "type": "string"
        },
        "status": {
          "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"
          ],
          "description": "The status of the conversion custom variable for conversion event accrual.",
          "type": "string"
        },
        "floodlightConversionCustomVariableInfo": {
          "description": "Output only. Fields for Search Ads 360 floodlight conversion custom variables.",
          "readOnly": true,
          "$ref": "GoogleAdsSearchads360V0Resources_ConversionCustomVariable_FloodlightConversionCustomVariableInfo"
        },
        "customColumnIds": {
          "description": "Output only. The IDs of custom columns that use this conversion custom variable.",
          "readOnly": true,
          "type": "array",
          "items": {
            "type": "string",
            "format": "int64"
          }
        },
        "family": {
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The standard conversion custom variable. Customers are required to activate before use.",
            "The conversion custom variable imported from a custom floodlight variable."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "STANDARD",
            "FLOODLIGHT"
          ],
          "description": "Output only. Family of the conversion custom variable."
        },
        "ownerCustomer": {
          "description": "Output only. The resource name of the customer that owns the conversion custom variable.",
          "readOnly": true,
          "type": "string"
        },
        "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"
        }
      },
      "id": "GoogleAdsSearchads360V0Resources__ConversionCustomVariable"
    },
    "GoogleAdsSearchads360V0Common__UserListInfo": {
      "description": "A User List criterion. Represents a user list that is defined by the advertiser to be targeted.",
      "type": "object",
      "properties": {
        "userList": {
          "description": "The User List resource name.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V0Common__UserListInfo"
    },
    "GoogleAdsSearchads360V23Errors__ErrorDetails": {
      "description": "Additional error details.",
      "type": "object",
      "properties": {
        "quotaErrorDetails": {
          "description": "Details on the quota error, including the scope (account or developer), the rate bucket name and the retry delay.",
          "$ref": "GoogleAdsSearchads360V23Errors__QuotaErrorDetails"
        },
        "resourceCountDetails": {
          "description": "Details for a resource count limit exceeded error.",
          "$ref": "GoogleAdsSearchads360V23Errors__ResourceCountDetails"
        },
        "policyViolationDetails": {
          "description": "Describes an ad policy violation.",
          "$ref": "GoogleAdsSearchads360V23Errors__PolicyViolationDetails"
        },
        "policyFindingDetails": {
          "description": "Describes policy violation findings.",
          "$ref": "GoogleAdsSearchads360V23Errors__PolicyFindingDetails"
        },
        "budgetPerDayMinimumErrorDetails": {
          "description": "Details for a budget below per-day minimum error.",
          "$ref": "GoogleAdsSearchads360V23Errors__BudgetPerDayMinimumErrorDetails"
        },
        "unpublishedErrorCode": {
          "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.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V23Errors__ErrorDetails"
    },
    "GoogleAdsSearchads360V0Resources__Audience": {
      "id": "GoogleAdsSearchads360V0Resources__Audience",
      "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.",
      "type": "object",
      "properties": {
        "description": {
          "description": "Description of this audience.",
          "type": "string"
        },
        "id": {
          "format": "int64",
          "description": "Output only. ID of the audience.",
          "readOnly": true,
          "type": "string"
        },
        "name": {
          "description": "Required. Name of the audience. It should be unique across all audiences. It must have a minimum length of 1 and maximum length of 255.",
          "type": "string"
        },
        "resourceName": {
          "description": "Immutable. The resource name of the audience. Audience names have the form: `customers/{customer_id}/audiences/{audience_id}`",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V0Common__LanguageInfo": {
      "description": "A language criterion.",
      "type": "object",
      "properties": {
        "languageConstant": {
          "description": "The language constant resource name.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V0Common__LanguageInfo"
    },
    "GoogleAdsSearchads360V0Resources_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).",
      "type": "object",
      "properties": {
        "location": {
          "description": "Output only. 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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ANYWHERE_ON_PAGE",
            "TOP_OF_PAGE",
            "ABSOLUTE_TOP_OF_PAGE"
          ],
          "readOnly": true,
          "type": "string"
        },
        "locationFractionMicros": {
          "description": "The chosen fraction of ads to be shown in the targeted location in micros. For example, 1% equals 10,000.",
          "type": "string",
          "format": "int64"
        },
        "cpcBidCeilingMicros": {
          "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.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V0Resources_AccessibleBiddingStrategy_TargetImpressionShare"
    },
    "GoogleAdsSearchads360V0Errors__ErrorLocation": {
      "description": "Describes the part of the request proto that caused the error.",
      "type": "object",
      "properties": {
        "fieldPathElements": {
          "items": {
            "$ref": "GoogleAdsSearchads360V0Errors_ErrorLocation_FieldPathElement"
          },
          "description": "A field path that indicates which field was invalid in the request.",
          "type": "array"
        }
      },
      "id": "GoogleAdsSearchads360V0Errors__ErrorLocation"
    },
    "GoogleAdsSearchads360V23Common__PolicyViolationKey": {
      "id": "GoogleAdsSearchads360V23Common__PolicyViolationKey",
      "description": "Key of the violation. The key is used for referring to a violation when filing an exemption request.",
      "type": "object",
      "properties": {
        "policyName": {
          "description": "Unique ID of the violated policy.",
          "type": "string"
        },
        "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"
        }
      }
    },
    "GoogleAdsSearchads360V0Resources_ListingGroupFilterDimension_ProductCustomAttribute": {
      "id": "GoogleAdsSearchads360V0Resources_ListingGroupFilterDimension_ProductCustomAttribute",
      "description": "Custom attribute of a product offer.",
      "type": "object",
      "properties": {
        "value": {
          "description": "String value of the product custom attribute.",
          "type": "string"
        },
        "index": {
          "description": "Indicates the index of the custom attribute.",
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INDEX0",
            "INDEX1",
            "INDEX2",
            "INDEX3",
            "INDEX4"
          ]
        }
      }
    },
    "GoogleAdsSearchads360V0Resources__AdGroupLabel": {
      "id": "GoogleAdsSearchads360V0Resources__AdGroupLabel",
      "description": "A relationship between an ad group and a label.",
      "type": "object",
      "properties": {
        "resourceName": {
          "description": "Immutable. The resource name of the ad group label. Ad group label resource names have the form: `customers/{owner_customer_id}/adGroupLabels/{ad_group_id}~{label_id}`",
          "type": "string"
        },
        "adGroup": {
          "description": "Immutable. The ad group to which the label is attached.",
          "type": "string"
        },
        "label": {
          "description": "Immutable. The label assigned to the ad group.",
          "type": "string"
        },
        "ownerCustomerId": {
          "format": "int64",
          "description": "Output only. The ID of the Customer which owns the label.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V0Resources__CampaignAssetSet": {
      "description": "CampaignAssetSet is the linkage between a campaign and an asset set. Adding a CampaignAssetSet links an asset set with a campaign.",
      "type": "object",
      "properties": {
        "assetSet": {
          "description": "Immutable. The asset set which is linked to the campaign.",
          "type": "string"
        },
        "status": {
          "description": "Output only. The status of the campaign 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 linkage between asset set and its container is enabled.",
            "The linkage between asset set and its container is removed."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "readOnly": true,
          "type": "string"
        },
        "campaign": {
          "description": "Immutable. The campaign to which this asset set is linked.",
          "type": "string"
        },
        "resourceName": {
          "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}`",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V0Resources__CampaignAssetSet"
    },
    "GoogleAdsSearchads360V23Common_PolicyTopicEvidence_DestinationTextList": {
      "description": "A list of strings found in a destination page that caused a policy finding.",
      "type": "object",
      "properties": {
        "destinationTexts": {
          "description": "List of text found in the resource's destination page.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "id": "GoogleAdsSearchads360V23Common_PolicyTopicEvidence_DestinationTextList"
    },
    "GoogleAdsSearchads360V0Errors__SearchAds360Error": {
      "id": "GoogleAdsSearchads360V0Errors__SearchAds360Error",
      "description": "Search Ads 360-specific error.",
      "type": "object",
      "properties": {
        "errorCode": {
          "description": "An enum value that indicates which error occurred.",
          "$ref": "GoogleAdsSearchads360V0Errors__ErrorCode"
        },
        "trigger": {
          "description": "The value that triggered the error.",
          "$ref": "GoogleAdsSearchads360V0Common__Value"
        },
        "details": {
          "description": "Additional error details, which are returned by certain error codes. Most error codes do not include details.",
          "$ref": "GoogleAdsSearchads360V0Errors__ErrorDetails"
        },
        "message": {
          "description": "A human-readable description of the error.",
          "type": "string"
        },
        "location": {
          "description": "Describes the part of the request proto that caused the error.",
          "$ref": "GoogleAdsSearchads360V0Errors__ErrorLocation"
        }
      }
    },
    "GoogleAdsSearchads360V0Common__WebpageInfo": {
      "description": "Represents a criterion for targeting webpages of an advertiser's website.",
      "type": "object",
      "properties": {
        "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"
        },
        "conditions": {
          "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.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V0Common__WebpageConditionInfo"
          }
        },
        "coveragePercentage": {
          "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.",
          "type": "number",
          "format": "double"
        }
      },
      "id": "GoogleAdsSearchads360V0Common__WebpageInfo"
    },
    "GoogleAdsSearchads360V23Common_PolicyTopicEvidence_TextList": {
      "description": "A list of fragments of text that violated a policy.",
      "type": "object",
      "properties": {
        "texts": {
          "description": "The fragments of text from the resource that caused the policy finding.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "id": "GoogleAdsSearchads360V23Common_PolicyTopicEvidence_TextList"
    },
    "GoogleAdsSearchads360V0Common__ManualCpa": {
      "description": "Manual bidding strategy that allows advertiser to set the bid per advertiser-specified action.",
      "type": "object",
      "properties": {},
      "id": "GoogleAdsSearchads360V0Common__ManualCpa"
    },
    "GoogleAdsSearchads360V0Common__FinalAppUrl": {
      "description": "A URL for deep linking into an app for the given operating system.",
      "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "IOS",
            "ANDROID"
          ],
          "description": "The operating system targeted by this URL. Required.",
          "type": "string"
        },
        "url": {
          "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.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V0Common__FinalAppUrl"
    },
    "GoogleAdsSearchads360V0Resources_ConversionCustomVariable_FloodlightConversionCustomVariableInfo": {
      "id": "GoogleAdsSearchads360V0Resources_ConversionCustomVariable_FloodlightConversionCustomVariableInfo",
      "description": "Information for Search Ads 360 Floodlight Conversion Custom Variables.",
      "type": "object",
      "properties": {
        "floodlightVariableType": {
          "description": "Output only. Floodlight variable type defined in Search Ads 360.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Dimension floodlight variable type.",
            "Metric floodlight variable type.",
            "Floodlight variable type is unset."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DIMENSION",
            "METRIC",
            "UNSET"
          ],
          "readOnly": true,
          "type": "string"
        },
        "floodlightVariableDataType": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Represents a floodlight variable of \"Number\" type. This variable may be assigned to floodlight variables of DIMENSION or METRIC types.",
            "Represents a floodlight variable of \"String\" type. This variable may be assigned to floodlight variables of DIMENSION type."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NUMBER",
            "STRING"
          ],
          "description": "Output only. Floodlight variable data type defined in Search Ads 360.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V0Resources_ConversionAction_ValueSettings": {
      "description": "Settings related to the value for conversion events associated with this conversion action.",
      "type": "object",
      "properties": {
        "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.",
          "type": "number",
          "format": "double"
        },
        "alwaysUseDefaultValue": {
          "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": "boolean"
        },
        "defaultCurrencyCode": {
          "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.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V0Resources_ConversionAction_ValueSettings"
    },
    "GoogleAdsSearchads360V0Services__RawEventConversionMetricHeader": {
      "id": "GoogleAdsSearchads360V0Services__RawEventConversionMetricHeader",
      "description": "Message for raw event conversion metric header.",
      "type": "object",
      "properties": {
        "name": {
          "description": "The user defined name of the raw event metric.",
          "type": "string"
        },
        "id": {
          "description": "The conversion custom variable ID.",
          "type": "string",
          "format": "int64"
        }
      }
    },
    "GoogleAdsSearchads360V0Errors_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",
          "type": "integer",
          "format": "int32"
        }
      },
      "id": "GoogleAdsSearchads360V0Errors_ErrorLocation_FieldPathElement"
    },
    "GoogleAdsSearchads360V0Common__UnifiedCalloutAsset": {
      "description": "A unified callout asset.",
      "type": "object",
      "properties": {
        "calloutText": {
          "description": "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"
        },
        "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.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V0Common__AdScheduleInfo"
          }
        },
        "startDate": {
          "description": "Start date of when this asset is effective and can begin serving, in yyyy-MM-dd format.",
          "type": "string"
        },
        "useSearcherTimeZone": {
          "description": "Whether to show the asset in search user's time zone. Applies to Microsoft Ads.",
          "type": "boolean"
        }
      },
      "id": "GoogleAdsSearchads360V0Common__UnifiedCalloutAsset"
    },
    "GoogleAdsSearchads360V0Services__SearchAds360Row": {
      "id": "GoogleAdsSearchads360V0Services__SearchAds360Row",
      "description": "A returned row from the query.",
      "type": "object",
      "properties": {
        "customerManagerLink": {
          "description": "The CustomerManagerLink referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__CustomerManagerLink"
        },
        "campaign": {
          "description": "The campaign referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__Campaign"
        },
        "userList": {
          "description": "The user list referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__UserList"
        },
        "geoTargetConstant": {
          "description": "The geo target constant referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__GeoTargetConstant"
        },
        "metrics": {
          "description": "The metrics.",
          "$ref": "GoogleAdsSearchads360V0Common__Metrics"
        },
        "adGroupLabel": {
          "description": "The ad group label referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__AdGroupLabel"
        },
        "audience": {
          "description": "The Audience referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__Audience"
        },
        "assetGroupSignal": {
          "description": "The asset group signal referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__AssetGroupSignal"
        },
        "adGroupAdLabel": {
          "description": "The ad group ad label referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__AdGroupAdLabel"
        },
        "dynamicSearchAdsSearchTermView": {
          "description": "The dynamic search ads search term view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__DynamicSearchAdsSearchTermView"
        },
        "productGroupView": {
          "description": "The product group view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__ProductGroupView"
        },
        "campaignCriterion": {
          "description": "The campaign criterion referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__CampaignCriterion"
        },
        "genderView": {
          "description": "The gender view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__GenderView"
        },
        "visit": {
          "description": "The event level visit referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__Visit"
        },
        "adGroupBidModifier": {
          "description": "The bid modifier referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__AdGroupBidModifier"
        },
        "ageRangeView": {
          "description": "The age range view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__AgeRangeView"
        },
        "conversion": {
          "description": "The event level conversion referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__Conversion"
        },
        "locationView": {
          "description": "The location view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__LocationView"
        },
        "campaignAsset": {
          "description": "The campaign asset referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__CampaignAsset"
        },
        "customer": {
          "description": "The customer referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__Customer"
        },
        "conversionCustomVariable": {
          "description": "The conversion custom variable referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__ConversionCustomVariable"
        },
        "asset": {
          "description": "The asset referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__Asset"
        },
        "userLocationView": {
          "description": "The user location view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__UserLocationView"
        },
        "campaignAssetSet": {
          "description": "The campaign asset set referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__CampaignAssetSet"
        },
        "adGroup": {
          "description": "The ad group referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__AdGroup"
        },
        "assetGroupAsset": {
          "description": "The asset group asset referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__AssetGroupAsset"
        },
        "customerAssetSet": {
          "description": "The customer asset set referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__CustomerAssetSet"
        },
        "webpageView": {
          "description": "The webpage view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__WebpageView"
        },
        "adGroupCriterionLabel": {
          "description": "The ad group criterion label referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__AdGroupCriterionLabel"
        },
        "adGroupEffectiveLabel": {
          "description": "The ad group effective label referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__AdGroupEffectiveLabel"
        },
        "campaignLabel": {
          "description": "The campaign label referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__CampaignLabel"
        },
        "accessibleBiddingStrategy": {
          "description": "The accessible bidding strategy referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__AccessibleBiddingStrategy"
        },
        "customerAsset": {
          "description": "The customer asset referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__CustomerAsset"
        },
        "assetGroupListingGroupFilter": {
          "description": "The asset group listing group filter referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__AssetGroupListingGroupFilter"
        },
        "assetSetAsset": {
          "description": "The asset set asset referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__AssetSetAsset"
        },
        "campaignAudienceView": {
          "description": "The campaign audience view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__CampaignAudienceView"
        },
        "assetGroup": {
          "description": "The asset group referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__AssetGroup"
        },
        "shoppingPerformanceView": {
          "description": "The shopping performance view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__ShoppingPerformanceView"
        },
        "keywordView": {
          "description": "The keyword view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__KeywordView"
        },
        "customerClient": {
          "description": "The CustomerClient referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__CustomerClient"
        },
        "adGroupAsset": {
          "description": "The ad group asset referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__AdGroupAsset"
        },
        "customColumns": {
          "description": "The custom columns.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V0Common__Value"
          }
        },
        "adGroupAdEffectiveLabel": {
          "description": "The ad group ad effective label referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__AdGroupAdEffectiveLabel"
        },
        "adGroupAssetSet": {
          "description": "The ad group asset set referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__AdGroupAssetSet"
        },
        "adGroupAudienceView": {
          "description": "The ad group audience view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__AdGroupAudienceView"
        },
        "biddingStrategy": {
          "description": "The bidding strategy referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__BiddingStrategy"
        },
        "assetGroupTopCombinationView": {
          "description": "The asset group top combination view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__AssetGroupTopCombinationView"
        },
        "productBiddingCategoryConstant": {
          "description": "The Product Bidding Category referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__ProductBiddingCategoryConstant"
        },
        "cartDataSalesView": {
          "description": "The cart data sales view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__CartDataSalesView"
        },
        "languageConstant": {
          "description": "The language constant referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__LanguageConstant"
        },
        "campaignBudget": {
          "description": "The campaign budget referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__CampaignBudget"
        },
        "adGroupAd": {
          "description": "The ad referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__AdGroupAd"
        },
        "label": {
          "description": "The label referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__Label"
        },
        "conversionAction": {
          "description": "The conversion action referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__ConversionAction"
        },
        "adGroupCriterionEffectiveLabel": {
          "description": "The ad group criterion effective label referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__AdGroupCriterionEffectiveLabel"
        },
        "assetSet": {
          "description": "The asset set referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__AssetSet"
        },
        "segments": {
          "description": "The segments.",
          "$ref": "GoogleAdsSearchads360V0Common__Segments"
        },
        "adGroupCriterion": {
          "description": "The criterion referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__AdGroupCriterion"
        },
        "campaignEffectiveLabel": {
          "description": "The campaign effective label referenced in the query.",
          "$ref": "GoogleAdsSearchads360V0Resources__CampaignEffectiveLabel"
        }
      }
    },
    "GoogleAdsSearchads360V0Common__EnhancedCpc": {
      "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.",
      "type": "object",
      "properties": {},
      "id": "GoogleAdsSearchads360V0Common__EnhancedCpc"
    },
    "GoogleAdsSearchads360V23Common_PolicyTopicEvidence_DestinationNotWorking": {
      "id": "GoogleAdsSearchads360V23Common_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.",
      "type": "object",
      "properties": {
        "device": {
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DESKTOP",
            "ANDROID",
            "IOS"
          ],
          "description": "The type of device that failed to load the URL.",
          "type": "string"
        },
        "httpErrorCode": {
          "description": "The HTTP error code.",
          "type": "string",
          "format": "int64"
        },
        "dnsErrorType": {
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HOSTNAME_NOT_FOUND",
            "GOOGLE_CRAWLER_DNS_ISSUE"
          ],
          "description": "The type of DNS error.",
          "type": "string"
        },
        "expandedUrl": {
          "description": "The full URL that didn't work.",
          "type": "string"
        },
        "lastCheckedDateTime": {
          "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\"",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V0Common__AdScheduleInfo": {
      "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.",
      "type": "object",
      "properties": {
        "endHour": {
          "format": "int32",
          "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"
        },
        "startHour": {
          "format": "int32",
          "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.",
          "type": "integer"
        },
        "dayOfWeek": {
          "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": "Day of the week the schedule applies to. This field is required for CREATE operations and is prohibited on UPDATE operations.",
          "type": "string"
        },
        "endMinute": {
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ZERO",
            "FIFTEEN",
            "THIRTY",
            "FORTY_FIVE"
          ],
          "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.",
          "type": "string"
        },
        "startMinute": {
          "description": "Minutes after the start hour at which this schedule starts. This field is required for CREATE operations and is prohibited on UPDATE operations.",
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ZERO",
            "FIFTEEN",
            "THIRTY",
            "FORTY_FIVE"
          ]
        }
      },
      "id": "GoogleAdsSearchads360V0Common__AdScheduleInfo"
    },
    "GoogleAdsSearchads360V0Common__UnifiedSitelinkAsset": {
      "description": "A unified sitelink asset.",
      "type": "object",
      "properties": {
        "useSearcherTimeZone": {
          "description": "Whether to show the sitelink asset in search user's time zone. Applies to Microsoft Ads.",
          "type": "boolean"
        },
        "adScheduleTargets": {
          "items": {
            "$ref": "GoogleAdsSearchads360V0Common__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"
        },
        "endDate": {
          "description": "Last date of when this asset is effective and still serving, in yyyy-MM-dd format.",
          "type": "string"
        },
        "description1": {
          "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.",
          "type": "string"
        },
        "trackingId": {
          "format": "int64",
          "description": "ID used for tracking clicks for the sitelink asset. This is a Yahoo! Japan only field.",
          "type": "string"
        },
        "startDate": {
          "description": "Start date of when this asset is effective and can begin serving, in yyyy-MM-dd format.",
          "type": "string"
        },
        "mobilePreferred": {
          "description": "Whether the preference is for the sitelink asset to be displayed on mobile devices. Applies to Microsoft Ads.",
          "type": "boolean"
        },
        "description2": {
          "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.",
          "type": "string"
        },
        "linkText": {
          "description": "URL display text for the sitelink. The length of this string should be between 1 and 25, inclusive.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V0Common__UnifiedSitelinkAsset"
    },
    "GoogleAdsSearchads360V0Common__SearchAds360ExpandedTextAdInfo": {
      "id": "GoogleAdsSearchads360V0Common__SearchAds360ExpandedTextAdInfo",
      "description": "A Search Ads 360 expanded text ad.",
      "type": "object",
      "properties": {
        "path1": {
          "description": "Text appended to the auto-generated visible URL with a delimiter.",
          "type": "string"
        },
        "headline2": {
          "description": "The second headline of the ad.",
          "type": "string"
        },
        "headline3": {
          "description": "The third headline of the ad.",
          "type": "string"
        },
        "adTrackingId": {
          "format": "int64",
          "description": "The tracking id of the ad.",
          "type": "string"
        },
        "path2": {
          "description": "Text appended to path1 with a delimiter.",
          "type": "string"
        },
        "description2": {
          "description": "The second line of the ad's description.",
          "type": "string"
        },
        "headline": {
          "description": "The headline of the ad.",
          "type": "string"
        },
        "description1": {
          "description": "The first line of the ad's description.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V0Common__GenderInfo": {
      "description": "A gender criterion.",
      "type": "object",
      "properties": {
        "type": {
          "description": "Type of the gender.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Male.",
            "Female.",
            "Undetermined gender."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MALE",
            "FEMALE",
            "UNDETERMINED"
          ]
        }
      },
      "id": "GoogleAdsSearchads360V0Common__GenderInfo"
    },
    "GoogleAdsSearchads360V0Resources__CustomColumn": {
      "description": "A custom column. See Search Ads 360 custom column at https://support.google.com/sa360/answer/9633916",
      "type": "object",
      "properties": {
        "id": {
          "format": "int64",
          "description": "Output only. ID of the custom column.",
          "readOnly": true,
          "type": "string"
        },
        "resourceName": {
          "description": "Immutable. The resource name of the custom column. Custom column resource names have the form: `customers/{customer_id}/customColumns/{custom_column_id}`",
          "type": "string"
        },
        "valueType": {
          "description": "Output only. The type of the result value of the custom column.",
          "enumDescriptions": [
            "Not specified.",
            "Unknown.",
            "The custom column value is a string.",
            "The custom column value is an int64 number.",
            "The custom column value is a double number.",
            "The custom column value is a boolean.",
            "The custom column value is a date, in YYYYMMDD format."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "STRING",
            "INT64",
            "DOUBLE",
            "BOOLEAN",
            "DATE"
          ],
          "readOnly": true,
          "type": "string"
        },
        "referencesMetrics": {
          "description": "Output only. True when the custom column is referring to one or more metrics.",
          "readOnly": true,
          "type": "boolean"
        },
        "queryable": {
          "description": "Output only. True when the custom column is available to be used in the query of SearchAds360Service.Search and SearchAds360Service.SearchStream.",
          "readOnly": true,
          "type": "boolean"
        },
        "description": {
          "description": "Output only. User-defined description of the custom column.",
          "readOnly": true,
          "type": "string"
        },
        "renderType": {
          "enumDescriptions": [
            "Not specified.",
            "Unknown.",
            "The custom column is a raw numerical value. See value_type field to determine if it is an integer or a double.",
            "The custom column should be multiplied by 100 to retrieve the percentage value.",
            "The custom column value is a monetary value and is in micros.",
            "The custom column value is a string.",
            "The custom column value is a boolean.",
            "The custom column value is a date represented as an integer in YYYYMMDD format."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NUMBER",
            "PERCENT",
            "MONEY",
            "STRING",
            "BOOLEAN",
            "DATE"
          ],
          "description": "Output only. How the result value of the custom column should be interpreted.",
          "readOnly": true,
          "type": "string"
        },
        "name": {
          "description": "Output only. User-defined name of the custom column.",
          "readOnly": true,
          "type": "string"
        },
        "referencesAttributes": {
          "description": "Output only. True when the custom column is referring to one or more attributes.",
          "readOnly": true,
          "type": "boolean"
        },
        "referencedSystemColumns": {
          "description": "Output only. The list of the referenced system columns of this custom column. For example, A custom column \"sum of impressions and clicks\" has referenced system columns of {\"metrics.clicks\", \"metrics.impressions\"}.",
          "readOnly": true,
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "id": "GoogleAdsSearchads360V0Resources__CustomColumn"
    },
    "GoogleAdsSearchads360V23Common__PolicyTopicEntry": {
      "id": "GoogleAdsSearchads360V23Common__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": {
        "type": {
          "description": "Describes the negative or positive effect this policy will have on serving.",
          "type": "string",
          "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"
          ]
        },
        "constraints": {
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__PolicyTopicConstraint"
          },
          "description": "Indicates how serving of this resource may be affected (for example, not serving in a country).",
          "type": "array"
        },
        "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": {
          "description": "Additional information that explains policy finding (for example, the brand name for a trademark finding).",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__PolicyTopicEvidence"
          }
        }
      }
    },
    "GoogleAdsSearchads360V0Resources__ListingGroupFilterDimension": {
      "description": "Listing dimensions for the asset group listing group filter.",
      "type": "object",
      "properties": {
        "productChannel": {
          "description": "Locality of a product offer.",
          "$ref": "GoogleAdsSearchads360V0Resources_ListingGroupFilterDimension_ProductChannel"
        },
        "productBiddingCategory": {
          "description": "Bidding category of a product offer.",
          "$ref": "GoogleAdsSearchads360V0Resources_ListingGroupFilterDimension_ProductBiddingCategory"
        },
        "productCustomAttribute": {
          "description": "Custom attribute of a product offer.",
          "$ref": "GoogleAdsSearchads360V0Resources_ListingGroupFilterDimension_ProductCustomAttribute"
        },
        "productCondition": {
          "description": "Condition of a product offer.",
          "$ref": "GoogleAdsSearchads360V0Resources_ListingGroupFilterDimension_ProductCondition"
        },
        "productItemId": {
          "description": "Item id of a product offer.",
          "$ref": "GoogleAdsSearchads360V0Resources_ListingGroupFilterDimension_ProductItemId"
        },
        "productType": {
          "description": "Type of a product offer.",
          "$ref": "GoogleAdsSearchads360V0Resources_ListingGroupFilterDimension_ProductType"
        },
        "productBrand": {
          "description": "Brand of a product offer.",
          "$ref": "GoogleAdsSearchads360V0Resources_ListingGroupFilterDimension_ProductBrand"
        }
      },
      "id": "GoogleAdsSearchads360V0Resources__ListingGroupFilterDimension"
    },
    "GoogleAdsSearchads360V23Errors__SearchAds360Error": {
      "description": "Search Ads 360-specific error.",
      "type": "object",
      "properties": {
        "message": {
          "description": "A human-readable description of the error.",
          "type": "string"
        },
        "trigger": {
          "description": "The value that triggered the error.",
          "$ref": "GoogleAdsSearchads360V23Common__Value"
        },
        "details": {
          "description": "Additional error details, which are returned by certain error codes. Most error codes do not include details.",
          "$ref": "GoogleAdsSearchads360V23Errors__ErrorDetails"
        },
        "errorCode": {
          "description": "An enum value that indicates which error occurred.",
          "$ref": "GoogleAdsSearchads360V23Errors__ErrorCode"
        },
        "location": {
          "description": "Describes the part of the request proto that caused the error.",
          "$ref": "GoogleAdsSearchads360V23Errors__ErrorLocation"
        }
      },
      "id": "GoogleAdsSearchads360V23Errors__SearchAds360Error"
    },
    "GoogleAdsSearchads360V0Common__AssetInteractionTarget": {
      "id": "GoogleAdsSearchads360V0Common__AssetInteractionTarget",
      "description": "An AssetInteractionTarget segment.",
      "type": "object",
      "properties": {
        "asset": {
          "description": "The asset resource name.",
          "type": "string"
        },
        "interactionOnThisAsset": {
          "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.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsSearchads360V0Services__CustomColumnHeader": {
      "id": "GoogleAdsSearchads360V0Services__CustomColumnHeader",
      "description": "Message for custom column header.",
      "type": "object",
      "properties": {
        "name": {
          "description": "The user defined name of the custom column.",
          "type": "string"
        },
        "referencesMetrics": {
          "description": "True when the custom column references metrics.",
          "type": "boolean"
        },
        "id": {
          "description": "The custom column ID.",
          "type": "string",
          "format": "int64"
        }
      }
    },
    "GoogleAdsSearchads360V0Resources_Campaign_TrackingSetting": {
      "description": "Campaign-level settings for tracking information.",
      "type": "object",
      "properties": {
        "trackingUrl": {
          "description": "Output only. The url used for dynamic tracking.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V0Resources_Campaign_TrackingSetting"
    },
    "GoogleAdsSearchads360V0Services__SearchSearchAds360Request": {
      "description": "Request message for SearchAds360Service.Search.",
      "type": "object",
      "properties": {
        "query": {
          "description": "Required. The query string.",
          "type": "string"
        },
        "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"
        },
        "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"
        },
        "summaryRowSetting": {
          "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.",
          "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"
          ]
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed.",
          "type": "boolean"
        },
        "pageSize": {
          "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.",
          "type": "integer"
        }
      },
      "id": "GoogleAdsSearchads360V0Services__SearchSearchAds360Request"
    },
    "GoogleAdsSearchads360V0Resources__Asset": {
      "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.",
      "type": "object",
      "properties": {
        "name": {
          "description": "Optional name of the asset.",
          "type": "string"
        },
        "mobileAppAsset": {
          "description": "A mobile app asset.",
          "$ref": "GoogleAdsSearchads360V0Common__MobileAppAsset"
        },
        "lastModifiedTime": {
          "description": "Output only. The datetime when this asset was last modified. The datetime is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss.ssssss\" format.",
          "readOnly": true,
          "type": "string"
        },
        "callAsset": {
          "description": "Output only. A unified call asset.",
          "readOnly": true,
          "$ref": "GoogleAdsSearchads360V0Common__UnifiedCallAsset"
        },
        "finalUrls": {
          "items": {
            "type": "string"
          },
          "description": "A list of possible final URLs after all cross domain redirects.",
          "type": "array"
        },
        "finalMobileUrls": {
          "items": {
            "type": "string"
          },
          "description": "A list of possible final mobile URLs after all cross domain redirects.",
          "type": "array"
        },
        "pageFeedAsset": {
          "description": "Output only. A unified page feed asset.",
          "readOnly": true,
          "$ref": "GoogleAdsSearchads360V0Common__UnifiedPageFeedAsset"
        },
        "engineStatus": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is active.",
            "The asset is active limited.",
            "The asset is disapproved (not eligible).",
            "The asset is inactive (pending).",
            "The asset has been removed."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SERVING",
            "SERVING_LIMITED",
            "DISAPPROVED",
            "DISABLED",
            "REMOVED"
          ],
          "description": "Output only. The Engine Status for an asset.",
          "readOnly": true,
          "type": "string"
        },
        "creationTime": {
          "description": "Output only. The timestamp when this asset was created. The timestamp is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss\" format.",
          "readOnly": true,
          "type": "string"
        },
        "id": {
          "format": "int64",
          "description": "Output only. The ID of the asset.",
          "readOnly": true,
          "type": "string"
        },
        "finalUrlSuffix": {
          "description": "URL template for appending params to landing page URLs served with parallel tracking.",
          "type": "string"
        },
        "calloutAsset": {
          "description": "Output only. A unified callout asset.",
          "readOnly": true,
          "$ref": "GoogleAdsSearchads360V0Common__UnifiedCalloutAsset"
        },
        "sitelinkAsset": {
          "description": "Output only. A unified sitelink asset.",
          "readOnly": true,
          "$ref": "GoogleAdsSearchads360V0Common__UnifiedSitelinkAsset"
        },
        "urlCustomParameters": {
          "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",
          "items": {
            "$ref": "GoogleAdsSearchads360V0Common__CustomParameter"
          }
        },
        "callToActionAsset": {
          "description": "Immutable. A call to action asset.",
          "$ref": "GoogleAdsSearchads360V0Common__CallToActionAsset"
        },
        "type": {
          "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.",
            "Discovery Carousel Card asset.",
            "Dynamic travel asset.",
            "Dynamic local asset.",
            "Dynamic jobs asset.",
            "Location asset.",
            "Hotel property asset."
          ],
          "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",
            "DISCOVERY_CAROUSEL_CARD",
            "DYNAMIC_TRAVEL",
            "DYNAMIC_LOCAL",
            "DYNAMIC_JOBS",
            "LOCATION",
            "HOTEL_PROPERTY"
          ],
          "readOnly": true,
          "type": "string"
        },
        "youtubeVideoAsset": {
          "description": "Immutable. A YouTube video asset.",
          "$ref": "GoogleAdsSearchads360V0Common__YoutubeVideoAsset"
        },
        "textAsset": {
          "description": "Output only. A text asset.",
          "readOnly": true,
          "$ref": "GoogleAdsSearchads360V0Common__TextAsset"
        },
        "status": {
          "readOnly": true,
          "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 asset is enabled.",
            "The asset is removed.",
            "The asset is archived.",
            "The asset is system generated pending user review."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED",
            "ARCHIVED",
            "PENDING_SYSTEM_GENERATED"
          ],
          "description": "Output only. The status of the asset."
        },
        "resourceName": {
          "description": "Immutable. The resource name of the asset. Asset resource names have the form: `customers/{customer_id}/assets/{asset_id}`",
          "type": "string"
        },
        "locationAsset": {
          "description": "Output only. A unified location asset.",
          "readOnly": true,
          "$ref": "GoogleAdsSearchads360V0Common__UnifiedLocationAsset"
        },
        "trackingUrlTemplate": {
          "description": "URL template for constructing a tracking URL.",
          "type": "string"
        },
        "imageAsset": {
          "description": "Output only. An image asset.",
          "readOnly": true,
          "$ref": "GoogleAdsSearchads360V0Common__ImageAsset"
        }
      },
      "id": "GoogleAdsSearchads360V0Resources__Asset"
    },
    "GoogleAdsSearchads360V0Common__ManualCpc": {
      "id": "GoogleAdsSearchads360V0Common__ManualCpc",
      "description": "Manual click-based bidding where user pays per click.",
      "type": "object",
      "properties": {
        "enhancedCpcEnabled": {
          "description": "Whether bids are to be enhanced based on conversion optimizer data.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsSearchads360V0Resources__AdGroupAssetSet": {
      "id": "GoogleAdsSearchads360V0Resources__AdGroupAssetSet",
      "description": "AdGroupAssetSet is the linkage between an ad group and an asset set. Creating an AdGroupAssetSet links an asset set with an ad group.",
      "type": "object",
      "properties": {
        "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"
        },
        "adGroup": {
          "description": "Immutable. The ad group to which this asset set is linked.",
          "type": "string"
        },
        "assetSet": {
          "description": "Immutable. The asset set which is linked to the ad group.",
          "type": "string"
        },
        "status": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The status of the ad group asset set. 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 linkage between asset set and its container is enabled.",
            "The linkage between asset set and its container is removed."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ]
        }
      }
    },
    "GoogleAdsSearchads360V0Common__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).",
      "type": "object",
      "properties": {
        "location": {
          "description": "The targeted location on the search results page.",
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ANYWHERE_ON_PAGE",
            "TOP_OF_PAGE",
            "ABSOLUTE_TOP_OF_PAGE"
          ]
        },
        "locationFractionMicros": {
          "format": "int64",
          "description": "The chosen fraction of ads to be shown in the targeted location in micros. For example, 1% equals 10,000.",
          "type": "string"
        },
        "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"
        }
      },
      "id": "GoogleAdsSearchads360V0Common__TargetImpressionShare"
    },
    "GoogleAdsSearchads360V0Resources__CampaignBudget": {
      "id": "GoogleAdsSearchads360V0Resources__CampaignBudget",
      "description": "A campaign budget.",
      "type": "object",
      "properties": {
        "resourceName": {
          "description": "Immutable. The resource name of the campaign budget. Campaign budget resource names have the form: `customers/{customer_id}/campaignBudgets/{campaign_budget_id}`",
          "type": "string"
        },
        "amountMicros": {
          "description": "The average daily amount to be spent by the campaign. This field is used when the CampaignBudget `period` is set to `DAILY`, which is the default. Amount is specified in micros in the account's local currency. One million micros is equivalent to one currency unit. The effective monthly spend is capped at 30.4 times this daily amount. This field is mutually exclusive with 'total_amount_micros'. Only one of 'amount_micros' or 'total_amount_micros' should be set.",
          "type": "string",
          "format": "int64"
        },
        "period": {
          "description": "Immutable. Period over which to spend the budget. Defaults to DAILY if not specified.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Daily budget.",
            "Fixed daily budget.",
            "Custom budget can be used with total_amount to specify lifetime budget limit."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DAILY",
            "FIXED_DAILY",
            "CUSTOM_PERIOD"
          ]
        },
        "deliveryMethod": {
          "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"
          ],
          "description": "The delivery method that determines the rate at which the campaign budget is spent. Defaults to STANDARD if unspecified in a create operation.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V0Services__ConversionCustomDimensionHeader": {
      "id": "GoogleAdsSearchads360V0Services__ConversionCustomDimensionHeader",
      "description": "Message for conversion custom dimension header.",
      "type": "object",
      "properties": {
        "id": {
          "format": "int64",
          "description": "The conversion custom dimension ID.",
          "type": "string"
        },
        "name": {
          "description": "The user defined name of the conversion custom dimension.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V0Resources_AdGroupCriterion_PositionEstimates": {
      "description": "Estimates for criterion bids at various positions.",
      "type": "object",
      "properties": {
        "topOfPageCpcMicros": {
          "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,
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V0Resources_AdGroupCriterion_PositionEstimates"
    },
    "GoogleAdsSearchads360V0Resources_AccessibleBiddingStrategy_TargetRoas": {
      "id": "GoogleAdsSearchads360V0Resources_AccessibleBiddingStrategy_TargetRoas",
      "description": "An automated bidding strategy that helps you maximize revenue while averaging a specific target return on ad spend (ROAS).",
      "type": "object",
      "properties": {
        "targetRoas": {
          "format": "double",
          "description": "Output only. The chosen revenue (based on conversion data) per unit of spend.",
          "readOnly": true,
          "type": "number"
        }
      }
    },
    "GoogleAdsSearchads360V0Common__KeywordInfo": {
      "id": "GoogleAdsSearchads360V0Common__KeywordInfo",
      "description": "A keyword criterion.",
      "type": "object",
      "properties": {
        "text": {
          "description": "The text of the keyword (at most 80 characters and 10 words).",
          "type": "string"
        },
        "matchType": {
          "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"
          ],
          "description": "The match type of the keyword.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__ScheduleExperimentMetadata": {
      "description": "The metadata of the scheduled experiment.",
      "type": "object",
      "properties": {
        "experiment": {
          "description": "Required. The scheduled experiment.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__ScheduleExperimentMetadata"
    },
    "GoogleAdsSearchads360V0Resources_ListingGroupFilterDimension_ProductType": {
      "id": "GoogleAdsSearchads360V0Resources_ListingGroupFilterDimension_ProductType",
      "description": "Type of a product offer.",
      "type": "object",
      "properties": {
        "value": {
          "description": "Value of the type.",
          "type": "string"
        },
        "level": {
          "description": "Level of the type.",
          "type": "string",
          "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"
          ]
        }
      }
    },
    "GoogleAdsSearchads360V0Common__CustomParameter": {
      "id": "GoogleAdsSearchads360V0Common__CustomParameter",
      "description": "A mapping that can be used by custom parameter tags in a `tracking_url_template`, `final_urls`, or `mobile_final_urls`.",
      "type": "object",
      "properties": {
        "key": {
          "description": "The key matching the parameter tag name.",
          "type": "string"
        },
        "value": {
          "description": "The value to be substituted.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V0Resources__CartDataSalesView": {
      "description": "Cart data sales view. Provides information about the products which were purchased if conversions with cart data is implemented. Performance metrics like revenue, gross profit, lead/cross-sell metrics etc. and Merchant Center attributes such as brand, category etc. are available for products defined in an inventory feed and sold as a result of Google ads. For purchases attributed to clicks on Shopping ads, dimensions of both clicked and sold products can be viewed together.",
      "type": "object",
      "properties": {
        "resourceName": {
          "description": "Output only. The resource name of the Cart data sales view. Cart data sales view resource names have the form: `customers/{customer_id}/cartDataSalesView`",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V0Resources__CartDataSalesView"
    },
    "GoogleAdsSearchads360V23Services__PromoteExperimentMetadata": {
      "id": "GoogleAdsSearchads360V23Services__PromoteExperimentMetadata",
      "description": "The metadata of the promoted experiment.",
      "type": "object",
      "properties": {
        "experiment": {
          "description": "Required. The promoted experiment.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V0Resources_Campaign_DynamicSearchAdsSetting": {
      "id": "GoogleAdsSearchads360V0Resources_Campaign_DynamicSearchAdsSetting",
      "description": "The setting for controlling Dynamic Search Ads (DSA).",
      "type": "object",
      "properties": {
        "domainName": {
          "description": "Required. The Internet domain name that this setting represents, for example, \"google.com\" or \"www.google.com\".",
          "type": "string"
        },
        "useSuppliedUrlsOnly": {
          "description": "Whether the campaign uses advertiser supplied URLs exclusively.",
          "type": "boolean"
        },
        "languageCode": {
          "description": "Required. The language code specifying the language of the domain, for example, \"en\".",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V0Common__TargetOutrankShare": {
      "id": "GoogleAdsSearchads360V0Common__TargetOutrankShare",
      "description": "An automated bidding strategy that sets bids based on the target fraction of auctions where the advertiser should outrank a specific competitor. This strategy is deprecated.",
      "type": "object",
      "properties": {
        "cpcBidCeilingMicros": {
          "format": "int64",
          "description": "Maximum bid limit that can be set by the bid strategy. The limit applies to all keywords managed by the strategy.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Common_PolicyTopicConstraint_ResellerConstraint": {
      "description": "Indicates that a policy topic was constrained due to disapproval of the website for reseller purposes.",
      "type": "object",
      "properties": {},
      "id": "GoogleAdsSearchads360V23Common_PolicyTopicConstraint_ResellerConstraint"
    },
    "GoogleAdsSearchads360V0Common__TextLabel": {
      "description": "A type of label displaying text on a colored background.",
      "type": "object",
      "properties": {
        "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": {
          "description": "A short description of the label. The length must be no more than 200 characters.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V0Common__TextLabel"
    },
    "GoogleAdsSearchads360V23Errors__QuotaErrorDetails": {
      "id": "GoogleAdsSearchads360V23Errors__QuotaErrorDetails",
      "description": "Additional quota error details when there is QuotaError.",
      "type": "object",
      "properties": {
        "rateName": {
          "description": "The high level description of the quota bucket. Examples are \"Get requests for standard access\" or \"Requests per account\".",
          "type": "string"
        },
        "rateScope": {
          "enumDescriptions": [
            "Unspecified enum",
            "Used for return value only. Represents value unknown in this version.",
            "Per customer account quota",
            "Per project quota"
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ACCOUNT",
            "DEVELOPER"
          ],
          "description": "The rate scope of the quota limit.",
          "type": "string"
        },
        "retryDelay": {
          "format": "google-duration",
          "description": "Backoff period that customers should wait before sending next request.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V0Resources__AssetGroupListingGroupFilter": {
      "description": "AssetGroupListingGroupFilter represents a listing group filter tree node in an asset group.",
      "type": "object",
      "properties": {
        "assetGroup": {
          "description": "Immutable. The asset group which this asset group listing group filter is part of.",
          "type": "string"
        },
        "caseValue": {
          "description": "Dimension value with which this listing group is refining its parent. Undefined for the root group.",
          "$ref": "GoogleAdsSearchads360V0Resources__ListingGroupFilterDimension"
        },
        "path": {
          "description": "Output only. The path of dimensions defining this listing group filter.",
          "readOnly": true,
          "$ref": "GoogleAdsSearchads360V0Resources__ListingGroupFilterDimensionPath"
        },
        "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"
        },
        "parentListingGroupFilter": {
          "description": "Immutable. Resource name of the parent listing group subdivision. Null for the root listing group filter node.",
          "type": "string"
        },
        "type": {
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SUBDIVISION",
            "UNIT_INCLUDED",
            "UNIT_EXCLUDED"
          ],
          "description": "Immutable. Type of a listing group filter node.",
          "type": "string"
        },
        "id": {
          "description": "Output only. The ID of the ListingGroupFilter.",
          "readOnly": true,
          "type": "string",
          "format": "int64"
        },
        "vertical": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Represents the shopping vertical. The vertical is allowed only in Performance Max for Retail campaigns."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SHOPPING"
          ],
          "description": "Immutable. The vertical the current node tree represents. All nodes in the same tree must belong to the same vertical.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V0Resources__AssetGroupListingGroupFilter"
    },
    "GoogleAdsSearchads360V0Common__MaximizeConversions": {
      "description": "An automated bidding strategy to help get the most conversions for your campaigns while spending your budget.",
      "type": "object",
      "properties": {
        "cpcBidFloorMicros": {
          "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.",
          "type": "string"
        },
        "cpcBidCeilingMicros": {
          "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.",
          "type": "string",
          "format": "int64"
        },
        "targetCpaMicros": {
          "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.",
          "type": "string",
          "format": "int64"
        }
      },
      "id": "GoogleAdsSearchads360V0Common__MaximizeConversions"
    },
    "GoogleAdsSearchads360V0Resources_AccessibleBiddingStrategy_MaximizeConversions": {
      "id": "GoogleAdsSearchads360V0Resources_AccessibleBiddingStrategy_MaximizeConversions",
      "description": "An automated bidding strategy to help get the most conversions for your campaigns while spending your budget.",
      "type": "object",
      "properties": {
        "targetCpa": {
          "description": "Output only. The target cost per acquisition (CPA) option. This is the average amount that you would like to spend per acquisition.",
          "readOnly": true,
          "type": "string",
          "format": "int64"
        },
        "targetCpaMicros": {
          "description": "Output only. The target cost per acquisition (CPA) option. This is the average amount that you would like to spend per acquisition.",
          "readOnly": true,
          "type": "string",
          "format": "int64"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__OfflineUserDataJobMetadata": {
      "description": "Metadata of offline user data job.",
      "type": "object",
      "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"
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__OfflineUserDataJobMetadata"
    },
    "GoogleAdsSearchads360V0Common__AssetUsage": {
      "id": "GoogleAdsSearchads360V0Common__AssetUsage",
      "description": "Contains the usage information of the asset.",
      "type": "object",
      "properties": {
        "asset": {
          "description": "Resource name of the asset.",
          "type": "string"
        },
        "servedAssetFieldType": {
          "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 served field type of the asset.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V0Resources__GeoTargetConstant": {
      "id": "GoogleAdsSearchads360V0Resources__GeoTargetConstant",
      "description": "A geo target constant.",
      "type": "object",
      "properties": {
        "parentGeoTarget": {
          "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}`",
          "readOnly": true,
          "type": "string"
        },
        "canonicalName": {
          "description": "Output only. The fully qualified English name, consisting of the target's name and that of its parent and country.",
          "readOnly": true,
          "type": "string"
        },
        "targetType": {
          "description": "Output only. Geo target constant target type.",
          "readOnly": true,
          "type": "string"
        },
        "status": {
          "description": "Output only. Geo target constant status.",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVAL_PLANNED"
          ],
          "readOnly": true,
          "type": "string"
        },
        "name": {
          "description": "Output only. Geo target constant English name.",
          "readOnly": true,
          "type": "string"
        },
        "resourceName": {
          "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,
          "type": "string"
        },
        "id": {
          "format": "int64",
          "description": "Output only. The ID of the geo target constant.",
          "readOnly": true,
          "type": "string"
        },
        "countryCode": {
          "description": "Output only. The ISO-3166-1 alpha-2 country code that is associated with the target.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V0Common__TargetRestriction": {
      "description": "The list of per-targeting-dimension targeting settings.",
      "type": "object",
      "properties": {
        "targetingDimension": {
          "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\u003ePets' 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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "KEYWORD",
            "AUDIENCE",
            "TOPIC",
            "GENDER",
            "AGE_RANGE",
            "PLACEMENT",
            "PARENTAL_STATUS",
            "INCOME_RANGE"
          ],
          "description": "The targeting dimension that these settings apply to.",
          "type": "string"
        },
        "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"
        }
      },
      "id": "GoogleAdsSearchads360V0Common__TargetRestriction"
    },
    "GoogleAdsSearchads360V0Services__ConversionCustomMetricHeader": {
      "description": "Message for conversion custom metric header.",
      "type": "object",
      "properties": {
        "name": {
          "description": "The user defined name of the conversion custom metric.",
          "type": "string"
        },
        "id": {
          "description": "The conversion custom metric ID.",
          "type": "string",
          "format": "int64"
        }
      },
      "id": "GoogleAdsSearchads360V0Services__ConversionCustomMetricHeader"
    },
    "GoogleAdsSearchads360V0Services__ListCustomColumnsResponse": {
      "description": "Response message for fetching all custom columns associated with a customer.",
      "type": "object",
      "properties": {
        "customColumns": {
          "items": {
            "$ref": "GoogleAdsSearchads360V0Resources__CustomColumn"
          },
          "description": "The CustomColumns owned by the provided customer.",
          "type": "array"
        }
      },
      "id": "GoogleAdsSearchads360V0Services__ListCustomColumnsResponse"
    },
    "GoogleAdsSearchads360V0Resources_Campaign_SelectiveOptimization": {
      "id": "GoogleAdsSearchads360V0Resources_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.",
      "type": "object",
      "properties": {
        "conversionActions": {
          "description": "The selected set of resource names for conversion actions for optimizing this campaign.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "GoogleAdsSearchads360V0Resources__ConversionTrackingSetting": {
      "id": "GoogleAdsSearchads360V0Resources__ConversionTrackingSetting",
      "description": "A collection of customer-wide settings related to Search Ads 360 Conversion Tracking.",
      "type": "object",
      "properties": {
        "crossAccountConversionTrackingId": {
          "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.",
          "readOnly": true,
          "type": "string",
          "format": "int64"
        },
        "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"
        },
        "enhancedConversionsForLeadsEnabled": {
          "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.",
          "readOnly": true,
          "type": "boolean"
        },
        "conversionTrackingId": {
          "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.",
          "readOnly": true,
          "type": "string",
          "format": "int64"
        },
        "conversionTrackingStatus": {
          "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.",
          "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`."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NOT_CONVERSION_TRACKED",
            "CONVERSION_TRACKING_MANAGED_BY_SELF",
            "CONVERSION_TRACKING_MANAGED_BY_THIS_MANAGER",
            "CONVERSION_TRACKING_MANAGED_BY_ANOTHER_MANAGER"
          ],
          "readOnly": true,
          "type": "string"
        },
        "googleAdsCrossAccountConversionTrackingId": {
          "description": "Output only. The conversion tracking id of the customer's manager. This is set when the customer is opted into conversion tracking, and it overrides conversion_tracking_id. This field can only be managed through the Google Ads UI. This field is read-only.",
          "readOnly": true,
          "type": "string",
          "format": "int64"
        },
        "googleAdsConversionCustomer": {
          "description": "Output only. The resource name of the customer where conversions are created and managed. This field is read-only.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V0Common__UnifiedCallAsset": {
      "description": "A unified call asset.",
      "type": "object",
      "properties": {
        "startDate": {
          "description": "Start date of when this asset is effective and can begin serving, in yyyy-MM-dd format.",
          "type": "string"
        },
        "countryCode": {
          "description": "Two-letter country code of the phone number. Examples: 'US', 'us'.",
          "type": "string"
        },
        "endDate": {
          "description": "Last date of when this asset is effective and still serving, in yyyy-MM-dd format.",
          "type": "string"
        },
        "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.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V0Common__AdScheduleInfo"
          }
        },
        "phoneNumber": {
          "description": "The advertiser's raw phone number. Examples: '1234567890', '(123)456-7890'",
          "type": "string"
        },
        "callOnly": {
          "description": "Whether the call only shows the phone number without a link to the website. Applies to Microsoft Ads.",
          "type": "boolean"
        },
        "callConversionReportingState": {
          "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"
          ],
          "description": "Output only. Indicates whether this CallAsset should use its own call conversion setting, follow the account level setting, or disable call conversion.",
          "readOnly": true,
          "type": "string"
        },
        "callTrackingEnabled": {
          "description": "Whether the call should be enabled on call tracking. Applies to Microsoft Ads.",
          "type": "boolean"
        },
        "useSearcherTimeZone": {
          "description": "Whether to show the call extension in search user's time zone. Applies to Microsoft Ads.",
          "type": "boolean"
        },
        "callConversionAction": {
          "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.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V0Common__UnifiedCallAsset"
    },
    "GoogleAdsSearchads360V0Resources__AdGroup": {
      "description": "An ad group.",
      "type": "object",
      "properties": {
        "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"
        },
        "labels": {
          "description": "Output only. The resource names of labels attached to this ad group.",
          "readOnly": true,
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "lastModifiedTime": {
          "description": "Output only. The datetime when this ad group was last modified. The datetime is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss.ssssss\" format.",
          "readOnly": true,
          "type": "string"
        },
        "targetingSetting": {
          "description": "Setting for targeting related features.",
          "$ref": "GoogleAdsSearchads360V0Common__TargetingSetting"
        },
        "startDate": {
          "description": "Output only. Date when this ad group starts serving ads. By default, the ad group starts now or the ad group's start date, whichever is later. If this field is set, then the ad group starts at the beginning of the specified date in the customer's time zone. This field is only available for Microsoft Advertising and Facebook gateway accounts. Format: YYYY-MM-DD Example: 2019-03-14",
          "readOnly": true,
          "type": "string"
        },
        "engineStatus": {
          "readOnly": true,
          "type": "string",
          "enumDeprecated": [
            false,
            false,
            true,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false
          ],
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Deprecated. Do not use.",
            "No ads are running for this ad group, because the ad group's end date has passed.",
            "The ad group has been deleted.",
            "No ads are running for this ad group because the associated ad group is still in draft form.",
            "The ad group has been paused.",
            "The ad group is active and currently serving ads.",
            "The ad group has been submitted (Microsoft Bing Ads legacy status).",
            "No ads are running for this ad group, because the campaign has been paused.",
            "No ads are running for this ad group, because the account has been paused."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AD_GROUP_ELIGIBLE",
            "AD_GROUP_EXPIRED",
            "AD_GROUP_REMOVED",
            "AD_GROUP_DRAFT",
            "AD_GROUP_PAUSED",
            "AD_GROUP_SERVING",
            "AD_GROUP_SUBMITTED",
            "CAMPAIGN_PAUSED",
            "ACCOUNT_PAUSED"
          ],
          "description": "Output only. The Engine Status for ad group."
        },
        "endDate": {
          "description": "Output only. Date when the ad group ends serving ads. By default, the ad group ends on the ad group's end date. If this field is set, then the ad group ends at the end of the specified date in the customer's time zone. This field is only available for Microsoft Advertising and Facebook gateway accounts. Format: YYYY-MM-DD Example: 2019-03-14",
          "readOnly": true,
          "type": "string"
        },
        "creationTime": {
          "description": "Output only. The timestamp when this ad_group was created. The timestamp is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss\" format.",
          "readOnly": true,
          "type": "string"
        },
        "id": {
          "format": "int64",
          "description": "Output only. The ID of the ad group.",
          "readOnly": true,
          "type": "string"
        },
        "adRotationMode": {
          "description": "The ad rotation mode of the ad group.",
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "OPTIMIZE",
            "ROTATE_FOREVER"
          ]
        },
        "finalUrlSuffix": {
          "description": "URL template for appending params to Final URL.",
          "type": "string"
        },
        "type": {
          "description": "Immutable. The type of the ad group.",
          "type": "string",
          "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.",
            "Outstream 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."
          ],
          "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",
            "VIDEO_OUTSTREAM",
            "SEARCH_DYNAMIC_ADS",
            "SHOPPING_COMPARISON_LISTING_ADS",
            "PROMOTED_HOTEL_ADS",
            "VIDEO_RESPONSIVE",
            "VIDEO_EFFICIENT_REACH",
            "SMART_CAMPAIGN_ADS",
            "TRAVEL_ADS"
          ]
        },
        "effectiveLabels": {
          "items": {
            "type": "string"
          },
          "description": "Output only. The resource names of effective labels attached to this ad group. An effective label is a label inherited or directly assigned to this ad group.",
          "readOnly": true,
          "type": "array"
        },
        "status": {
          "description": "The status of the ad group.",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "PAUSED",
            "REMOVED"
          ]
        },
        "resourceName": {
          "description": "Immutable. The resource name of the ad group. Ad group resource names have the form: `customers/{customer_id}/adGroups/{ad_group_id}`",
          "type": "string"
        },
        "languageCode": {
          "description": "Output only. The language of the ads and keywords in an ad group. This field is only available for Microsoft Advertising accounts. More details: https://docs.microsoft.com/en-us/advertising/guides/ad-languages?view=bingads-13#adlanguage",
          "readOnly": true,
          "type": "string"
        },
        "engineId": {
          "description": "Output only. ID of the ad group in the external engine account. This field is for non-Google Ads account only, for example, Yahoo Japan, Microsoft, Baidu etc. For Google Ads entity, use \"ad_group.id\" instead.",
          "readOnly": true,
          "type": "string"
        },
        "trackingUrlTemplate": {
          "description": "The URL template for constructing a tracking URL.",
          "type": "string"
        },
        "cpcBidMicros": {
          "format": "int64",
          "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.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V0Resources__AdGroup"
    },
    "GoogleAdsSearchads360V0Resources_ListingGroupFilterDimension_ProductBrand": {
      "id": "GoogleAdsSearchads360V0Resources_ListingGroupFilterDimension_ProductBrand",
      "description": "Brand of the product.",
      "type": "object",
      "properties": {
        "value": {
          "description": "String value of the product brand.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V0Common__Metrics": {
      "id": "GoogleAdsSearchads360V0Common__Metrics",
      "description": "Metrics data.",
      "type": "object",
      "properties": {
        "clientAccountLeadGrossProfitMicros": {
          "description": "Client account lead gross profit is the profit you made from products sold as a result of advertising the same product, minus cost of goods sold (COGS). How it works: You report conversions with cart data for completed purchases on your website. If the ad that was interacted with before the purchase has an associated product (see Shopping Ads) then this product is considered the advertised product. Any product included in the order the customer places is a sold product. If the advertised and sold products match, then the revenue you made from these sales minus the cost of goods sold is your lead gross profit. Example: Someone clicked on a Shopping ad for a hat then bought the same hat and a shirt. The hat is priced $10 and has a cost of goods sold value of $3. The lead gross profit of this order is $7 = $10 - $3. This metric is only available if you report conversions with cart data. This metric is a monetary value and returned in the customer's currency by default. See the metrics_currency parameter at https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause",
          "type": "string",
          "format": "int64"
        },
        "averageCpc": {
          "format": "double",
          "description": "The total cost of all clicks divided by the total number of clicks received. This metric is a monetary value and returned in the customer's currency by default. See the metrics_currency parameter at https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause",
          "type": "number"
        },
        "invalidClicks": {
          "description": "Number of clicks Google considers illegitimate and doesn't charge you for.",
          "type": "string",
          "format": "int64"
        },
        "averageQualityScore": {
          "format": "double",
          "description": "The average quality score.",
          "type": "number"
        },
        "costOfGoodsSoldMicros": {
          "format": "int64",
          "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"
        },
        "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"
        },
        "clientAccountCrossSellGrossProfitMicros": {
          "description": "Client account cross-sell gross profit is the profit you made from products sold as a result of advertising a different product, minus cost of goods sold (COGS). How it works: You report conversions with cart data for completed purchases on your website. If the ad that was interacted with before the purchase has an associated product (see Shopping Ads) then this product is considered the advertised product. Any product included in the purchase is a sold product. If these products don't match then this is considered cross-sell. Cross-sell gross profit is the revenue you made from cross-sell attributed to your ads minus the cost of the goods sold. Example: Someone clicked on a Shopping ad for a hat then bought the same hat and a shirt. The shirt is priced $20 and has a cost of goods sold value of $5. The cross-sell gross profit of this order is $15 = $20 - $5. This metric is only available if you report conversions with cart data. This metric is a monetary value and returned in the customer's currency by default. See the metrics_currency parameter at https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause",
          "type": "string",
          "format": "int64"
        },
        "conversionsFromInteractionsRate": {
          "format": "double",
          "description": "Average biddable conversions (from interaction) per conversion eligible interaction. Shows how often, on average, an ad interaction leads to a biddable conversion.",
          "type": "number"
        },
        "conversionsByConversionDate": {
          "description": "The sum of conversions by conversion date for biddable conversion types. Can be fractional due to attribution modeling. When this column is selected with date, the values in date column means the conversion date.",
          "type": "number",
          "format": "double"
        },
        "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"
        },
        "historicalLandingPageQualityScore": {
          "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"
          ],
          "description": "The quality of historical landing page experience.",
          "type": "string"
        },
        "clientAccountLeadRevenueMicros": {
          "description": "Client account lead revenue is the total amount you made from products sold as a result of advertising the same product. How it works: You report conversions with cart data for completed purchases on your website. If the ad that was interacted with before the purchase has an associated product (see Shopping Ads) then this product is considered the advertised product. Any product included in the order the customer places is a sold product. If the advertised and sold products match, then the total value you made from the sales of these products is shown under lead revenue. Example: Someone clicked on a Shopping ad for a hat then bought the same hat and a shirt. The hat is priced $10 and the shirt is priced $20. The lead revenue of this order is $10. This metric is only available if you report conversions with cart data. This metric is a monetary value and returned in the customer's currency by default. See the metrics_currency parameter at https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause",
          "type": "string",
          "format": "int64"
        },
        "leadRevenueMicros": {
          "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. This metric is a monetary value and returned in the customer's currency by default. See the metrics_currency parameter at https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause",
          "type": "string",
          "format": "int64"
        },
        "allConversionsValuePerCost": {
          "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).",
          "type": "number",
          "format": "double"
        },
        "visits": {
          "description": "Clicks that Search Ads 360 has successfully recorded and forwarded to an advertiser's landing page.",
          "type": "number",
          "format": "double"
        },
        "allConversionsFromMenu": {
          "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.",
          "type": "number",
          "format": "double"
        },
        "historicalSearchPredictedCtr": {
          "description": "The historical search predicted click through rate (CTR).",
          "type": "string",
          "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"
          ]
        },
        "crossSellRevenueMicros": {
          "format": "int64",
          "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. This metric is a monetary value and returned in the customer's currency by default. See the metrics_currency parameter at https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause",
          "type": "string"
        },
        "allConversionsFromInteractionsValuePerInteraction": {
          "description": "The value of all conversions from interactions divided by the total number of interactions.",
          "type": "number",
          "format": "double"
        },
        "costPerAllConversions": {
          "description": "The cost of ad interactions divided by all conversions.",
          "type": "number",
          "format": "double"
        },
        "crossDeviceConversionsByConversionDate": {
          "description": "The number of cross-device conversions by conversion date. Details for the by_conversion_date columns are available at https://support.google.com/sa360/answer/9250611.",
          "type": "number",
          "format": "double"
        },
        "leadUnitsSold": {
          "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.",
          "type": "number",
          "format": "double"
        },
        "absoluteTopImpressionPercentage": {
          "description": "Search absolute top impression share is the percentage of your Search ad impressions that are shown in the most prominent Search position.",
          "type": "number",
          "format": "double"
        },
        "valuePerAllConversions": {
          "description": "The value of all conversions divided by the number of all conversions.",
          "type": "number",
          "format": "double"
        },
        "allConversionsByConversionDate": {
          "format": "double",
          "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/sa360/answer/9250611.",
          "type": "number"
        },
        "valuePerAllConversionsByConversionDate": {
          "format": "double",
          "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/sa360/answer/9250611.",
          "type": "number"
        },
        "averageOrderValueMicros": {
          "format": "int64",
          "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"
        },
        "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"
        },
        "costPerCurrentModelAttributedConversion": {
          "format": "double",
          "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.",
          "type": "number"
        },
        "mobileFriendlyClicksPercentage": {
          "format": "double",
          "description": "The percentage of mobile clicks that go to a mobile-friendly page.",
          "type": "number"
        },
        "rawEventConversionMetrics": {
          "description": "The raw event conversion metrics.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V0Common__Value"
          }
        },
        "clientAccountConversions": {
          "description": "The number of client account conversions. This only includes conversion actions which include_in_client_account_conversions_metric attribute is set to true. If you use conversion-based bidding, your bid strategies will optimize for these conversions.",
          "type": "number",
          "format": "double"
        },
        "searchBudgetLostImpressionShare": {
          "format": "double",
          "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.",
          "type": "number"
        },
        "crossDeviceConversions": {
          "format": "double",
          "description": "Conversions from when a customer clicks on an ad on one device, then converts on a different device or browser. Cross-device conversions are already included in all_conversions.",
          "type": "number"
        },
        "valuePerConversion": {
          "format": "double",
          "description": "The value of biddable conversion divided by the number of biddable conversions. Shows how much, on average, each of the biddable conversions is worth.",
          "type": "number"
        },
        "searchAbsoluteTopImpressionShare": {
          "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/sa360/answer/9566729 for details. Any value below 0.1 is reported as 0.0999.",
          "type": "number",
          "format": "double"
        },
        "clicks": {
          "format": "int64",
          "description": "The number of clicks.",
          "type": "string"
        },
        "clientAccountLeadUnitsSold": {
          "format": "double",
          "description": "Client account lead units sold is the total number of products sold as a result of advertising the same product. How it works: You report conversions with cart data for completed purchases on your website. If the ad that was interacted with before the purchase has an associated product (see Shopping Ads) then this product is considered the advertised product. Any product included in the order the customer places is a sold product. If the advertised and sold products match, then the total number of these products sold is shown under lead units sold. Example: Someone clicked on a Shopping ad for a hat then bought the same hat, a shirt and a jacket. The lead units sold in this order is 1. This metric is only available if you report conversions with cart data.",
          "type": "number"
        },
        "allConversionsFromClickToCall": {
          "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.",
          "type": "number",
          "format": "double"
        },
        "clientAccountCrossSellRevenueMicros": {
          "format": "int64",
          "description": "Client account cross-sell revenue is the total amount you made from products sold as a result of advertising a different product. How it works: You report conversions with cart data for completed purchases on your website. If the ad that was interacted with before the purchase has an associated product (see Shopping Ads) then this product is considered the advertised product. Any product included in the order the customer places is a sold product. If these products don't match then this is considered cross-sell. Cross-sell revenue is the total value you made from cross-sell attributed to your ads. Example: Someone clicked on a Shopping ad for a hat then bought the same hat and a shirt. The hat is priced $10 and the shirt is priced $20. The cross-sell revenue of this order is $20. This metric is only available if you report conversions with cart data. This metric is a monetary value and returned in the customer's currency by default. See the metrics_currency parameter at https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause",
          "type": "string"
        },
        "crossSellUnitsSold": {
          "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.",
          "type": "number"
        },
        "allConversionsFromInteractionsRate": {
          "description": "All conversions from interactions (as oppose to view through conversions) divided by the number of ad interactions.",
          "type": "number",
          "format": "double"
        },
        "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. This metric is a monetary value and returned in the customer's currency by default. See the metrics_currency parameter at https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause",
          "type": "string",
          "format": "int64"
        },
        "clientAccountConversionsValue": {
          "format": "double",
          "description": "The value of client account conversions. This only includes conversion actions which include_in_client_account_conversions_metric attribute is set to true. If you use conversion-based bidding, your bid strategies will optimize for these conversions.",
          "type": "number"
        },
        "costPerConversion": {
          "description": "Average conversion eligible cost per biddable conversion.",
          "type": "number",
          "format": "double"
        },
        "orders": {
          "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.",
          "type": "number",
          "format": "double"
        },
        "clientAccountViewThroughConversions": {
          "format": "int64",
          "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.",
          "type": "string"
        },
        "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"
        },
        "conversionsFromInteractionsValuePerInteraction": {
          "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.",
          "type": "number",
          "format": "double"
        },
        "clientAccountCrossSellUnitsSold": {
          "description": "Client account cross-sell units sold is the total number of products sold as a result of advertising a different product. How it works: You report conversions with cart data for completed purchases on your website. If the ad that was interacted with before the purchase has an associated product (see Shopping Ads) then this product is considered the advertised product. Any product included in the order the customer places is a sold product. If these products don't match then this is considered cross-sell. Cross-sell units sold is the total number of cross-sold products from all orders attributed to your ads. Example: Someone clicked on a Shopping ad for a hat then bought the same hat, a shirt and a jacket. The cross-sell units sold in this order is 2. This metric is only available if you report conversions with cart data.",
          "type": "number",
          "format": "double"
        },
        "conversionsValuePerCost": {
          "description": "The value of biddable conversion divided by the total cost of conversion eligible interactions.",
          "type": "number",
          "format": "double"
        },
        "leadGrossProfitMicros": {
          "format": "int64",
          "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. This metric is a monetary value and returned in the customer's currency by default. See the metrics_currency parameter at https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause",
          "type": "string"
        },
        "conversionsValueByConversionDate": {
          "description": "The sum of biddable conversions value by conversion date. When this column is selected with date, the values in date column means the conversion date.",
          "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.",
          "type": "string",
          "format": "int64"
        },
        "searchClickShare": {
          "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",
          "format": "double"
        },
        "allConversionsValueByConversionDate": {
          "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/sa360/answer/9250611.",
          "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"
        },
        "generalInvalidClickRate": {
          "format": "double",
          "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.",
          "type": "number"
        },
        "historicalQualityScore": {
          "description": "The historical quality score.",
          "type": "string",
          "format": "int64"
        },
        "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.",
          "type": "string",
          "format": "int64"
        },
        "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"
        },
        "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.",
          "type": "number",
          "format": "double"
        },
        "valuePerConversionsByConversionDate": {
          "format": "double",
          "description": "Biddable conversions value by conversion date divided by biddable conversions by conversion date. Shows how much, on average, each of the biddable conversions is worth (by conversion date). When this column is selected with date, the values in date column means the conversion date.",
          "type": "number"
        },
        "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"
        },
        "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"
        },
        "searchTopImpressionShare": {
          "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",
          "format": "double"
        },
        "crossDeviceConversionsValue": {
          "description": "The sum of the value of cross-device conversions.",
          "type": "number",
          "format": "double"
        },
        "averageCartSize": {
          "format": "double",
          "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.",
          "type": "number"
        },
        "allConversions": {
          "description": "The total number of conversions. This includes all conversions regardless of the value of include_in_conversions_metric.",
          "type": "number",
          "format": "double"
        },
        "interactionEventTypes": {
          "items": {
            "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."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "CLICK",
              "ENGAGEMENT",
              "VIDEO_VIEW",
              "NONE"
            ]
          },
          "description": "The types of payable and free interactions.",
          "type": "array"
        },
        "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"
        },
        "conversionsValue": {
          "format": "double",
          "description": "The sum of conversion values for the conversions included in the \"conversions\" field. This metric is useful only if you entered a value for your conversion actions.",
          "type": "number"
        },
        "conversions": {
          "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.",
          "type": "number",
          "format": "double"
        },
        "uniqueUsers": {
          "format": "int64",
          "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.",
          "type": "string"
        },
        "clientAccountLeadCostOfGoodsSoldMicros": {
          "format": "int64",
          "description": "Client account lead cost of goods sold (COGS) is the total cost of products sold as a result of advertising the same product. How it works: You report conversions with cart data for completed purchases on your website. If the ad that was interacted with has an associated product (see Shopping Ads) then this product is considered the advertised product. Any product included in the order the customer places is a sold product. If the advertised and sold products match, then the cost of these goods is counted under lead cost of goods sold. Example: Someone clicked on a Shopping ad for a hat then bought the same hat and a shirt. The hat has a cost of goods sold value of $3, the shirt has a cost of goods sold value of $5. The lead cost of goods sold for this order is $3. This metric is only available if you report conversions with cart data. This metric is a monetary value and returned in the customer's currency by default. See the metrics_currency parameter at https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause",
          "type": "string"
        },
        "invalidClickRate": {
          "description": "The percentage of clicks filtered out of your total number of clicks (filtered + non-filtered clicks) during the reporting period.",
          "type": "number",
          "format": "double"
        },
        "averageCpm": {
          "description": "Average cost-per-thousand impressions (CPM). This metric is a monetary value and returned in the customer's currency by default. See the metrics_currency parameter at https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause",
          "type": "number",
          "format": "double"
        },
        "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"
        },
        "interactionRate": {
          "format": "double",
          "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"
        },
        "allConversionsFromStoreWebsite": {
          "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.",
          "type": "number"
        },
        "crossDeviceConversionsValueByConversionDate": {
          "format": "double",
          "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/sa360/answer/9250611.",
          "type": "number"
        },
        "conversionCustomMetrics": {
          "items": {
            "$ref": "GoogleAdsSearchads360V0Common__Value"
          },
          "description": "The conversion custom metrics.",
          "type": "array"
        },
        "searchRankLostImpressionShare": {
          "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.",
          "type": "number",
          "format": "double"
        },
        "historicalCreativeQualityScore": {
          "description": "The creative historical quality score.",
          "type": "string",
          "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"
          ]
        },
        "clientAccountCrossSellCostOfGoodsSoldMicros": {
          "format": "int64",
          "description": "Client account cross-sell cost of goods sold (COGS) is the total cost of products sold as a result of advertising a different product. How it works: You report conversions with cart data for completed purchases on your website. If the ad that was interacted with before the purchase has an associated product (see Shopping Ads) then this product is considered the advertised product. Any product included in the order the customer places is a sold product. If these products don't match then this is considered cross-sell. Cross-sell cost of goods sold is the total cost of the products sold that weren't advertised. Example: Someone clicked on a Shopping ad for a hat then bought the same hat and a shirt. The hat has a cost of goods sold value of $3, the shirt has a cost of goods sold value of $5. The cross-sell cost of goods sold for this order is $5. This metric is only available if you report conversions with cart data. This metric is a monetary value and returned in the customer's currency by default. See the metrics_currency parameter at https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause",
          "type": "string"
        },
        "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"
        },
        "crossSellCostOfGoodsSoldMicros": {
          "format": "int64",
          "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. This metric is a monetary value and returned in the customer's currency by default. See the metrics_currency parameter at https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause",
          "type": "string"
        },
        "allConversionsValue": {
          "description": "The value of all conversions.",
          "type": "number",
          "format": "double"
        },
        "allConversionsFromDirections": {
          "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.",
          "type": "number",
          "format": "double"
        },
        "allConversionsFromOrder": {
          "description": "The number of times people placed an order at a business after clicking an ad. This metric applies to feed items only.",
          "type": "number",
          "format": "double"
        },
        "costMicros": {
          "description": "The sum of your cost-per-click (CPC) and cost-per-thousand impressions (CPM) costs during this period. This metric is a monetary value and returned in the customer's currency by default. See the metrics_currency parameter at https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause",
          "type": "string",
          "format": "int64"
        },
        "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"
        },
        "topImpressionPercentage": {
          "description": "The percent of your ad impressions that are shown adjacent to the top organic search results.",
          "type": "number",
          "format": "double"
        },
        "allConversionsFromStoreVisit": {
          "format": "double",
          "description": "Estimated number of times people visited a business after clicking an ad. This metric applies to feed items only.",
          "type": "number"
        },
        "leadCostOfGoodsSoldMicros": {
          "format": "int64",
          "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. This metric is a monetary value and returned in the customer's currency by default. See the metrics_currency parameter at https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause",
          "type": "string"
        },
        "contentImpressionShare": {
          "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.",
          "type": "number"
        },
        "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"
        },
        "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"
        },
        "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"
        },
        "averageCost": {
          "format": "double",
          "description": "The average amount you pay per interaction. This amount is the total cost of your ads divided by the total number of interactions.",
          "type": "number"
        }
      }
    },
    "GoogleAdsSearchads360V0Common__PercentCpc": {
      "description": "A bidding strategy where bids are a fraction of the advertised price for some good or service.",
      "type": "object",
      "properties": {
        "cpcBidCeilingMicros": {
          "format": "int64",
          "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"
        },
        "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": "GoogleAdsSearchads360V0Common__PercentCpc"
    },
    "GoogleAdsSearchads360V23Common_PolicyTopicConstraint_CountryConstraint": {
      "description": "Indicates that a resource's ability to serve in a particular country is constrained.",
      "type": "object",
      "properties": {
        "countryCriterion": {
          "description": "Geo target constant resource name of the country in which serving is constrained.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V23Common_PolicyTopicConstraint_CountryConstraint"
    },
    "GoogleAdsSearchads360V0Common__WebpageConditionInfo": {
      "id": "GoogleAdsSearchads360V0Common__WebpageConditionInfo",
      "description": "Logical expression for targeting webpages of an advertiser's website.",
      "type": "object",
      "properties": {
        "operator": {
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EQUALS",
            "CONTAINS"
          ],
          "description": "Operator of webpage targeting condition.",
          "type": "string"
        },
        "argument": {
          "description": "Argument of webpage targeting condition.",
          "type": "string"
        },
        "operand": {
          "description": "Operand of webpage targeting condition.",
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "URL",
            "CATEGORY",
            "PAGE_TITLE",
            "PAGE_CONTENT",
            "CUSTOM_LABEL"
          ]
        }
      }
    },
    "GoogleAdsSearchads360V0Resources__CampaignEffectiveLabel": {
      "description": "Represents a relationship between a campaign and an effective label. An effective label is a label inherited or directly assigned to this campaign.",
      "type": "object",
      "properties": {
        "resourceName": {
          "description": "Immutable. Name of the resource. CampaignEffectivelabel resource names have the form: `customers/{owner_customer_id}/campaignEffectiveLabels/{campaign_id}~{label_id}`",
          "type": "string"
        },
        "label": {
          "description": "Immutable. The effective label assigned to the campaign.",
          "type": "string"
        },
        "ownerCustomerId": {
          "format": "int64",
          "description": "Output only. The ID of the Customer which owns the effective label.",
          "readOnly": true,
          "type": "string"
        },
        "campaign": {
          "description": "Immutable. The campaign to which the effective label is attached.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V0Resources__CampaignEffectiveLabel"
    },
    "GoogleAdsSearchads360V23Errors__ErrorLocation": {
      "id": "GoogleAdsSearchads360V23Errors__ErrorLocation",
      "description": "Describes the part of the request proto that caused the error.",
      "type": "object",
      "properties": {
        "fieldPathElements": {
          "description": "A field path that indicates which field was invalid in the request.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Errors_ErrorLocation_FieldPathElement"
          }
        }
      }
    },
    "GoogleAdsSearchads360V0Resources__Customer": {
      "description": "A customer.",
      "type": "object",
      "properties": {
        "status": {
          "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"
          ],
          "description": "Output only. The status of the customer.",
          "readOnly": true,
          "type": "string"
        },
        "timeZone": {
          "description": "Immutable. The local timezone ID of the customer.",
          "type": "string"
        },
        "autoTaggingEnabled": {
          "description": "Whether auto-tagging is enabled for the customer.",
          "type": "boolean"
        },
        "doubleClickCampaignManagerSetting": {
          "description": "Output only. DoubleClick Campaign Manager (DCM) setting for a manager customer.",
          "readOnly": true,
          "$ref": "GoogleAdsSearchads360V0Resources__DoubleClickCampaignManagerSetting"
        },
        "associateManagerId": {
          "format": "int64",
          "description": "Output only. The customer ID of the associate manager. A 0 value indicates that the customer has no SA360 associate manager.",
          "readOnly": true,
          "type": "string"
        },
        "trackingUrlTemplate": {
          "description": "The URL template for constructing a tracking URL out of parameters.",
          "type": "string"
        },
        "engineId": {
          "description": "Output only. ID of the account in the external engine account.",
          "readOnly": true,
          "type": "string"
        },
        "subManagerId": {
          "description": "Output only. The customer ID of the sub manager. A 0 value indicates that the customer has no sub SA360 manager.",
          "readOnly": true,
          "type": "string",
          "format": "int64"
        },
        "conversionTrackingSetting": {
          "description": "Output only. Conversion tracking setting for a customer.",
          "readOnly": true,
          "$ref": "GoogleAdsSearchads360V0Resources__ConversionTrackingSetting"
        },
        "managerDescriptiveName": {
          "description": "Output only. The descriptive name of the manager.",
          "readOnly": true,
          "type": "string"
        },
        "resourceName": {
          "description": "Immutable. The resource name of the customer. Customer resource names have the form: `customers/{customer_id}`",
          "type": "string"
        },
        "accountType": {
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Baidu account.",
            "Engine track account.",
            "Facebook account.",
            "Facebook account managed through gateway.",
            "Google Ads account.",
            "Microsoft Advertising account.",
            "Search Ads 360 manager account.",
            "Yahoo Japan account."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BAIDU",
            "ENGINE_TRACK",
            "FACEBOOK",
            "FACEBOOK_GATEWAY",
            "GOOGLE_ADS",
            "MICROSOFT",
            "SEARCH_ADS_360",
            "YAHOO_JAPAN"
          ],
          "description": "Output only. Engine account type, for example, Google Ads, Microsoft Advertising, Yahoo Japan, Baidu, Facebook, Engine Track, etc."
        },
        "subManagerDescriptiveName": {
          "description": "Output only. The descriptive name of the sub manager.",
          "readOnly": true,
          "type": "string"
        },
        "descriptiveName": {
          "description": "Optional, non-unique descriptive name of the customer.",
          "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"
        },
        "lastModifiedTime": {
          "description": "Output only. The datetime when this customer was last modified. The datetime is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss.ssssss\" format.",
          "readOnly": true,
          "type": "string"
        },
        "associateManagerDescriptiveName": {
          "description": "Output only. The descriptive name of the associate manager.",
          "readOnly": true,
          "type": "string"
        },
        "accountStatus": {
          "description": "Output only. Account status, for example, Enabled, Paused, Removed, etc.",
          "enumDescriptions": [
            "Default value.",
            "Unknown value.",
            "Account is able to serve ads.",
            "Account is deactivated by the user.",
            "Account is deactivated by an internal process.",
            "Account is irrevocably deactivated.",
            "Account is still in the process of setup, not ENABLED yet."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "PAUSED",
            "SUSPENDED",
            "REMOVED",
            "DRAFT"
          ],
          "readOnly": true,
          "type": "string"
        },
        "manager": {
          "description": "Output only. Whether the customer is a manager.",
          "readOnly": true,
          "type": "boolean"
        },
        "finalUrlSuffix": {
          "description": "The URL template for appending params to the final URL.",
          "type": "string"
        },
        "accountLevel": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The account level of the customer: Manager, Sub-manager, Associate manager, Service account.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Client account (Facebook)",
            "Client account (Google Ads)",
            "Client account (Microsoft)",
            "Client account (Yahoo Japan)",
            "Client account (Engine Track)",
            "Top-level manager.",
            "Sub manager.",
            "Associate manager."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CLIENT_ACCOUNT_FACEBOOK",
            "CLIENT_ACCOUNT_GOOGLE_ADS",
            "CLIENT_ACCOUNT_MICROSOFT",
            "CLIENT_ACCOUNT_YAHOO_JAPAN",
            "CLIENT_ACCOUNT_ENGINE_TRACK",
            "MANAGER",
            "SUB_MANAGER",
            "ASSOCIATE_MANAGER"
          ]
        },
        "id": {
          "format": "int64",
          "description": "Output only. The ID of the customer.",
          "readOnly": true,
          "type": "string"
        },
        "managerId": {
          "description": "Output only. The customer ID of the manager. A 0 value indicates that the customer has no SA360 manager.",
          "readOnly": true,
          "type": "string",
          "format": "int64"
        },
        "creationTime": {
          "description": "Output only. The timestamp when this customer was created. The timestamp is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss\" format.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V0Resources__Customer"
    },
    "GoogleAdsSearchads360V0Resources__Conversion": {
      "description": "A conversion.",
      "type": "object",
      "properties": {
        "criterionId": {
          "format": "int64",
          "description": "Output only. Search Ads 360 criterion ID. A value of 0 indicates that the criterion is unattributed.",
          "readOnly": true,
          "type": "string"
        },
        "productLanguageCode": {
          "description": "Output only. The language (ISO-639-1) that has been set for the Merchant Center feed containing data about the product.",
          "readOnly": true,
          "type": "string"
        },
        "attributionType": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. What the conversion is attributed to: Visit or Keyword+Ad.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The conversion is attributed to a visit.",
            "The conversion is attributed to a criterion and ad pair."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "VISIT",
            "CRITERION_AD"
          ]
        },
        "conversionRevenueMicros": {
          "format": "int64",
          "description": "Output only. The adjusted revenue in micros for the conversion event. This will always be in the currency of the serving account.",
          "readOnly": true,
          "type": "string"
        },
        "id": {
          "format": "int64",
          "description": "Output only. The ID of the conversion",
          "readOnly": true,
          "type": "string"
        },
        "conversionDateTime": {
          "description": "Output only. The timestamp of the conversion event.",
          "readOnly": true,
          "type": "string"
        },
        "floodlightOrderId": {
          "description": "Output only. The Floodlight order ID provided by the advertiser for the conversion.",
          "readOnly": true,
          "type": "string"
        },
        "productCountryCode": {
          "description": "Output only. The country (ISO-3166-format) registered for the inventory feed that contains the product clicked on.",
          "readOnly": true,
          "type": "string"
        },
        "assetId": {
          "description": "Output only. ID of the asset which was interacted with during the conversion event.",
          "readOnly": true,
          "type": "string",
          "format": "int64"
        },
        "conversionQuantity": {
          "format": "int64",
          "description": "Output only. The quantity of items recorded by the conversion, as determined by the qty url parameter. The advertiser is responsible for dynamically populating the parameter (such as number of items sold in the conversion), otherwise it defaults to 1.",
          "readOnly": true,
          "type": "string"
        },
        "conversionLastModifiedDateTime": {
          "description": "Output only. The timestamp of the last time the conversion was modified.",
          "readOnly": true,
          "type": "string"
        },
        "productChannel": {
          "description": "Output only. The sales channel of the product that was clicked on: Online or 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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ONLINE",
            "LOCAL"
          ],
          "readOnly": true,
          "type": "string"
        },
        "resourceName": {
          "description": "Output only. The resource name of the conversion. Conversion resource names have the form: `customers/{customer_id}/conversions/{ad_group_id}~{criterion_id}~{ds_conversion_id}`",
          "readOnly": true,
          "type": "string"
        },
        "clickId": {
          "description": "Output only. A unique string, for the visit that the conversion is attributed to, that is passed to the landing page as the click id URL parameter.",
          "readOnly": true,
          "type": "string"
        },
        "advertiserConversionId": {
          "description": "Output only. For offline conversions, this is an ID provided by advertisers. If an advertiser doesn't specify such an ID, Search Ads 360 generates one. For online conversions, this is equal to the id column or the floodlight_order_id column depending on the advertiser's Floodlight instructions.",
          "readOnly": true,
          "type": "string"
        },
        "floodlightOriginalRevenue": {
          "format": "int64",
          "description": "Output only. The original, unchanged revenue associated with the Floodlight event (in the currency of the current report), before Floodlight currency instruction modifications.",
          "readOnly": true,
          "type": "string"
        },
        "adId": {
          "description": "Output only. Ad ID. A value of 0 indicates that the ad is unattributed.",
          "readOnly": true,
          "type": "string",
          "format": "int64"
        },
        "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 discovery carousel card.",
            "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",
            "DISCOVERY_CAROUSEL_CARD",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION"
          ],
          "description": "Output only. Asset field type of the conversion event.",
          "readOnly": true,
          "type": "string"
        },
        "status": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The status of the conversion, either ENABLED or REMOVED..",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The conversion is enabled.",
            "The conversion has been removed."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ]
        },
        "productId": {
          "description": "Output only. The ID of the product clicked on.",
          "readOnly": true,
          "type": "string"
        },
        "conversionVisitDateTime": {
          "description": "Output only. The timestamp of the visit that the conversion is attributed to.",
          "readOnly": true,
          "type": "string"
        },
        "merchantId": {
          "description": "Output only. The Search Ads 360 inventory account ID containing the product that was clicked on. Search Ads 360 generates this ID when you link an inventory account in Search Ads 360.",
          "readOnly": true,
          "type": "string",
          "format": "int64"
        },
        "visitId": {
          "description": "Output only. The Search Ads 360 visit ID that the conversion is attributed to.",
          "readOnly": true,
          "type": "string",
          "format": "int64"
        },
        "productStoreId": {
          "description": "Output only. The store in the Local Inventory Ad that was clicked on. This should match the store IDs used in your local products feed.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V0Resources__Conversion"
    },
    "GoogleAdsSearchads360V0Resources__CustomerAsset": {
      "description": "A link between a customer and an asset.",
      "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"
        },
        "status": {
          "description": "Status of the customer asset.",
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED",
            "PAUSED"
          ]
        },
        "asset": {
          "description": "Required. Immutable. The asset which is linked to the customer.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V0Resources__CustomerAsset"
    },
    "GoogleAdsSearchads360V0Resources_Campaign_ShoppingSetting": {
      "id": "GoogleAdsSearchads360V0Resources_Campaign_ShoppingSetting",
      "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.",
      "type": "object",
      "properties": {
        "useVehicleInventory": {
          "description": "Immutable. Whether to target Vehicle Listing inventory.",
          "type": "boolean"
        },
        "salesCountry": {
          "description": "Sales country of products to include in the campaign. ",
          "type": "string"
        },
        "campaignPriority": {
          "format": "int32",
          "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.",
          "type": "integer"
        },
        "merchantId": {
          "format": "int64",
          "description": "Immutable. ID of the Merchant Center account. This field is required for create operations. This field is immutable for Shopping campaigns.",
          "type": "string"
        },
        "feedLabel": {
          "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.",
          "type": "string"
        },
        "enableLocal": {
          "description": "Whether to include local products.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsSearchads360V0Resources__AdGroupAudienceView": {
      "id": "GoogleAdsSearchads360V0Resources__AdGroupAudienceView",
      "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",
      "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}`",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V0Resources_Campaign_GeoTargetTypeSetting": {
      "description": "Represents a collection of settings related to ads geotargeting.",
      "type": "object",
      "properties": {
        "positiveGeoTargetType": {
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PRESENCE_OR_INTEREST",
            "SEARCH_INTEREST",
            "PRESENCE"
          ],
          "description": "The setting used for positive geotargeting in this particular campaign.",
          "type": "string"
        },
        "negativeGeoTargetType": {
          "description": "The setting used for negative geotargeting in this particular campaign.",
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PRESENCE_OR_INTEREST",
            "PRESENCE"
          ]
        }
      },
      "id": "GoogleAdsSearchads360V0Resources_Campaign_GeoTargetTypeSetting"
    },
    "GoogleAdsSearchads360V0Common__YoutubeVideoAsset": {
      "id": "GoogleAdsSearchads360V0Common__YoutubeVideoAsset",
      "description": "A YouTube asset.",
      "type": "object",
      "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"
        }
      }
    },
    "GoogleAdsSearchads360V0Common__BusinessProfileLocation": {
      "description": "Business Profile location data synced from the linked Business Profile account.",
      "type": "object",
      "properties": {
        "storeCode": {
          "description": "Business Profile store code of this location. This is synced from the Business Profile account.",
          "type": "string"
        },
        "listingId": {
          "format": "int64",
          "description": "Listing ID of this Business Profile location. This is synced from the linked Business Profile account.",
          "type": "string"
        },
        "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"
        }
      },
      "id": "GoogleAdsSearchads360V0Common__BusinessProfileLocation"
    },
    "GoogleAdsSearchads360V0Common__MaximizeConversionValue": {
      "description": "An automated bidding strategy to help get the most conversion value for your campaigns while spending your budget.",
      "type": "object",
      "properties": {
        "cpcBidCeilingMicros": {
          "format": "int64",
          "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.",
          "type": "string"
        },
        "targetRoas": {
          "format": "double",
          "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.",
          "type": "number"
        },
        "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.",
          "type": "string",
          "format": "int64"
        }
      },
      "id": "GoogleAdsSearchads360V0Common__MaximizeConversionValue"
    },
    "GoogleAdsSearchads360V0Common__AdTextAsset": {
      "description": "A text asset used inside an ad.",
      "type": "object",
      "properties": {
        "text": {
          "description": "Asset text.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V0Common__AdTextAsset"
    },
    "GoogleAdsSearchads360V0Resources__CampaignAsset": {
      "description": "A link between a Campaign and an Asset.",
      "type": "object",
      "properties": {
        "status": {
          "readOnly": true,
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED",
            "PAUSED"
          ],
          "description": "Output only. Status of the campaign asset."
        },
        "campaign": {
          "description": "Immutable. The campaign to which the asset is linked.",
          "type": "string"
        },
        "asset": {
          "description": "Immutable. The asset which is linked to the campaign.",
          "type": "string"
        },
        "resourceName": {
          "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}`",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V0Resources__CampaignAsset"
    },
    "GoogleAdsSearchads360V0Common__TargetSpend": {
      "id": "GoogleAdsSearchads360V0Common__TargetSpend",
      "description": "An automated bid strategy that sets your bids to help get as many clicks as possible within your budget.",
      "type": "object",
      "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.",
          "type": "string",
          "deprecated": true,
          "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.",
          "type": "string",
          "format": "int64"
        }
      }
    },
    "GoogleAdsSearchads360V0Resources__AdGroupCriterion": {
      "description": "An ad group criterion. The ad_group_criterion report only returns criteria that were explicitly added to the ad group.",
      "type": "object",
      "properties": {
        "adGroup": {
          "description": "Immutable. The ad group to which the criterion belongs.",
          "type": "string"
        },
        "listingGroup": {
          "description": "Immutable. Listing group.",
          "$ref": "GoogleAdsSearchads360V0Common__ListingGroupInfo"
        },
        "engineStatus": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The Engine Status for ad group criterion.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Deprecated. Do not use.",
            "Baidu: Bid or quality too low to be displayed.",
            "Baidu: Bid or quality too low for mobile, but eligible to display for desktop.",
            "Baidu: Bid or quality too low for desktop, but eligible to display for mobile.",
            "Baidu: Bid or quality too low to be displayed.",
            "Baidu: Paused by Baidu due to low search volume.",
            "Baidu: Mobile URL in process to be reviewed.",
            "Baidu: The landing page for one device is invalid, while the landing page for the other device is valid.",
            "Baidu: Keyword has been created and paused by Baidu account management, and is now ready for you to activate it.",
            "Baidu: In process to be reviewed by Baidu. Gemini: Criterion under review.",
            "Baidu: Criterion to be reviewed.",
            "Deprecated. Do not use. Previously used by Gemini",
            "Y!J : Criterion pending review",
            "Criterion has been paused.",
            "Criterion has been removed.",
            "Criterion has been approved.",
            "Criterion has been disapproved.",
            "Criterion is active and serving.",
            "Criterion has been paused since the account is paused."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AD_GROUP_CRITERION_ELIGIBLE",
            "AD_GROUP_CRITERION_INAPPROPRIATE_FOR_CAMPAIGN",
            "AD_GROUP_CRITERION_INVALID_MOBILE_SEARCH",
            "AD_GROUP_CRITERION_INVALID_PC_SEARCH",
            "AD_GROUP_CRITERION_INVALID_SEARCH",
            "AD_GROUP_CRITERION_LOW_SEARCH_VOLUME",
            "AD_GROUP_CRITERION_MOBILE_URL_UNDER_REVIEW",
            "AD_GROUP_CRITERION_PARTIALLY_INVALID",
            "AD_GROUP_CRITERION_TO_BE_ACTIVATED",
            "AD_GROUP_CRITERION_UNDER_REVIEW",
            "AD_GROUP_CRITERION_NOT_REVIEWED",
            "AD_GROUP_CRITERION_ON_HOLD",
            "AD_GROUP_CRITERION_PENDING_REVIEW",
            "AD_GROUP_CRITERION_PAUSED",
            "AD_GROUP_CRITERION_REMOVED",
            "AD_GROUP_CRITERION_APPROVED",
            "AD_GROUP_CRITERION_DISAPPROVED",
            "AD_GROUP_CRITERION_SERVING",
            "AD_GROUP_CRITERION_ACCOUNT_PAUSED"
          ],
          "enumDeprecated": [
            false,
            false,
            true,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            true,
            false,
            false,
            false,
            false,
            false,
            false,
            false
          ]
        },
        "ageRange": {
          "description": "Immutable. Age range.",
          "$ref": "GoogleAdsSearchads360V0Common__AgeRangeInfo"
        },
        "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": "GoogleAdsSearchads360V0Common__CustomParameter"
          }
        },
        "finalUrlSuffix": {
          "description": "URL template for appending params to final URL.",
          "type": "string"
        },
        "negative": {
          "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.",
          "type": "boolean"
        },
        "location": {
          "description": "Immutable. Location.",
          "$ref": "GoogleAdsSearchads360V0Common__LocationInfo"
        },
        "effectiveLabels": {
          "description": "Output only. The resource names of effective labels attached to this ad group criterion. An effective label is a label inherited or directly assigned to this ad group criterion.",
          "readOnly": true,
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "status": {
          "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.",
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "PAUSED",
            "REMOVED"
          ]
        },
        "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"
        },
        "bidModifier": {
          "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.",
          "type": "number"
        },
        "effectiveCpcBidMicros": {
          "description": "Output only. The effective CPC (cost-per-click) bid.",
          "readOnly": true,
          "type": "string",
          "format": "int64"
        },
        "cpcBidMicros": {
          "format": "int64",
          "description": "The CPC (cost-per-click) bid.",
          "type": "string"
        },
        "positionEstimates": {
          "description": "Output only. Estimates for criterion bids at various positions.",
          "readOnly": true,
          "$ref": "GoogleAdsSearchads360V0Resources_AdGroupCriterion_PositionEstimates"
        },
        "labels": {
          "description": "Output only. The resource names of labels attached to this ad group criterion.",
          "readOnly": true,
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "lastModifiedTime": {
          "description": "Output only. The datetime when this ad group criterion was last modified. The datetime is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss.ssssss\" format.",
          "readOnly": true,
          "type": "string"
        },
        "qualityInfo": {
          "description": "Output only. Information regarding the quality of the criterion.",
          "readOnly": true,
          "$ref": "GoogleAdsSearchads360V0Resources_AdGroupCriterion_QualityInfo"
        },
        "finalUrls": {
          "description": "The list of possible final URLs after all cross-domain redirects for the ad.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "finalMobileUrls": {
          "items": {
            "type": "string"
          },
          "description": "The list of possible final mobile URLs after all cross-domain redirects.",
          "type": "array"
        },
        "creationTime": {
          "description": "Output only. The timestamp when this ad group criterion was created. The timestamp is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss\" format.",
          "readOnly": true,
          "type": "string"
        },
        "webpage": {
          "description": "Immutable. Webpage",
          "$ref": "GoogleAdsSearchads360V0Common__WebpageInfo"
        },
        "criterionId": {
          "format": "int64",
          "description": "Output only. The ID of the criterion.",
          "readOnly": true,
          "type": "string"
        },
        "keyword": {
          "description": "Immutable. Keyword.",
          "$ref": "GoogleAdsSearchads360V0Common__KeywordInfo"
        },
        "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",
            "Local Services Ads Service ID.",
            "Brand",
            "Brand List",
            "Life Event"
          ],
          "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",
            "LOCAL_SERVICE_ID",
            "BRAND",
            "BRAND_LIST",
            "LIFE_EVENT"
          ],
          "description": "Output only. The type of the criterion.",
          "readOnly": true,
          "type": "string"
        },
        "userList": {
          "description": "Immutable. User List.",
          "$ref": "GoogleAdsSearchads360V0Common__UserListInfo"
        },
        "engineId": {
          "description": "Output only. ID of the ad group criterion in the external engine account. This field is for non-Google Ads account only, for example, Yahoo Japan, Microsoft, Baidu etc. For Google Ads entity, use \"ad_group_criterion.criterion_id\" instead.",
          "readOnly": true,
          "type": "string"
        },
        "gender": {
          "description": "Immutable. Gender.",
          "$ref": "GoogleAdsSearchads360V0Common__GenderInfo"
        },
        "trackingUrlTemplate": {
          "description": "The URL template for constructing a tracking URL.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V0Resources__AdGroupCriterion"
    },
    "GoogleAdsSearchads360V0Resources__ListingGroupFilterDimensionPath": {
      "id": "GoogleAdsSearchads360V0Resources__ListingGroupFilterDimensionPath",
      "description": "The path defining of dimensions defining a listing group filter.",
      "type": "object",
      "properties": {
        "dimensions": {
          "description": "Output only. The complete path of dimensions through the listing group filter hierarchy (excluding the root node) to this listing group filter.",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V0Resources__ListingGroupFilterDimension"
          }
        }
      }
    },
    "GoogleAdsSearchads360V0Resources__AssetSet": {
      "description": "An asset set representing a collection of assets. Use AssetSetAsset to link an asset to the asset set.",
      "type": "object",
      "properties": {
        "id": {
          "format": "int64",
          "description": "Output only. The ID of the asset set.",
          "readOnly": true,
          "type": "string"
        },
        "resourceName": {
          "description": "Immutable. The resource name of the asset set. Asset set resource names have the form: `customers/{customer_id}/assetSets/{asset_set_id}`",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V0Resources__AssetSet"
    },
    "GoogleAdsSearchads360V23Common_PolicyTopicEvidence_DestinationMismatch": {
      "id": "GoogleAdsSearchads360V23Common_PolicyTopicEvidence_DestinationMismatch",
      "description": "Evidence of mismatches between the URLs of a resource.",
      "type": "object",
      "properties": {
        "urlTypes": {
          "description": "The set of URLs that did not match each other.",
          "type": "array",
          "items": {
            "type": "string",
            "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."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "DISPLAY_URL",
              "FINAL_URL",
              "FINAL_MOBILE_URL",
              "TRACKING_URL",
              "MOBILE_TRACKING_URL"
            ]
          }
        }
      }
    },
    "GoogleAdsSearchads360V0Resources__AdGroupAsset": {
      "id": "GoogleAdsSearchads360V0Resources__AdGroupAsset",
      "description": "A link between an ad group and an asset.",
      "type": "object",
      "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"
        },
        "adGroup": {
          "description": "Required. Immutable. The ad group to which the asset is linked.",
          "type": "string"
        },
        "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED",
            "PAUSED"
          ],
          "description": "Status of the ad group asset.",
          "type": "string"
        },
        "asset": {
          "description": "Required. Immutable. The asset which is linked to the ad group.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V0Resources_ListingGroupFilterDimension_ProductBiddingCategory": {
      "id": "GoogleAdsSearchads360V0Resources_ListingGroupFilterDimension_ProductBiddingCategory",
      "description": "One element of a bidding category at a certain level. Top-level categories are at level 1, their children at level 2, and so on. We currently support up to 5 levels. The user must specify a dimension type that indicates the level of the category. All cases of the same subdivision must have the same dimension type (category level).",
      "type": "object",
      "properties": {
        "id": {
          "description": "ID of the product bidding category. This ID is equivalent to the google_product_category ID as described in this article: https://support.google.com/merchants/answer/6324436",
          "type": "string",
          "format": "int64"
        },
        "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"
        }
      }
    },
    "GoogleAdsSearchads360V0Resources__AssetSetAsset": {
      "description": "AssetSetAsset is the link between an asset and an asset set. Adding an AssetSetAsset links an asset with an asset set.",
      "type": "object",
      "properties": {
        "asset": {
          "description": "Immutable. The asset which this asset set asset is linking to.",
          "type": "string"
        },
        "assetSet": {
          "description": "Immutable. The asset set which this asset set asset is linking to.",
          "type": "string"
        },
        "status": {
          "readOnly": true,
          "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 asset set asset is enabled.",
            "The asset set asset is removed."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "description": "Output only. The status of the asset set asset. Read-only."
        },
        "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"
        }
      },
      "id": "GoogleAdsSearchads360V0Resources__AssetSetAsset"
    },
    "GoogleAdsSearchads360V0Resources_Campaign_NetworkSettings": {
      "id": "GoogleAdsSearchads360V0Resources_Campaign_NetworkSettings",
      "description": "The network settings for the campaign.",
      "type": "object",
      "properties": {
        "targetSearchNetwork": {
          "description": "Whether ads will be served on sites in the Google Search Partners Network (requires `target_google_search` to also be `true`).",
          "type": "boolean"
        },
        "targetContentNetwork": {
          "description": "Whether ads will be served on specified placements in the Google Display Network. Placements are specified using the Placement criterion.",
          "type": "boolean"
        },
        "targetPartnerSearchNetwork": {
          "description": "Whether ads will be served on the partner network. This is available only to some select partner accounts. Unless you have been instructed to use this field, it likely does not apply to your account. This does not control whether ads will be served on Google Search Partners Network; use `target_search_network` for that instead.",
          "type": "boolean"
        },
        "targetGoogleSearch": {
          "description": "Whether ads will be served with google.com search results.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsSearchads360V0Resources__DoubleClickCampaignManagerSetting": {
      "id": "GoogleAdsSearchads360V0Resources__DoubleClickCampaignManagerSetting",
      "description": "DoubleClick Campaign Manager (DCM) setting for a manager customer.",
      "type": "object",
      "properties": {
        "timeZone": {
          "description": "Output only. Time zone of the Campaign Manager network associated with this customer in IANA Time Zone Database format, such as America/New_York.",
          "readOnly": true,
          "type": "string"
        },
        "advertiserId": {
          "description": "Output only. ID of the Campaign Manager advertiser associated with this customer.",
          "readOnly": true,
          "type": "string",
          "format": "int64"
        },
        "networkId": {
          "format": "int64",
          "description": "Output only. ID of the Campaign Manager network associated with this customer.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V0Resources_ConversionAction_FloodlightSettings": {
      "id": "GoogleAdsSearchads360V0Resources_ConversionAction_FloodlightSettings",
      "description": "Settings related to a Floodlight conversion action.",
      "type": "object",
      "properties": {
        "activityTag": {
          "description": "Output only. String used to identify a Floodlight activity when reporting conversions.",
          "readOnly": true,
          "type": "string"
        },
        "activityId": {
          "format": "int64",
          "description": "Output only. ID of the Floodlight activity in DoubleClick Campaign Manager (DCM).",
          "readOnly": true,
          "type": "string"
        },
        "activityGroupTag": {
          "description": "Output only. String used to identify a Floodlight activity group when reporting conversions.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V0Common__SearchAds360TextAdInfo": {
      "id": "GoogleAdsSearchads360V0Common__SearchAds360TextAdInfo",
      "description": "A Search Ads 360 text ad.",
      "type": "object",
      "properties": {
        "displayMobileUrl": {
          "description": "The displayed mobile URL of the ad.",
          "type": "string"
        },
        "adTrackingId": {
          "description": "The tracking id of the ad.",
          "type": "string",
          "format": "int64"
        },
        "headline": {
          "description": "The headline of the ad.",
          "type": "string"
        },
        "description1": {
          "description": "The first line of the ad's description.",
          "type": "string"
        },
        "description2": {
          "description": "The second line of the ad's description.",
          "type": "string"
        },
        "displayUrl": {
          "description": "The displayed URL of the ad.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V0Resources_Campaign_OptimizationGoalSetting": {
      "description": "Optimization goal setting for this campaign, which includes a set of optimization goal types.",
      "type": "object",
      "properties": {
        "optimizationGoalTypes": {
          "description": "The list of optimization goal types.",
          "type": "array",
          "items": {
            "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."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "CALL_CLICKS",
              "DRIVING_DIRECTIONS",
              "APP_PRE_REGISTRATION"
            ],
            "type": "string"
          }
        }
      },
      "id": "GoogleAdsSearchads360V0Resources_Campaign_OptimizationGoalSetting"
    },
    "GoogleAdsSearchads360V0Resources__CampaignCriterion": {
      "description": "A campaign criterion.",
      "type": "object",
      "properties": {
        "lastModifiedTime": {
          "description": "Output only. The datetime when this campaign criterion was last modified. The datetime is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss.ssssss\" format.",
          "readOnly": true,
          "type": "string"
        },
        "locationGroup": {
          "description": "Immutable. Location Group",
          "$ref": "GoogleAdsSearchads360V0Common__LocationGroupInfo"
        },
        "criterionId": {
          "description": "Output only. The ID of the criterion. This field is ignored during mutate.",
          "readOnly": true,
          "type": "string",
          "format": "int64"
        },
        "device": {
          "description": "Immutable. Device.",
          "$ref": "GoogleAdsSearchads360V0Common__DeviceInfo"
        },
        "negative": {
          "description": "Immutable. Whether to target (`false`) or exclude (`true`) the criterion.",
          "type": "boolean"
        },
        "ageRange": {
          "description": "Immutable. Age range.",
          "$ref": "GoogleAdsSearchads360V0Common__AgeRangeInfo"
        },
        "webpage": {
          "description": "Immutable. Webpage.",
          "$ref": "GoogleAdsSearchads360V0Common__WebpageInfo"
        },
        "status": {
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "PAUSED",
            "REMOVED"
          ],
          "description": "The status of the criterion.",
          "type": "string"
        },
        "keyword": {
          "description": "Immutable. Keyword.",
          "$ref": "GoogleAdsSearchads360V0Common__KeywordInfo"
        },
        "location": {
          "description": "Immutable. Location.",
          "$ref": "GoogleAdsSearchads360V0Common__LocationInfo"
        },
        "type": {
          "readOnly": true,
          "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",
            "Local Services Ads Service ID.",
            "Brand",
            "Brand List",
            "Life Event"
          ],
          "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",
            "LOCAL_SERVICE_ID",
            "BRAND",
            "BRAND_LIST",
            "LIFE_EVENT"
          ],
          "description": "Output only. The type of the criterion."
        },
        "gender": {
          "description": "Immutable. Gender.",
          "$ref": "GoogleAdsSearchads360V0Common__GenderInfo"
        },
        "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"
        },
        "bidModifier": {
          "format": "float",
          "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.",
          "type": "number"
        },
        "language": {
          "description": "Immutable. Language.",
          "$ref": "GoogleAdsSearchads360V0Common__LanguageInfo"
        },
        "displayName": {
          "description": "Output only. The display name of the criterion. This field is ignored for mutates.",
          "readOnly": true,
          "type": "string"
        },
        "userList": {
          "description": "Immutable. User List.",
          "$ref": "GoogleAdsSearchads360V0Common__UserListInfo"
        }
      },
      "id": "GoogleAdsSearchads360V0Resources__CampaignCriterion"
    },
    "GoogleAdsSearchads360V23Errors__PolicyViolationDetails": {
      "description": "Error returned as part of a mutate response. This error indicates single policy violation by some text in one of the fields.",
      "type": "object",
      "properties": {
        "externalPolicyName": {
          "description": "Human readable name of the policy.",
          "type": "string"
        },
        "isExemptible": {
          "description": "Whether user can file an exemption request for this violation.",
          "type": "boolean"
        },
        "externalPolicyDescription": {
          "description": "Human readable description of policy violation.",
          "type": "string"
        },
        "key": {
          "description": "Unique identifier for this violation. If policy is exemptible, this key may be used to request exemption.",
          "$ref": "GoogleAdsSearchads360V23Common__PolicyViolationKey"
        }
      },
      "id": "GoogleAdsSearchads360V23Errors__PolicyViolationDetails"
    },
    "GoogleAdsSearchads360V0Common__LocationGroupInfo": {
      "id": "GoogleAdsSearchads360V0Common__LocationGroupInfo",
      "description": "A radius around a list of locations specified through a feed.",
      "type": "object",
      "properties": {
        "radius": {
          "format": "int64",
          "description": "Distance in units specifying the radius around targeted locations. This is required and must be set in CREATE operations.",
          "type": "string"
        },
        "geoTargetConstants": {
          "items": {
            "type": "string"
          },
          "description": "Geo target constant(s) restricting the scope of the geographic area within the feed. Currently only one geo target constant is allowed.",
          "type": "array"
        },
        "radiusUnits": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Meters",
            "Miles",
            "Milli Miles"
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "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. This is required and must be set in CREATE operations.",
          "type": "string"
        },
        "feedItemSets": {
          "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.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "GoogleAdsSearchads360V0Resources__AssetGroup": {
      "id": "GoogleAdsSearchads360V0Resources__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": {
        "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"
        },
        "campaign": {
          "description": "Immutable. The campaign with which this asset group is associated. The asset which is linked to the asset group.",
          "type": "string"
        },
        "adStrength": {
          "readOnly": true,
          "type": "string",
          "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"
          ],
          "description": "Output only. Overall ad strength of this asset group."
        },
        "id": {
          "format": "int64",
          "description": "Output only. The ID of the asset group.",
          "readOnly": true,
          "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"
        },
        "path1": {
          "description": "First part of text that may appear appended to the url displayed in the ad.",
          "type": "string"
        },
        "finalMobileUrls": {
          "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.",
          "type": "array"
        },
        "path2": {
          "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.",
          "type": "string"
        },
        "status": {
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "PAUSED",
            "REMOVED"
          ],
          "description": "The status of the asset group.",
          "type": "string"
        },
        "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"
        }
      }
    },
    "GoogleAdsSearchads360V0Common__AudienceInfo": {
      "id": "GoogleAdsSearchads360V0Common__AudienceInfo",
      "description": "An audience criterion.",
      "type": "object",
      "properties": {
        "audience": {
          "description": "The Audience resource name.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Errors__ResourceCountDetails": {
      "id": "GoogleAdsSearchads360V23Errors__ResourceCountDetails",
      "description": "Error details returned when an resource count limit was exceeded.",
      "type": "object",
      "properties": {
        "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"
          ]
        },
        "enclosingId": {
          "description": "The ID of the resource whose limit was exceeded. External customer ID if the limit is for a customer.",
          "type": "string"
        },
        "existingCount": {
          "format": "int32",
          "description": "The count of existing entities.",
          "type": "integer"
        },
        "enclosingResource": {
          "description": "The name of the resource ( etc.) whose limit was exceeded.",
          "type": "string"
        },
        "limit": {
          "description": "The limit which was exceeded.",
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "GoogleAdsSearchads360V0Resources__AssetGroupAsset": {
      "id": "GoogleAdsSearchads360V0Resources__AssetGroupAsset",
      "description": "AssetGroupAsset is the link between an asset and an asset group. Adding an AssetGroupAsset links an asset with an asset group.",
      "type": "object",
      "properties": {
        "assetGroup": {
          "description": "Immutable. The asset group which this asset group asset is linking.",
          "type": "string"
        },
        "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED",
            "PAUSED"
          ],
          "description": "The status of the link between an asset and asset group.",
          "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"
        },
        "asset": {
          "description": "Immutable. The asset which this asset group asset is linking.",
          "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 discovery carousel card.",
            "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",
            "DISCOVERY_CAROUSEL_CARD",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION"
          ],
          "description": "The description of the placement of the asset within the asset group. For example: HEADLINE, YOUTUBE_VIDEO etc",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V0Resources__AdGroupCriterionLabel": {
      "description": "A relationship between an ad group criterion and a label.",
      "type": "object",
      "properties": {
        "ownerCustomerId": {
          "format": "int64",
          "description": "Output only. The ID of the Customer which owns the label.",
          "readOnly": true,
          "type": "string"
        },
        "adGroupCriterion": {
          "description": "Immutable. The ad group criterion to which the label is attached.",
          "type": "string"
        },
        "resourceName": {
          "description": "Immutable. The resource name of the ad group criterion label. Ad group criterion label resource names have the form: `customers/{owner_customer_id}/adGroupCriterionLabels/{ad_group_id}~{criterion_id}~{label_id}`",
          "type": "string"
        },
        "label": {
          "description": "Immutable. The label assigned to the ad group criterion.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V0Resources__AdGroupCriterionLabel"
    },
    "GoogleAdsSearchads360V0Common__UnifiedLocationAsset": {
      "description": "A unified location asset.",
      "type": "object",
      "properties": {
        "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"
        },
        "businessProfileLocations": {
          "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",
          "items": {
            "$ref": "GoogleAdsSearchads360V0Common__BusinessProfileLocation"
          }
        },
        "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.",
          "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)."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BUSINESS_OWNER",
            "AFFILIATE"
          ]
        }
      },
      "id": "GoogleAdsSearchads360V0Common__UnifiedLocationAsset"
    },
    "GoogleAdsSearchads360V0Resources__KeywordView": {
      "id": "GoogleAdsSearchads360V0Resources__KeywordView",
      "description": "A keyword view.",
      "type": "object",
      "properties": {
        "resourceName": {
          "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}`",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V0Common__ImageDimension": {
      "id": "GoogleAdsSearchads360V0Common__ImageDimension",
      "description": "Metadata for an image at a certain size, either original or resized.",
      "type": "object",
      "properties": {
        "heightPixels": {
          "description": "Height of the image.",
          "type": "string",
          "format": "int64"
        },
        "widthPixels": {
          "format": "int64",
          "description": "Width of the image.",
          "type": "string"
        },
        "url": {
          "description": "A URL that returns the image with this height and width.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Errors__PolicyFindingDetails": {
      "description": "Error returned as part of a mutate response. This error indicates one or more policy findings in the fields of a resource.",
      "type": "object",
      "properties": {
        "policyTopicEntries": {
          "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).",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__PolicyTopicEntry"
          }
        }
      },
      "id": "GoogleAdsSearchads360V23Errors__PolicyFindingDetails"
    },
    "GoogleAdsSearchads360V0Common__Keyword": {
      "description": "A Keyword criterion segment.",
      "type": "object",
      "properties": {
        "info": {
          "description": "Keyword info.",
          "$ref": "GoogleAdsSearchads360V0Common__KeywordInfo"
        },
        "adGroupCriterion": {
          "description": "The AdGroupCriterion resource name.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V0Common__Keyword"
    },
    "GoogleAdsSearchads360V0Resources__BiddingStrategy": {
      "description": "A bidding strategy.",
      "type": "object",
      "properties": {
        "type": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The type of the bidding strategy. Create a bidding strategy by setting the bidding scheme. This field is read-only.",
          "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.",
            "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 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.",
            "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "COMMISSION",
            "ENHANCED_CPC",
            "INVALID",
            "MANUAL_CPA",
            "MANUAL_CPC",
            "MANUAL_CPM",
            "MANUAL_CPV",
            "MAXIMIZE_CONVERSIONS",
            "MAXIMIZE_CONVERSION_VALUE",
            "PAGE_ONE_PROMOTED",
            "PERCENT_CPC",
            "TARGET_CPA",
            "TARGET_CPM",
            "TARGET_IMPRESSION_SHARE",
            "TARGET_OUTRANK_SHARE",
            "TARGET_ROAS",
            "TARGET_SPEND"
          ]
        },
        "targetImpressionShare": {
          "description": "A bidding strategy that automatically optimizes towards a chosen percentage of impressions.",
          "$ref": "GoogleAdsSearchads360V0Common__TargetImpressionShare"
        },
        "targetOutrankShare": {
          "description": "A bidding strategy that sets bids based on the target fraction of auctions where the advertiser should outrank a specific competitor. This field is deprecated. Creating a new bidding strategy with this field or attaching bidding strategies with this field to a campaign will fail. Mutates to strategies that already have this scheme populated are allowed.",
          "$ref": "GoogleAdsSearchads360V0Common__TargetOutrankShare"
        },
        "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.",
          "$ref": "GoogleAdsSearchads360V0Common__EnhancedCpc"
        },
        "status": {
          "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 bidding strategy is enabled.",
            "The bidding strategy is removed."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "description": "Output only. The status of the bidding strategy. This field is read-only."
        },
        "targetRoas": {
          "description": "A bidding strategy that helps you maximize revenue while averaging a specific target Return On Ad Spend (ROAS).",
          "$ref": "GoogleAdsSearchads360V0Common__TargetRoas"
        },
        "nonRemovedCampaignCount": {
          "description": "Output only. The number of non-removed campaigns attached to this bidding strategy. This field is read-only.",
          "readOnly": true,
          "type": "string",
          "format": "int64"
        },
        "resourceName": {
          "description": "Immutable. The resource name of the bidding strategy. Bidding strategy resource names have the form: `customers/{customer_id}/biddingStrategies/{bidding_strategy_id}`",
          "type": "string"
        },
        "campaignCount": {
          "description": "Output only. The number of campaigns attached to this bidding strategy. This field is read-only.",
          "readOnly": true,
          "type": "string",
          "format": "int64"
        },
        "currencyCode": {
          "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": "string"
        },
        "maximizeConversionValue": {
          "description": "An automated bidding strategy to help get the most conversion value for your campaigns while spending your budget.",
          "$ref": "GoogleAdsSearchads360V0Common__MaximizeConversionValue"
        },
        "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.",
          "$ref": "GoogleAdsSearchads360V0Common__TargetCpa"
        },
        "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"
        },
        "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.",
          "readOnly": true,
          "type": "string"
        },
        "maximizeConversions": {
          "description": "An automated bidding strategy to help get the most conversions for your campaigns while spending your budget.",
          "$ref": "GoogleAdsSearchads360V0Common__MaximizeConversions"
        },
        "id": {
          "description": "Output only. The ID of the bidding strategy.",
          "readOnly": true,
          "type": "string",
          "format": "int64"
        },
        "targetSpend": {
          "description": "A bid strategy that sets your bids to help get as many clicks as possible within your budget.",
          "$ref": "GoogleAdsSearchads360V0Common__TargetSpend"
        }
      },
      "id": "GoogleAdsSearchads360V0Resources__BiddingStrategy"
    },
    "GoogleAdsSearchads360V0Resources_ListingGroupFilterDimension_ProductCondition": {
      "description": "Condition of a product offer.",
      "type": "object",
      "properties": {
        "condition": {
          "description": "Value of the condition.",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NEW",
            "REFURBISHED",
            "USED"
          ]
        }
      },
      "id": "GoogleAdsSearchads360V0Resources_ListingGroupFilterDimension_ProductCondition"
    },
    "GoogleAdsSearchads360V0Resources__SearchAds360Field": {
      "description": "A field or resource (artifact) used by SearchAds360Service.",
      "type": "object",
      "properties": {
        "category": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The category of the artifact.",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "RESOURCE",
            "ATTRIBUTE",
            "SEGMENT",
            "METRIC"
          ]
        },
        "attributeResources": {
          "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,
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "metrics": {
          "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,
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "enumValues": {
          "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.",
          "readOnly": true,
          "type": "array"
        },
        "selectable": {
          "description": "Output only. Whether the artifact can be used in a SELECT clause in search queries.",
          "readOnly": true,
          "type": "boolean"
        },
        "isRepeated": {
          "description": "Output only. Whether the field artifact is repeated.",
          "readOnly": true,
          "type": "boolean"
        },
        "resourceName": {
          "description": "Output only. The resource name of the artifact. Artifact resource names have the form: `SearchAds360Fields/{name}`",
          "readOnly": true,
          "type": "string"
        },
        "typeUrl": {
          "description": "Output only. The URL of proto describing the artifact's data type.",
          "readOnly": true,
          "type": "string"
        },
        "selectableWith": {
          "items": {
            "type": "string"
          },
          "description": "Output only. The names of all resources, segments, and metrics that are selectable with the described artifact.",
          "readOnly": true,
          "type": "array"
        },
        "sortable": {
          "description": "Output only. Whether the artifact can be used in a ORDER BY clause in search queries.",
          "readOnly": true,
          "type": "boolean"
        },
        "dataType": {
          "description": "Output only. This field determines the operators that can be used with the artifact in WHERE clauses.",
          "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: =, \u003c, \u003e, \u003c=, \u003e=, BETWEEN, DURING, and IN",
            "Maps to google.protobuf.DoubleValue Applicable operators: =, !=, \u003c, \u003e, 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: =, !=, \u003c, \u003e, IN, NOT IN",
            "Maps to google.protobuf.Int32Value Applicable operators: =, !=, \u003c, \u003e, \u003c=, \u003e=, BETWEEN, IN, NOT IN",
            "Maps to google.protobuf.Int64Value Applicable operators: =, !=, \u003c, \u003e, \u003c=, \u003e=, 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: =, !=, \u003c, \u003e, \u003c=, \u003e=, BETWEEN, IN, NOT IN"
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BOOLEAN",
            "DATE",
            "DOUBLE",
            "ENUM",
            "FLOAT",
            "INT32",
            "INT64",
            "MESSAGE",
            "RESOURCE_NAME",
            "STRING",
            "UINT64"
          ],
          "readOnly": true,
          "type": "string"
        },
        "filterable": {
          "description": "Output only. Whether the artifact can be used in a WHERE clause in search queries.",
          "readOnly": true,
          "type": "boolean"
        },
        "segments": {
          "items": {
            "type": "string"
          },
          "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"
        },
        "name": {
          "description": "Output only. The name of the artifact.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V0Resources__SearchAds360Field"
    },
    "GoogleAdsSearchads360V0Common__TargetCpm": {
      "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",
      "properties": {},
      "id": "GoogleAdsSearchads360V0Common__TargetCpm"
    },
    "GoogleAdsSearchads360V0Resources__DynamicSearchAdsSearchTermView": {
      "description": "A dynamic search ads search term view.",
      "type": "object",
      "properties": {
        "landingPage": {
          "description": "Output only. The dynamically selected landing page URL of the impression. This field is read-only.",
          "readOnly": true,
          "type": "string"
        },
        "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"
        }
      },
      "id": "GoogleAdsSearchads360V0Resources__DynamicSearchAdsSearchTermView"
    },
    "GoogleAdsSearchads360V0Common__ListingGroupInfo": {
      "description": "A listing group criterion.",
      "type": "object",
      "properties": {
        "type": {
          "description": "Type of the listing group.",
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SUBDIVISION",
            "UNIT"
          ]
        }
      },
      "id": "GoogleAdsSearchads360V0Common__ListingGroupInfo"
    },
    "GoogleAdsSearchads360V0Resources__ProductGroupView": {
      "id": "GoogleAdsSearchads360V0Resources__ProductGroupView",
      "description": "A product group view.",
      "type": "object",
      "properties": {
        "resourceName": {
          "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,
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V0Services__SearchSearchAds360FieldsResponse": {
      "id": "GoogleAdsSearchads360V0Services__SearchSearchAds360FieldsResponse",
      "description": "Response message for SearchAds360FieldService.SearchSearchAds360Fields.",
      "type": "object",
      "properties": {
        "totalResultsCount": {
          "description": "Total number of results that match the query ignoring the LIMIT clause.",
          "type": "string",
          "format": "int64"
        },
        "results": {
          "items": {
            "$ref": "GoogleAdsSearchads360V0Resources__SearchAds360Field"
          },
          "description": "The list of fields that matched the query.",
          "type": "array"
        },
        "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"
        }
      }
    },
    "GoogleAdsSearchads360V0Resources__AdGroupAdLabel": {
      "description": "A relationship between an ad group ad and a label.",
      "type": "object",
      "properties": {
        "ownerCustomerId": {
          "description": "Output only. The ID of the Customer which owns the label.",
          "readOnly": true,
          "type": "string",
          "format": "int64"
        },
        "resourceName": {
          "description": "Immutable. The resource name of the ad group ad label. Ad group ad label resource names have the form: `customers/{owner_customer_id}/adGroupAdLabels/{ad_group_id}~{ad_id}~{label_id}`",
          "type": "string"
        },
        "adGroupAd": {
          "description": "Immutable. The ad group ad to which the label is attached.",
          "type": "string"
        },
        "label": {
          "description": "Immutable. The label assigned to the ad group ad.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V0Resources__AdGroupAdLabel"
    },
    "GoogleAdsSearchads360V0Resources__AdGroupEffectiveLabel": {
      "description": "A relationship between an ad group and an effective label. An effective label is a label inherited or directly assigned to this ad group.",
      "type": "object",
      "properties": {
        "resourceName": {
          "description": "Immutable. The resource name of the ad group effective label. Ad group effective label resource names have the form: `customers/{owner_customer_id}/adGroupEffectiveLabels/{ad_group_id}~{label_id}`",
          "type": "string"
        },
        "adGroup": {
          "description": "Immutable. The ad group to which the effective label is attached.",
          "type": "string"
        },
        "label": {
          "description": "Immutable. The effective label assigned to the ad group.",
          "type": "string"
        },
        "ownerCustomerId": {
          "format": "int64",
          "description": "Output only. The ID of the Customer which owns the effective label.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V0Resources__AdGroupEffectiveLabel"
    },
    "GoogleAdsSearchads360V0Resources__AssetGroupAssetCombinationData": {
      "id": "GoogleAdsSearchads360V0Resources__AssetGroupAssetCombinationData",
      "description": "Asset group asset combination data",
      "type": "object",
      "properties": {
        "assetCombinationServedAssets": {
          "description": "Output only. Served assets.",
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V0Common__AssetUsage"
          }
        }
      }
    },
    "GoogleAdsSearchads360V0Services__SearchSearchAds360Response": {
      "description": "Response message for SearchAds360Service.Search.",
      "type": "object",
      "properties": {
        "results": {
          "description": "The list of rows that matched the query.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V0Services__SearchAds360Row"
          }
        },
        "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"
        },
        "totalResultsCount": {
          "format": "int64",
          "description": "Total number of results that match the query ignoring the LIMIT clause.",
          "type": "string"
        },
        "rawEventConversionDimensionHeaders": {
          "items": {
            "$ref": "GoogleAdsSearchads360V0Services__RawEventConversionDimensionHeader"
          },
          "description": "The headers of the raw event conversion dimensions in the results.",
          "type": "array"
        },
        "customColumnHeaders": {
          "items": {
            "$ref": "GoogleAdsSearchads360V0Services__CustomColumnHeader"
          },
          "description": "The headers of the custom columns in the results.",
          "type": "array"
        },
        "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": "GoogleAdsSearchads360V0Services__SearchAds360Row"
        },
        "rawEventConversionMetricHeaders": {
          "items": {
            "$ref": "GoogleAdsSearchads360V0Services__RawEventConversionMetricHeader"
          },
          "description": "The headers of the raw event conversion metrics in the results.",
          "type": "array"
        },
        "conversionCustomMetricHeaders": {
          "items": {
            "$ref": "GoogleAdsSearchads360V0Services__ConversionCustomMetricHeader"
          },
          "description": "The headers of the conversion custom metrics in the results.",
          "type": "array"
        },
        "fieldMask": {
          "format": "google-fieldmask",
          "description": "FieldMask that represents what fields were requested by the user.",
          "type": "string"
        },
        "conversionCustomDimensionHeaders": {
          "description": "The headers of the conversion custom dimensions in the results.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V0Services__ConversionCustomDimensionHeader"
          }
        }
      },
      "id": "GoogleAdsSearchads360V0Services__SearchSearchAds360Response"
    },
    "GoogleAdsSearchads360V0Common__RealTimeBiddingSetting": {
      "id": "GoogleAdsSearchads360V0Common__RealTimeBiddingSetting",
      "description": "Settings for Real-Time Bidding, a feature only available for campaigns targeting the Ad Exchange network.",
      "type": "object",
      "properties": {
        "optIn": {
          "description": "Whether the campaign is opted in to real-time bidding.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsSearchads360V0Resources__Visit": {
      "description": "A visit.",
      "type": "object",
      "properties": {
        "criterionId": {
          "description": "Output only. Search Ads 360 keyword ID. A value of 0 indicates that the keyword is unattributed.",
          "readOnly": true,
          "type": "string",
          "format": "int64"
        },
        "productLanguageCode": {
          "description": "Output only. The language (ISO-639-1) that has been set for the Merchant Center feed containing data about the product.",
          "readOnly": true,
          "type": "string"
        },
        "id": {
          "format": "int64",
          "description": "Output only. The ID of the visit.",
          "readOnly": true,
          "type": "string"
        },
        "productCountryCode": {
          "description": "Output only. The country (ISO-3166 format) registered for the inventory feed that contains the product clicked on.",
          "readOnly": true,
          "type": "string"
        },
        "assetId": {
          "description": "Output only. ID of the asset which was interacted with during the visit event.",
          "readOnly": true,
          "type": "string",
          "format": "int64"
        },
        "productChannel": {
          "description": "Output only. The sales channel of the product that was clicked on: Online or 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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ONLINE",
            "LOCAL"
          ],
          "readOnly": true,
          "type": "string"
        },
        "resourceName": {
          "description": "Output only. The resource name of the visit. Visit resource names have the form: `customers/{customer_id}/visits/{ad_group_id}~{criterion_id}~{ds_visit_id}`",
          "readOnly": true,
          "type": "string"
        },
        "clickId": {
          "description": "Output only. A unique string for each visit that is passed to the landing page as the click id URL parameter.",
          "readOnly": true,
          "type": "string"
        },
        "adId": {
          "format": "int64",
          "description": "Output only. Ad ID. A value of 0 indicates that the ad is unattributed.",
          "readOnly": true,
          "type": "string"
        },
        "assetFieldType": {
          "readOnly": true,
          "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 discovery carousel card.",
            "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",
            "DISCOVERY_CAROUSEL_CARD",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION"
          ],
          "description": "Output only. Asset field type of the visit event."
        },
        "productId": {
          "description": "Output only. The ID of the product clicked on.",
          "readOnly": true,
          "type": "string"
        },
        "visitDateTime": {
          "description": "Output only. The timestamp of the visit event. The timestamp is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss\" format.",
          "readOnly": true,
          "type": "string"
        },
        "merchantId": {
          "format": "int64",
          "description": "Output only. The Search Ads 360 inventory account ID containing the product that was clicked on. Search Ads 360 generates this ID when you link an inventory account in Search Ads 360.",
          "readOnly": true,
          "type": "string"
        },
        "productStoreId": {
          "description": "Output only. The store in the Local Inventory Ad that was clicked on. This should match the store IDs used in your local products feed.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V0Resources__Visit"
    },
    "GoogleAdsSearchads360V0Common__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",
      "type": "object",
      "properties": {
        "targetRestrictions": {
          "items": {
            "$ref": "GoogleAdsSearchads360V0Common__TargetRestriction"
          },
          "description": "The per-targeting-dimension setting to restrict the reach of your campaign or ad group.",
          "type": "array"
        }
      },
      "id": "GoogleAdsSearchads360V0Common__TargetingSetting"
    },
    "GoogleAdsSearchads360V0Resources__Ad": {
      "id": "GoogleAdsSearchads360V0Resources__Ad",
      "description": "An ad.",
      "type": "object",
      "properties": {
        "finalAppUrls": {
          "description": "A list of final app URLs that will be used on mobile if the user has the specific app installed.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V0Common__FinalAppUrl"
          }
        },
        "finalMobileUrls": {
          "items": {
            "type": "string"
          },
          "description": "The list of possible final mobile URLs after all cross-domain redirects for the ad.",
          "type": "array"
        },
        "finalUrls": {
          "description": "The list of possible final URLs after all cross-domain redirects for the ad.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "expandedDynamicSearchAd": {
          "description": "Immutable. Details pertaining to an expanded dynamic search ad.",
          "$ref": "GoogleAdsSearchads360V0Common__SearchAds360ExpandedDynamicSearchAdInfo"
        },
        "name": {
          "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.",
          "type": "string"
        },
        "finalUrlSuffix": {
          "description": "The suffix to use when constructing a final URL.",
          "type": "string"
        },
        "expandedTextAd": {
          "description": "Immutable. Details pertaining to an expanded text ad.",
          "$ref": "GoogleAdsSearchads360V0Common__SearchAds360ExpandedTextAdInfo"
        },
        "responsiveSearchAd": {
          "description": "Immutable. Details pertaining to a responsive search ad.",
          "$ref": "GoogleAdsSearchads360V0Common__SearchAds360ResponsiveSearchAdInfo"
        },
        "id": {
          "format": "int64",
          "description": "Output only. The ID of the ad.",
          "readOnly": true,
          "type": "string"
        },
        "type": {
          "description": "Output only. The type of ad.",
          "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 a call only 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 a Gmail 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 outstream ad.",
            "Video TrueView in-display ad.",
            "Video TrueView in-stream ad.",
            "Video responsive ad.",
            "Smart campaign ad.",
            "Universal app pre-registration ad.",
            "Travel ad.",
            "Multimedia ad."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "TEXT_AD",
            "EXPANDED_TEXT_AD",
            "CALL_ONLY_AD",
            "EXPANDED_DYNAMIC_SEARCH_AD",
            "HOTEL_AD",
            "SHOPPING_SMART_AD",
            "SHOPPING_PRODUCT_AD",
            "VIDEO_AD",
            "GMAIL_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_OUTSTREAM_AD",
            "VIDEO_TRUEVIEW_DISCOVERY_AD",
            "VIDEO_TRUEVIEW_IN_STREAM_AD",
            "VIDEO_RESPONSIVE_AD",
            "SMART_CAMPAIGN_AD",
            "APP_PRE_REGISTRATION_AD",
            "TRAVEL_AD",
            "MULTIMEDIA_AD"
          ],
          "readOnly": true,
          "type": "string"
        },
        "displayUrl": {
          "description": "The URL that appears in the ad description for some ad formats.",
          "type": "string"
        },
        "productAd": {
          "description": "Immutable. Details pertaining to a product ad.",
          "$ref": "GoogleAdsSearchads360V0Common__SearchAds360ProductAdInfo"
        },
        "trackingUrlTemplate": {
          "description": "The URL template for constructing a tracking URL.",
          "type": "string"
        },
        "textAd": {
          "description": "Immutable. Details pertaining to a text ad.",
          "$ref": "GoogleAdsSearchads360V0Common__SearchAds360TextAdInfo"
        },
        "resourceName": {
          "description": "Immutable. The resource name of the ad. Ad resource names have the form: `customers/{customer_id}/ads/{ad_id}`",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V0Common__ImageAsset": {
      "description": "An Image asset.",
      "type": "object",
      "properties": {
        "fullSize": {
          "description": "Metadata for this image at its original size.",
          "$ref": "GoogleAdsSearchads360V0Common__ImageDimension"
        },
        "fileSize": {
          "description": "File size of the image asset in bytes.",
          "type": "string",
          "format": "int64"
        },
        "mimeType": {
          "description": "MIME type of the image asset.",
          "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"
          ]
        }
      },
      "id": "GoogleAdsSearchads360V0Common__ImageAsset"
    },
    "GoogleAdsSearchads360V0Resources_AdGroupCriterion_QualityInfo": {
      "id": "GoogleAdsSearchads360V0Resources_AdGroupCriterion_QualityInfo",
      "description": "A container for ad group criterion quality information.",
      "type": "object",
      "properties": {
        "qualityScore": {
          "description": "Output only. The quality score. This field may not be populated if Google does not have enough information to determine a value.",
          "readOnly": true,
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "GoogleAdsSearchads360V0Common__LocationInfo": {
      "id": "GoogleAdsSearchads360V0Common__LocationInfo",
      "description": "A location criterion.",
      "type": "object",
      "properties": {
        "geoTargetConstant": {
          "description": "The geo target constant resource name.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V0Common__DeviceInfo": {
      "id": "GoogleAdsSearchads360V0Common__DeviceInfo",
      "description": "A device criterion.",
      "type": "object",
      "properties": {
        "type": {
          "description": "Type of the device.",
          "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"
          ]
        }
      }
    },
    "GoogleAdsSearchads360V23Common__PolicyTopicConstraint": {
      "description": "Describes the effect on serving that a policy topic entry will have.",
      "type": "object",
      "properties": {
        "certificateMissingInCountryList": {
          "description": "Countries where a certificate is required for serving.",
          "$ref": "GoogleAdsSearchads360V23Common_PolicyTopicConstraint_CountryConstraintList"
        },
        "certificateDomainMismatchInCountryList": {
          "description": "Countries where the resource's domain is not covered by the certificates associated with it.",
          "$ref": "GoogleAdsSearchads360V23Common_PolicyTopicConstraint_CountryConstraintList"
        },
        "countryConstraintList": {
          "description": "Countries where the resource cannot serve.",
          "$ref": "GoogleAdsSearchads360V23Common_PolicyTopicConstraint_CountryConstraintList"
        },
        "resellerConstraint": {
          "description": "Reseller constraint.",
          "$ref": "GoogleAdsSearchads360V23Common_PolicyTopicConstraint_ResellerConstraint"
        }
      },
      "id": "GoogleAdsSearchads360V23Common__PolicyTopicConstraint"
    },
    "GoogleAdsSearchads360V0Resources__CustomerAssetSet": {
      "id": "GoogleAdsSearchads360V0Resources__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",
      "properties": {
        "assetSet": {
          "description": "Immutable. The asset set which is linked to the customer.",
          "type": "string"
        },
        "customer": {
          "description": "Immutable. The customer to which this asset set is linked.",
          "type": "string"
        },
        "status": {
          "description": "Output only. The status of the customer 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 linkage between asset set and its container is enabled.",
            "The linkage between asset set and its container is removed."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "readOnly": true,
          "type": "string"
        },
        "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"
        }
      }
    },
    "GoogleAdsSearchads360V0Common__Segments": {
      "id": "GoogleAdsSearchads360V0Common__Segments",
      "description": "Segment only fields.",
      "type": "object",
      "properties": {
        "productSoldBiddingCategoryLevel1": {
          "description": "Bidding category (level 1) of the product sold.",
          "type": "string"
        },
        "productTypeL1": {
          "description": "Type (level 1) of the product.",
          "type": "string"
        },
        "productBiddingCategoryLevel3": {
          "description": "Bidding category (level 3) of the product.",
          "type": "string"
        },
        "productSoldCustomAttribute4": {
          "description": "Custom attribute 4 of the product sold.",
          "type": "string"
        },
        "geoTargetCountry": {
          "description": "Resource name of the geo target constant that represents a country.",
          "type": "string"
        },
        "productSoldTitle": {
          "description": "Title of the product sold.",
          "type": "string"
        },
        "verticalAdsEventParticipantDisplayNames": {
          "description": "The display names of participants in an event listing, like performers, speakers, or teams.",
          "type": "string"
        },
        "productSoldTypeL1": {
          "description": "Type (level 1) of the product sold.",
          "type": "string"
        },
        "verticalAdsVertical": {
          "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"
          ],
          "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.",
          "type": "string"
        },
        "adNetworkType": {
          "description": "Ad network type.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Google search.",
            "Search partners.",
            "Display Network.",
            "YouTube Search.",
            "YouTube Videos",
            "Cross-network."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SEARCH",
            "SEARCH_PARTNERS",
            "CONTENT",
            "YOUTUBE_SEARCH",
            "YOUTUBE_WATCH",
            "MIXED"
          ]
        },
        "productSoldCondition": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The product condition is old.",
            "The product condition is new.",
            "The product condition is refurbished.",
            "The product condition is used."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "OLD",
            "NEW",
            "REFURBISHED",
            "USED"
          ],
          "description": "Condition of the product sold.",
          "type": "string"
        },
        "dayOfWeek": {
          "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": "Day of the week, for example, MONDAY.",
          "type": "string"
        },
        "verticalAdsListingCity": {
          "description": "The city where the vertical ads listing is located.",
          "type": "string"
        },
        "conversionAction": {
          "description": "Resource name of the conversion action.",
          "type": "string"
        },
        "geoTargetRegion": {
          "description": "Resource name of the geo target constant that represents a region.",
          "type": "string"
        },
        "date": {
          "description": "Date to which metrics apply. yyyy-MM-dd format, for example, 2018-04-17.",
          "type": "string"
        },
        "productSoldBiddingCategoryLevel4": {
          "description": "Bidding category (level 4) of the product sold.",
          "type": "string"
        },
        "productCustomAttribute0": {
          "description": "Custom attribute 0 of the product.",
          "type": "string"
        },
        "productSoldCustomAttribute1": {
          "description": "Custom attribute 1 of the product sold.",
          "type": "string"
        },
        "productBrand": {
          "description": "Brand of the product.",
          "type": "string"
        },
        "conversionActionCategory": {
          "description": "Conversion action 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.",
            "Lead-generating 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",
            "LEAD",
            "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"
          ]
        },
        "productCountry": {
          "description": "Resource name of the geo target constant for the country of sale of the product.",
          "type": "string"
        },
        "productTypeL2": {
          "description": "Type (level 2) of the product.",
          "type": "string"
        },
        "verticalAdsListingBrand": {
          "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.",
          "type": "string"
        },
        "productBiddingCategoryLevel4": {
          "description": "Bidding category (level 4) of the product.",
          "type": "string"
        },
        "productSoldCustomAttribute3": {
          "description": "Custom attribute 3 of the product sold.",
          "type": "string"
        },
        "geoTargetCity": {
          "description": "Resource name of the geo target constant that represents a city.",
          "type": "string"
        },
        "quarter": {
          "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.",
          "type": "string"
        },
        "productCustomAttribute3": {
          "description": "Custom attribute 3 of the product.",
          "type": "string"
        },
        "geoTargetPostalCode": {
          "description": "Resource name of the geo target constant that represents a postal code.",
          "type": "string"
        },
        "productBiddingCategoryLevel2": {
          "description": "Bidding category (level 2) of the product.",
          "type": "string"
        },
        "productBiddingCategoryLevel5": {
          "description": "Bidding category (level 5) of the product.",
          "type": "string"
        },
        "productTypeL4": {
          "description": "Type (level 4) of the product.",
          "type": "string"
        },
        "productSoldItemId": {
          "description": "Item ID of the product sold.",
          "type": "string"
        },
        "productSoldBrand": {
          "description": "Brand of the product sold.",
          "type": "string"
        },
        "productCustomAttribute4": {
          "description": "Custom attribute 4 of the product.",
          "type": "string"
        },
        "productSoldBiddingCategoryLevel2": {
          "description": "Bidding category (level 2) of the product sold.",
          "type": "string"
        },
        "productSoldTypeL3": {
          "description": "Type (level 3) of the product sold.",
          "type": "string"
        },
        "productSoldCustomAttribute0": {
          "description": "Custom attribute 0 of the product sold.",
          "type": "string"
        },
        "verticalAdsPartnerAccount": {
          "description": "A specific partner account within a Partner Center (for example, Hotel Center) that supplies inventory feed data for Vertical Ads.",
          "type": "string",
          "format": "int64"
        },
        "productSoldTypeL5": {
          "description": "Type (level 5) of the product sold.",
          "type": "string"
        },
        "productItemId": {
          "description": "Item ID of the product.",
          "type": "string"
        },
        "adFormatType": {
          "description": "Ad Format type.",
          "type": "string",
          "enumDescriptions": [
            "No value has been specified.",
            "Used for return value only. Represents value unknown in this version.",
            "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "VERTICAL_ADS_PROMOTION",
            "VERTICAL_ADS_BOOKING_LINK",
            "TEXT"
          ]
        },
        "productTypeL3": {
          "description": "Type (level 3) of the product.",
          "type": "string"
        },
        "conversionActionName": {
          "description": "Conversion action name.",
          "type": "string"
        },
        "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MOBILE",
            "TABLET",
            "DESKTOP",
            "CONNECTED_TV",
            "OTHER"
          ],
          "description": "Device to which metrics apply.",
          "type": "string"
        },
        "verticalAdsListing": {
          "description": "The listing associated with a listing impression, click or conversion.",
          "type": "string"
        },
        "rawEventConversionDimensions": {
          "items": {
            "$ref": "GoogleAdsSearchads360V0Common__Value"
          },
          "description": "The raw event conversion dimensions.",
          "type": "array"
        },
        "productSoldTypeL4": {
          "description": "Type (level 4) of the product sold.",
          "type": "string"
        },
        "verticalAdsHotelClass": {
          "format": "int64",
          "description": "The class of the hotel. Generally in the range of 1 to 5 stars, but fully customizable in the hotel feed.",
          "type": "string"
        },
        "year": {
          "format": "int32",
          "description": "Year, formatted as yyyy.",
          "type": "integer"
        },
        "productBiddingCategoryLevel1": {
          "description": "Bidding category (level 1) of the product.",
          "type": "string"
        },
        "verticalAdsListingRegion": {
          "description": "The region where the vertical ads listing is located.",
          "type": "string"
        },
        "productChannelExclusivity": {
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SINGLE_CHANNEL",
            "MULTI_CHANNEL"
          ],
          "description": "Channel exclusivity of the product.",
          "type": "string"
        },
        "month": {
          "description": "Month as represented by the date of the first day of a month. Formatted as yyyy-MM-dd.",
          "type": "string"
        },
        "productCustomAttribute1": {
          "description": "Custom attribute 1 of the product.",
          "type": "string"
        },
        "week": {
          "description": "Week as defined as Monday through Sunday, and represented by the date of Monday. Formatted as yyyy-MM-dd.",
          "type": "string"
        },
        "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"
          ]
        },
        "verticalAdsListingCountry": {
          "description": "The country where the vertical ads listing is located.",
          "type": "string"
        },
        "productStoreId": {
          "description": "Store ID of the product.",
          "type": "string"
        },
        "keyword": {
          "description": "Keyword criterion.",
          "$ref": "GoogleAdsSearchads360V0Common__Keyword"
        },
        "productCustomAttribute2": {
          "description": "Custom attribute 2 of the product.",
          "type": "string"
        },
        "productSoldTypeL2": {
          "description": "Type (level 2) of the product sold.",
          "type": "string"
        },
        "productSoldCustomAttribute2": {
          "description": "Custom attribute 2 of the product sold.",
          "type": "string"
        },
        "geoTargetMetro": {
          "description": "Resource name of the geo target constant that represents a metro.",
          "type": "string"
        },
        "conversionCustomDimensions": {
          "items": {
            "$ref": "GoogleAdsSearchads360V0Common__Value"
          },
          "description": "The conversion custom dimensions.",
          "type": "array"
        },
        "productLanguage": {
          "description": "Resource name of the language constant for the language of the product.",
          "type": "string"
        },
        "hour": {
          "description": "Hour of day as a number between 0 and 23, inclusive.",
          "type": "integer",
          "format": "int32"
        },
        "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": "GoogleAdsSearchads360V0Common__AssetInteractionTarget"
        },
        "productCondition": {
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The product condition is old.",
            "The product condition is new.",
            "The product condition is refurbished.",
            "The product condition is used."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "OLD",
            "NEW",
            "REFURBISHED",
            "USED"
          ],
          "description": "Condition of the product.",
          "type": "string"
        },
        "productSoldBiddingCategoryLevel3": {
          "description": "Bidding category (level 3) of the product sold.",
          "type": "string"
        },
        "productTitle": {
          "description": "Title of the product.",
          "type": "string"
        },
        "productTypeL5": {
          "description": "Type (level 5) of the product.",
          "type": "string"
        },
        "productSoldBiddingCategoryLevel5": {
          "description": "Bidding category (level 5) of the product sold.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V0Resources__AdGroupBidModifier": {
      "id": "GoogleAdsSearchads360V0Resources__AdGroupBidModifier",
      "description": "Represents an ad group bid modifier.",
      "type": "object",
      "properties": {
        "device": {
          "description": "Immutable. A device criterion.",
          "$ref": "GoogleAdsSearchads360V0Common__DeviceInfo"
        },
        "bidModifier": {
          "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.",
          "type": "number",
          "format": "double"
        },
        "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"
        }
      }
    },
    "GoogleAdsSearchads360V0Resources__AdGroupAdEffectiveLabel": {
      "id": "GoogleAdsSearchads360V0Resources__AdGroupAdEffectiveLabel",
      "description": "A relationship between an ad group ad and an effective label. An effective label is a label inherited or directly assigned to this ad group ad.",
      "type": "object",
      "properties": {
        "ownerCustomerId": {
          "description": "Output only. The ID of the Customer which owns the effective label.",
          "readOnly": true,
          "type": "string",
          "format": "int64"
        },
        "resourceName": {
          "description": "Immutable. The resource name of the ad group ad effective label. Ad group ad effective label resource names have the form: `customers/{owner_customer_id}/adGroupAdEffectiveLabels/{ad_group_id}~{ad_id}~{label_id}`",
          "type": "string"
        },
        "adGroupAd": {
          "description": "Immutable. The ad group ad to which the effective label is attached.",
          "type": "string"
        },
        "label": {
          "description": "Immutable. The effective label assigned to the ad group ad.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V0Common__SearchAds360ExpandedDynamicSearchAdInfo": {
      "description": "An expanded dynamic search ad.",
      "type": "object",
      "properties": {
        "description2": {
          "description": "The second line of the ad's description.",
          "type": "string"
        },
        "description1": {
          "description": "The first line of the ad's description.",
          "type": "string"
        },
        "adTrackingId": {
          "format": "int64",
          "description": "The tracking id of the ad.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V0Common__SearchAds360ExpandedDynamicSearchAdInfo"
    },
    "GoogleAdsSearchads360V0Resources_ListingGroupFilterDimension_ProductItemId": {
      "id": "GoogleAdsSearchads360V0Resources_ListingGroupFilterDimension_ProductItemId",
      "description": "Item id of a product offer.",
      "type": "object",
      "properties": {
        "value": {
          "description": "Value of the id.",
          "type": "string"
        }
      }
    }
  },
  "parameters": {
    "prettyPrint": {
      "location": "query",
      "default": "true",
      "type": "boolean",
      "description": "Returns response with indentations and line breaks."
    },
    "upload_protocol": {
      "type": "string",
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
      "location": "query"
    },
    "oauth_token": {
      "type": "string",
      "description": "OAuth 2.0 token for the current user.",
      "location": "query"
    },
    "$.xgafv": {
      "type": "string",
      "location": "query",
      "enum": [
        "1",
        "2"
      ],
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ],
      "description": "V1 error format."
    },
    "alt": {
      "description": "Data format for response.",
      "enum": [
        "json",
        "media",
        "proto"
      ],
      "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",
      "type": "string",
      "location": "query"
    },
    "callback": {
      "type": "string",
      "description": "JSONP",
      "location": "query"
    },
    "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."
    },
    "uploadType": {
      "location": "query",
      "type": "string",
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\")."
    },
    "fields": {
      "type": "string",
      "description": "Selector specifying which fields to include in a partial response.",
      "location": "query"
    },
    "quotaUser": {
      "location": "query",
      "type": "string",
      "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."
    },
    "access_token": {
      "type": "string",
      "description": "OAuth access token.",
      "location": "query"
    }
  },
  "rootUrl": "https://searchads360.googleapis.com/",
  "documentationLink": "https://developers.google.com/search-ads/reporting"
}
