{
  "resources": {
    "geoTargetConstants": {
      "methods": {
        "suggest": {
          "path": "v24/geoTargetConstants:suggest",
          "parameterOrder": [],
          "request": {
            "$ref": "GoogleAdsGoogleadsV24Services__SuggestGeoTargetConstantsRequest"
          },
          "httpMethod": "POST",
          "flatPath": "v24/geoTargetConstants:suggest",
          "parameters": {},
          "description": "Returns GeoTargetConstant suggestions by location name or by resource name. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [GeoTargetConstantSuggestionError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
          "id": "googleads.geoTargetConstants.suggest",
          "response": {
            "$ref": "GoogleAdsGoogleadsV24Services__SuggestGeoTargetConstantsResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ]
        }
      }
    },
    "googleAdsFields": {
      "methods": {
        "get": {
          "description": "Returns just the requested field. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
          "parameters": {
            "resourceName": {
              "type": "string",
              "description": "Required. The resource name of the field to get.",
              "location": "path",
              "required": true,
              "pattern": "^googleAdsFields/[^/]+$"
            }
          },
          "id": "googleads.googleAdsFields.get",
          "response": {
            "$ref": "GoogleAdsGoogleadsV24Resources__GoogleAdsField"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "flatPath": "v24/googleAdsFields/{googleAdsFieldsId}",
          "parameterOrder": [
            "resourceName"
          ],
          "httpMethod": "GET",
          "path": "v24/{+resourceName}"
        },
        "search": {
          "parameterOrder": [],
          "request": {
            "$ref": "GoogleAdsGoogleadsV24Services__SearchGoogleAdsFieldsRequest"
          },
          "httpMethod": "POST",
          "path": "v24/googleAdsFields:search",
          "parameters": {},
          "description": "Returns all fields that match the search query. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QueryError]() [QuotaError]() [RequestError]()",
          "id": "googleads.googleAdsFields.search",
          "response": {
            "$ref": "GoogleAdsGoogleadsV24Services__SearchGoogleAdsFieldsResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "flatPath": "v24/googleAdsFields:search"
        }
      }
    },
    "media": {
      "methods": {
        "upload": {
          "parameterOrder": [
            "customerId"
          ],
          "mediaUpload": {
            "protocols": {
              "simple": {
                "multipart": true,
                "path": "/upload/v24/customers/{+customerId}/youTubeVideoUploads:create"
              },
              "resumable": {
                "multipart": true,
                "path": "/resumable/upload/v24/customers/{+customerId}/youTubeVideoUploads:create"
              }
            },
            "accept": [
              "*/*"
            ],
            "maxSize": "5368709120"
          },
          "request": {
            "$ref": "GoogleAdsGoogleadsV24Services__CreateYouTubeVideoUploadRequest"
          },
          "httpMethod": "POST",
          "path": "v24/customers/{+customerId}/youTubeVideoUploads:create",
          "parameters": {
            "customerId": {
              "type": "string",
              "pattern": "^[^/]+$",
              "required": true,
              "description": "Required. The customer ID requesting the upload. Required.",
              "location": "path"
            }
          },
          "supportsMediaUpload": true,
          "description": "Uploads a video to Google-managed or advertiser owned (brand) YouTube channel.",
          "id": "googleads.media.upload",
          "response": {
            "$ref": "GoogleAdsGoogleadsV24Services__CreateYouTubeVideoUploadResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "flatPath": "v24/customers/{customersId}/youTubeVideoUploads:create"
        }
      }
    },
    "incentives": {
      "methods": {
        "fetchIncentive": {
          "flatPath": "v24/incentives:fetchIncentive",
          "parameters": {
            "type": {
              "type": "string",
              "description": "Optional. The type of incentive to get. Defaults to ACQUISITION.",
              "location": "query",
              "enumDescriptions": [
                "Not specified.",
                "Unknown incentive type. Should not be used as a value explicitly.",
                "An acquisition incentive."
              ],
              "enum": [
                "UNSPECIFIED",
                "UNKNOWN",
                "ACQUISITION"
              ]
            },
            "countryCode": {
              "description": "Optional. User's country code. If not provided, the server will default to \"US\". Possible country codes: https://developers.google.com/google-ads/api/data/codes-formats#country_codes",
              "location": "query",
              "type": "string"
            },
            "email": {
              "description": "Optional. Email of the user that the requested incentive is meant for. Will be used for channel partners who do NOT use OAuth to authenticate on behalf of user.",
              "location": "query",
              "type": "string"
            },
            "languageCode": {
              "description": "Optional. User's language code. If not provided, the server will default to \"en\". Possible language codes: https://developers.google.com/google-ads/api/data/codes-formats#languages",
              "location": "query",
              "type": "string"
            }
          },
          "description": "Returns incentives for a given user.",
          "id": "googleads.incentives.fetchIncentive",
          "response": {
            "$ref": "GoogleAdsGoogleadsV24Services__FetchIncentiveResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "path": "v24/incentives:fetchIncentive",
          "parameterOrder": [],
          "httpMethod": "GET"
        }
      }
    },
    "keywordThemeConstants": {
      "methods": {
        "suggest": {
          "flatPath": "v24/keywordThemeConstants:suggest",
          "id": "googleads.keywordThemeConstants.suggest",
          "response": {
            "$ref": "GoogleAdsGoogleadsV24Services__SuggestKeywordThemeConstantsResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "description": "Returns KeywordThemeConstant suggestions by keyword themes. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
          "parameters": {},
          "path": "v24/keywordThemeConstants:suggest",
          "httpMethod": "POST",
          "request": {
            "$ref": "GoogleAdsGoogleadsV24Services__SuggestKeywordThemeConstantsRequest"
          },
          "parameterOrder": []
        }
      }
    },
    "customers": {
      "methods": {
        "generateReachForecast": {
          "id": "googleads.customers.generateReachForecast",
          "response": {
            "$ref": "GoogleAdsGoogleadsV24Services__GenerateReachForecastResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "parameters": {
            "customerId": {
              "description": "Required. The ID of the customer.",
              "location": "path",
              "required": true,
              "pattern": "^[^/]+$",
              "type": "string"
            }
          },
          "description": "Generates a reach forecast for a given targeting / product mix. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RangeError]() [ReachPlanError]() [RequestError]()",
          "flatPath": "v24/customers/{customersId}:generateReachForecast",
          "request": {
            "$ref": "GoogleAdsGoogleadsV24Services__GenerateReachForecastRequest"
          },
          "httpMethod": "POST",
          "parameterOrder": [
            "customerId"
          ],
          "path": "v24/customers/{+customerId}:generateReachForecast"
        },
        "uploadClickConversions": {
          "parameters": {
            "customerId": {
              "description": "Required. The ID of the customer performing the upload.",
              "location": "path",
              "required": true,
              "pattern": "^[^/]+$",
              "type": "string"
            }
          },
          "description": "Processes the given click conversions. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [ConversionUploadError]() [HeaderError]() [InternalError]() [PartialFailureError]() [QuotaError]() [RequestError]()",
          "id": "googleads.customers.uploadClickConversions",
          "response": {
            "$ref": "GoogleAdsGoogleadsV24Services__UploadClickConversionsResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "flatPath": "v24/customers/{customersId}:uploadClickConversions",
          "parameterOrder": [
            "customerId"
          ],
          "request": {
            "$ref": "GoogleAdsGoogleadsV24Services__UploadClickConversionsRequest"
          },
          "httpMethod": "POST",
          "path": "v24/customers/{+customerId}:uploadClickConversions"
        },
        "uploadCallConversions": {
          "description": "Processes the given call conversions. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [PartialFailureError]() [QuotaError]() [RequestError]()",
          "parameters": {
            "customerId": {
              "required": true,
              "pattern": "^[^/]+$",
              "description": "Required. The ID of the customer performing the upload.",
              "location": "path",
              "type": "string"
            }
          },
          "id": "googleads.customers.uploadCallConversions",
          "response": {
            "$ref": "GoogleAdsGoogleadsV24Services__UploadCallConversionsResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "flatPath": "v24/customers/{customersId}:uploadCallConversions",
          "parameterOrder": [
            "customerId"
          ],
          "httpMethod": "POST",
          "request": {
            "$ref": "GoogleAdsGoogleadsV24Services__UploadCallConversionsRequest"
          },
          "path": "v24/customers/{+customerId}:uploadCallConversions"
        },
        "suggestKeywordThemes": {
          "id": "googleads.customers.suggestKeywordThemes",
          "response": {
            "$ref": "GoogleAdsGoogleadsV24Services__SuggestKeywordThemesResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "parameters": {
            "customerId": {
              "description": "Required. The ID of the customer.",
              "location": "path",
              "required": true,
              "pattern": "^[^/]+$",
              "type": "string"
            }
          },
          "description": "Suggests keyword themes to advertise on.",
          "flatPath": "v24/customers/{customersId}:suggestKeywordThemes",
          "request": {
            "$ref": "GoogleAdsGoogleadsV24Services__SuggestKeywordThemesRequest"
          },
          "httpMethod": "POST",
          "parameterOrder": [
            "customerId"
          ],
          "path": "v24/customers/{+customerId}:suggestKeywordThemes"
        },
        "uploadConversionAdjustments": {
          "path": "v24/customers/{+customerId}:uploadConversionAdjustments",
          "parameterOrder": [
            "customerId"
          ],
          "httpMethod": "POST",
          "request": {
            "$ref": "GoogleAdsGoogleadsV24Services__UploadConversionAdjustmentsRequest"
          },
          "flatPath": "v24/customers/{customersId}:uploadConversionAdjustments",
          "description": "Processes the given conversion adjustments. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [PartialFailureError]() [QuotaError]() [RequestError]()",
          "parameters": {
            "customerId": {
              "description": "Required. The ID of the customer performing the upload.",
              "location": "path",
              "pattern": "^[^/]+$",
              "required": true,
              "type": "string"
            }
          },
          "id": "googleads.customers.uploadConversionAdjustments",
          "response": {
            "$ref": "GoogleAdsGoogleadsV24Services__UploadConversionAdjustmentsResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ]
        },
        "removeCampaignAutomaticallyCreatedAsset": {
          "path": "v24/customers/{+customerId}:removeCampaignAutomaticallyCreatedAsset",
          "request": {
            "$ref": "GoogleAdsGoogleadsV24Services__RemoveCampaignAutomaticallyCreatedAssetRequest"
          },
          "httpMethod": "POST",
          "parameterOrder": [
            "customerId"
          ],
          "flatPath": "v24/customers/{customersId}:removeCampaignAutomaticallyCreatedAsset",
          "id": "googleads.customers.removeCampaignAutomaticallyCreatedAsset",
          "response": {
            "$ref": "GoogleAdsGoogleadsV24Services__RemoveCampaignAutomaticallyCreatedAssetResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "parameters": {
            "customerId": {
              "description": "Required. The ID of the customer whose assets are being removed.",
              "location": "path",
              "pattern": "^[^/]+$",
              "required": true,
              "type": "string"
            }
          },
          "description": "Removes automatically created assets from a campaign. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [ContextError]() [FieldError]() [InternalError]() [MutateError]() [PartialFailureError]() [QuotaError]() [RequestError]()"
        },
        "generateAdGroupThemes": {
          "flatPath": "v24/customers/{customersId}:generateAdGroupThemes",
          "id": "googleads.customers.generateAdGroupThemes",
          "response": {
            "$ref": "GoogleAdsGoogleadsV24Services__GenerateAdGroupThemesResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "description": "Returns a list of suggested AdGroups and suggested modifications (text, match type) for the given keywords. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [CollectionSizeError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
          "parameters": {
            "customerId": {
              "required": true,
              "pattern": "^[^/]+$",
              "description": "Required. The ID of the customer.",
              "location": "path",
              "type": "string"
            }
          },
          "path": "v24/customers/{+customerId}:generateAdGroupThemes",
          "httpMethod": "POST",
          "request": {
            "$ref": "GoogleAdsGoogleadsV24Services__GenerateAdGroupThemesRequest"
          },
          "parameterOrder": [
            "customerId"
          ]
        },
        "generateTargetingSuggestionMetrics": {
          "path": "v24/customers/{+customerId}:generateTargetingSuggestionMetrics",
          "parameterOrder": [
            "customerId"
          ],
          "httpMethod": "POST",
          "request": {
            "$ref": "GoogleAdsGoogleadsV24Services__GenerateTargetingSuggestionMetricsRequest"
          },
          "flatPath": "v24/customers/{customersId}:generateTargetingSuggestionMetrics",
          "description": "Returns potential reach metrics for targetable audiences. This method helps answer questions like \"How many Men aged 18+ interested in Camping can be reached on YouTube?\" List of thrown errors: [AudienceInsightsError]() [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RangeError]() [RequestError]()",
          "parameters": {
            "customerId": {
              "description": "Required. The ID of the customer.",
              "location": "path",
              "required": true,
              "pattern": "^[^/]+$",
              "type": "string"
            }
          },
          "id": "googleads.customers.generateTargetingSuggestionMetrics",
          "response": {
            "$ref": "GoogleAdsGoogleadsV24Services__GenerateTargetingSuggestionMetricsResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ]
        },
        "generateKeywordIdeas": {
          "parameterOrder": [
            "customerId"
          ],
          "request": {
            "$ref": "GoogleAdsGoogleadsV24Services__GenerateKeywordIdeasRequest"
          },
          "httpMethod": "POST",
          "path": "v24/customers/{+customerId}:generateKeywordIdeas",
          "parameters": {
            "customerId": {
              "type": "string",
              "description": "The ID of the customer with the recommendation.",
              "location": "path",
              "required": true,
              "pattern": "^[^/]+$"
            }
          },
          "description": "Returns a list of keyword ideas. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [CollectionSizeError]() [HeaderError]() [InternalError]() [KeywordPlanIdeaError]() [QuotaError]() [RequestError]()",
          "id": "googleads.customers.generateKeywordIdeas",
          "response": {
            "$ref": "GoogleAdsGoogleadsV24Services__GenerateKeywordIdeaResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "flatPath": "v24/customers/{customersId}:generateKeywordIdeas"
        },
        "generateKeywordForecastMetrics": {
          "path": "v24/customers/{+customerId}:generateKeywordForecastMetrics",
          "httpMethod": "POST",
          "request": {
            "$ref": "GoogleAdsGoogleadsV24Services__GenerateKeywordForecastMetricsRequest"
          },
          "parameterOrder": [
            "customerId"
          ],
          "flatPath": "v24/customers/{customersId}:generateKeywordForecastMetrics",
          "id": "googleads.customers.generateKeywordForecastMetrics",
          "response": {
            "$ref": "GoogleAdsGoogleadsV24Services__GenerateKeywordForecastMetricsResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "description": "Returns metrics (such as impressions, clicks, total cost) of a keyword forecast for the given campaign. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [CollectionSizeError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
          "parameters": {
            "customerId": {
              "pattern": "^[^/]+$",
              "required": true,
              "description": "The ID of the customer.",
              "location": "path",
              "type": "string"
            }
          }
        },
        "suggestSmartCampaignAd": {
          "path": "v24/customers/{+customerId}:suggestSmartCampaignAd",
          "request": {
            "$ref": "GoogleAdsGoogleadsV24Services__SuggestSmartCampaignAdRequest"
          },
          "httpMethod": "POST",
          "parameterOrder": [
            "customerId"
          ],
          "flatPath": "v24/customers/{customersId}:suggestSmartCampaignAd",
          "id": "googleads.customers.suggestSmartCampaignAd",
          "response": {
            "$ref": "GoogleAdsGoogleadsV24Services__SuggestSmartCampaignAdResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "parameters": {
            "customerId": {
              "type": "string",
              "pattern": "^[^/]+$",
              "required": true,
              "description": "Required. The ID of the customer.",
              "location": "path"
            }
          },
          "description": "Suggests a Smart campaign ad compatible with the Ad family of resources, based on data points such as targeting and the business to advertise."
        },
        "startIdentityVerification": {
          "path": "v24/customers/{+customerId}:startIdentityVerification",
          "parameterOrder": [
            "customerId"
          ],
          "request": {
            "$ref": "GoogleAdsGoogleadsV24Services__StartIdentityVerificationRequest"
          },
          "httpMethod": "POST",
          "flatPath": "v24/customers/{customersId}:startIdentityVerification",
          "parameters": {
            "customerId": {
              "type": "string",
              "description": "Required. The Id of the customer for whom we are creating this verification.",
              "location": "path",
              "pattern": "^[^/]+$",
              "required": true
            }
          },
          "description": "Starts Identity Verification for a given verification program type. Statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
          "id": "googleads.customers.startIdentityVerification",
          "response": {
            "$ref": "GoogleProtobuf__Empty"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ]
        },
        "searchAudienceInsightsAttributes": {
          "flatPath": "v24/customers/{customersId}:searchAudienceInsightsAttributes",
          "id": "googleads.customers.searchAudienceInsightsAttributes",
          "response": {
            "$ref": "GoogleAdsGoogleadsV24Services__ListAudienceInsightsAttributesResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "parameters": {
            "customerId": {
              "type": "string",
              "description": "Required. The ID of the customer.",
              "location": "path",
              "pattern": "^[^/]+$",
              "required": true
            }
          },
          "description": "Searches for audience attributes that can be used to generate insights. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RangeError]() [RequestError]()",
          "path": "v24/customers/{+customerId}:searchAudienceInsightsAttributes",
          "request": {
            "$ref": "GoogleAdsGoogleadsV24Services__ListAudienceInsightsAttributesRequest"
          },
          "httpMethod": "POST",
          "parameterOrder": [
            "customerId"
          ]
        },
        "suggestSmartCampaignBudgetOptions": {
          "description": "Returns BudgetOption suggestions.",
          "parameters": {
            "customerId": {
              "description": "Required. The ID of the customer whose budget options are to be suggested.",
              "location": "path",
              "required": true,
              "pattern": "^[^/]+$",
              "type": "string"
            }
          },
          "id": "googleads.customers.suggestSmartCampaignBudgetOptions",
          "response": {
            "$ref": "GoogleAdsGoogleadsV24Services__SuggestSmartCampaignBudgetOptionsResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "flatPath": "v24/customers/{customersId}:suggestSmartCampaignBudgetOptions",
          "parameterOrder": [
            "customerId"
          ],
          "httpMethod": "POST",
          "request": {
            "$ref": "GoogleAdsGoogleadsV24Services__SuggestSmartCampaignBudgetOptionsRequest"
          },
          "path": "v24/customers/{+customerId}:suggestSmartCampaignBudgetOptions"
        },
        "uploadUserData": {
          "flatPath": "v24/customers/{customersId}:uploadUserData",
          "id": "googleads.customers.uploadUserData",
          "response": {
            "$ref": "GoogleAdsGoogleadsV24Services__UploadUserDataResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "parameters": {
            "customerId": {
              "pattern": "^[^/]+$",
              "required": true,
              "description": "Required. The ID of the customer for which to update the user data.",
              "location": "path",
              "type": "string"
            }
          },
          "description": "Uploads the given user data. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [CollectionSizeError]() [FieldError]() [HeaderError]() [InternalError]() [MutateError]() [OfflineUserDataJobError]() [QuotaError]() [RequestError]() [UserDataError]()",
          "path": "v24/customers/{+customerId}:uploadUserData",
          "request": {
            "$ref": "GoogleAdsGoogleadsV24Services__UploadUserDataRequest"
          },
          "httpMethod": "POST",
          "parameterOrder": [
            "customerId"
          ]
        },
        "generateAudienceOverlapInsights": {
          "parameters": {
            "customerId": {
              "type": "string",
              "description": "Required. The ID of the customer.",
              "location": "path",
              "pattern": "^[^/]+$",
              "required": true
            }
          },
          "description": "Returns a collection of audience attributes along with estimates of the overlap between their potential YouTube reach and that of a given input attribute. List of thrown errors: [AudienceInsightsError]() [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RangeError]() [RequestError]()",
          "id": "googleads.customers.generateAudienceOverlapInsights",
          "response": {
            "$ref": "GoogleAdsGoogleadsV24Services__GenerateAudienceOverlapInsightsResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "flatPath": "v24/customers/{customersId}:generateAudienceOverlapInsights",
          "parameterOrder": [
            "customerId"
          ],
          "request": {
            "$ref": "GoogleAdsGoogleadsV24Services__GenerateAudienceOverlapInsightsRequest"
          },
          "httpMethod": "POST",
          "path": "v24/customers/{+customerId}:generateAudienceOverlapInsights"
        },
        "suggestBrands": {
          "httpMethod": "POST",
          "request": {
            "$ref": "GoogleAdsGoogleadsV24Services__SuggestBrandsRequest"
          },
          "parameterOrder": [
            "customerId"
          ],
          "path": "v24/customers/{+customerId}:suggestBrands",
          "id": "googleads.customers.suggestBrands",
          "response": {
            "$ref": "GoogleAdsGoogleadsV24Services__SuggestBrandsResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "description": "Rpc to return a list of matching brands based on a prefix for this customer.",
          "parameters": {
            "customerId": {
              "type": "string",
              "description": "Required. The ID of the customer onto which to apply the brand suggestion operation.",
              "location": "path",
              "pattern": "^[^/]+$",
              "required": true
            }
          },
          "flatPath": "v24/customers/{customersId}:suggestBrands"
        },
        "generateBenchmarksMetrics": {
          "request": {
            "$ref": "GoogleAdsGoogleadsV24Services__GenerateBenchmarksMetricsRequest"
          },
          "httpMethod": "POST",
          "parameterOrder": [
            "customerId"
          ],
          "path": "v24/customers/{+customerId}:generateBenchmarksMetrics",
          "id": "googleads.customers.generateBenchmarksMetrics",
          "response": {
            "$ref": "GoogleAdsGoogleadsV24Services__GenerateBenchmarksMetricsResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "parameters": {
            "customerId": {
              "required": true,
              "pattern": "^[^/]+$",
              "description": "Required. The ID of the customer. Supply a client customer ID to generate metrics for the customer. A manager account customer ID will not return customer metrics since it does not have any associated direct ad campaigns.",
              "location": "path",
              "type": "string"
            }
          },
          "description": "Returns YouTube advertisement metrics for the given client against industry benchmarks. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [BenchmarksError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RangeError]() [RequestError]()",
          "flatPath": "v24/customers/{customersId}:generateBenchmarksMetrics"
        },
        "generateKeywordHistoricalMetrics": {
          "httpMethod": "POST",
          "request": {
            "$ref": "GoogleAdsGoogleadsV24Services__GenerateKeywordHistoricalMetricsRequest"
          },
          "parameterOrder": [
            "customerId"
          ],
          "path": "v24/customers/{+customerId}:generateKeywordHistoricalMetrics",
          "id": "googleads.customers.generateKeywordHistoricalMetrics",
          "response": {
            "$ref": "GoogleAdsGoogleadsV24Services__GenerateKeywordHistoricalMetricsResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "description": "Returns a list of keyword historical metrics. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [CollectionSizeError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
          "parameters": {
            "customerId": {
              "description": "The ID of the customer with the recommendation.",
              "location": "path",
              "required": true,
              "pattern": "^[^/]+$",
              "type": "string"
            }
          },
          "flatPath": "v24/customers/{customersId}:generateKeywordHistoricalMetrics"
        },
        "generateShareablePreviews": {
          "flatPath": "v24/customers/{customersId}:generateShareablePreviews",
          "parameters": {
            "customerId": {
              "type": "string",
              "required": true,
              "pattern": "^[^/]+$",
              "description": "Required. The customer creating the shareable previews request.",
              "location": "path"
            }
          },
          "description": "Returns the requested Shareable Preview.",
          "id": "googleads.customers.generateShareablePreviews",
          "response": {
            "$ref": "GoogleAdsGoogleadsV24Services__GenerateShareablePreviewsResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "path": "v24/customers/{+customerId}:generateShareablePreviews",
          "parameterOrder": [
            "customerId"
          ],
          "request": {
            "$ref": "GoogleAdsGoogleadsV24Services__GenerateShareablePreviewsRequest"
          },
          "httpMethod": "POST"
        },
        "generateSuggestedTargetingInsights": {
          "flatPath": "v24/customers/{customersId}:generateSuggestedTargetingInsights",
          "id": "googleads.customers.generateSuggestedTargetingInsights",
          "response": {
            "$ref": "GoogleAdsGoogleadsV24Services__GenerateSuggestedTargetingInsightsResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "description": "Returns a collection of targeting insights (e.g. targetable audiences) that are relevant to the requested audience. List of thrown errors: [AudienceInsightsError]() [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RangeError]() [RequestError]()",
          "parameters": {
            "customerId": {
              "type": "string",
              "description": "Required. The ID of the customer.",
              "location": "path",
              "pattern": "^[^/]+$",
              "required": true
            }
          },
          "path": "v24/customers/{+customerId}:generateSuggestedTargetingInsights",
          "httpMethod": "POST",
          "request": {
            "$ref": "GoogleAdsGoogleadsV24Services__GenerateSuggestedTargetingInsightsRequest"
          },
          "parameterOrder": [
            "customerId"
          ]
        },
        "listAccessibleCustomers": {
          "parameters": {},
          "description": "Returns resource names of customers directly accessible by the user authenticating the call. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
          "id": "googleads.customers.listAccessibleCustomers",
          "response": {
            "$ref": "GoogleAdsGoogleadsV24Services__ListAccessibleCustomersResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "flatPath": "v24/customers:listAccessibleCustomers",
          "parameterOrder": [],
          "httpMethod": "GET",
          "path": "v24/customers:listAccessibleCustomers"
        },
        "suggestTravelAssets": {
          "parameters": {
            "customerId": {
              "type": "string",
              "description": "Required. The ID of the customer.",
              "location": "path",
              "required": true,
              "pattern": "^[^/]+$"
            }
          },
          "description": "Returns Travel Asset suggestions. Asset suggestions are returned on a best-effort basis. There are no guarantees that all possible asset types will be returned for any given hotel property.",
          "id": "googleads.customers.suggestTravelAssets",
          "response": {
            "$ref": "GoogleAdsGoogleadsV24Services__SuggestTravelAssetsResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "flatPath": "v24/customers/{customersId}:suggestTravelAssets",
          "parameterOrder": [
            "customerId"
          ],
          "request": {
            "$ref": "GoogleAdsGoogleadsV24Services__SuggestTravelAssetsRequest"
          },
          "httpMethod": "POST",
          "path": "v24/customers/{+customerId}:suggestTravelAssets"
        },
        "createCustomerClient": {
          "flatPath": "v24/customers/{customersId}:createCustomerClient",
          "description": "Creates a new client under manager. The new client customer is returned. List of thrown errors: [AccessInvitationError]() [AuthenticationError]() [AuthorizationError]() [CurrencyCodeError]() [HeaderError]() [InternalError]() [ManagerLinkError]() [QuotaError]() [RequestError]() [StringLengthError]() [TimeZoneError]()",
          "parameters": {
            "customerId": {
              "type": "string",
              "pattern": "^[^/]+$",
              "required": true,
              "description": "Required. The ID of the Manager under whom client customer is being created.",
              "location": "path"
            }
          },
          "id": "googleads.customers.createCustomerClient",
          "response": {
            "$ref": "GoogleAdsGoogleadsV24Services__CreateCustomerClientResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "path": "v24/customers/{+customerId}:createCustomerClient",
          "parameterOrder": [
            "customerId"
          ],
          "httpMethod": "POST",
          "request": {
            "$ref": "GoogleAdsGoogleadsV24Services__CreateCustomerClientRequest"
          }
        },
        "getIdentityVerification": {
          "flatPath": "v24/customers/{customersId}/getIdentityVerification",
          "description": "Returns Identity Verification information. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
          "parameters": {
            "customerId": {
              "type": "string",
              "required": true,
              "pattern": "^[^/]+$",
              "description": "Required. The ID of the customer for whom we are requesting verification information.",
              "location": "path"
            }
          },
          "id": "googleads.customers.getIdentityVerification",
          "response": {
            "$ref": "GoogleAdsGoogleadsV24Services__GetIdentityVerificationResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "path": "v24/customers/{+customerId}/getIdentityVerification",
          "parameterOrder": [
            "customerId"
          ],
          "httpMethod": "GET"
        },
        "generateTrendingInsights": {
          "id": "googleads.customers.generateTrendingInsights",
          "response": {
            "$ref": "GoogleAdsGoogleadsV24Services__GenerateTrendingInsightsResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "description": "Returns insights for trending content on YouTube. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RangeError]() [RequestError]()",
          "parameters": {
            "customerId": {
              "type": "string",
              "pattern": "^[^/]+$",
              "required": true,
              "description": "Required. The ID of the customer.",
              "location": "path"
            }
          },
          "flatPath": "v24/customers/{customersId}:generateTrendingInsights",
          "httpMethod": "POST",
          "request": {
            "$ref": "GoogleAdsGoogleadsV24Services__GenerateTrendingInsightsRequest"
          },
          "parameterOrder": [
            "customerId"
          ],
          "path": "v24/customers/{+customerId}:generateTrendingInsights"
        },
        "generateInsightsFinderReport": {
          "flatPath": "v24/customers/{customersId}:generateInsightsFinderReport",
          "parameters": {
            "customerId": {
              "type": "string",
              "description": "Required. The ID of the customer.",
              "location": "path",
              "required": true,
              "pattern": "^[^/]+$"
            }
          },
          "description": "Creates a saved report that can be viewed in the Insights Finder tool. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RangeError]() [RequestError]()",
          "id": "googleads.customers.generateInsightsFinderReport",
          "response": {
            "$ref": "GoogleAdsGoogleadsV24Services__GenerateInsightsFinderReportResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "path": "v24/customers/{+customerId}:generateInsightsFinderReport",
          "parameterOrder": [
            "customerId"
          ],
          "request": {
            "$ref": "GoogleAdsGoogleadsV24Services__GenerateInsightsFinderReportRequest"
          },
          "httpMethod": "POST"
        },
        "generateAudienceCompositionInsights": {
          "flatPath": "v24/customers/{customersId}:generateAudienceCompositionInsights",
          "id": "googleads.customers.generateAudienceCompositionInsights",
          "response": {
            "$ref": "GoogleAdsGoogleadsV24Services__GenerateAudienceCompositionInsightsResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "description": "Returns a collection of attributes that are represented in an audience of interest, with metrics that compare each attribute's share of the audience with its share of a baseline audience. List of thrown errors: [AudienceInsightsError]() [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RangeError]() [RequestError]()",
          "parameters": {
            "customerId": {
              "type": "string",
              "description": "Required. The ID of the customer.",
              "location": "path",
              "required": true,
              "pattern": "^[^/]+$"
            }
          },
          "path": "v24/customers/{+customerId}:generateAudienceCompositionInsights",
          "httpMethod": "POST",
          "request": {
            "$ref": "GoogleAdsGoogleadsV24Services__GenerateAudienceCompositionInsightsRequest"
          },
          "parameterOrder": [
            "customerId"
          ]
        },
        "generateCreatorInsights": {
          "path": "v24/customers/{+customerId}:generateCreatorInsights",
          "request": {
            "$ref": "GoogleAdsGoogleadsV24Services__GenerateCreatorInsightsRequest"
          },
          "httpMethod": "POST",
          "parameterOrder": [
            "customerId"
          ],
          "flatPath": "v24/customers/{customersId}:generateCreatorInsights",
          "id": "googleads.customers.generateCreatorInsights",
          "response": {
            "$ref": "GoogleAdsGoogleadsV24Services__GenerateCreatorInsightsResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "parameters": {
            "customerId": {
              "required": true,
              "pattern": "^[^/]+$",
              "description": "Required. The ID of the customer.",
              "location": "path",
              "type": "string"
            }
          },
          "description": "Returns insights for a collection of YouTube Creators and Channels. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RangeError]() [RequestError]()"
        },
        "generateAudienceDefinition": {
          "parameterOrder": [
            "customerId"
          ],
          "request": {
            "$ref": "GoogleAdsGoogleadsV24Services__GenerateAudienceDefinitionRequest"
          },
          "httpMethod": "POST",
          "path": "v24/customers/{+customerId}:generateAudienceDefinition",
          "parameters": {
            "customerId": {
              "type": "string",
              "pattern": "^[^/]+$",
              "required": true,
              "description": "Required. The ID of the customer.",
              "location": "path"
            }
          },
          "description": "Returns a collection of audience attributes using generative AI based on the provided audience description. List of thrown errors: [AudienceInsightsError]() [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
          "id": "googleads.customers.generateAudienceDefinition",
          "response": {
            "$ref": "GoogleAdsGoogleadsV24Services__GenerateAudienceDefinitionResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "flatPath": "v24/customers/{customersId}:generateAudienceDefinition"
        },
        "mutate": {
          "parameterOrder": [
            "customerId"
          ],
          "httpMethod": "POST",
          "request": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomerRequest"
          },
          "path": "v24/customers/{+customerId}:mutate",
          "description": "Updates a customer. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldMaskError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]() [UrlFieldError]()",
          "parameters": {
            "customerId": {
              "type": "string",
              "description": "Required. The ID of the customer being modified.",
              "location": "path",
              "pattern": "^[^/]+$",
              "required": true
            }
          },
          "id": "googleads.customers.mutate",
          "response": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomerResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "flatPath": "v24/customers/{customersId}:mutate"
        }
      },
      "resources": {
        "dataLinks": {
          "methods": {
            "remove": {
              "parameterOrder": [
                "customerId"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__RemoveDataLinkRequest"
              },
              "httpMethod": "POST",
              "path": "v24/customers/{+customerId}/dataLinks:remove",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "description": "Required. The ID of the customer for which the data link is updated.",
                  "location": "path"
                }
              },
              "description": "Remove a data link. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [DataLinkError]() [FieldError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]()",
              "id": "googleads.customers.dataLinks.remove",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__RemoveDataLinkResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "flatPath": "v24/customers/{customersId}/dataLinks:remove"
            },
            "update": {
              "path": "v24/customers/{+customerId}/dataLinks:update",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__UpdateDataLinkRequest"
              },
              "httpMethod": "POST",
              "parameterOrder": [
                "customerId"
              ],
              "flatPath": "v24/customers/{customersId}/dataLinks:update",
              "id": "googleads.customers.dataLinks.update",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__UpdateDataLinkResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. The ID of the customer for which the data link is created.",
                  "location": "path",
                  "pattern": "^[^/]+$",
                  "required": true
                }
              },
              "description": "Update a data link. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [DataLinkError]() [FieldError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]()"
            },
            "create": {
              "id": "googleads.customers.dataLinks.create",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__CreateDataLinkResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "description": "Creates a data link. The requesting Google Ads account name and account ID will be shared with the third party (such as YouTube creators for video links) to whom you are creating the link with. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [DataLinkError]() [FieldError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]()",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. The ID of the customer for which the data link is created.",
                  "location": "path",
                  "pattern": "^[^/]+$",
                  "required": true
                }
              },
              "flatPath": "v24/customers/{customersId}/dataLinks:create",
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__CreateDataLinkRequest"
              },
              "parameterOrder": [
                "customerId"
              ],
              "path": "v24/customers/{+customerId}/dataLinks:create"
            }
          }
        },
        "conversionCustomVariables": {
          "methods": {
            "mutate": {
              "description": "Creates or updates conversion custom variables. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [ConversionCustomVariableError]() [DatabaseError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. The ID of the customer whose conversion custom variables are being modified.",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$"
                }
              },
              "id": "googleads.customers.conversionCustomVariables.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateConversionCustomVariablesResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "flatPath": "v24/customers/{customersId}/conversionCustomVariables:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateConversionCustomVariablesRequest"
              },
              "path": "v24/customers/{+customerId}/conversionCustomVariables:mutate"
            }
          }
        },
        "customerLifecycleGoal": {
          "methods": {
            "configureCustomerLifecycleGoals": {
              "flatPath": "v24/customers/{customersId}/customerLifecycleGoal:configureCustomerLifecycleGoals",
              "id": "googleads.customers.customerLifecycleGoal.configureCustomerLifecycleGoals",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__ConfigureCustomerLifecycleGoalsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "description": "Process the given customer lifecycle configurations. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [CustomerLifecycleGoalConfigError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "required": true,
                  "description": "Required. The ID of the customer performing the upload.",
                  "location": "path"
                }
              },
              "path": "v24/customers/{+customerId}/customerLifecycleGoal:configureCustomerLifecycleGoals",
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__ConfigureCustomerLifecycleGoalsRequest"
              },
              "parameterOrder": [
                "customerId"
              ]
            }
          }
        },
        "conversionActions": {
          "methods": {
            "mutate": {
              "flatPath": "v24/customers/{customersId}/conversionActions:mutate",
              "description": "Creates, updates or removes conversion actions. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [ConversionActionError]() [CurrencyCodeError]() [DatabaseError]() [FieldError]() [FieldMaskError]() [HeaderError]() [InternalError]() [MutateError]() [NewResourceCreationError]() [QuotaError]() [RangeError]() [RequestError]() [ResourceCountLimitExceededError]() [StringLengthError]()",
              "parameters": {
                "customerId": {
                  "required": true,
                  "pattern": "^[^/]+$",
                  "description": "Required. The ID of the customer whose conversion actions are being modified.",
                  "location": "path",
                  "type": "string"
                }
              },
              "id": "googleads.customers.conversionActions.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateConversionActionsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "path": "v24/customers/{+customerId}/conversionActions:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateConversionActionsRequest"
              }
            }
          }
        },
        "localServices": {
          "methods": {
            "appendLeadConversation": {
              "path": "v24/customers/{+customerId}/localServices:appendLeadConversation",
              "parameterOrder": [
                "customerId"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__AppendLeadConversationRequest"
              },
              "httpMethod": "POST",
              "flatPath": "v24/customers/{customersId}/localServices:appendLeadConversation",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "required": true,
                  "description": "Required. The Id of the customer which owns the leads onto which the conversations will be appended.",
                  "location": "path"
                }
              },
              "description": "RPC to append Local Services Lead Conversation resources to Local Services Lead resources.",
              "id": "googleads.customers.localServices.appendLeadConversation",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__AppendLeadConversationResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ]
            }
          }
        },
        "adGroupCriteria": {
          "methods": {
            "mutate": {
              "flatPath": "v24/customers/{customersId}/adGroupCriteria:mutate",
              "description": "Creates, updates, or removes criteria. Operation statuses are returned. List of thrown errors: [AdGroupCriterionError]() [AdxError]() [AuthenticationError]() [AuthorizationError]() [BiddingError]() [BiddingStrategyError]() [CollectionSizeError]() [ContextError]() [CriterionError]() [DatabaseError]() [DateError]() [DistinctError]() [FieldError]() [FieldMaskError]() [HeaderError]() [IdError]() [InternalError]() [MultiplierError]() [MutateError]() [NewResourceCreationError]() [NotEmptyError]() [NullError]() [OperationAccessDeniedError]() [OperatorError]() [PolicyViolationError]() [QuotaError]() [RangeError]() [RequestError]() [ResourceCountLimitExceededError]() [SizeLimitError]() [StringFormatError]() [StringLengthError]() [UrlFieldError]()",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. ID of the customer whose criteria are being modified.",
                  "location": "path",
                  "pattern": "^[^/]+$",
                  "required": true
                }
              },
              "id": "googleads.customers.adGroupCriteria.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateAdGroupCriteriaResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "path": "v24/customers/{+customerId}/adGroupCriteria:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateAdGroupCriteriaRequest"
              }
            }
          }
        },
        "customerNegativeCriteria": {
          "methods": {
            "mutate": {
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomerNegativeCriteriaRequest"
              },
              "parameterOrder": [
                "customerId"
              ],
              "path": "v24/customers/{+customerId}/customerNegativeCriteria:mutate",
              "id": "googleads.customers.customerNegativeCriteria.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomerNegativeCriteriaResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "description": "Creates or removes criteria. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [CriterionError]() [DatabaseError]() [FieldError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]()",
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "required": true,
                  "description": "Required. The ID of the customer whose criteria are being modified.",
                  "location": "path",
                  "type": "string"
                }
              },
              "flatPath": "v24/customers/{customersId}/customerNegativeCriteria:mutate"
            }
          }
        },
        "conversionValueRuleSets": {
          "methods": {
            "mutate": {
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateConversionValueRuleSetsRequest"
              },
              "httpMethod": "POST",
              "parameterOrder": [
                "customerId"
              ],
              "path": "v24/customers/{+customerId}/conversionValueRuleSets:mutate",
              "id": "googleads.customers.conversionValueRuleSets.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateConversionValueRuleSetsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. The ID of the customer whose conversion value rule sets are being modified.",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$"
                }
              },
              "description": "Creates, updates or removes conversion value rule sets. Operation statuses are returned.",
              "flatPath": "v24/customers/{customersId}/conversionValueRuleSets:mutate"
            }
          }
        },
        "campaignLabels": {
          "methods": {
            "mutate": {
              "description": "Creates and removes campaign-label relationships. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldError]() [HeaderError]() [InternalError]() [LabelError]() [MutateError]() [NewResourceCreationError]() [QuotaError]() [RequestError]()",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. ID of the customer whose campaign-label relationships are being modified.",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$"
                }
              },
              "id": "googleads.customers.campaignLabels.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCampaignLabelsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "flatPath": "v24/customers/{customersId}/campaignLabels:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCampaignLabelsRequest"
              },
              "path": "v24/customers/{+customerId}/campaignLabels:mutate"
            }
          }
        },
        "adGroupLabels": {
          "methods": {
            "mutate": {
              "path": "v24/customers/{+customerId}/adGroupLabels:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateAdGroupLabelsRequest"
              },
              "flatPath": "v24/customers/{customersId}/adGroupLabels:mutate",
              "description": "Creates and removes ad group labels. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldError]() [HeaderError]() [InternalError]() [LabelError]() [MutateError]() [NewResourceCreationError]() [QuotaError]() [RequestError]()",
              "parameters": {
                "customerId": {
                  "description": "Required. ID of the customer whose ad group labels are being modified.",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "type": "string"
                }
              },
              "id": "googleads.customers.adGroupLabels.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateAdGroupLabelsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ]
            }
          }
        },
        "campaignSharedSets": {
          "methods": {
            "mutate": {
              "flatPath": "v24/customers/{customersId}/campaignSharedSets:mutate",
              "description": "Creates or removes campaign shared sets. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [CampaignSharedSetError]() [ContextError]() [DatabaseError]() [DateError]() [DistinctError]() [FieldError]() [HeaderError]() [IdError]() [InternalError]() [MutateError]() [NewResourceCreationError]() [NotEmptyError]() [NullError]() [OperatorError]() [QuotaError]() [RangeError]() [RequestError]() [SizeLimitError]() [StringFormatError]() [StringLengthError]()",
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "required": true,
                  "description": "Required. The ID of the customer whose campaign shared sets are being modified.",
                  "location": "path",
                  "type": "string"
                }
              },
              "id": "googleads.customers.campaignSharedSets.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCampaignSharedSetsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "path": "v24/customers/{+customerId}/campaignSharedSets:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCampaignSharedSetsRequest"
              }
            }
          }
        },
        "userListCustomerTypes": {
          "methods": {
            "mutate": {
              "description": "Attach or remove user list customer types. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [UserListCustomerTypeError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "required": true,
                  "description": "Required. The ID of the customer whose user list customer types are being modified.",
                  "location": "path",
                  "type": "string"
                }
              },
              "id": "googleads.customers.userListCustomerTypes.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateUserListCustomerTypesResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "flatPath": "v24/customers/{customersId}/userListCustomerTypes:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateUserListCustomerTypesRequest"
              },
              "path": "v24/customers/{+customerId}/userListCustomerTypes:mutate"
            }
          }
        },
        "Goals": {
          "methods": {
            "mutate": {
              "flatPath": "v24/customers/{customersId}/Goals:mutate",
              "description": "Create or update goals. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]() [GoalError]() [GoalServicesError]()",
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "required": true,
                  "description": "Required. The ID of the customer whose goals are being modified.",
                  "location": "path",
                  "type": "string"
                }
              },
              "id": "googleads.customers.Goals.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateGoalsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "path": "v24/customers/{+customerId}/Goals:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateGoalsRequest"
              }
            }
          }
        },
        "campaignCustomizers": {
          "methods": {
            "mutate": {
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCampaignCustomizersRequest"
              },
              "httpMethod": "POST",
              "parameterOrder": [
                "customerId"
              ],
              "path": "v24/customers/{+customerId}/campaignCustomizers:mutate",
              "id": "googleads.customers.campaignCustomizers.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCampaignCustomizersResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameters": {
                "customerId": {
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "required": true,
                  "description": "Required. The ID of the customer whose campaign customizers are being modified.",
                  "location": "path"
                }
              },
              "description": "Creates, updates or removes campaign customizers. Operation statuses are returned.",
              "flatPath": "v24/customers/{customersId}/campaignCustomizers:mutate"
            }
          }
        },
        "sharedCriteria": {
          "methods": {
            "mutate": {
              "id": "googleads.customers.sharedCriteria.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateSharedCriteriaResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "description": "Creates or removes shared criteria. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [CriterionError]() [DatabaseError]() [DistinctError]() [FieldError]() [HeaderError]() [IdError]() [InternalError]() [MutateError]() [NotEmptyError]() [NullError]() [OperatorError]() [QuotaError]() [RangeError]() [RequestError]() [ResourceCountLimitExceededError]() [SizeLimitError]() [StringFormatError]() [StringLengthError]()",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "required": true,
                  "description": "Required. The ID of the customer whose shared criteria are being modified.",
                  "location": "path"
                }
              },
              "flatPath": "v24/customers/{customersId}/sharedCriteria:mutate",
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateSharedCriteriaRequest"
              },
              "parameterOrder": [
                "customerId"
              ],
              "path": "v24/customers/{+customerId}/sharedCriteria:mutate"
            }
          }
        },
        "invoices": {
          "methods": {
            "list": {
              "path": "v24/customers/{+customerId}/invoices",
              "httpMethod": "GET",
              "parameterOrder": [
                "customerId"
              ],
              "flatPath": "v24/customers/{customersId}/invoices",
              "id": "googleads.customers.invoices.list",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__ListInvoicesResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "description": "Returns all invoices associated with a billing setup, for a given month. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [InvoiceError]() [QuotaError]() [RequestError]()",
              "parameters": {
                "issueYear": {
                  "type": "string",
                  "description": "Required. The issue year to retrieve invoices, in yyyy format. Only invoices issued in 2019 or later can be retrieved.",
                  "location": "query"
                },
                "customerId": {
                  "required": true,
                  "pattern": "^[^/]+$",
                  "description": "Required. The ID of the customer to fetch invoices for.",
                  "location": "path",
                  "type": "string"
                },
                "billingSetup": {
                  "description": "Required. The billing setup resource name of the requested invoices. `customers/{customer_id}/billingSetups/{billing_setup_id}`",
                  "location": "query",
                  "type": "string"
                },
                "includeGranularLevelInvoiceDetails": {
                  "type": "boolean",
                  "description": "Optional. When true, the response will include more granular level invoice details such as campaign level cost breakdown, itemized regulatory costs and adjustments. The default value is false.",
                  "location": "query"
                },
                "issueMonth": {
                  "type": "string",
                  "enum": [
                    "UNSPECIFIED",
                    "UNKNOWN",
                    "JANUARY",
                    "FEBRUARY",
                    "MARCH",
                    "APRIL",
                    "MAY",
                    "JUNE",
                    "JULY",
                    "AUGUST",
                    "SEPTEMBER",
                    "OCTOBER",
                    "NOVEMBER",
                    "DECEMBER"
                  ],
                  "description": "Required. The issue month to retrieve invoices.",
                  "location": "query",
                  "enumDescriptions": [
                    "Not specified.",
                    "The value is unknown in this version.",
                    "January.",
                    "February.",
                    "March.",
                    "April.",
                    "May.",
                    "June.",
                    "July.",
                    "August.",
                    "September.",
                    "October.",
                    "November.",
                    "December."
                  ]
                }
              }
            }
          }
        },
        "paymentsAccounts": {
          "methods": {
            "list": {
              "flatPath": "v24/customers/{customersId}/paymentsAccounts",
              "id": "googleads.customers.paymentsAccounts.list",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__ListPaymentsAccountsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer to apply the PaymentsAccount list operation to.",
                  "location": "path",
                  "pattern": "^[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "description": "Returns all payments accounts associated with all managers between the login customer ID and specified serving customer in the hierarchy, inclusive. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [PaymentsAccountError]() [QuotaError]() [RequestError]()",
              "path": "v24/customers/{+customerId}/paymentsAccounts",
              "httpMethod": "GET",
              "parameterOrder": [
                "customerId"
              ]
            }
          }
        },
        "assetSetAssets": {
          "methods": {
            "mutate": {
              "flatPath": "v24/customers/{customersId}/assetSetAssets:mutate",
              "id": "googleads.customers.assetSetAssets.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateAssetSetAssetsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "description": "Creates, updates or removes asset set assets. Operation statuses are returned.",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. The ID of the customer whose asset set assets are being modified.",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$"
                }
              },
              "path": "v24/customers/{+customerId}/assetSetAssets:mutate",
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateAssetSetAssetsRequest"
              },
              "parameterOrder": [
                "customerId"
              ]
            }
          }
        },
        "offlineUserDataJobs": {
          "methods": {
            "create": {
              "path": "v24/customers/{+customerId}/offlineUserDataJobs:create",
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__CreateOfflineUserDataJobRequest"
              },
              "flatPath": "v24/customers/{customersId}/offlineUserDataJobs:create",
              "description": "Creates an offline user data job. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldError]() [HeaderError]() [InternalError]() [NotAllowlistedError]() [OfflineUserDataJobError]() [QuotaError]() [RequestError]()",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. The ID of the customer for which to create an offline user data job.",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$"
                }
              },
              "id": "googleads.customers.offlineUserDataJobs.create",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__CreateOfflineUserDataJobResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ]
            },
            "addOperations": {
              "parameterOrder": [
                "resourceName"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__AddOfflineUserDataJobOperationsRequest"
              },
              "httpMethod": "POST",
              "path": "v24/{+resourceName}:addOperations",
              "parameters": {
                "resourceName": {
                  "type": "string",
                  "pattern": "^customers/[^/]+/offlineUserDataJobs/[^/]+$",
                  "required": true,
                  "description": "Required. The resource name of the OfflineUserDataJob.",
                  "location": "path"
                }
              },
              "description": "Adds operations to the offline user data job. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldError]() [HeaderError]() [InternalError]() [MutateError]() [OfflineUserDataJobError]() [QuotaError]() [RequestError]()",
              "id": "googleads.customers.offlineUserDataJobs.addOperations",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__AddOfflineUserDataJobOperationsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "flatPath": "v24/customers/{customersId}/offlineUserDataJobs/{offlineUserDataJobsId}:addOperations"
            },
            "run": {
              "path": "v24/{+resourceName}:run",
              "parameterOrder": [
                "resourceName"
              ],
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__RunOfflineUserDataJobRequest"
              },
              "flatPath": "v24/customers/{customersId}/offlineUserDataJobs/{offlineUserDataJobsId}:run",
              "description": "Runs the offline user data job. When finished, the long running operation will contain the processing result or failure information, if any. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [HeaderError]() [InternalError]() [OfflineUserDataJobError]() [QuotaError]() [RequestError]()",
              "parameters": {
                "resourceName": {
                  "required": true,
                  "pattern": "^customers/[^/]+/offlineUserDataJobs/[^/]+$",
                  "description": "Required. The resource name of the OfflineUserDataJob to run.",
                  "location": "path",
                  "type": "string"
                }
              },
              "id": "googleads.customers.offlineUserDataJobs.run",
              "response": {
                "$ref": "GoogleLongrunning__Operation"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ]
            }
          }
        },
        "userLists": {
          "methods": {
            "mutate": {
              "parameters": {
                "customerId": {
                  "required": true,
                  "pattern": "^[^/]+$",
                  "description": "Required. The ID of the customer whose user lists are being modified.",
                  "location": "path",
                  "type": "string"
                }
              },
              "description": "Creates or updates user lists. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [CollectionSizeError]() [DatabaseError]() [DistinctError]() [FieldError]() [FieldMaskError]() [HeaderError]() [InternalError]() [MutateError]() [NewResourceCreationError]() [NotAllowlistedError]() [NotEmptyError]() [OperationAccessDeniedError]() [QuotaError]() [RangeError]() [RequestError]() [StringFormatError]() [StringLengthError]() [UserListError]()",
              "id": "googleads.customers.userLists.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateUserListsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "flatPath": "v24/customers/{customersId}/userLists:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateUserListsRequest"
              },
              "httpMethod": "POST",
              "path": "v24/customers/{+customerId}/userLists:mutate"
            }
          }
        },
        "assetSets": {
          "methods": {
            "mutate": {
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateAssetSetsRequest"
              },
              "httpMethod": "POST",
              "parameterOrder": [
                "customerId"
              ],
              "path": "v24/customers/{+customerId}/assetSets:mutate",
              "id": "googleads.customers.assetSets.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateAssetSetsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose asset sets are being modified.",
                  "location": "path",
                  "pattern": "^[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "description": "Creates, updates or removes asset sets. Operation statuses are returned.",
              "flatPath": "v24/customers/{customersId}/assetSets:mutate"
            }
          }
        },
        "experimentArms": {
          "methods": {
            "mutate": {
              "path": "v24/customers/{+customerId}/experimentArms:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateExperimentArmsRequest"
              },
              "httpMethod": "POST",
              "flatPath": "v24/customers/{customersId}/experimentArms:mutate",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "required": true,
                  "description": "Required. The ID of the customer whose experiments are being modified.",
                  "location": "path"
                }
              },
              "description": "Creates, updates, or removes experiment arms. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [ExperimentArmError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
              "id": "googleads.customers.experimentArms.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateExperimentArmsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ]
            }
          }
        },
        "smartCampaignSettings": {
          "methods": {
            "getSmartCampaignStatus": {
              "flatPath": "v24/customers/{customersId}/smartCampaignSettings/{smartCampaignSettingsId}:getSmartCampaignStatus",
              "id": "googleads.customers.smartCampaignSettings.getSmartCampaignStatus",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__GetSmartCampaignStatusResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameters": {
                "resourceName": {
                  "required": true,
                  "pattern": "^customers/[^/]+/smartCampaignSettings/[^/]+$",
                  "description": "Required. The resource name of the Smart campaign setting belonging to the Smart campaign to fetch the status of.",
                  "location": "path",
                  "type": "string"
                }
              },
              "description": "Returns the status of the requested Smart campaign.",
              "path": "v24/{+resourceName}:getSmartCampaignStatus",
              "httpMethod": "GET",
              "parameterOrder": [
                "resourceName"
              ]
            },
            "mutate": {
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateSmartCampaignSettingsRequest"
              },
              "httpMethod": "POST",
              "parameterOrder": [
                "customerId"
              ],
              "path": "v24/customers/{+customerId}/smartCampaignSettings:mutate",
              "id": "googleads.customers.smartCampaignSettings.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateSmartCampaignSettingsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose Smart campaign settings are being modified.",
                  "location": "path",
                  "pattern": "^[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "description": "Updates Smart campaign settings for campaigns.",
              "flatPath": "v24/customers/{customersId}/smartCampaignSettings:mutate"
            }
          }
        },
        "CampaignGoalConfigs": {
          "methods": {
            "mutate": {
              "path": "v24/customers/{+customerId}/CampaignGoalConfigs:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCampaignGoalConfigsRequest"
              },
              "httpMethod": "POST",
              "flatPath": "v24/customers/{customersId}/CampaignGoalConfigs:mutate",
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose campaign goal configs are being modified.",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "type": "string"
                }
              },
              "description": "Create or update campaign goal configs. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]() [CampaignGoalConfigError]() [GoalServicesError]()",
              "id": "googleads.customers.CampaignGoalConfigs.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCampaignGoalConfigsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ]
            }
          }
        },
        "productLinks": {
          "methods": {
            "create": {
              "flatPath": "v24/customers/{customersId}/productLinks:create",
              "id": "googleads.customers.productLinks.create",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__CreateProductLinkResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameters": {
                "customerId": {
                  "required": true,
                  "pattern": "^[^/]+$",
                  "description": "Required. The ID of the customer for which the product link is created.",
                  "location": "path",
                  "type": "string"
                }
              },
              "description": "Creates a product link. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]()",
              "path": "v24/customers/{+customerId}/productLinks:create",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__CreateProductLinkRequest"
              },
              "httpMethod": "POST",
              "parameterOrder": [
                "customerId"
              ]
            },
            "remove": {
              "path": "v24/customers/{+customerId}/productLinks:remove",
              "parameterOrder": [
                "customerId"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__RemoveProductLinkRequest"
              },
              "httpMethod": "POST",
              "flatPath": "v24/customers/{customersId}/productLinks:remove",
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "required": true,
                  "description": "Required. The ID of the customer being modified.",
                  "location": "path",
                  "type": "string"
                }
              },
              "description": "Removes a product link. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [FieldMaskError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]()",
              "id": "googleads.customers.productLinks.remove",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__RemoveProductLinkResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ]
            }
          }
        },
        "campaignAssets": {
          "methods": {
            "mutate": {
              "flatPath": "v24/customers/{customersId}/campaignAssets:mutate",
              "id": "googleads.customers.campaignAssets.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCampaignAssetsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameters": {
                "customerId": {
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "required": true,
                  "description": "Required. The ID of the customer whose campaign assets are being modified.",
                  "location": "path"
                }
              },
              "description": "Creates, updates, or removes campaign assets. Operation statuses are returned. List of thrown errors: [AssetLinkError]() [AuthenticationError]() [AuthorizationError]() [ContextError]() [DatabaseError]() [FieldError]() [HeaderError]() [InternalError]() [MutateError]() [NotAllowlistedError]() [QuotaError]() [RequestError]()",
              "path": "v24/customers/{+customerId}/campaignAssets:mutate",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCampaignAssetsRequest"
              },
              "httpMethod": "POST",
              "parameterOrder": [
                "customerId"
              ]
            }
          }
        },
        "sharedSets": {
          "methods": {
            "mutate": {
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateSharedSetsRequest"
              },
              "httpMethod": "POST",
              "parameterOrder": [
                "customerId"
              ],
              "path": "v24/customers/{+customerId}/sharedSets:mutate",
              "id": "googleads.customers.sharedSets.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateSharedSetsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameters": {
                "customerId": {
                  "type": "string",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "description": "Required. The ID of the customer whose shared sets are being modified.",
                  "location": "path"
                }
              },
              "description": "Creates, updates, or removes shared sets. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [DateError]() [DistinctError]() [FieldError]() [FieldMaskError]() [HeaderError]() [IdError]() [InternalError]() [MutateError]() [NewResourceCreationError]() [NotEmptyError]() [NullError]() [OperatorError]() [QuotaError]() [RangeError]() [RequestError]() [ResourceCountLimitExceededError]() [SharedSetError]() [SizeLimitError]() [StringFormatError]() [StringLengthError]()",
              "flatPath": "v24/customers/{customersId}/sharedSets:mutate"
            }
          }
        },
        "thirdPartyAppAnalyticsLinks": {
          "methods": {
            "regenerateShareableLinkId": {
              "path": "v24/{+resourceName}:regenerateShareableLinkId",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__RegenerateShareableLinkIdRequest"
              },
              "httpMethod": "POST",
              "parameterOrder": [
                "resourceName"
              ],
              "flatPath": "v24/customers/{customersId}/thirdPartyAppAnalyticsLinks/{thirdPartyAppAnalyticsLinksId}:regenerateShareableLinkId",
              "id": "googleads.customers.thirdPartyAppAnalyticsLinks.regenerateShareableLinkId",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__RegenerateShareableLinkIdResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameters": {
                "resourceName": {
                  "description": "Resource name of the third party app analytics link.",
                  "location": "path",
                  "required": true,
                  "pattern": "^customers/[^/]+/thirdPartyAppAnalyticsLinks/[^/]+$",
                  "type": "string"
                }
              },
              "description": "Regenerate ThirdPartyAppAnalyticsLink.shareable_link_id that should be provided to the third party when setting up app analytics. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()"
            }
          }
        },
        "customerManagerLinks": {
          "methods": {
            "mutate": {
              "id": "googleads.customers.customerManagerLinks.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomerManagerLinkResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameters": {
                "customerId": {
                  "type": "string",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "description": "Required. The ID of the customer whose customer manager links are being modified.",
                  "location": "path"
                }
              },
              "description": "Updates customer manager links. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldError]() [FieldMaskError]() [HeaderError]() [InternalError]() [ManagerLinkError]() [MutateError]() [QuotaError]() [RequestError]()",
              "flatPath": "v24/customers/{customersId}/customerManagerLinks:mutate",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomerManagerLinkRequest"
              },
              "httpMethod": "POST",
              "parameterOrder": [
                "customerId"
              ],
              "path": "v24/customers/{+customerId}/customerManagerLinks:mutate"
            },
            "moveManagerLink": {
              "flatPath": "v24/customers/{customersId}/customerManagerLinks:moveManagerLink",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "description": "Required. The ID of the client customer that is being moved.",
                  "location": "path"
                }
              },
              "description": "Moves a client customer to a new manager customer. This simplifies the complex request that requires two operations to move a client customer to a new manager, for example: 1. Update operation with Status INACTIVE (previous manager) and, 2. Update operation with Status ACTIVE (new manager). List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]()",
              "id": "googleads.customers.customerManagerLinks.moveManagerLink",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MoveManagerLinkResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "path": "v24/customers/{+customerId}/customerManagerLinks:moveManagerLink",
              "parameterOrder": [
                "customerId"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MoveManagerLinkRequest"
              },
              "httpMethod": "POST"
            }
          }
        },
        "adGroupCustomizers": {
          "methods": {
            "mutate": {
              "path": "v24/customers/{+customerId}/adGroupCustomizers:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateAdGroupCustomizersRequest"
              },
              "httpMethod": "POST",
              "flatPath": "v24/customers/{customersId}/adGroupCustomizers:mutate",
              "parameters": {
                "customerId": {
                  "required": true,
                  "pattern": "^[^/]+$",
                  "description": "Required. The ID of the customer whose ad group customizers are being modified.",
                  "location": "path",
                  "type": "string"
                }
              },
              "description": "Creates, updates or removes ad group customizers. Operation statuses are returned.",
              "id": "googleads.customers.adGroupCustomizers.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateAdGroupCustomizersResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ]
            }
          }
        },
        "localServicesLeads": {
          "methods": {
            "provideLeadFeedback": {
              "flatPath": "v24/customers/{customersId}/localServicesLeads/{localServicesLeadsId}:provideLeadFeedback",
              "id": "googleads.customers.localServicesLeads.provideLeadFeedback",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__ProvideLeadFeedbackResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameters": {
                "resourceName": {
                  "type": "string",
                  "pattern": "^customers/[^/]+/localServicesLeads/[^/]+$",
                  "required": true,
                  "description": "Required. The resource name of the local services lead that for which the feedback is being provided.",
                  "location": "path"
                }
              },
              "description": "RPC to provide feedback on Local Services Lead resources.",
              "path": "v24/{+resourceName}:provideLeadFeedback",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__ProvideLeadFeedbackRequest"
              },
              "httpMethod": "POST",
              "parameterOrder": [
                "resourceName"
              ]
            }
          }
        },
        "AdGroupCriterionCustomizers": {
          "methods": {
            "mutate": {
              "flatPath": "v24/customers/{customersId}/AdGroupCriterionCustomizers:mutate",
              "id": "googleads.customers.AdGroupCriterionCustomizers.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateAdGroupCriterionCustomizersResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "description": "Creates, updates or removes ad group criterion customizers. Operation statuses are returned.",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "required": true,
                  "description": "Required. The ID of the customer whose ad group criterion customizers are being modified.",
                  "location": "path"
                }
              },
              "path": "v24/customers/{+customerId}/AdGroupCriterionCustomizers:mutate",
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateAdGroupCriterionCustomizersRequest"
              },
              "parameterOrder": [
                "customerId"
              ]
            }
          }
        },
        "productLinkInvitations": {
          "methods": {
            "create": {
              "path": "v24/customers/{+customerId}/productLinkInvitations:create",
              "parameterOrder": [
                "customerId"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__CreateProductLinkInvitationRequest"
              },
              "httpMethod": "POST",
              "flatPath": "v24/customers/{customersId}/productLinkInvitations:create",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. The ID of the customer being modified.",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$"
                }
              },
              "description": "Creates a product link invitation.",
              "id": "googleads.customers.productLinkInvitations.create",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__CreateProductLinkInvitationResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ]
            },
            "update": {
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__UpdateProductLinkInvitationRequest"
              },
              "httpMethod": "POST",
              "parameterOrder": [
                "customerId"
              ],
              "path": "v24/customers/{+customerId}/productLinkInvitations:update",
              "id": "googleads.customers.productLinkInvitations.update",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__UpdateProductLinkInvitationResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. The ID of the customer being modified.",
                  "location": "path",
                  "pattern": "^[^/]+$",
                  "required": true
                }
              },
              "description": "Update a product link invitation.",
              "flatPath": "v24/customers/{customersId}/productLinkInvitations:update"
            },
            "remove": {
              "id": "googleads.customers.productLinkInvitations.remove",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__RemoveProductLinkInvitationResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameters": {
                "customerId": {
                  "required": true,
                  "pattern": "^[^/]+$",
                  "description": "Required. The ID of the product link invitation being removed.",
                  "location": "path",
                  "type": "string"
                }
              },
              "description": "Remove a product link invitation.",
              "flatPath": "v24/customers/{customersId}/productLinkInvitations:remove",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__RemoveProductLinkInvitationRequest"
              },
              "httpMethod": "POST",
              "parameterOrder": [
                "customerId"
              ],
              "path": "v24/customers/{+customerId}/productLinkInvitations:remove"
            }
          }
        },
        "campaignAssetSets": {
          "methods": {
            "mutate": {
              "flatPath": "v24/customers/{customersId}/campaignAssetSets:mutate",
              "id": "googleads.customers.campaignAssetSets.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCampaignAssetSetsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "description": "Creates, updates or removes campaign asset sets. Operation statuses are returned.",
              "parameters": {
                "customerId": {
                  "required": true,
                  "pattern": "^[^/]+$",
                  "description": "Required. The ID of the customer whose campaign asset sets are being modified.",
                  "location": "path",
                  "type": "string"
                }
              },
              "path": "v24/customers/{+customerId}/campaignAssetSets:mutate",
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCampaignAssetSetsRequest"
              },
              "parameterOrder": [
                "customerId"
              ]
            }
          }
        },
        "conversionValueRules": {
          "methods": {
            "mutate": {
              "flatPath": "v24/customers/{customersId}/conversionValueRules:mutate",
              "id": "googleads.customers.conversionValueRules.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateConversionValueRulesResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "description": "Creates, updates, or removes conversion value rules. Operation statuses are returned.",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "required": true,
                  "description": "Required. The ID of the customer whose conversion value rules are being modified.",
                  "location": "path"
                }
              },
              "path": "v24/customers/{+customerId}/conversionValueRules:mutate",
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateConversionValueRulesRequest"
              },
              "parameterOrder": [
                "customerId"
              ]
            }
          }
        },
        "campaignConversionGoals": {
          "methods": {
            "mutate": {
              "flatPath": "v24/customers/{customersId}/campaignConversionGoals:mutate",
              "id": "googleads.customers.campaignConversionGoals.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCampaignConversionGoalsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose campaign conversion goals are being modified.",
                  "location": "path",
                  "pattern": "^[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "description": "Creates, updates or removes campaign conversion goals. Operation statuses are returned.",
              "path": "v24/customers/{+customerId}/campaignConversionGoals:mutate",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCampaignConversionGoalsRequest"
              },
              "httpMethod": "POST",
              "parameterOrder": [
                "customerId"
              ]
            }
          }
        },
        "customerAssetSets": {
          "methods": {
            "mutate": {
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomerAssetSetsRequest"
              },
              "httpMethod": "POST",
              "parameterOrder": [
                "customerId"
              ],
              "path": "v24/customers/{+customerId}/customerAssetSets:mutate",
              "id": "googleads.customers.customerAssetSets.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomerAssetSetsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "required": true,
                  "description": "Required. The ID of the customer whose customer asset sets are being modified.",
                  "location": "path",
                  "type": "string"
                }
              },
              "description": "Creates, or removes customer asset sets. Operation statuses are returned.",
              "flatPath": "v24/customers/{customersId}/customerAssetSets:mutate"
            }
          }
        },
        "accountBudgetProposals": {
          "methods": {
            "mutate": {
              "flatPath": "v24/customers/{customersId}/accountBudgetProposals:mutate",
              "id": "googleads.customers.accountBudgetProposals.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateAccountBudgetProposalResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameters": {
                "customerId": {
                  "required": true,
                  "pattern": "^[^/]+$",
                  "description": "Required. The ID of the customer.",
                  "location": "path",
                  "type": "string"
                }
              },
              "description": "Creates, updates, or removes account budget proposals. Operation statuses are returned. List of thrown errors: [AccountBudgetProposalError]() [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [DateError]() [FieldError]() [FieldMaskError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]() [StringLengthError]()",
              "path": "v24/customers/{+customerId}/accountBudgetProposals:mutate",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateAccountBudgetProposalRequest"
              },
              "httpMethod": "POST",
              "parameterOrder": [
                "customerId"
              ]
            }
          }
        },
        "customizerAttributes": {
          "methods": {
            "mutate": {
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomizerAttributesRequest"
              },
              "path": "v24/customers/{+customerId}/customizerAttributes:mutate",
              "description": "Creates, updates or removes customizer attributes. Operation statuses are returned.",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. The ID of the customer whose customizer attributes are being modified.",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$"
                }
              },
              "id": "googleads.customers.customizerAttributes.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomizerAttributesResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "flatPath": "v24/customers/{customersId}/customizerAttributes:mutate"
            }
          }
        },
        "assets": {
          "methods": {
            "mutate": {
              "flatPath": "v24/customers/{customersId}/assets:mutate",
              "id": "googleads.customers.assets.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateAssetsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "description": "Creates assets. Operation statuses are returned. List of thrown errors: [AssetError]() [AuthenticationError]() [AuthorizationError]() [CollectionSizeError]() [CurrencyCodeError]() [DatabaseError]() [DateError]() [DistinctError]() [FieldError]() [FieldMaskError]() [HeaderError]() [IdError]() [InternalError]() [ListOperationError]() [MediaUploadError]() [MutateError]() [NotAllowlistedError]() [NotEmptyError]() [OperatorError]() [QuotaError]() [RangeError]() [RequestError]() [SizeLimitError]() [StringFormatError]() [StringLengthError]() [UrlFieldError]() [YoutubeVideoRegistrationError]()",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "description": "Required. The ID of the customer whose assets are being modified.",
                  "location": "path"
                }
              },
              "path": "v24/customers/{+customerId}/assets:mutate",
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateAssetsRequest"
              },
              "parameterOrder": [
                "customerId"
              ]
            }
          }
        },
        "keywordPlanCampaignKeywords": {
          "methods": {
            "mutate": {
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. The ID of the customer whose campaign keywords are being modified.",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$"
                }
              },
              "description": "Creates, updates, or removes Keyword Plan campaign keywords. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldError]() [HeaderError]() [InternalError]() [KeywordPlanAdGroupKeywordError]() [KeywordPlanCampaignKeywordError]() [QuotaError]() [RequestError]() [ResourceCountLimitExceededError]()",
              "id": "googleads.customers.keywordPlanCampaignKeywords.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateKeywordPlanCampaignKeywordsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "flatPath": "v24/customers/{customersId}/keywordPlanCampaignKeywords:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateKeywordPlanCampaignKeywordsRequest"
              },
              "httpMethod": "POST",
              "path": "v24/customers/{+customerId}/keywordPlanCampaignKeywords:mutate"
            }
          }
        },
        "reservations": {
          "methods": {
            "bookCampaigns": {
              "flatPath": "v24/customers/{customersId}/reservations:bookCampaigns",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. The ID of the customer making the request.",
                  "location": "path",
                  "pattern": "^[^/]+$",
                  "required": true
                }
              },
              "description": "Books the requested campaigns. This request can have a latency of 30 seconds.",
              "id": "googleads.customers.reservations.bookCampaigns",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__BookCampaignsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "path": "v24/customers/{+customerId}/reservations:bookCampaigns",
              "parameterOrder": [
                "customerId"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__BookCampaignsRequest"
              },
              "httpMethod": "POST"
            },
            "quoteCampaigns": {
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__QuoteCampaignsRequest"
              },
              "parameterOrder": [
                "customerId"
              ],
              "path": "v24/customers/{+customerId}/reservations:quoteCampaigns",
              "id": "googleads.customers.reservations.quoteCampaigns",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__QuoteCampaignsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "description": "Proposes quotes for booking campaigns. This request can have a latency of 30 seconds.",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "description": "Required. The ID of the customer making the request.",
                  "location": "path"
                }
              },
              "flatPath": "v24/customers/{customersId}/reservations:quoteCampaigns"
            }
          }
        },
        "adParameters": {
          "methods": {
            "mutate": {
              "id": "googleads.customers.adParameters.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateAdParametersResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameters": {
                "customerId": {
                  "required": true,
                  "pattern": "^[^/]+$",
                  "description": "Required. The ID of the customer whose ad parameters are being modified.",
                  "location": "path",
                  "type": "string"
                }
              },
              "description": "Creates, updates, or removes ad parameters. Operation statuses are returned. List of thrown errors: [AdParameterError]() [AuthenticationError]() [AuthorizationError]() [ContextError]() [DatabaseError]() [FieldError]() [FieldMaskError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]()",
              "flatPath": "v24/customers/{customersId}/adParameters:mutate",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateAdParametersRequest"
              },
              "httpMethod": "POST",
              "parameterOrder": [
                "customerId"
              ],
              "path": "v24/customers/{+customerId}/adParameters:mutate"
            }
          }
        },
        "campaignBidModifiers": {
          "methods": {
            "mutate": {
              "path": "v24/customers/{+customerId}/campaignBidModifiers:mutate",
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCampaignBidModifiersRequest"
              },
              "parameterOrder": [
                "customerId"
              ],
              "flatPath": "v24/customers/{customersId}/campaignBidModifiers:mutate",
              "id": "googleads.customers.campaignBidModifiers.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCampaignBidModifiersResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "description": "Creates, updates, or removes campaign bid modifiers. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [ContextError]() [CriterionError]() [DatabaseError]() [DateError]() [DistinctError]() [FieldError]() [HeaderError]() [IdError]() [InternalError]() [MutateError]() [NewResourceCreationError]() [NotEmptyError]() [NullError]() [OperatorError]() [QuotaError]() [RangeError]() [RequestError]() [SizeLimitError]() [StringFormatError]() [StringLengthError]()",
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "required": true,
                  "description": "Required. ID of the customer whose campaign bid modifiers are being modified.",
                  "location": "path",
                  "type": "string"
                }
              }
            }
          }
        },
        "customInterests": {
          "methods": {
            "mutate": {
              "path": "v24/customers/{+customerId}/customInterests:mutate",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomInterestsRequest"
              },
              "httpMethod": "POST",
              "parameterOrder": [
                "customerId"
              ],
              "flatPath": "v24/customers/{customersId}/customInterests:mutate",
              "id": "googleads.customers.customInterests.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomInterestsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "required": true,
                  "description": "Required. The ID of the customer whose custom interests are being modified.",
                  "location": "path",
                  "type": "string"
                }
              },
              "description": "Creates or updates custom interests. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [CriterionError]() [CustomInterestError]() [HeaderError]() [InternalError]() [MutateError]() [PolicyViolationError]() [QuotaError]() [RequestError]() [StringLengthError]()"
            }
          }
        },
        "adGroups": {
          "methods": {
            "mutate": {
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateAdGroupsRequest"
              },
              "path": "v24/customers/{+customerId}/adGroups:mutate",
              "description": "Creates, updates, or removes ad groups. Operation statuses are returned. List of thrown errors: [AdGroupError]() [AdxError]() [AuthenticationError]() [AuthorizationError]() [BiddingError]() [BiddingStrategyError]() [DatabaseError]() [DateError]() [DistinctError]() [FieldError]() [FieldMaskError]() [HeaderError]() [IdError]() [InternalError]() [ListOperationError]() [MultiplierError]() [MutateError]() [NewResourceCreationError]() [NotEmptyError]() [NullError]() [OperationAccessDeniedError]() [OperatorError]() [QuotaError]() [RangeError]() [RequestError]() [ResourceCountLimitExceededError]() [SettingError]() [SizeLimitError]() [StringFormatError]() [StringLengthError]() [UrlFieldError]()",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. The ID of the customer whose ad groups are being modified.",
                  "location": "path",
                  "pattern": "^[^/]+$",
                  "required": true
                }
              },
              "id": "googleads.customers.adGroups.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateAdGroupsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "flatPath": "v24/customers/{customersId}/adGroups:mutate"
            }
          }
        },
        "customerConversionGoals": {
          "methods": {
            "mutate": {
              "path": "v24/customers/{+customerId}/customerConversionGoals:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomerConversionGoalsRequest"
              },
              "httpMethod": "POST",
              "flatPath": "v24/customers/{customersId}/customerConversionGoals:mutate",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. The ID of the customer whose customer conversion goals are being modified.",
                  "location": "path",
                  "pattern": "^[^/]+$",
                  "required": true
                }
              },
              "description": "Creates, updates or removes customer conversion goals. Operation statuses are returned.",
              "id": "googleads.customers.customerConversionGoals.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomerConversionGoalsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ]
            }
          }
        },
        "assetGroupAssets": {
          "methods": {
            "mutate": {
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateAssetGroupAssetsRequest"
              },
              "httpMethod": "POST",
              "parameterOrder": [
                "customerId"
              ],
              "path": "v24/customers/{+customerId}/assetGroupAssets:mutate",
              "id": "googleads.customers.assetGroupAssets.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateAssetGroupAssetsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. The ID of the customer whose asset group assets are being modified.",
                  "location": "path",
                  "pattern": "^[^/]+$",
                  "required": true
                }
              },
              "description": "Creates, updates or removes asset group assets. Operation statuses are returned.",
              "flatPath": "v24/customers/{customersId}/assetGroupAssets:mutate"
            }
          }
        },
        "experiments": {
          "methods": {
            "mutate": {
              "id": "googleads.customers.experiments.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateExperimentsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "required": true,
                  "description": "Required. The ID of the customer whose experiments are being modified.",
                  "location": "path",
                  "type": "string"
                }
              },
              "description": "Creates, updates, or removes experiments. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [ExperimentError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
              "flatPath": "v24/customers/{customersId}/experiments:mutate",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateExperimentsRequest"
              },
              "httpMethod": "POST",
              "parameterOrder": [
                "customerId"
              ],
              "path": "v24/customers/{+customerId}/experiments:mutate"
            },
            "graduateExperiment": {
              "id": "googleads.customers.experiments.graduateExperiment",
              "response": {
                "$ref": "GoogleProtobuf__Empty"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameters": {
                "experiment": {
                  "type": "string",
                  "pattern": "^customers/[^/]+/experiments/[^/]+$",
                  "required": true,
                  "description": "Required. The experiment to be graduated.",
                  "location": "path"
                }
              },
              "description": "Graduates an experiment to a full campaign. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [ExperimentError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]()",
              "flatPath": "v24/customers/{customersId}/experiments/{experimentsId}:graduateExperiment",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__GraduateExperimentRequest"
              },
              "httpMethod": "POST",
              "parameterOrder": [
                "experiment"
              ],
              "path": "v24/{+experiment}:graduateExperiment"
            },
            "promoteExperiment": {
              "path": "v24/{+resourceName}:promoteExperiment",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__PromoteExperimentRequest"
              },
              "httpMethod": "POST",
              "parameterOrder": [
                "resourceName"
              ],
              "flatPath": "v24/customers/{customersId}/experiments/{experimentsId}:promoteExperiment",
              "id": "googleads.customers.experiments.promoteExperiment",
              "response": {
                "$ref": "GoogleLongrunning__Operation"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameters": {
                "resourceName": {
                  "type": "string",
                  "description": "Required. The resource name of the experiment to promote.",
                  "location": "path",
                  "required": true,
                  "pattern": "^customers/[^/]+/experiments/[^/]+$"
                }
              },
              "description": "Promotes the trial campaign thus applying changes in the trial campaign to the base campaign. This method returns a long running operation that tracks the promotion of the experiment campaign. If it fails, a list of errors can be retrieved using the ListExperimentAsyncErrors method. The operation's metadata will be a string containing the resource name of the created experiment. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [ExperimentError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()"
            },
            "endExperiment": {
              "parameterOrder": [
                "experiment"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__EndExperimentRequest"
              },
              "httpMethod": "POST",
              "path": "v24/{+experiment}:endExperiment",
              "parameters": {
                "experiment": {
                  "description": "Required. The resource name of the campaign experiment to end.",
                  "location": "path",
                  "pattern": "^customers/[^/]+/experiments/[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "description": "Immediately ends an experiment, changing the experiment's scheduled end date and without waiting for end of day. End date is updated to be the time of the request. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [ExperimentError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
              "id": "googleads.customers.experiments.endExperiment",
              "response": {
                "$ref": "GoogleProtobuf__Empty"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "flatPath": "v24/customers/{customersId}/experiments/{experimentsId}:endExperiment"
            },
            "scheduleExperiment": {
              "flatPath": "v24/customers/{customersId}/experiments/{experimentsId}:scheduleExperiment",
              "parameters": {
                "resourceName": {
                  "pattern": "^customers/[^/]+/experiments/[^/]+$",
                  "required": true,
                  "description": "Required. The scheduled experiment.",
                  "location": "path",
                  "type": "string"
                }
              },
              "description": "Schedule an experiment. The in design campaign will be converted into a real campaign (called the experiment campaign) that will begin serving ads if successfully created. The experiment is scheduled immediately with status INITIALIZING. This method returns a long running operation that tracks the forking of the in design campaign. If the forking fails, a list of errors can be retrieved using the ListExperimentAsyncErrors method. The operation's metadata will be a string containing the resource name of the created experiment. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [ExperimentError]() [DatabaseError]() [DateError]() [DateRangeError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RangeError]() [RequestError]()",
              "id": "googleads.customers.experiments.scheduleExperiment",
              "response": {
                "$ref": "GoogleLongrunning__Operation"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "path": "v24/{+resourceName}:scheduleExperiment",
              "parameterOrder": [
                "resourceName"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__ScheduleExperimentRequest"
              },
              "httpMethod": "POST"
            },
            "listExperimentAsyncErrors": {
              "path": "v24/{+resourceName}:listExperimentAsyncErrors",
              "httpMethod": "GET",
              "parameterOrder": [
                "resourceName"
              ],
              "flatPath": "v24/customers/{customersId}/experiments/{experimentsId}:listExperimentAsyncErrors",
              "id": "googleads.customers.experiments.listExperimentAsyncErrors",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__ListExperimentAsyncErrorsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "description": "Returns all errors that occurred during the last Experiment update (either scheduling or promotion). Supports standard list paging. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
              "parameters": {
                "pageSize": {
                  "type": "integer",
                  "description": "Number of elements to retrieve in a single page. When a page request is too large, the server may decide to further limit the number of returned resources. The maximum page size is 1000.",
                  "location": "query",
                  "format": "int32"
                },
                "pageToken": {
                  "type": "string",
                  "description": "Token of the page to retrieve. If not specified, the first page of results will be returned. Use the value obtained from `next_page_token` in the previous response in order to request the next page of results.",
                  "location": "query"
                },
                "resourceName": {
                  "type": "string",
                  "description": "Required. The name of the experiment from which to retrieve the async errors.",
                  "location": "path",
                  "required": true,
                  "pattern": "^customers/[^/]+/experiments/[^/]+$"
                }
              }
            }
          }
        },
        "assetGroupListingGroupFilters": {
          "methods": {
            "mutate": {
              "description": "Creates, updates or removes asset group listing group filters. Operation statuses are returned.",
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose asset group listing group filters are being modified.",
                  "location": "path",
                  "pattern": "^[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "id": "googleads.customers.assetGroupListingGroupFilters.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateAssetGroupListingGroupFiltersResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "flatPath": "v24/customers/{customersId}/assetGroupListingGroupFilters:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateAssetGroupListingGroupFiltersRequest"
              },
              "path": "v24/customers/{+customerId}/assetGroupListingGroupFilters:mutate"
            }
          }
        },
        "conversionGoalCampaignConfigs": {
          "methods": {
            "mutate": {
              "parameterOrder": [
                "customerId"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateConversionGoalCampaignConfigsRequest"
              },
              "httpMethod": "POST",
              "path": "v24/customers/{+customerId}/conversionGoalCampaignConfigs:mutate",
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose custom conversion goals are being modified.",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "type": "string"
                }
              },
              "description": "Creates, updates or removes conversion goal campaign config. Operation statuses are returned.",
              "id": "googleads.customers.conversionGoalCampaignConfigs.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateConversionGoalCampaignConfigsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "flatPath": "v24/customers/{customersId}/conversionGoalCampaignConfigs:mutate"
            }
          }
        },
        "audiences": {
          "methods": {
            "mutate": {
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose audiences are being modified.",
                  "location": "path",
                  "pattern": "^[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "description": "Creates audiences. Operation statuses are returned. List of thrown errors: [AudienceError]()",
              "id": "googleads.customers.audiences.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateAudiencesResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "flatPath": "v24/customers/{customersId}/audiences:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateAudiencesRequest"
              },
              "httpMethod": "POST",
              "path": "v24/customers/{+customerId}/audiences:mutate"
            }
          }
        },
        "adGroupAdLabels": {
          "methods": {
            "mutate": {
              "path": "v24/customers/{+customerId}/adGroupAdLabels:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateAdGroupAdLabelsRequest"
              },
              "flatPath": "v24/customers/{customersId}/adGroupAdLabels:mutate",
              "description": "Creates and removes ad group ad labels. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [HeaderError]() [InternalError]() [LabelError]() [MutateError]() [NewResourceCreationError]() [QuotaError]() [RequestError]()",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. ID of the customer whose ad group ad labels are being modified.",
                  "location": "path",
                  "pattern": "^[^/]+$",
                  "required": true
                }
              },
              "id": "googleads.customers.adGroupAdLabels.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateAdGroupAdLabelsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ]
            }
          }
        },
        "CustomerCustomizers": {
          "methods": {
            "mutate": {
              "flatPath": "v24/customers/{customersId}/CustomerCustomizers:mutate",
              "id": "googleads.customers.CustomerCustomizers.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomerCustomizersResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "description": "Creates, updates or removes customer customizers. Operation statuses are returned.",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "required": true,
                  "description": "Required. The ID of the customer whose customer customizers are being modified.",
                  "location": "path"
                }
              },
              "path": "v24/customers/{+customerId}/CustomerCustomizers:mutate",
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomerCustomizersRequest"
              },
              "parameterOrder": [
                "customerId"
              ]
            }
          }
        },
        "customerClientLinks": {
          "methods": {
            "mutate": {
              "flatPath": "v24/customers/{customersId}/customerClientLinks:mutate",
              "id": "googleads.customers.customerClientLinks.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomerClientLinkResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose customer link are being modified.",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "type": "string"
                }
              },
              "description": "Creates or updates a customer client link. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldError]() [FieldMaskError]() [HeaderError]() [InternalError]() [ManagerLinkError]() [MutateError]() [NewResourceCreationError]() [QuotaError]() [RequestError]()",
              "path": "v24/customers/{+customerId}/customerClientLinks:mutate",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomerClientLinkRequest"
              },
              "httpMethod": "POST",
              "parameterOrder": [
                "customerId"
              ]
            }
          }
        },
        "recommendations": {
          "methods": {
            "generate": {
              "flatPath": "v24/customers/{customersId}/recommendations:generate",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "required": true,
                  "description": "Required. The ID of the customer generating recommendations.",
                  "location": "path"
                }
              },
              "description": "Generates Recommendations based off the requested recommendation_types. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RecommendationError]() [RequestError]()",
              "id": "googleads.customers.recommendations.generate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__GenerateRecommendationsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "path": "v24/customers/{+customerId}/recommendations:generate",
              "parameterOrder": [
                "customerId"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__GenerateRecommendationsRequest"
              },
              "httpMethod": "POST"
            },
            "apply": {
              "description": "Applies given recommendations with corresponding apply parameters. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RecommendationError]() [RequestError]() [UrlFieldError]()",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. The ID of the customer with the recommendation.",
                  "location": "path",
                  "pattern": "^[^/]+$",
                  "required": true
                }
              },
              "id": "googleads.customers.recommendations.apply",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__ApplyRecommendationResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "flatPath": "v24/customers/{customersId}/recommendations:apply",
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__ApplyRecommendationRequest"
              },
              "path": "v24/customers/{+customerId}/recommendations:apply"
            },
            "dismiss": {
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__DismissRecommendationRequest"
              },
              "parameterOrder": [
                "customerId"
              ],
              "path": "v24/customers/{+customerId}/recommendations:dismiss",
              "id": "googleads.customers.recommendations.dismiss",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__DismissRecommendationResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "description": "Dismisses given recommendations. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RecommendationError]() [RequestError]()",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. The ID of the customer with the recommendation.",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$"
                }
              },
              "flatPath": "v24/customers/{customersId}/recommendations:dismiss"
            }
          }
        },
        "adGroupAssets": {
          "methods": {
            "mutate": {
              "id": "googleads.customers.adGroupAssets.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateAdGroupAssetsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameters": {
                "customerId": {
                  "required": true,
                  "pattern": "^[^/]+$",
                  "description": "Required. The ID of the customer whose ad group assets are being modified.",
                  "location": "path",
                  "type": "string"
                }
              },
              "description": "Creates, updates, or removes ad group assets. Operation statuses are returned. List of thrown errors: [AssetLinkError]() [AuthenticationError]() [AuthorizationError]() [ContextError]() [FieldError]() [HeaderError]() [InternalError]() [MutateError]() [NotAllowlistedError]() [QuotaError]() [RequestError]()",
              "flatPath": "v24/customers/{customersId}/adGroupAssets:mutate",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateAdGroupAssetsRequest"
              },
              "httpMethod": "POST",
              "parameterOrder": [
                "customerId"
              ],
              "path": "v24/customers/{+customerId}/adGroupAssets:mutate"
            }
          }
        },
        "keywordPlanAdGroups": {
          "methods": {
            "mutate": {
              "flatPath": "v24/customers/{customersId}/keywordPlanAdGroups:mutate",
              "description": "Creates, updates, or removes Keyword Plan ad groups. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldError]() [FieldMaskError]() [HeaderError]() [InternalError]() [KeywordPlanAdGroupError]() [KeywordPlanError]() [MutateError]() [NewResourceCreationError]() [QuotaError]() [RequestError]() [ResourceCountLimitExceededError]()",
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose Keyword Plan ad groups are being modified.",
                  "location": "path",
                  "pattern": "^[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "id": "googleads.customers.keywordPlanAdGroups.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateKeywordPlanAdGroupsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "path": "v24/customers/{+customerId}/keywordPlanAdGroups:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateKeywordPlanAdGroupsRequest"
              }
            }
          }
        },
        "campaignBudgets": {
          "methods": {
            "mutate": {
              "id": "googleads.customers.campaignBudgets.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCampaignBudgetsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. The ID of the customer whose campaign budgets are being modified.",
                  "location": "path",
                  "pattern": "^[^/]+$",
                  "required": true
                }
              },
              "description": "Creates, updates, or removes campaign budgets. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [CampaignBudgetError]() [DatabaseError]() [DistinctError]() [FieldError]() [FieldMaskError]() [HeaderError]() [InternalError]() [MutateError]() [NewResourceCreationError]() [OperationAccessDeniedError]() [QuotaError]() [RangeError]() [RequestError]() [ResourceCountLimitExceededError]() [StringLengthError]()",
              "flatPath": "v24/customers/{customersId}/campaignBudgets:mutate",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCampaignBudgetsRequest"
              },
              "httpMethod": "POST",
              "parameterOrder": [
                "customerId"
              ],
              "path": "v24/customers/{+customerId}/campaignBudgets:mutate"
            }
          }
        },
        "billingSetups": {
          "methods": {
            "mutate": {
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateBillingSetupRequest"
              },
              "parameterOrder": [
                "customerId"
              ],
              "path": "v24/customers/{+customerId}/billingSetups:mutate",
              "id": "googleads.customers.billingSetups.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateBillingSetupResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "description": "Creates a billing setup, or cancels an existing billing setup. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [BillingSetupError]() [DateError]() [FieldError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]()",
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "required": true,
                  "description": "Required. Id of the customer to apply the billing setup mutate operation to.",
                  "location": "path",
                  "type": "string"
                }
              },
              "flatPath": "v24/customers/{customersId}/billingSetups:mutate"
            }
          }
        },
        "accountLinks": {
          "methods": {
            "create": {
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__CreateAccountLinkRequest"
              },
              "path": "v24/customers/{+customerId}/accountLinks:create",
              "description": "Creates an account link. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]() [ThirdPartyAppAnalyticsLinkError]()",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. The ID of the customer for which the account link is created.",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$"
                }
              },
              "id": "googleads.customers.accountLinks.create",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__CreateAccountLinkResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "flatPath": "v24/customers/{customersId}/accountLinks:create"
            },
            "mutate": {
              "path": "v24/customers/{+customerId}/accountLinks:mutate",
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateAccountLinkRequest"
              },
              "parameterOrder": [
                "customerId"
              ],
              "flatPath": "v24/customers/{customersId}/accountLinks:mutate",
              "id": "googleads.customers.accountLinks.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateAccountLinkResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "description": "Creates or removes an account link. From V5, create is not supported through AccountLinkService.MutateAccountLink. Use AccountLinkService.CreateAccountLink instead. List of thrown errors: [AccountLinkError]() [AuthenticationError]() [AuthorizationError]() [FieldMaskError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]()",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. The ID of the customer being modified.",
                  "location": "path",
                  "pattern": "^[^/]+$",
                  "required": true
                }
              }
            }
          }
        },
        "campaignDrafts": {
          "methods": {
            "mutate": {
              "path": "v24/customers/{+customerId}/campaignDrafts:mutate",
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCampaignDraftsRequest"
              },
              "parameterOrder": [
                "customerId"
              ],
              "flatPath": "v24/customers/{customersId}/campaignDrafts:mutate",
              "id": "googleads.customers.campaignDrafts.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCampaignDraftsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "description": "Creates, updates, or removes campaign drafts. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [CampaignDraftError]() [DatabaseError]() [FieldError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]()",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. The ID of the customer whose campaign drafts are being modified.",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$"
                }
              }
            },
            "listAsyncErrors": {
              "parameters": {
                "resourceName": {
                  "description": "Required. The name of the campaign draft from which to retrieve the async errors.",
                  "location": "path",
                  "required": true,
                  "pattern": "^customers/[^/]+/campaignDrafts/[^/]+$",
                  "type": "string"
                },
                "pageSize": {
                  "type": "integer",
                  "description": "Number of elements to retrieve in a single page. When a page request is too large, the server may decide to further limit the number of returned resources.",
                  "location": "query",
                  "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.",
                  "location": "query",
                  "type": "string"
                }
              },
              "description": "Returns all errors that occurred during CampaignDraft promote. Throws an error if called before campaign draft is promoted. Supports standard list paging. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
              "id": "googleads.customers.campaignDrafts.listAsyncErrors",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__ListCampaignDraftAsyncErrorsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "flatPath": "v24/customers/{customersId}/campaignDrafts/{campaignDraftsId}:listAsyncErrors",
              "parameterOrder": [
                "resourceName"
              ],
              "httpMethod": "GET",
              "path": "v24/{+resourceName}:listAsyncErrors"
            },
            "promote": {
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__PromoteCampaignDraftRequest"
              },
              "httpMethod": "POST",
              "parameterOrder": [
                "campaignDraft"
              ],
              "path": "v24/{+campaignDraft}:promote",
              "id": "googleads.customers.campaignDrafts.promote",
              "response": {
                "$ref": "GoogleLongrunning__Operation"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameters": {
                "campaignDraft": {
                  "type": "string",
                  "pattern": "^customers/[^/]+/campaignDrafts/[^/]+$",
                  "required": true,
                  "description": "Required. The resource name of the campaign draft to promote.",
                  "location": "path"
                }
              },
              "description": "Promotes the changes in a draft back to the base campaign. This method returns a Long Running Operation (LRO) indicating if the Promote is done. Use google.longrunning.Operations.GetOperation to poll the LRO until it is done. Only a done status is returned in the response. See the status in the Campaign Draft resource to determine if the promotion was successful. If the LRO failed, use CampaignDraftService.ListCampaignDraftAsyncErrors to view the list of error reasons. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [CampaignDraftError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
              "flatPath": "v24/customers/{customersId}/campaignDrafts/{campaignDraftsId}:promote"
            }
          }
        },
        "keywordPlans": {
          "methods": {
            "mutate": {
              "flatPath": "v24/customers/{customersId}/keywordPlans:mutate",
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose keyword plans are being modified.",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "type": "string"
                }
              },
              "description": "Creates, updates, or removes keyword plans. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldError]() [HeaderError]() [InternalError]() [KeywordPlanError]() [MutateError]() [NewResourceCreationError]() [QuotaError]() [RequestError]() [ResourceCountLimitExceededError]() [StringLengthError]()",
              "id": "googleads.customers.keywordPlans.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateKeywordPlansResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "path": "v24/customers/{+customerId}/keywordPlans:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateKeywordPlansRequest"
              },
              "httpMethod": "POST"
            }
          }
        },
        "labels": {
          "methods": {
            "mutate": {
              "flatPath": "v24/customers/{customersId}/labels:mutate",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. ID of the customer whose labels are being modified.",
                  "location": "path",
                  "pattern": "^[^/]+$",
                  "required": true
                }
              },
              "description": "Creates, updates, or removes labels. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [DateError]() [DistinctError]() [FieldError]() [FieldMaskError]() [HeaderError]() [IdError]() [InternalError]() [LabelError]() [MutateError]() [NewResourceCreationError]() [NotEmptyError]() [NullError]() [OperatorError]() [QuotaError]() [RangeError]() [RequestError]() [ResourceCountLimitExceededError]() [SizeLimitError]() [StringFormatError]() [StringLengthError]()",
              "id": "googleads.customers.labels.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateLabelsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "path": "v24/customers/{+customerId}/labels:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateLabelsRequest"
              },
              "httpMethod": "POST"
            }
          }
        },
        "batchJobs": {
          "methods": {
            "mutate": {
              "flatPath": "v24/customers/{customersId}/batchJobs:mutate",
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "required": true,
                  "description": "Required. The ID of the customer for which to create a batch job.",
                  "location": "path",
                  "type": "string"
                }
              },
              "description": "Mutates a batch job. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]() [ResourceCountLimitExceededError]()",
              "id": "googleads.customers.batchJobs.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateBatchJobResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "path": "v24/customers/{+customerId}/batchJobs:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateBatchJobRequest"
              },
              "httpMethod": "POST"
            },
            "addOperations": {
              "path": "v24/{+resourceName}:addOperations",
              "parameterOrder": [
                "resourceName"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__AddBatchJobOperationsRequest"
              },
              "httpMethod": "POST",
              "flatPath": "v24/customers/{customersId}/batchJobs/{batchJobsId}:addOperations",
              "parameters": {
                "resourceName": {
                  "type": "string",
                  "required": true,
                  "pattern": "^customers/[^/]+/batchJobs/[^/]+$",
                  "description": "Required. The resource name of the batch job.",
                  "location": "path"
                }
              },
              "description": "Add operations to the batch job. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [BatchJobError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]() [ResourceCountLimitExceededError]()",
              "id": "googleads.customers.batchJobs.addOperations",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__AddBatchJobOperationsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ]
            },
            "run": {
              "flatPath": "v24/customers/{customersId}/batchJobs/{batchJobsId}:run",
              "id": "googleads.customers.batchJobs.run",
              "response": {
                "$ref": "GoogleLongrunning__Operation"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameters": {
                "resourceName": {
                  "required": true,
                  "pattern": "^customers/[^/]+/batchJobs/[^/]+$",
                  "description": "Required. The resource name of the BatchJob to run.",
                  "location": "path",
                  "type": "string"
                }
              },
              "description": "Runs the batch job. The Operation.metadata field type is BatchJobMetadata. When finished, the long running operation will not contain errors or a response. Instead, use ListBatchJobResults to get the results of the job. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [BatchJobError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
              "path": "v24/{+resourceName}:run",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__RunBatchJobRequest"
              },
              "httpMethod": "POST",
              "parameterOrder": [
                "resourceName"
              ]
            },
            "listResults": {
              "parameterOrder": [
                "resourceName"
              ],
              "httpMethod": "GET",
              "path": "v24/{+resourceName}:listResults",
              "description": "Returns the results of the batch job. The job must be done. Supports standard list paging. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [BatchJobError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
              "parameters": {
                "resourceName": {
                  "pattern": "^customers/[^/]+/batchJobs/[^/]+$",
                  "required": true,
                  "description": "Required. The resource name of the batch job whose results are being listed.",
                  "location": "path",
                  "type": "string"
                },
                "responseContentType": {
                  "type": "string",
                  "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned.",
                  "location": "query",
                  "enumDescriptions": [
                    "Not specified. Will return the resource name only in the response.",
                    "The mutate response will be the resource name.",
                    "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
                  ],
                  "enum": [
                    "UNSPECIFIED",
                    "RESOURCE_NAME_ONLY",
                    "MUTABLE_RESOURCE"
                  ]
                },
                "pageToken": {
                  "type": "string",
                  "description": "Token of the page to retrieve. If not specified, the first page of results will be returned. Use the value obtained from `next_page_token` in the previous response in order to request the next page of results.",
                  "location": "query"
                },
                "pageSize": {
                  "type": "integer",
                  "description": "Number of elements to retrieve in a single page. The default and the page_size limit is 1000. A value of 0 or an unset page size will be defaulted to 1000. A page size less than 0 or greater than 1000 will result in an INVALID_PAGE_SIZE error.",
                  "location": "query",
                  "format": "int32"
                }
              },
              "id": "googleads.customers.batchJobs.listResults",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__ListBatchJobResultsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "flatPath": "v24/customers/{customersId}/batchJobs/{batchJobsId}:listResults"
            }
          }
        },
        "campaignLifecycleGoal": {
          "methods": {
            "configureCampaignLifecycleGoals": {
              "path": "v24/customers/{+customerId}/campaignLifecycleGoal:configureCampaignLifecycleGoals",
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__ConfigureCampaignLifecycleGoalsRequest"
              },
              "parameterOrder": [
                "customerId"
              ],
              "flatPath": "v24/customers/{customersId}/campaignLifecycleGoal:configureCampaignLifecycleGoals",
              "id": "googleads.customers.campaignLifecycleGoal.configureCampaignLifecycleGoals",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__ConfigureCampaignLifecycleGoalsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "description": "Process the given campaign lifecycle configurations. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [CampaignLifecycleGoalConfigError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
              "parameters": {
                "customerId": {
                  "required": true,
                  "pattern": "^[^/]+$",
                  "description": "Required. The ID of the customer performing the upload.",
                  "location": "path",
                  "type": "string"
                }
              }
            }
          }
        },
        "adGroupBidModifiers": {
          "methods": {
            "mutate": {
              "flatPath": "v24/customers/{customersId}/adGroupBidModifiers:mutate",
              "id": "googleads.customers.adGroupBidModifiers.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateAdGroupBidModifiersResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. ID of the customer whose ad group bid modifiers are being modified.",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$"
                }
              },
              "description": "Creates, updates, or removes ad group bid modifiers. Operation statuses are returned. List of thrown errors: [AdGroupBidModifierError]() [AuthenticationError]() [AuthorizationError]() [ContextError]() [CriterionError]() [DatabaseError]() [DistinctError]() [FieldError]() [FieldMaskError]() [HeaderError]() [IdError]() [InternalError]() [MutateError]() [NewResourceCreationError]() [NotEmptyError]() [OperatorError]() [QuotaError]() [RangeError]() [RequestError]() [ResourceCountLimitExceededError]() [SizeLimitError]() [StringFormatError]() [StringLengthError]()",
              "path": "v24/customers/{+customerId}/adGroupBidModifiers:mutate",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateAdGroupBidModifiersRequest"
              },
              "httpMethod": "POST",
              "parameterOrder": [
                "customerId"
              ]
            }
          }
        },
        "remarketingActions": {
          "methods": {
            "mutate": {
              "flatPath": "v24/customers/{customersId}/remarketingActions:mutate",
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose remarketing actions are being modified.",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "type": "string"
                }
              },
              "description": "Creates or updates remarketing actions. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [ConversionActionError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
              "id": "googleads.customers.remarketingActions.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateRemarketingActionsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "path": "v24/customers/{+customerId}/remarketingActions:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateRemarketingActionsRequest"
              },
              "httpMethod": "POST"
            }
          }
        },
        "incentives": {
          "methods": {
            "applyIncentive": {
              "path": "v24/customers/{+customerId}/incentives/{+selectedIncentiveId}:applyIncentive",
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__ApplyIncentiveRequest"
              },
              "parameterOrder": [
                "customerId",
                "selectedIncentiveId"
              ],
              "flatPath": "v24/customers/{customersId}/incentives/{incentivesId}:applyIncentive",
              "id": "googleads.customers.incentives.applyIncentive",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__ApplyIncentiveResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "description": "Applies the incentive for the ads customer.",
              "parameters": {
                "selectedIncentiveId": {
                  "pattern": "^[^/]+$",
                  "required": true,
                  "description": "The incentive ID of this incentive. This is used to identify which incentive is selected by the user in the CYO flow.",
                  "location": "path",
                  "format": "int64",
                  "type": "string"
                },
                "customerId": {
                  "pattern": "^[^/]+$",
                  "required": true,
                  "description": "The customer ID of the account that the incentive is being applied to.",
                  "location": "path",
                  "type": "string"
                }
              }
            }
          }
        },
        "keywordPlanCampaigns": {
          "methods": {
            "mutate": {
              "path": "v24/customers/{+customerId}/keywordPlanCampaigns:mutate",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateKeywordPlanCampaignsRequest"
              },
              "httpMethod": "POST",
              "parameterOrder": [
                "customerId"
              ],
              "flatPath": "v24/customers/{customersId}/keywordPlanCampaigns:mutate",
              "id": "googleads.customers.keywordPlanCampaigns.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateKeywordPlanCampaignsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameters": {
                "customerId": {
                  "required": true,
                  "pattern": "^[^/]+$",
                  "description": "Required. The ID of the customer whose Keyword Plan campaigns are being modified.",
                  "location": "path",
                  "type": "string"
                }
              },
              "description": "Creates, updates, or removes Keyword Plan campaigns. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldError]() [FieldMaskError]() [HeaderError]() [InternalError]() [KeywordPlanCampaignError]() [KeywordPlanError]() [ListOperationError]() [MutateError]() [QuotaError]() [RangeError]() [RequestError]() [ResourceCountLimitExceededError]()"
            }
          }
        },
        "assetGroupSignals": {
          "methods": {
            "mutate": {
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateAssetGroupSignalsRequest"
              },
              "parameterOrder": [
                "customerId"
              ],
              "path": "v24/customers/{+customerId}/assetGroupSignals:mutate",
              "id": "googleads.customers.assetGroupSignals.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateAssetGroupSignalsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "description": "Creates or removes asset group signals. Operation statuses are returned.",
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose asset group signals are being modified.",
                  "location": "path",
                  "pattern": "^[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "flatPath": "v24/customers/{customersId}/assetGroupSignals:mutate"
            }
          }
        },
        "keywordPlanAdGroupKeywords": {
          "methods": {
            "mutate": {
              "description": "Creates, updates, or removes Keyword Plan ad group keywords. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldError]() [HeaderError]() [InternalError]() [KeywordPlanAdGroupKeywordError]() [KeywordPlanError]() [MutateError]() [QuotaError]() [RequestError]() [ResourceCountLimitExceededError]()",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "description": "Required. The ID of the customer whose Keyword Plan ad group keywords are being modified.",
                  "location": "path"
                }
              },
              "id": "googleads.customers.keywordPlanAdGroupKeywords.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateKeywordPlanAdGroupKeywordsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "flatPath": "v24/customers/{customersId}/keywordPlanAdGroupKeywords:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateKeywordPlanAdGroupKeywordsRequest"
              },
              "path": "v24/customers/{+customerId}/keywordPlanAdGroupKeywords:mutate"
            }
          }
        },
        "adGroupAds": {
          "methods": {
            "mutate": {
              "id": "googleads.customers.adGroupAds.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateAdGroupAdsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameters": {
                "customerId": {
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "required": true,
                  "description": "Required. The ID of the customer whose ads are being modified.",
                  "location": "path"
                }
              },
              "description": "Creates, updates, or removes ads. Operation statuses are returned. List of thrown errors: [AdCustomizerError]() [AdError]() [AdGroupAdError]() [AdSharingError]() [AdxError]() [AssetError]() [AssetLinkError]() [AuthenticationError]() [AuthorizationError]() [CollectionSizeError]() [ContextError]() [DatabaseError]() [DateError]() [DistinctError]() [FeedAttributeReferenceError]() [FieldError]() [FieldMaskError]() [FunctionError]() [FunctionParsingError]() [HeaderError]() [IdError]() [ImageError]() [InternalError]() [ListOperationError]() [MediaBundleError]() [MediaFileError]() [MutateError]() [NewResourceCreationError]() [NotEmptyError]() [NullError]() [OperationAccessDeniedError]() [OperatorError]() [PolicyFindingError]() [PolicyValidationParameterError]() [PolicyViolationError]() [QuotaError]() [RangeError]() [RequestError]() [ResourceCountLimitExceededError]() [SizeLimitError]() [StringFormatError]() [StringLengthError]() [UrlFieldError]()",
              "flatPath": "v24/customers/{customersId}/adGroupAds:mutate",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateAdGroupAdsRequest"
              },
              "httpMethod": "POST",
              "parameterOrder": [
                "customerId"
              ],
              "path": "v24/customers/{+customerId}/adGroupAds:mutate"
            },
            "removeAutomaticallyCreatedAssets": {
              "path": "v24/{+adGroupAd}:removeAutomaticallyCreatedAssets",
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__RemoveAutomaticallyCreatedAssetsRequest"
              },
              "parameterOrder": [
                "adGroupAd"
              ],
              "flatPath": "v24/customers/{customersId}/adGroupAds/{adGroupAdsId}:removeAutomaticallyCreatedAssets",
              "id": "googleads.customers.adGroupAds.removeAutomaticallyCreatedAssets",
              "response": {
                "$ref": "GoogleProtobuf__Empty"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "description": "Remove automatically created assets from an ad. List of thrown errors: [AdError]() [AuthenticationError]() [AuthorizationError]() [AutomaticallyCreatedAssetRemovalError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]()",
              "parameters": {
                "adGroupAd": {
                  "pattern": "^customers/[^/]+/adGroupAds/[^/]+$",
                  "required": true,
                  "description": "Required. The resource name of the AdGroupAd from which to remove automatically created assets.",
                  "location": "path",
                  "type": "string"
                }
              }
            }
          }
        },
        "ads": {
          "methods": {
            "mutate": {
              "flatPath": "v24/customers/{customersId}/ads:mutate",
              "id": "googleads.customers.ads.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateAdsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. The ID of the customer whose ads are being modified.",
                  "location": "path",
                  "pattern": "^[^/]+$",
                  "required": true
                }
              },
              "description": "Updates ads. Operation statuses are returned. Updating ads is not supported for TextAd, ExpandedDynamicSearchAd, GmailAd and ImageAd. List of thrown errors: [AdCustomizerError]() [AdError]() [AdSharingError]() [AdxError]() [AssetError]() [AssetLinkError]() [AuthenticationError]() [AuthorizationError]() [CollectionSizeError]() [DatabaseError]() [DateError]() [DistinctError]() [FeedAttributeReferenceError]() [FieldError]() [FieldMaskError]() [FunctionError]() [FunctionParsingError]() [HeaderError]() [IdError]() [ImageError]() [InternalError]() [ListOperationError]() [MediaBundleError]() [MediaFileError]() [MutateError]() [NewResourceCreationError]() [NotEmptyError]() [NullError]() [OperatorError]() [PolicyFindingError]() [PolicyViolationError]() [QuotaError]() [RangeError]() [RequestError]() [SizeLimitError]() [StringFormatError]() [StringLengthError]() [UrlFieldError]()",
              "path": "v24/customers/{+customerId}/ads:mutate",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateAdsRequest"
              },
              "httpMethod": "POST",
              "parameterOrder": [
                "customerId"
              ]
            }
          }
        },
        "biddingSeasonalityAdjustments": {
          "methods": {
            "mutate": {
              "path": "v24/customers/{+customerId}/biddingSeasonalityAdjustments:mutate",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateBiddingSeasonalityAdjustmentsRequest"
              },
              "httpMethod": "POST",
              "parameterOrder": [
                "customerId"
              ],
              "flatPath": "v24/customers/{customersId}/biddingSeasonalityAdjustments:mutate",
              "id": "googleads.customers.biddingSeasonalityAdjustments.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateBiddingSeasonalityAdjustmentsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameters": {
                "customerId": {
                  "type": "string",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "description": "Required. ID of the customer whose seasonality adjustments are being modified.",
                  "location": "path"
                }
              },
              "description": "Creates, updates, or removes seasonality adjustments. Operation statuses are returned."
            }
          }
        },
        "assetGroups": {
          "methods": {
            "mutate": {
              "path": "v24/customers/{+customerId}/assetGroups:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateAssetGroupsRequest"
              },
              "httpMethod": "POST",
              "flatPath": "v24/customers/{customersId}/assetGroups:mutate",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "description": "Required. The ID of the customer whose asset groups are being modified.",
                  "location": "path"
                }
              },
              "description": "Creates, updates or removes asset groups. Operation statuses are returned.",
              "id": "googleads.customers.assetGroups.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateAssetGroupsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ]
            }
          }
        },
        "adGroupAssetSets": {
          "methods": {
            "mutate": {
              "path": "v24/customers/{+customerId}/adGroupAssetSets:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateAdGroupAssetSetsRequest"
              },
              "httpMethod": "POST",
              "flatPath": "v24/customers/{customersId}/adGroupAssetSets:mutate",
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose ad group asset sets are being modified.",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "type": "string"
                }
              },
              "description": "Creates, or removes ad group asset sets. Operation statuses are returned.",
              "id": "googleads.customers.adGroupAssetSets.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateAdGroupAssetSetsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ]
            }
          }
        },
        "adGroupCriterionLabels": {
          "methods": {
            "mutate": {
              "path": "v24/customers/{+customerId}/adGroupCriterionLabels:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateAdGroupCriterionLabelsRequest"
              },
              "flatPath": "v24/customers/{customersId}/adGroupCriterionLabels:mutate",
              "description": "Creates and removes ad group criterion labels. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "required": true,
                  "description": "Required. ID of the customer whose ad group criterion labels are being modified.",
                  "location": "path",
                  "type": "string"
                }
              },
              "id": "googleads.customers.adGroupCriterionLabels.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateAdGroupCriterionLabelsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ]
            }
          }
        },
        "assetGenerations": {
          "methods": {
            "generateImages": {
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__GenerateImagesRequest"
              },
              "path": "v24/customers/{+customerId}/assetGenerations:generateImages",
              "description": "Uses generative AI to generate images that can be used as assets in a campaign. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [AssetGenerationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. The ID of the customer for whom the images are being generated. Required.",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$"
                }
              },
              "id": "googleads.customers.assetGenerations.generateImages",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__GenerateImagesResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "flatPath": "v24/customers/{customersId}/assetGenerations:generateImages"
            },
            "generateText": {
              "path": "v24/customers/{+customerId}/assetGenerations:generateText",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__GenerateTextRequest"
              },
              "httpMethod": "POST",
              "parameterOrder": [
                "customerId"
              ],
              "flatPath": "v24/customers/{customersId}/assetGenerations:generateText",
              "id": "googleads.customers.assetGenerations.generateText",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__GenerateTextResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "required": true,
                  "description": "Required. The ID of the customer to generate assets for. Required.",
                  "location": "path",
                  "type": "string"
                }
              },
              "description": "Uses generative AI to generate text that can be used as assets in a campaign. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [AssetGenerationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()"
            }
          }
        },
        "youTubeVideoUploads": {
          "methods": {
            "update": {
              "parameterOrder": [
                "customerId"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__UpdateYouTubeVideoUploadRequest"
              },
              "httpMethod": "POST",
              "path": "v24/customers/{+customerId}/youTubeVideoUploads:update",
              "parameters": {
                "customerId": {
                  "required": true,
                  "pattern": "^[^/]+$",
                  "description": "Required. The customer ID requesting the YouTube video upload update. Required.",
                  "location": "path",
                  "type": "string"
                }
              },
              "description": "Updates YouTube video's metadata, but only for videos uploaded using this API.",
              "id": "googleads.customers.youTubeVideoUploads.update",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__UpdateYouTubeVideoUploadResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "flatPath": "v24/customers/{customersId}/youTubeVideoUploads:update"
            },
            "remove": {
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__RemoveYouTubeVideoUploadRequest"
              },
              "httpMethod": "POST",
              "parameterOrder": [
                "customerId"
              ],
              "path": "v24/customers/{+customerId}/youTubeVideoUploads:remove",
              "id": "googleads.customers.youTubeVideoUploads.remove",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__RemoveYouTubeVideoUploadResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "required": true,
                  "description": "Required. The customer ID requesting the YouTube video upload deletion. Required.",
                  "location": "path",
                  "type": "string"
                }
              },
              "description": "Removes YouTube videos uploaded using this API.",
              "flatPath": "v24/customers/{customersId}/youTubeVideoUploads:remove"
            }
          }
        },
        "operations": {
          "methods": {
            "delete": {
              "path": "v24/{+name}",
              "httpMethod": "DELETE",
              "parameterOrder": [
                "name"
              ],
              "flatPath": "v24/customers/{customersId}/operations/{operationsId}",
              "id": "googleads.customers.operations.delete",
              "response": {
                "$ref": "GoogleProtobuf__Empty"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameters": {
                "name": {
                  "type": "string",
                  "description": "The name of the operation resource to be deleted.",
                  "location": "path",
                  "required": true,
                  "pattern": "^customers/[^/]+/operations/[^/]+$"
                }
              },
              "description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`."
            },
            "cancel": {
              "description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.",
              "parameters": {
                "name": {
                  "type": "string",
                  "description": "The name of the operation resource to be cancelled.",
                  "location": "path",
                  "required": true,
                  "pattern": "^customers/[^/]+/operations/[^/]+$"
                }
              },
              "id": "googleads.customers.operations.cancel",
              "response": {
                "$ref": "GoogleProtobuf__Empty"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "flatPath": "v24/customers/{customersId}/operations/{operationsId}:cancel",
              "parameterOrder": [
                "name"
              ],
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleLongrunning__CancelOperationRequest"
              },
              "path": "v24/{+name}:cancel"
            },
            "list": {
              "parameters": {
                "filter": {
                  "description": "The standard list filter.",
                  "location": "query",
                  "type": "string"
                },
                "pageToken": {
                  "description": "The standard list page token.",
                  "location": "query",
                  "type": "string"
                },
                "name": {
                  "required": true,
                  "pattern": "^customers/[^/]+/operations$",
                  "description": "The name of the operation's parent resource.",
                  "location": "path",
                  "type": "string"
                },
                "returnPartialSuccess": {
                  "description": "When set to `true`, operations that are reachable are returned as normal, and those that are unreachable are returned in the ListOperationsResponse.unreachable field. This can only be `true` when reading across collections. For example, when `parent` is set to `\"projects/example/locations/-\"`. This field is not supported by default and will result in an `UNIMPLEMENTED` error if set unless explicitly documented otherwise in service or product specific documentation.",
                  "location": "query",
                  "type": "boolean"
                },
                "pageSize": {
                  "description": "The standard list page size.",
                  "location": "query",
                  "format": "int32",
                  "type": "integer"
                }
              },
              "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.",
              "id": "googleads.customers.operations.list",
              "response": {
                "$ref": "GoogleLongrunning__ListOperationsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "flatPath": "v24/customers/{customersId}/operations",
              "parameterOrder": [
                "name"
              ],
              "httpMethod": "GET",
              "path": "v24/{+name}"
            },
            "get": {
              "id": "googleads.customers.operations.get",
              "response": {
                "$ref": "GoogleLongrunning__Operation"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameters": {
                "name": {
                  "type": "string",
                  "description": "The name of the operation resource.",
                  "location": "path",
                  "pattern": "^customers/[^/]+/operations/[^/]+$",
                  "required": true
                }
              },
              "description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.",
              "flatPath": "v24/customers/{customersId}/operations/{operationsId}",
              "httpMethod": "GET",
              "parameterOrder": [
                "name"
              ],
              "path": "v24/{+name}"
            },
            "wait": {
              "id": "googleads.customers.operations.wait",
              "response": {
                "$ref": "GoogleLongrunning__Operation"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameters": {
                "name": {
                  "type": "string",
                  "description": "The name of the operation resource to wait on.",
                  "location": "path",
                  "required": true,
                  "pattern": "^customers/[^/]+/operations/[^/]+$"
                }
              },
              "description": "Waits until the specified long-running operation is done or reaches at most a specified timeout, returning the latest state. If the operation is already done, the latest state is immediately returned. If the timeout specified is greater than the default HTTP/RPC timeout, the HTTP/RPC timeout is used. If the server does not support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Note that this method is on a best-effort basis. It may return the latest state before the specified timeout (including immediately), meaning even an immediate response is no guarantee that the operation is done.",
              "flatPath": "v24/customers/{customersId}/operations/{operationsId}:wait",
              "request": {
                "$ref": "GoogleLongrunning__WaitOperationRequest"
              },
              "httpMethod": "POST",
              "parameterOrder": [
                "name"
              ],
              "path": "v24/{+name}:wait"
            }
          }
        },
        "campaignCriteria": {
          "methods": {
            "mutate": {
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. The ID of the customer whose criteria are being modified.",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$"
                }
              },
              "description": "Creates, updates, or removes criteria. Operation statuses are returned. List of thrown errors: [AdxError]() [AuthenticationError]() [AuthorizationError]() [CampaignCriterionError]() [CollectionSizeError]() [ContextError]() [CriterionError]() [DatabaseError]() [DistinctError]() [FieldError]() [FieldMaskError]() [FunctionError]() [HeaderError]() [IdError]() [InternalError]() [MutateError]() [NewResourceCreationError]() [NotEmptyError]() [NullError]() [OperationAccessDeniedError]() [OperatorError]() [QuotaError]() [RangeError]() [RegionCodeError]() [RequestError]() [ResourceCountLimitExceededError]() [SizeLimitError]() [StringFormatError]() [StringLengthError]()",
              "id": "googleads.customers.campaignCriteria.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCampaignCriteriaResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "flatPath": "v24/customers/{customersId}/campaignCriteria:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCampaignCriteriaRequest"
              },
              "httpMethod": "POST",
              "path": "v24/customers/{+customerId}/campaignCriteria:mutate"
            }
          }
        },
        "campaigns": {
          "methods": {
            "mutate": {
              "flatPath": "v24/customers/{customersId}/campaigns:mutate",
              "id": "googleads.customers.campaigns.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCampaignsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "description": "Creates, updates, or removes campaigns. Operation statuses are returned. List of thrown errors: [AdxError]() [AuthenticationError]() [AuthorizationError]() [BiddingError]() [BiddingStrategyError]() [CampaignBudgetError]() [CampaignError]() [ContextError]() [DatabaseError]() [DateError]() [DateRangeError]() [DistinctError]() [FieldError]() [FieldMaskError]() [HeaderError]() [IdError]() [InternalError]() [ListOperationError]() [MutateError]() [NewResourceCreationError]() [NotAllowlistedError]() [NotEmptyError]() [NullError]() [OperationAccessDeniedError]() [OperatorError]() [QuotaError]() [RangeError]() [RegionCodeError]() [RequestError]() [ResourceCountLimitExceededError]() [SettingError]() [SizeLimitError]() [StringFormatError]() [StringLengthError]() [UrlFieldError]()",
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose campaigns are being modified.",
                  "location": "path",
                  "pattern": "^[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v24/customers/{+customerId}/campaigns:mutate",
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCampaignsRequest"
              },
              "parameterOrder": [
                "customerId"
              ]
            },
            "enablePMaxBrandGuidelines": {
              "path": "v24/customers/{+customerId}/campaigns:enablePMaxBrandGuidelines",
              "parameterOrder": [
                "customerId"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__EnablePMaxBrandGuidelinesRequest"
              },
              "httpMethod": "POST",
              "flatPath": "v24/customers/{customersId}/campaigns:enablePMaxBrandGuidelines",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. The ID of the customer whose campaigns are being enabled.",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$"
                }
              },
              "description": "Enables Brand Guidelines for Performance Max campaigns. List of thrown errors: [AuthenticationError]() [AssetError]() [AssetLinkError]() [AuthorizationError]() [BrandGuidelinesMigrationError]() [CampaignError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]() [ResourceCountLimitExceededError]()",
              "id": "googleads.customers.campaigns.enablePMaxBrandGuidelines",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__EnablePMaxBrandGuidelinesResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ]
            }
          }
        },
        "biddingStrategies": {
          "methods": {
            "mutate": {
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateBiddingStrategiesRequest"
              },
              "parameterOrder": [
                "customerId"
              ],
              "path": "v24/customers/{+customerId}/biddingStrategies:mutate",
              "id": "googleads.customers.biddingStrategies.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateBiddingStrategiesResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "description": "Creates, updates, or removes bidding strategies. Operation statuses are returned. List of thrown errors: [AdxError]() [AuthenticationError]() [AuthorizationError]() [BiddingError]() [BiddingStrategyError]() [ContextError]() [DatabaseError]() [DateError]() [DistinctError]() [FieldError]() [FieldMaskError]() [HeaderError]() [IdError]() [InternalError]() [MutateError]() [NewResourceCreationError]() [NotEmptyError]() [NullError]() [OperationAccessDeniedError]() [OperatorError]() [QuotaError]() [RangeError]() [RequestError]() [SizeLimitError]() [StringFormatError]() [StringLengthError]()",
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose bidding strategies are being modified.",
                  "location": "path",
                  "pattern": "^[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "flatPath": "v24/customers/{customersId}/biddingStrategies:mutate"
            }
          }
        },
        "customerAssets": {
          "methods": {
            "mutate": {
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomerAssetsRequest"
              },
              "path": "v24/customers/{+customerId}/customerAssets:mutate",
              "description": "Creates, updates, or removes customer assets. Operation statuses are returned. List of thrown errors: [AssetLinkError]() [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]()",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. The ID of the customer whose customer assets are being modified.",
                  "location": "path",
                  "pattern": "^[^/]+$",
                  "required": true
                }
              },
              "id": "googleads.customers.customerAssets.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomerAssetsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "flatPath": "v24/customers/{customersId}/customerAssets:mutate"
            }
          }
        },
        "customerUserAccessInvitations": {
          "methods": {
            "mutate": {
              "parameters": {
                "customerId": {
                  "type": "string",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "description": "Required. The ID of the customer whose access invitation is being modified.",
                  "location": "path"
                }
              },
              "description": "Creates or removes an access invitation. List of thrown errors: [AccessInvitationError]() [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
              "id": "googleads.customers.customerUserAccessInvitations.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomerUserAccessInvitationResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "flatPath": "v24/customers/{customersId}/customerUserAccessInvitations:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomerUserAccessInvitationRequest"
              },
              "httpMethod": "POST",
              "path": "v24/customers/{+customerId}/customerUserAccessInvitations:mutate"
            }
          }
        },
        "customerUserAccesses": {
          "methods": {
            "mutate": {
              "path": "v24/customers/{+customerId}/customerUserAccesses:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomerUserAccessRequest"
              },
              "flatPath": "v24/customers/{customersId}/customerUserAccesses:mutate",
              "description": "Updates, removes permission of a user on a given customer. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [CustomerUserAccessError]() [FieldMaskError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]()",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. The ID of the customer being modified.",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$"
                }
              },
              "id": "googleads.customers.customerUserAccesses.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomerUserAccessResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ]
            }
          }
        },
        "customConversionGoals": {
          "methods": {
            "mutate": {
              "path": "v24/customers/{+customerId}/customConversionGoals:mutate",
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomConversionGoalsRequest"
              },
              "parameterOrder": [
                "customerId"
              ],
              "flatPath": "v24/customers/{customersId}/customConversionGoals:mutate",
              "id": "googleads.customers.customConversionGoals.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomConversionGoalsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "description": "Creates, updates or removes custom conversion goals. Operation statuses are returned.",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "description": "Required. The ID of the customer whose custom conversion goals are being modified.",
                  "location": "path"
                }
              }
            }
          }
        },
        "googleAds": {
          "methods": {
            "search": {
              "path": "v24/customers/{+customerId}/googleAds:search",
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__SearchGoogleAdsRequest"
              },
              "flatPath": "v24/customers/{customersId}/googleAds:search",
              "description": "Returns all rows that match the search query. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [ChangeEventError]() [ChangeStatusError]() [ClickViewError]() [HeaderError]() [InternalError]() [QueryError]() [QuotaError]() [RequestError]()",
              "parameters": {
                "customerId": {
                  "required": true,
                  "pattern": "^[^/]+$",
                  "description": "Required. The ID of the customer being queried.",
                  "location": "path",
                  "type": "string"
                }
              },
              "id": "googleads.customers.googleAds.search",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__SearchGoogleAdsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ]
            },
            "mutate": {
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateGoogleAdsRequest"
              },
              "path": "v24/customers/{+customerId}/googleAds:mutate",
              "description": "Executes mutate and actions operations. Mutate operations create, update, or remove resources. Actions perform custom operations. This method supports atomic transactions with multiple types of resources and actions. For example, you can atomically create a campaign and a campaign budget, or perform up to thousands of mutates atomically. This method is essentially a wrapper around a series of mutate methods. The only features it offers over calling those methods directly are: - Atomic transactions - Temp resource names (described below) - Somewhat reduced latency over making a series of mutate calls Note: Only resources that support atomic transactions are included, so this method can't replace all calls to individual services. ## Atomic Transaction Benefits Atomicity makes error handling much easier. If you're making a series of changes and one fails, it can leave your account in an inconsistent state. With atomicity, you either reach the chosen state directly, or the request fails and you can retry. ## Temp Resource Names Temp resource names are a special type of resource name used to create a resource and reference that resource in the same request. For example, if a campaign budget is created with `resource_name` equal to `customers/123/campaignBudgets/-1`, that resource name can be reused in the `Campaign.budget` field in the same request. That way, the two resources are created and linked atomically. To create a temp resource name, put a negative number in the part of the name that the server would normally allocate. Note: - Resources must be created with a temp name before the name can be reused. For example, the previous CampaignBudget+Campaign example would fail if the mutate order was reversed. - Temp names are not remembered across requests. - There's no limit to the number of temp names in a request. - Each temp name must use a unique negative number, even if the resource types differ. ## Latency It's important to group mutates by resource type or the request may time out and fail. Latency is roughly equal to a series of calls to individual mutate methods, where each change in resource type is a new call. For example, mutating 10 campaigns then 10 ad groups is like 2 calls, while mutating 1 campaign, 1 ad group, 1 campaign, 1 ad group is like 4 calls. List of thrown errors: [AdCustomizerError]() [AdError]() [AdGroupAdError]() [AdGroupCriterionError]() [AdGroupError]() [AssetError]() [AuthenticationError]() [AuthorizationError]() [BiddingError]() [CampaignBudgetError]() [CampaignCriterionError]() [CampaignError]() [CampaignExperimentError]() [CampaignSharedSetError]() [CollectionSizeError]() [ContextError]() [ConversionActionError]() [CriterionError]() [CustomerFeedError]() [DatabaseError]() [DateError]() [DateRangeError]() [DistinctError]() [ExtensionFeedItemError]() [ExtensionSettingError]() [FeedAttributeReferenceError]() [FeedError]() [FeedItemError]() [FeedItemSetError]() [FieldError]() [FieldMaskError]() [FunctionParsingError]() [HeaderError]() [ImageError]() [InternalError]() [KeywordPlanAdGroupKeywordError]() [KeywordPlanCampaignError]() [KeywordPlanError]() [LabelError]() [ListOperationError]() [MediaUploadError]() [MutateError]() [NewResourceCreationError]() [NullError]() [OperationAccessDeniedError]() [PolicyFindingError]() [PolicyViolationError]() [QuotaError]() [RangeError]() [RequestError]() [ResourceCountLimitExceededError]() [SettingError]() [SharedSetError]() [SizeLimitError]() [StringFormatError]() [StringLengthError]() [UrlFieldError]() [UserListError]() [YoutubeVideoRegistrationError]()",
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "required": true,
                  "description": "Required. The ID of the customer whose resources are being modified.",
                  "location": "path",
                  "type": "string"
                }
              },
              "id": "googleads.customers.googleAds.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateGoogleAdsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "flatPath": "v24/customers/{customersId}/googleAds:mutate"
            },
            "searchStream": {
              "parameterOrder": [
                "customerId"
              ],
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__SearchGoogleAdsStreamRequest"
              },
              "httpMethod": "POST",
              "path": "v24/customers/{+customerId}/googleAds:searchStream",
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer being queried.",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "type": "string"
                }
              },
              "description": "Returns all rows that match the search stream query. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [ChangeEventError]() [ChangeStatusError]() [ClickViewError]() [HeaderError]() [InternalError]() [QueryError]() [QuotaError]() [RequestError]()",
              "id": "googleads.customers.googleAds.searchStream",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__SearchGoogleAdsStreamResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "flatPath": "v24/customers/{customersId}/googleAds:searchStream"
            }
          }
        },
        "recommendationSubscriptions": {
          "methods": {
            "mutateRecommendationSubscription": {
              "path": "v24/customers/{+customerId}/recommendationSubscriptions:mutateRecommendationSubscription",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateRecommendationSubscriptionRequest"
              },
              "httpMethod": "POST",
              "parameterOrder": [
                "customerId"
              ],
              "flatPath": "v24/customers/{customersId}/recommendationSubscriptions:mutateRecommendationSubscription",
              "id": "googleads.customers.recommendationSubscriptions.mutateRecommendationSubscription",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateRecommendationSubscriptionResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. The ID of the subscribing customer.",
                  "location": "path",
                  "pattern": "^[^/]+$",
                  "required": true
                }
              },
              "description": "Mutates given subscription with corresponding apply parameters. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RecommendationError]() [RecommendationSubscriptionError]() [RequestError]() [UrlFieldError]()"
            }
          }
        },
        "customAudiences": {
          "methods": {
            "mutate": {
              "flatPath": "v24/customers/{customersId}/customAudiences:mutate",
              "description": "Creates or updates custom audiences. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [CustomAudienceError]() [CustomInterestError]() [FieldError]() [FieldMaskError]() [HeaderError]() [InternalError]() [MutateError]() [OperationAccessDeniedError]() [PolicyViolationError]() [QuotaError]() [RequestError]()",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. The ID of the customer whose custom audiences are being modified.",
                  "location": "path",
                  "pattern": "^[^/]+$",
                  "required": true
                }
              },
              "id": "googleads.customers.customAudiences.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomAudiencesResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "path": "v24/customers/{+customerId}/customAudiences:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomAudiencesRequest"
              }
            }
          }
        },
        "campaignGroups": {
          "methods": {
            "mutate": {
              "flatPath": "v24/customers/{customersId}/campaignGroups:mutate",
              "description": "Creates, updates, or removes campaign groups. Operation statuses are returned.",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "required": true,
                  "description": "Required. The ID of the customer whose campaign groups are being modified.",
                  "location": "path"
                }
              },
              "id": "googleads.customers.campaignGroups.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCampaignGroupsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "path": "v24/customers/{+customerId}/campaignGroups:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCampaignGroupsRequest"
              }
            }
          }
        },
        "customerLabels": {
          "methods": {
            "mutate": {
              "flatPath": "v24/customers/{customersId}/customerLabels:mutate",
              "id": "googleads.customers.customerLabels.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomerLabelsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameters": {
                "customerId": {
                  "description": "Required. ID of the customer whose customer-label relationships are being modified.",
                  "location": "path",
                  "pattern": "^[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "description": "Creates and removes customer-label relationships. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [HeaderError]() [InternalError]() [LabelError]() [MutateError]() [QuotaError]() [RequestError]()",
              "path": "v24/customers/{+customerId}/customerLabels:mutate",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomerLabelsRequest"
              },
              "httpMethod": "POST",
              "parameterOrder": [
                "customerId"
              ]
            }
          }
        },
        "customerSkAdNetworkConversionValueSchemas": {
          "methods": {
            "mutate": {
              "path": "v24/customers/{+customerId}/customerSkAdNetworkConversionValueSchemas:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomerSkAdNetworkConversionValueSchemaRequest"
              },
              "flatPath": "v24/customers/{customersId}/customerSkAdNetworkConversionValueSchemas:mutate",
              "description": "Creates or updates the CustomerSkAdNetworkConversionValueSchema. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [FieldError]() [InternalError]() [MutateError]()",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "description": "The ID of the customer whose shared sets are being modified.",
                  "location": "path"
                }
              },
              "id": "googleads.customers.customerSkAdNetworkConversionValueSchemas.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomerSkAdNetworkConversionValueSchemaResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ]
            }
          }
        },
        "biddingDataExclusions": {
          "methods": {
            "mutate": {
              "path": "v24/customers/{+customerId}/biddingDataExclusions:mutate",
              "request": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateBiddingDataExclusionsRequest"
              },
              "httpMethod": "POST",
              "parameterOrder": [
                "customerId"
              ],
              "flatPath": "v24/customers/{customersId}/biddingDataExclusions:mutate",
              "id": "googleads.customers.biddingDataExclusions.mutate",
              "response": {
                "$ref": "GoogleAdsGoogleadsV24Services__MutateBiddingDataExclusionsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/adwords"
              ],
              "parameters": {
                "customerId": {
                  "description": "Required. ID of the customer whose data exclusions are being modified.",
                  "location": "path",
                  "pattern": "^[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "description": "Creates, updates, or removes data exclusions. Operation statuses are returned."
            }
          }
        }
      }
    },
    "v24": {
      "methods": {
        "listBenchmarksLocations": {
          "id": "googleads.listBenchmarksLocations",
          "response": {
            "$ref": "GoogleAdsGoogleadsV24Services__ListBenchmarksLocationsResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "parameters": {},
          "description": "Returns the list of locations that support benchmarks (for example, countries). List of thrown errors: [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
          "flatPath": "v24:listBenchmarksLocations",
          "request": {
            "$ref": "GoogleAdsGoogleadsV24Services__ListBenchmarksLocationsRequest"
          },
          "httpMethod": "POST",
          "parameterOrder": [],
          "path": "v24:listBenchmarksLocations"
        },
        "listBenchmarksProducts": {
          "description": "Returns the list of products that supports benchmarks. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
          "parameters": {},
          "id": "googleads.listBenchmarksProducts",
          "response": {
            "$ref": "GoogleAdsGoogleadsV24Services__ListBenchmarksProductsResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "flatPath": "v24:listBenchmarksProducts",
          "parameterOrder": [],
          "httpMethod": "POST",
          "request": {
            "$ref": "GoogleAdsGoogleadsV24Services__ListBenchmarksProductsRequest"
          },
          "path": "v24:listBenchmarksProducts"
        },
        "listPlannableUserLists": {
          "id": "googleads.listPlannableUserLists",
          "response": {
            "$ref": "GoogleAdsGoogleadsV24Services__ListPlannableUserListsResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "parameters": {},
          "description": "Returns the list of plannable user lists with their plannable status. User lists may not be plannable for a number of reasons, including: - They are less than 10 days old. - They have a membership lifespan that is less than 30 days - They have less than 10,000 or more than 700,000 users. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RangeError]() [ReachPlanError]() [RequestError]()",
          "flatPath": "v24:listPlannableUserLists",
          "request": {
            "$ref": "GoogleAdsGoogleadsV24Services__ListPlannableUserListsRequest"
          },
          "httpMethod": "POST",
          "parameterOrder": [],
          "path": "v24:listPlannableUserLists"
        },
        "listBenchmarksAvailableDates": {
          "description": "Returns a date range that supports benchmarks. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
          "parameters": {},
          "id": "googleads.listBenchmarksAvailableDates",
          "response": {
            "$ref": "GoogleAdsGoogleadsV24Services__ListBenchmarksAvailableDatesResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "flatPath": "v24:listBenchmarksAvailableDates",
          "parameterOrder": [],
          "httpMethod": "POST",
          "request": {
            "$ref": "GoogleAdsGoogleadsV24Services__ListBenchmarksAvailableDatesRequest"
          },
          "path": "v24:listBenchmarksAvailableDates"
        },
        "listBenchmarksSources": {
          "path": "v24:listBenchmarksSources",
          "parameterOrder": [],
          "request": {
            "$ref": "GoogleAdsGoogleadsV24Services__ListBenchmarksSourcesRequest"
          },
          "httpMethod": "POST",
          "flatPath": "v24:listBenchmarksSources",
          "parameters": {},
          "description": "Returns the list of benchmarks sources (for example, Industry Verticals). List of thrown errors: [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
          "id": "googleads.listBenchmarksSources",
          "response": {
            "$ref": "GoogleAdsGoogleadsV24Services__ListBenchmarksSourcesResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ]
        },
        "listPlannableUserInterests": {
          "flatPath": "v24:listPlannableUserInterests",
          "description": "Returns the list of plannable user interests. A plannable user interest is one that can be targeted in a reach forecast using ReachPlanService.GenerateReachForecast. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [ListOperationError]() [QuotaError]() [RequestError]() [StringLengthError]()",
          "parameters": {},
          "id": "googleads.listPlannableUserInterests",
          "response": {
            "$ref": "GoogleAdsGoogleadsV24Services__ListPlannableUserInterestsResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "path": "v24:listPlannableUserInterests",
          "parameterOrder": [],
          "httpMethod": "POST",
          "request": {
            "$ref": "GoogleAdsGoogleadsV24Services__ListPlannableUserInterestsRequest"
          }
        },
        "generateConversionRates": {
          "id": "googleads.generateConversionRates",
          "response": {
            "$ref": "GoogleAdsGoogleadsV24Services__GenerateConversionRatesResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "description": "Returns a collection of conversion rate suggestions for supported plannable products. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
          "parameters": {},
          "flatPath": "v24:generateConversionRates",
          "httpMethod": "POST",
          "request": {
            "$ref": "GoogleAdsGoogleadsV24Services__GenerateConversionRatesRequest"
          },
          "parameterOrder": [],
          "path": "v24:generateConversionRates"
        },
        "listPlannableProducts": {
          "parameters": {},
          "description": "Returns the list of per-location plannable YouTube ad formats with allowed targeting. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
          "id": "googleads.listPlannableProducts",
          "response": {
            "$ref": "GoogleAdsGoogleadsV24Services__ListPlannableProductsResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "flatPath": "v24:listPlannableProducts",
          "parameterOrder": [],
          "request": {
            "$ref": "GoogleAdsGoogleadsV24Services__ListPlannableProductsRequest"
          },
          "httpMethod": "POST",
          "path": "v24:listPlannableProducts"
        },
        "listPlannableLocations": {
          "path": "v24:listPlannableLocations",
          "parameterOrder": [],
          "request": {
            "$ref": "GoogleAdsGoogleadsV24Services__ListPlannableLocationsRequest"
          },
          "httpMethod": "POST",
          "flatPath": "v24:listPlannableLocations",
          "parameters": {},
          "description": "Returns the list of plannable locations (for example, countries). List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
          "id": "googleads.listPlannableLocations",
          "response": {
            "$ref": "GoogleAdsGoogleadsV24Services__ListPlannableLocationsResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ]
        }
      }
    },
    "audienceInsights": {
      "methods": {
        "listInsightsEligibleDates": {
          "description": "Lists date ranges for which audience insights data can be requested. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RangeError]() [RequestError]()",
          "parameters": {},
          "id": "googleads.audienceInsights.listInsightsEligibleDates",
          "response": {
            "$ref": "GoogleAdsGoogleadsV24Services__ListInsightsEligibleDatesResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/adwords"
          ],
          "flatPath": "v24/audienceInsights:listInsightsEligibleDates",
          "parameterOrder": [],
          "httpMethod": "POST",
          "request": {
            "$ref": "GoogleAdsGoogleadsV24Services__ListInsightsEligibleDatesRequest"
          },
          "path": "v24/audienceInsights:listInsightsEligibleDates"
        }
      }
    }
  },
  "ownerDomain": "google.com",
  "batchPath": "batch",
  "fullyEncodeReservedExpansion": true,
  "canonicalName": "GoogleAds",
  "name": "googleads",
  "id": "googleads:v24",
  "icons": {
    "x16": "http://www.google.com/images/icons/product/search-16.gif",
    "x32": "http://www.google.com/images/icons/product/search-32.gif"
  },
  "parameters": {
    "$.xgafv": {
      "description": "V1 error format.",
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ],
      "location": "query",
      "enum": [
        "1",
        "2"
      ],
      "type": "string"
    },
    "key": {
      "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.",
      "location": "query"
    },
    "prettyPrint": {
      "description": "Returns response with indentations and line breaks.",
      "default": "true",
      "location": "query",
      "type": "boolean"
    },
    "access_token": {
      "type": "string",
      "description": "OAuth access token.",
      "location": "query"
    },
    "fields": {
      "type": "string",
      "description": "Selector specifying which fields to include in a partial response.",
      "location": "query"
    },
    "uploadType": {
      "type": "string",
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
      "location": "query"
    },
    "oauth_token": {
      "type": "string",
      "description": "OAuth 2.0 token for the current user.",
      "location": "query"
    },
    "alt": {
      "enum": [
        "json",
        "media",
        "proto"
      ],
      "description": "Data format for response.",
      "enumDescriptions": [
        "Responses with Content-Type of application/json",
        "Media download with context-dependent Content-Type",
        "Responses with Content-Type of application/x-protobuf"
      ],
      "location": "query",
      "type": "string",
      "default": "json"
    },
    "callback": {
      "description": "JSONP",
      "location": "query",
      "type": "string"
    },
    "quotaUser": {
      "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
      "location": "query",
      "type": "string"
    },
    "upload_protocol": {
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
      "location": "query",
      "type": "string"
    }
  },
  "protocol": "rest",
  "title": "Google Ads API",
  "ownerName": "Google",
  "baseUrl": "https://googleads.googleapis.com/",
  "servicePath": "",
  "rootUrl": "https://googleads.googleapis.com/",
  "basePath": "",
  "kind": "discovery#restDescription",
  "revision": "20260421",
  "documentationLink": "https://developers.google.com/google-ads/api/",
  "discoveryVersion": "v1",
  "version_module": true,
  "mtlsRootUrl": "https://googleads.mtls.googleapis.com/",
  "description": "Manage your Google Ads accounts, campaigns, and reports with this API.",
  "schemas": {
    "GoogleAdsGoogleadsV24Services__MutateAssetGroupAssetsRequest": {
      "description": "Request message for AssetGroupAssetService.MutateAssetGroupAssets.",
      "properties": {
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "operations": {
          "description": "Required. The list of operations to perform on individual asset group assets.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__AssetGroupAssetOperation"
          },
          "type": "array"
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateAssetGroupAssetsRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__SuggestBrandsResponse": {
      "description": "Response message for BrandSuggestionService.SuggestBrands.",
      "properties": {
        "brands": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__BrandSuggestion"
          },
          "description": "Generated brand suggestions of verified brands for the given prefix."
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__SuggestBrandsResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__MonthlySearchVolume": {
      "id": "GoogleAdsGoogleadsV24Common__MonthlySearchVolume",
      "type": "object",
      "description": "Monthly search volume.",
      "properties": {
        "year": {
          "description": "The year of the search volume (for example, 2020).",
          "format": "int64",
          "type": "string"
        },
        "monthlySearches": {
          "description": "Approximate number of searches for the month. A null value indicates the search volume is unavailable for that month.",
          "format": "int64",
          "type": "string"
        },
        "month": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "JANUARY",
            "FEBRUARY",
            "MARCH",
            "APRIL",
            "MAY",
            "JUNE",
            "JULY",
            "AUGUST",
            "SEPTEMBER",
            "OCTOBER",
            "NOVEMBER",
            "DECEMBER"
          ],
          "description": "The month of the search volume.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "January.",
            "February.",
            "March.",
            "April.",
            "May.",
            "June.",
            "July.",
            "August.",
            "September.",
            "October.",
            "November.",
            "December."
          ],
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__TransactionAttribute": {
      "description": "Attribute of the store sales transaction.",
      "properties": {
        "orderId": {
          "description": "Transaction order id. Useful to group transactions which are part of the same order.",
          "type": "string"
        },
        "customValue": {
          "description": "Value of the custom variable for each transaction. Allowed only if a custom key is provided in the store sales metadata.",
          "type": "string"
        },
        "itemAttribute": {
          "description": "Item attributes of the transaction. Accessible only to customers on the allow-list.",
          "$ref": "GoogleAdsGoogleadsV24Common__ItemAttribute"
        },
        "conversionAction": {
          "description": "The resource name of conversion action to report conversions to. Required.",
          "type": "string"
        },
        "transactionDateTime": {
          "description": "Timestamp when transaction occurred. Required. The format is \"YYYY-MM-DD HH:MM:SS[+/-HH:MM]\", where [+/-HH:MM] is an optional timezone offset from UTC. If the offset is absent, the API will use the account's timezone as default. Examples: \"2018-03-05 09:15:00\" or \"2018-02-01 14:34:30+03:00\"",
          "type": "string"
        },
        "transactionAmountMicros": {
          "description": "Transaction amount in micros. Required. Transaction amount in micros needs to be greater than 1000. If item Attributes are provided, it represents the total value of the items, after multiplying the unit price per item by the quantity provided in the ItemAttributes.",
          "format": "double",
          "type": "number"
        },
        "currencyCode": {
          "type": "string",
          "description": "Transaction currency code. ISO 4217 three-letter code is used. Required."
        },
        "storeAttribute": {
          "description": "Store attributes of the transaction.",
          "$ref": "GoogleAdsGoogleadsV24Common__StoreAttribute"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__TransactionAttribute",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateAdGroupCriterionCustomizersRequest": {
      "id": "GoogleAdsGoogleadsV24Services__MutateAdGroupCriterionCustomizersRequest",
      "type": "object",
      "description": "Request message for AdGroupCriterionCustomizerService.MutateAdGroupCriterionCustomizers.",
      "properties": {
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "operations": {
          "description": "Required. The list of operations to perform on individual ad group criterion customizers.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__AdGroupCriterionCustomizerOperation"
          },
          "type": "array"
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "responseContentType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MoveManagerLinkRequest": {
      "id": "GoogleAdsGoogleadsV24Services__MoveManagerLinkRequest",
      "type": "object",
      "description": "Request message for CustomerManagerLinkService.MoveManagerLink.",
      "properties": {
        "previousCustomerManagerLink": {
          "description": "Required. The resource name of the previous CustomerManagerLink. The resource name has the form: `customers/{customer_id}/customerManagerLinks/{manager_customer_id}~{manager_link_id}`",
          "type": "string"
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "newManager": {
          "description": "Required. The resource name of the new manager customer that the client wants to move to. Customer resource names have the format: \"customers/{customer_id}\"",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__ProductConditionInfo": {
      "id": "GoogleAdsGoogleadsV24Common__ProductConditionInfo",
      "type": "object",
      "description": "Condition of a product offer.",
      "properties": {
        "condition": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NEW",
            "REFURBISHED",
            "USED"
          ],
          "description": "Value of the condition.",
          "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."
          ],
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__ClickConversion": {
      "description": "A click conversion.",
      "properties": {
        "wbraid": {
          "description": "The URL parameter for clicks associated with web conversions.",
          "type": "string"
        },
        "sessionAttributesKeyValuePairs": {
          "description": "The session attributes for the event, represented as key-value pairs. This field is only available to allowlisted users. To include this field in conversion imports, upgrade to the Data Manager API.",
          "$ref": "GoogleAdsGoogleadsV24Services__SessionAttributesKeyValuePairs"
        },
        "sessionAttributesEncoded": {
          "description": "The session attributes for the event, represented as a base64-encoded JSON string. The content should be generated by Google-provided library. To set session attributes individually, use session_attributes_key_value_pairs instead. This field is only available to allowlisted users. To include this field in conversion imports, upgrade to the Data Manager API.",
          "format": "byte",
          "type": "string"
        },
        "gbraid": {
          "type": "string",
          "description": "The URL parameter for clicks associated with app conversions."
        },
        "gclid": {
          "type": "string",
          "description": "The Google click ID (gclid) associated with this conversion."
        },
        "orderId": {
          "type": "string",
          "description": "The order ID associated with the conversion. An order id can only be used for one conversion per conversion action."
        },
        "customerType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NEW",
            "RETURNING"
          ],
          "description": "Type of the customer associated with the conversion (new or returning).",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Converting user is new to the advertiser.",
            "Converting user is returning to the advertiser. Definition of returning differs among conversion types, such as a second store visit versus a second online purchase."
          ]
        },
        "userIpAddress": {
          "description": "The IP address of the customer when they arrived on the landing page after an ad click but before a conversion event. This is the IP address of the customer's device, not the advertiser's server. Google Ads does not support IP address matching for end users in the European Economic Area (EEA), United Kingdom (UK), or Switzerland (CH). Add logic to conditionally exclude sharing IP addresses from users from these regions and ensure that you provide users with clear and comprehensive information about the data you collect on your sites, apps, and other properties and get consent where required by law or any applicable Google policies. See [About offline conversion imports](//support.google.com/google-ads/answer/2998031) page for more details. This field is only available to allowlisted users. To include this field in conversion imports, upgrade to the Data Manager API.",
          "type": "string"
        },
        "conversionAction": {
          "description": "Resource name of the conversion action associated with this conversion. Note: Although this resource name consists of a customer id and a conversion action id, validation will ignore the customer id and use the conversion action id as the sole identifier of the conversion action.",
          "type": "string"
        },
        "conversionValue": {
          "type": "number",
          "description": "The value of the conversion for the advertiser.",
          "format": "double"
        },
        "currencyCode": {
          "type": "string",
          "description": "Currency associated with the conversion value. This is the ISO 4217 3-character currency code. For example: USD, EUR."
        },
        "consent": {
          "description": "The consent setting for the event.",
          "$ref": "GoogleAdsGoogleadsV24Common__Consent"
        },
        "conversionDateTime": {
          "description": "The date time at which the conversion occurred. Must be after the click time. The timezone must be specified. The format is \"yyyy-mm-dd hh:mm:ss+|-hh:mm\", for example, \"2019-01-01 12:32:45-08:00\".",
          "type": "string"
        },
        "externalAttributionData": {
          "description": "Additional data about externally attributed conversions. This field is required for conversions with an externally attributed conversion action, but should not be set otherwise.",
          "$ref": "GoogleAdsGoogleadsV24Services__ExternalAttributionData"
        },
        "cartData": {
          "description": "The cart data associated with this conversion.",
          "$ref": "GoogleAdsGoogleadsV24Services__CartData"
        },
        "conversionEnvironment": {
          "type": "string",
          "description": "The environment this conversion was recorded on, for example, App or Web.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The conversion was recorded on an app.",
            "The conversion was recorded on a website."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "APP",
            "WEB"
          ]
        },
        "customVariables": {
          "type": "array",
          "description": "The custom variables associated with this conversion.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__CustomVariable"
          }
        },
        "userIdentifiers": {
          "description": "The user identifiers associated with this conversion. Only hashed_email and hashed_phone_number are supported for conversion uploads. The maximum number of user identifiers for each conversion is 5.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__UserIdentifier"
          },
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__ClickConversion",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__AddOfflineUserDataJobOperationsRequest": {
      "id": "GoogleAdsGoogleadsV24Services__AddOfflineUserDataJobOperationsRequest",
      "type": "object",
      "description": "Request message for OfflineUserDataJobService.AddOfflineUserDataJobOperations.",
      "properties": {
        "enableWarnings": {
          "description": "True to enable warnings for the offline user data job. When enabled, a warning will not block the OfflineUserDataJobOperation, and will also return warning messages about malformed field values.",
          "type": "boolean"
        },
        "enablePartialFailure": {
          "description": "True to enable partial failure for the offline user data job.",
          "type": "boolean"
        },
        "operations": {
          "type": "array",
          "description": "Required. The list of operations to be done.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__OfflineUserDataJobOperation"
          }
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateCampaignDraftsResponse": {
      "id": "GoogleAdsGoogleadsV24Services__MutateCampaignDraftsResponse",
      "type": "object",
      "description": "Response message for campaign draft mutate.",
      "properties": {
        "results": {
          "type": "array",
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateCampaignDraftResult"
          }
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__ListBenchmarksAvailableDatesRequest": {
      "description": "Request message for BenchmarksService.ListBenchmarksAvailableDates.",
      "properties": {
        "applicationInfo": {
          "description": "Additional information on the application issuing the request.",
          "$ref": "GoogleAdsGoogleadsV24Common__AdditionalApplicationInfo"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__ListBenchmarksAvailableDatesRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__OfflineUserAddressInfo": {
      "description": "Address identifier of offline data.",
      "properties": {
        "hashedFirstName": {
          "description": "First name of the user, which is hashed as SHA-256 after normalized (Lowercase all characters; Remove any extra spaces before, after, and in between).",
          "type": "string"
        },
        "state": {
          "description": "State code of the address. Only accepted for Store Sales and ConversionAdjustmentUploadService.",
          "type": "string"
        },
        "city": {
          "type": "string",
          "description": "City of the address. Only accepted for Store Sales and ConversionAdjustmentUploadService."
        },
        "hashedStreetAddress": {
          "description": "The street address of the user hashed using SHA-256 hash function after normalization (lower case only). Only accepted for ConversionAdjustmentUploadService.",
          "type": "string"
        },
        "countryCode": {
          "description": "2-letter country code in ISO-3166-1 alpha-2 of the user's address.",
          "type": "string"
        },
        "hashedLastName": {
          "type": "string",
          "description": "Last name of the user, which is hashed as SHA-256 after normalized (lower case only and no punctuation)."
        },
        "postalCode": {
          "type": "string",
          "description": "Postal code of the user's address."
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__OfflineUserAddressInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__AdGroupAsset": {
      "description": "A link between an ad group and an asset.",
      "properties": {
        "resourceName": {
          "type": "string",
          "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}`"
        },
        "source": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADVERTISER",
            "AUTOMATICALLY_CREATED"
          ],
          "description": "Output only. Source of the adgroup asset link.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset or asset link is provided by advertiser.",
            "The asset or asset link is generated by Google."
          ],
          "type": "string"
        },
        "status": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED",
            "PAUSED"
          ],
          "description": "Status of the ad group asset.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Asset link is enabled.",
            "Asset link has been removed.",
            "Asset link is paused."
          ]
        },
        "primaryStatusReasons": {
          "type": "array",
          "items": {
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "The asset is paused for its linked rollup level. Contributes to a PrimaryStatus of PAUSED.",
              "The asset is removed for its linked rollup level. Contributes to a PrimaryStatus of REMOVED.",
              "The asset has been marked as disapproved. Contributes to a PrimaryStatus of NOT_ELIGIBLE",
              "The asset has not completed policy review. Contributes to a PrimaryStatus of PENDING.",
              "The asset is approved with policies applied. Contributes to a PrimaryStatus of LIMITED."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "ASSET_LINK_PAUSED",
              "ASSET_LINK_REMOVED",
              "ASSET_DISAPPROVED",
              "ASSET_UNDER_REVIEW",
              "ASSET_APPROVED_LABELED"
            ],
            "type": "string"
          },
          "description": "Output only. Provides a list of reasons for why an asset is not serving or not serving at full capacity.",
          "readOnly": true
        },
        "primaryStatusDetails": {
          "description": "Output only. Provides the details of the primary status and its associated reasons.",
          "readOnly": true,
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AssetLinkPrimaryStatusDetails"
          },
          "type": "array"
        },
        "fieldType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE",
            "DESCRIPTION",
            "MANDATORY_AD_TEXT",
            "MARKETING_IMAGE",
            "MEDIA_BUNDLE",
            "YOUTUBE_VIDEO",
            "BOOK_ON_GOOGLE",
            "LEAD_FORM",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "LONG_HEADLINE",
            "BUSINESS_NAME",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "VIDEO",
            "CALL_TO_ACTION_SELECTION",
            "AD_IMAGE",
            "BUSINESS_LOGO",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "TALL_PORTRAIT_MARKETING_IMAGE",
            "RELATED_YOUTUBE_VIDEOS",
            "LANDING_PAGE_PREVIEW",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION"
          ],
          "description": "Required. Immutable. Role that the asset takes under the linked ad group.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is linked for use as a headline.",
            "The asset is linked for use as a description.",
            "The asset is linked for use as mandatory ad text.",
            "The asset is linked for use as a marketing image.",
            "The asset is linked for use as a media bundle.",
            "The asset is linked for use as a YouTube video.",
            "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
            "The asset is linked for use as a Lead Form extension.",
            "The asset is linked for use as a Promotion extension.",
            "The asset is linked for use as a Callout extension.",
            "The asset is linked for use as a Structured Snippet extension.",
            "The asset is linked for use as a Sitelink.",
            "The asset is linked for use as a Mobile App extension.",
            "The asset is linked for use as a Hotel Callout extension.",
            "The asset is linked for use as a Call extension.",
            "The asset is linked for use as a Price extension.",
            "The asset is linked for use as a long headline.",
            "The asset is linked for use as a business name.",
            "The asset is linked for use as a square marketing image.",
            "The asset is linked for use as a portrait marketing image.",
            "The asset is linked for use as a logo.",
            "The asset is linked for use as a landscape logo.",
            "The asset is linked for use as a non YouTube logo.",
            "The asset is linked for use to select a call-to-action.",
            "The asset is linked for use to select an ad image.",
            "The asset is linked for use as a business logo.",
            "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
            "The asset is linked for use as a Demand Gen carousel card.",
            "The asset is linked for use as a Business Message.",
            "The asset is linked for use as a tall portrait marketing image.",
            "The asset is linked for use as related YouTube videos.",
            "The asset is linked for use as a landing page preview image.",
            "The asset is linked for use as a long description.",
            "The asset is linked for use as a call-to-action."
          ]
        },
        "adGroup": {
          "description": "Required. Immutable. The ad group to which the asset is linked.",
          "type": "string"
        },
        "primaryStatus": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ELIGIBLE",
            "PAUSED",
            "REMOVED",
            "PENDING",
            "LIMITED",
            "NOT_ELIGIBLE"
          ],
          "description": "Output only. Provides the PrimaryStatus of this asset link. Primary status is meant essentially to differentiate between the plain \"status\" field, which has advertiser set values of enabled, paused, or removed. The primary status takes into account other signals (for assets its mainly policy and quality approvals) to come up with a more comprehensive status to indicate its serving state.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is eligible to serve.",
            "The user-specified asset link status is paused.",
            "The user-specified asset link status is removed.",
            "The asset may serve in the future.",
            "The asset is serving in a partial capacity.",
            "The asset is not eligible to serve."
          ]
        },
        "asset": {
          "description": "Required. Immutable. The asset which is linked to the ad group.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__AdGroupAsset",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__DataPartnerIdentifier": {
      "id": "GoogleAdsGoogleadsV24Resources__DataPartnerIdentifier",
      "type": "object",
      "description": "The identifier for Data Partner account.",
      "properties": {
        "dataPartnerId": {
          "type": "string",
          "description": "Immutable. The customer ID of the Data partner account. This field is required and should not be empty when creating a new data partner link. It is unable to be modified after the creation of the link.",
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common_GoalSetting_RetentionGoal": {
      "id": "GoogleAdsGoogleadsV24Common_GoalSetting_RetentionGoal",
      "type": "object",
      "description": "Retention goal settings.",
      "properties": {
        "valueSettings": {
          "description": "Retention goal value settings.",
          "$ref": "GoogleAdsGoogleadsV24Common__CustomerLifecycleOptimizationValueSettings"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__ApplyIncentiveResponse": {
      "description": "Response for applying an incentive.",
      "properties": {
        "creationTime": {
          "description": "The timestamp when this incentive was applied. The timestamp is in UTC timezone and in \"yyyy-MM-dd HH:mm:ss\" format.",
          "type": "string"
        },
        "couponCode": {
          "type": "string",
          "description": "The coupon code of the applied incentive. A globally unique identifier of the applied incentive. This code is separate and distinct from the selected_incentive_id in the request."
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__ApplyIncentiveResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__ProductCoreAttributes": {
      "description": "A collection of attributes that offer more information about a specific product.",
      "properties": {
        "marketingObjective": {
          "description": "A specific, measurable goal that a company wants to achieve through its marketing efforts.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "The objective is to maximize brand visibility and reach as many relevant people as possible, making potential customers aware of the brand or product.",
            "The objective is to encourage potential customers to learn more about the brand or products and consider them for a future purchase.",
            "The objective is to persuade potential customers to take a specific, valuable action, such as making a purchase, signing up for a newsletter, or generating a lead."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AWARENESS",
            "CONSIDERATION",
            "ACTION"
          ],
          "type": "string"
        },
        "buyingMethod": {
          "type": "string",
          "description": "The method of buying this product. For example, Auction pricing is dynamic and Reservation is booked at a fixed price.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Bidding on ads with a target CPM.",
            "Buying method that encompasses deal-based and instant reserve pricing."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AUCTION",
            "RESERVATION"
          ]
        },
        "costModel": {
          "type": "string",
          "description": "How an advertiser pays for their ad campaign.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Cost per mille (thousand impressions).",
            "Cost per view.",
            "Cost per click.",
            "Cost per action (conversion)."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CPM",
            "CPV",
            "CPC",
            "CPA"
          ]
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__ProductCoreAttributes",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateAdGroupBidModifiersResponse": {
      "id": "GoogleAdsGoogleadsV24Services__MutateAdGroupBidModifiersResponse",
      "type": "object",
      "description": "Response message for ad group bid modifiers mutate.",
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateAdGroupBidModifierResult"
          },
          "description": "All results for the mutate."
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_Recommendation_EnhancedCpcOptInRecommendation": {
      "description": "The Enhanced Cost-Per-Click Opt-In recommendation.",
      "properties": {},
      "id": "GoogleAdsGoogleadsV24Resources_Recommendation_EnhancedCpcOptInRecommendation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateCustomerAssetResult": {
      "id": "GoogleAdsGoogleadsV24Services__MutateCustomerAssetResult",
      "type": "object",
      "description": "The result for the customer asset mutate.",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        },
        "customerAsset": {
          "description": "The mutated customer asset with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV24Resources__CustomerAsset"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateCustomerLabelsResponse": {
      "id": "GoogleAdsGoogleadsV24Services__MutateCustomerLabelsResponse",
      "type": "object",
      "description": "Response message for a customer labels mutate.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "type": "array",
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomerLabelResult"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateUserListsResponse": {
      "description": "Response message for user list mutate.",
      "properties": {
        "results": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateUserListResult"
          },
          "description": "All results for the mutate.",
          "type": "array"
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateUserListsResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__AdGroupCustomizerOperation": {
      "description": "A single operation (create, remove) on a customizer attribute.",
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new ad group customizer",
          "$ref": "GoogleAdsGoogleadsV24Resources__AdGroupCustomizer"
        },
        "remove": {
          "description": "Remove operation: A resource name for the removed ad group customizer is expected, in this format: `customers/{customer_id}/adGroupCustomizers/{ad_group_id}~{customizer_attribute_id}`",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__AdGroupCustomizerOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_Invoice_AccountBudgetSummary": {
      "id": "GoogleAdsGoogleadsV24Resources_Invoice_AccountBudgetSummary",
      "type": "object",
      "description": "Represents a summarized account budget billable cost.",
      "properties": {
        "totalAmountMicros": {
          "type": "string",
          "description": "Output only. The total amount attributable to this budget during the service period, in micros. This equals the sum of the account budget subtotal amount and the account budget tax amount.",
          "readOnly": true,
          "format": "int64"
        },
        "overdeliveryAmountMicros": {
          "description": "Output only. The pretax overdelivery amount attributable to this budget during the service period, in micros (negative value).",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "accountBudget": {
          "type": "string",
          "description": "Output only. The resource name of the account budget associated with this summarized billable cost. AccountBudget resource names have the form: `customers/{customer_id}/accountBudgets/{account_budget_id}`",
          "readOnly": true
        },
        "purchaseOrderNumber": {
          "description": "Output only. The purchase order number of the account budget. It appears on the invoice PDF as \"Purchase order\".",
          "readOnly": true,
          "type": "string"
        },
        "servedAmountMicros": {
          "type": "string",
          "description": "Output only. The pretax served amount attributable to this budget during the service period, in micros. This is only useful to reconcile invoice and delivery data.",
          "readOnly": true,
          "format": "int64"
        },
        "customer": {
          "description": "Output only. The resource name of the customer associated with this account budget. This contains the customer ID, which appears on the invoice PDF as \"Account ID\". Customer resource names have the form: `customers/{customer_id}`",
          "readOnly": true,
          "type": "string"
        },
        "billableActivityDateRange": {
          "description": "Output only. The billable activity date range of the account budget, within the service date range of this invoice. The end date is inclusive. This can be different from the account budget's start and end time.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Common__DateRange"
        },
        "taxAmountMicros": {
          "description": "Output only. The tax amount attributable to this budget during the service period, in micros.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "invalidActivityAmountMicros": {
          "description": "Output only. The pretax invalid activity amount attributable to this budget in previous months, in micros (negative value).",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "invalidActivitySummaries": {
          "description": "Output only. The list of summarized invalid activity credits with original linkages.",
          "readOnly": true,
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Resources_Invoice_InvalidActivitySummary"
          },
          "type": "array"
        },
        "accountBudgetName": {
          "description": "Output only. The name of the account budget. It appears on the invoice PDF as \"Account budget\".",
          "readOnly": true,
          "type": "string"
        },
        "billedAmountMicros": {
          "description": "Output only. The pretax billed amount attributable to this budget during the service period, in micros. This does not account for any adjustments.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "customerDescriptiveName": {
          "description": "Output only. The descriptive name of the account budget's customer. It appears on the invoice PDF as \"Account\".",
          "readOnly": true,
          "type": "string"
        },
        "subtotalAmountMicros": {
          "type": "string",
          "description": "Output only. The pretax subtotal amount attributable to this budget during the service period, in micros.",
          "readOnly": true,
          "format": "int64"
        },
        "campaignSummaries": {
          "description": "Output only. The list of summarized campaign level information associated with this account budget.",
          "readOnly": true,
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Resources_Invoice_CampaignSummary"
          },
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services_GenerateRecommendationsRequest_AdGroupInfo": {
      "id": "GoogleAdsGoogleadsV24Services_GenerateRecommendationsRequest_AdGroupInfo",
      "type": "object",
      "description": "Current AdGroup Information of the campaign.",
      "properties": {
        "adGroupType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SEARCH_STANDARD",
            "DISPLAY_STANDARD",
            "SHOPPING_PRODUCT_ADS",
            "HOTEL_ADS",
            "SHOPPING_SMART_ADS",
            "VIDEO_BUMPER",
            "VIDEO_TRUE_VIEW_IN_STREAM",
            "VIDEO_TRUE_VIEW_IN_DISPLAY",
            "VIDEO_NON_SKIPPABLE_IN_STREAM",
            "SEARCH_DYNAMIC_ADS",
            "SHOPPING_COMPARISON_LISTING_ADS",
            "PROMOTED_HOTEL_ADS",
            "VIDEO_RESPONSIVE",
            "VIDEO_EFFICIENT_REACH",
            "SMART_CAMPAIGN_ADS",
            "TRAVEL_ADS",
            "YOUTUBE_AUDIO"
          ],
          "description": "Optional. AdGroup Type of the AdGroup. This field is necessary for the following recommendation_types if ad_group_info is set: KEYWORD",
          "enumDescriptions": [
            "The type has not been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The default ad group type for Search campaigns.",
            "The default ad group type for Display campaigns.",
            "The ad group type for Shopping campaigns serving standard product ads.",
            "The default ad group type for Hotel campaigns.",
            "The type for ad groups in Smart Shopping campaigns.",
            "Short unskippable in-stream video ads.",
            "TrueView (skippable) in-stream video ads.",
            "TrueView in-display video ads.",
            "Unskippable in-stream video ads.",
            "Ad group type for Dynamic Search Ads ad groups.",
            "The type for ad groups in Shopping Comparison Listing campaigns.",
            "The ad group type for Promoted Hotel ad groups.",
            "Video responsive ad groups.",
            "Video efficient reach ad groups.",
            "Ad group type for Smart campaigns.",
            "Ad group type for Travel campaigns.",
            "Ad group type for YouTube Audio campaigns."
          ]
        },
        "keywords": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__KeywordInfo"
          },
          "description": "Optional. Current keywords. This field is optional for the following recommendation_types if ad_group_info is set: KEYWORD This field is required for the following recommendation_types: CAMPAIGN_BUDGET if AdvertisingChannelType is SEARCH"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_TextAdParameters": {
      "description": "Parameters to use when applying a text ad recommendation.",
      "properties": {
        "ad": {
          "description": "New ad to add to recommended ad group. All necessary fields need to be set in this message. This is a required field.",
          "$ref": "GoogleAdsGoogleadsV24Resources__Ad"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_TextAdParameters",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__Audience": {
      "id": "GoogleAdsGoogleadsV24Resources__Audience",
      "type": "object",
      "description": "Audience is an effective targeting option that lets you intersect different segment attributes, such as detailed demographics and affinities, to create audiences that represent sections of your target segments.",
      "properties": {
        "name": {
          "description": "Name of the audience. It should be unique across all audiences within the account. It must have a minimum length of 1 and maximum length of 255. Required when scope is not set or is set to CUSTOMER. Cannot be set or updated when scope is ASSET_GROUP.",
          "type": "string"
        },
        "dimensions": {
          "type": "array",
          "description": "Positive dimensions specifying the audience composition.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AudienceDimension"
          }
        },
        "exclusionDimension": {
          "description": "Negative dimension specifying the audience composition.",
          "$ref": "GoogleAdsGoogleadsV24Common__AudienceExclusionDimension"
        },
        "assetGroup": {
          "description": "Immutable. The asset group that this audience is scoped under. Must be set if and only if scope is ASSET_GROUP. Immutable after creation. If an audience with ASSET_GROUP scope is upgraded to CUSTOMER scope, this field will automatically be cleared.",
          "type": "string"
        },
        "status": {
          "type": "string",
          "description": "Output only. Status of this audience. Indicates whether the audience is enabled or removed.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Enabled status - audience is enabled and can be targeted.",
            "Removed status - audience is removed and cannot be used for targeting."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ]
        },
        "description": {
          "type": "string",
          "description": "Description of this audience."
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the audience. Audience names have the form: `customers/{customer_id}/audiences/{audience_id}`"
        },
        "id": {
          "description": "Output only. ID of the audience.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "scope": {
          "description": "Defines the scope this audience can be used in. By default, the scope is CUSTOMER. Audiences can be created with a scope of ASSET_GROUP for exclusive use by a single asset_group. Scope may change from ASSET_GROUP to CUSTOMER but not from CUSTOMER to ASSET_GROUP.",
          "enumDescriptions": [
            "The scope has not been specified.",
            "The received value is not known in this version.",
            "The audience is scoped at the customer level.",
            "The audience is scoped under a specific AssetGroup."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CUSTOMER",
            "ASSET_GROUP"
          ],
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_Recommendation_KeywordRecommendation": {
      "id": "GoogleAdsGoogleadsV24Resources_Recommendation_KeywordRecommendation",
      "type": "object",
      "description": "The keyword recommendation.",
      "properties": {
        "searchTerms": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Resources_RecommendationKeywordRecommendation_SearchTerm"
          },
          "description": "Output only. A list of search terms this keyword matches. The same search term may be repeated for multiple keywords.",
          "readOnly": true,
          "type": "array"
        },
        "recommendedCpcBidMicros": {
          "description": "Output only. The recommended CPC (cost-per-click) bid.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "keyword": {
          "description": "Output only. The recommended keyword.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Common__KeywordInfo"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__RemoveProductLinkInvitationResponse": {
      "id": "GoogleAdsGoogleadsV24Services__RemoveProductLinkInvitationResponse",
      "type": "object",
      "description": "Response message for product link invitation removeal.",
      "properties": {
        "resourceName": {
          "description": "Result for the remove request.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateAdGroupBidModifierResult": {
      "id": "GoogleAdsGoogleadsV24Services__MutateAdGroupBidModifierResult",
      "type": "object",
      "description": "The result for the criterion mutate.",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        },
        "adGroupBidModifier": {
          "description": "The mutated ad group bid modifier with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV24Resources__AdGroupBidModifier"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__KeywordThemeInfo": {
      "id": "GoogleAdsGoogleadsV24Common__KeywordThemeInfo",
      "type": "object",
      "description": "A Smart Campaign keyword theme.",
      "properties": {
        "keywordThemeConstant": {
          "type": "string",
          "description": "The resource name of a Smart Campaign keyword theme constant. `keywordThemeConstants/{keyword_theme_id}~{sub_keyword_theme_id}`"
        },
        "freeFormKeywordTheme": {
          "type": "string",
          "description": "Free-form text to be matched to a Smart Campaign keyword theme constant on a best-effort basis."
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__TravelActivityPerformanceView": {
      "description": "A travel activity performance view.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the travel activity performance view. Travel Activity performance view resource names have the form: `customers/{customer_id}/travelActivityPerformanceView`",
          "readOnly": true
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__TravelActivityPerformanceView",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__AppPaymentModelInfo": {
      "id": "GoogleAdsGoogleadsV24Common__AppPaymentModelInfo",
      "type": "object",
      "description": "An app payment model criterion.",
      "properties": {
        "type": {
          "description": "Type of the app payment model.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Represents paid-for apps."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PAID"
          ],
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__CreateAccountLinkRequest": {
      "description": "Request message for AccountLinkService.CreateAccountLink.",
      "properties": {
        "accountLink": {
          "description": "Required. The account link to be created.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AccountLink"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__CreateAccountLinkRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__UserListInfo": {
      "description": "A User List criterion. Represents a user list that is defined by the advertiser to be targeted.",
      "properties": {
        "userList": {
          "type": "string",
          "description": "The User List resource name."
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__UserListInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__KeywordPlanHistoricalMetrics": {
      "id": "GoogleAdsGoogleadsV24Common__KeywordPlanHistoricalMetrics",
      "type": "object",
      "description": "Historical metrics specific to the targeting options selected. Targeting options include geographies, network, and so on. Refer to https://support.google.com/google-ads/answer/3022575 for more details.",
      "properties": {
        "avgMonthlySearches": {
          "type": "string",
          "description": "Approximate number of monthly searches on this query, averaged for the past 12 months.",
          "format": "int64"
        },
        "monthlySearchVolumes": {
          "description": "Approximate number of searches on this query for the past twelve months.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__MonthlySearchVolume"
          },
          "type": "array"
        },
        "competition": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "LOW",
            "MEDIUM",
            "HIGH"
          ],
          "description": "The competition level for the query.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Low competition. The Competition Index range for this is [0, 33].",
            "Medium competition. The Competition Index range for this is [34, 66].",
            "High competition. The Competition Index range for this is [67, 100]."
          ]
        },
        "averageCpcMicros": {
          "type": "string",
          "description": "Average Cost Per Click in micros for the keyword.",
          "format": "int64"
        },
        "competitionIndex": {
          "type": "string",
          "description": "The competition index for the query in the range [0, 100]. Shows how competitive ad placement is for a keyword. The level of competition from 0-100 is determined by the number of ad slots filled divided by the total number of ad slots available. If not enough data is available, null is returned.",
          "format": "int64"
        },
        "highTopOfPageBidMicros": {
          "description": "Top of page bid high range (80th percentile) in micros for the keyword.",
          "format": "int64",
          "type": "string"
        },
        "lowTopOfPageBidMicros": {
          "type": "string",
          "description": "Top of page bid low range (20th percentile) in micros for the keyword.",
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__CreateProductLinkRequest": {
      "description": "Request message for ProductLinkService.CreateProductLink.",
      "properties": {
        "productLink": {
          "description": "Required. The product link to be created.",
          "$ref": "GoogleAdsGoogleadsV24Resources__ProductLink"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__CreateProductLinkRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__GenerateAdGroupThemesResponse": {
      "description": "Response message for KeywordPlanIdeaService.GenerateAdGroupThemes.",
      "properties": {
        "unusableAdGroups": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__UnusableAdGroup"
          },
          "description": "A list of provided AdGroups that could not be used as suggestions.",
          "type": "array"
        },
        "adGroupKeywordSuggestions": {
          "type": "array",
          "description": "A list of suggested AdGroup/keyword pairings.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__AdGroupKeywordSuggestion"
          }
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__GenerateAdGroupThemesResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__UserListLogicalRuleInfo": {
      "description": "A user list logical rule. A rule has a logical operator (and/or/not) and a list of user lists as operands.",
      "properties": {
        "ruleOperands": {
          "description": "The list of operands of the rule.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__LogicalUserListOperandInfo"
          },
          "type": "array"
        },
        "operator": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ALL",
            "ANY",
            "NONE"
          ],
          "description": "The logical operator of the rule.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "And - all of the operands.",
            "Or - at least one of the operands.",
            "Not - none of the operands."
          ]
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__UserListLogicalRuleInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__VideoLineupInfo": {
      "description": "A Video lineup criterion.",
      "properties": {
        "videoLineupId": {
          "type": "string",
          "description": "ID for a Video lineup. Contact your Google business development representative for details.",
          "format": "int64"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__VideoLineupInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateCustomerUserAccessRequest": {
      "description": "Mutate Request for CustomerUserAccessService.MutateCustomerUserAccess.",
      "properties": {
        "operation": {
          "description": "Required. The operation to perform on the customer",
          "$ref": "GoogleAdsGoogleadsV24Services__CustomerUserAccessOperation"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateCustomerUserAccessRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__AppendLeadConversationRequest": {
      "id": "GoogleAdsGoogleadsV24Services__AppendLeadConversationRequest",
      "type": "object",
      "description": "Request message for LocalServicesLeadService.AppendLeadConversation.",
      "properties": {
        "conversations": {
          "description": "Required. Conversations that are being appended.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__Conversation"
          },
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV24Errors__ErrorLocation": {
      "id": "GoogleAdsGoogleadsV24Errors__ErrorLocation",
      "type": "object",
      "description": "Describes the part of the request proto that caused the error.",
      "properties": {
        "fieldPathElements": {
          "type": "array",
          "description": "A field path that indicates which field was invalid in the request.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Errors_ErrorLocation_FieldPathElement"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__ConversionValueRuleSet": {
      "id": "GoogleAdsGoogleadsV24Resources__ConversionValueRuleSet",
      "type": "object",
      "description": "A conversion value rule set is a collection of conversion value rules that lets you adjust conversion values based on the dimensions specified in the `dimensions` field.",
      "properties": {
        "conversionValueRules": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Resource names of rules within the rule set."
        },
        "ownerCustomer": {
          "description": "Output only. The resource name of the conversion value rule set's owner customer. When the value rule set is inherited from a manager customer, owner_customer will be the resource name of the manager whereas the customer in the resource_name will be of the requesting serving customer. ** Read-only **",
          "readOnly": true,
          "type": "string"
        },
        "id": {
          "description": "Output only. The ID of the conversion value rule set.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "resourceName": {
          "description": "Immutable. The resource name of the conversion value rule set. Conversion value rule set resource names have the form: `customers/{customer_id}/conversionValueRuleSets/{conversion_value_rule_set_id}`",
          "type": "string"
        },
        "campaign": {
          "description": "The resource name of the campaign when the conversion value rule set is attached to a campaign.",
          "type": "string"
        },
        "status": {
          "description": "Output only. The status of the conversion value rule set. ** Read-only **",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Conversion Value Rule Set is enabled and can be applied.",
            "Conversion Value Rule Set is permanently deleted and can't be applied.",
            "Conversion Value Rule Set is paused and won't be applied. It can be enabled again."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED",
            "PAUSED"
          ],
          "type": "string"
        },
        "attachmentType": {
          "type": "string",
          "description": "Immutable. Defines the scope where the conversion value rule set is attached.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Attached to the customer.",
            "Attached to a campaign."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CUSTOMER",
            "CAMPAIGN"
          ]
        },
        "dimensions": {
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "Dimension for geo location.",
              "Dimension for device type.",
              "Dimension for audience.",
              "This dimension implies the rule will always apply.",
              "Dimension for itinerary."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "GEO_LOCATION",
              "DEVICE",
              "AUDIENCE",
              "NO_CONDITION",
              "ITINERARY"
            ]
          },
          "description": "Defines dimensions for Value Rule conditions. The condition types of value rules within this value rule set must be of these dimensions. The first entry in this list is the primary dimension of the included value rules. When using value rule primary dimension segmentation, conversion values will be segmented into the values adjusted by value rules and the original values, if some value rules apply.",
          "type": "array"
        },
        "conversionActionCategories": {
          "description": "Immutable. The conversion action categories of the conversion value rule set.",
          "items": {
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "DEFAULT",
              "PAGE_VIEW",
              "PURCHASE",
              "SIGNUP",
              "DOWNLOAD",
              "ADD_TO_CART",
              "BEGIN_CHECKOUT",
              "SUBSCRIBE_PAID",
              "PHONE_CALL_LEAD",
              "IMPORTED_LEAD",
              "SUBMIT_LEAD_FORM",
              "BOOK_APPOINTMENT",
              "REQUEST_QUOTE",
              "GET_DIRECTIONS",
              "OUTBOUND_CLICK",
              "CONTACT",
              "ENGAGEMENT",
              "STORE_VISIT",
              "STORE_SALE",
              "QUALIFIED_LEAD",
              "CONVERTED_LEAD",
              "YOUTUBE_FOLLOW_ON_VIEWS"
            ],
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "Default category.",
              "User visiting a page.",
              "Purchase, sales, or \"order placed\" event.",
              "Signup user action.",
              "Software download action (as for an app).",
              "The addition of items to a shopping cart or bag on an advertiser site.",
              "When someone enters the checkout flow on an advertiser site.",
              "The start of a paid subscription for a product or service.",
              "A call to indicate interest in an advertiser's offering.",
              "A lead conversion imported from an external source into Google Ads.",
              "A submission of a form on an advertiser site indicating business interest.",
              "A booking of an appointment with an advertiser's business.",
              "A quote or price estimate request.",
              "A search for an advertiser's business location with intention to visit.",
              "A click to an advertiser's partner's site.",
              "A call, SMS, email, chat or other type of contact to an advertiser.",
              "A website engagement event such as long site time or a Google Analytics (GA) Smart Goal. Intended to be used for GA, Firebase, GA Gold goal imports.",
              "A visit to a physical store location.",
              "A sale occurring in a physical store.",
              "A lead conversion imported from an external source into Google Ads, that has been further qualified by the advertiser (marketing/sales team). In the lead-to-sale journey, advertisers get leads, then act on them by reaching out to the consumer. If the consumer is interested and may end up buying their product, the advertiser marks such leads as \"qualified leads\".",
              "A lead conversion imported from an external source into Google Ads, that has further completed a chosen stage as defined by the lead gen advertiser.",
              "User watches an ad from a channel and later watches either the same video or a video from the same channel as the ad."
            ],
            "type": "string"
          },
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__ListCampaignDraftAsyncErrorsResponse": {
      "id": "GoogleAdsGoogleadsV24Services__ListCampaignDraftAsyncErrorsResponse",
      "type": "object",
      "description": "Response message for CampaignDraftService.ListCampaignDraftAsyncErrors.",
      "properties": {
        "errors": {
          "type": "array",
          "items": {
            "$ref": "GoogleRpc__Status"
          },
          "description": "Details of the errors when performing the asynchronous operation."
        },
        "nextPageToken": {
          "type": "string",
          "description": "Pagination token used to retrieve the next page of results. Pass the content of this string as the `page_token` attribute of the next request. `next_page_token` is not returned for the last page."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__CreateDataLinkResponse": {
      "description": "Response message for DataLinkService.CreateDataLink.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations. Resource name of the data link."
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__CreateDataLinkResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__HotelDateSelectionTypeInfo": {
      "description": "Criterion for hotel date selection (default dates versus user selected).",
      "properties": {
        "type": {
          "description": "Type of the hotel date selection",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Dates selected by default.",
            "Dates selected by the user."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DEFAULT_SELECTION",
            "USER_SELECTED"
          ],
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__HotelDateSelectionTypeInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Errors__QuotaErrorDetails": {
      "id": "GoogleAdsGoogleadsV24Errors__QuotaErrorDetails",
      "type": "object",
      "description": "Additional quota error details when there is QuotaError.",
      "properties": {
        "rateScope": {
          "description": "The rate scope of the quota limit.",
          "enumDescriptions": [
            "Unspecified enum",
            "Used for return value only. Represents value unknown in this version.",
            "Per customer account quota",
            "Per project or DevToken quota"
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ACCOUNT",
            "DEVELOPER"
          ],
          "type": "string"
        },
        "retryDelay": {
          "description": "Backoff period that customers should wait before sending next request.",
          "format": "google-duration",
          "type": "string"
        },
        "rateName": {
          "description": "The high level description of the quota bucket. Examples are \"Get requests for standard access\" or \"Requests per account\".",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateCampaignResult": {
      "id": "GoogleAdsGoogleadsV24Services__MutateCampaignResult",
      "type": "object",
      "description": "The result for the campaign mutate.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        },
        "campaign": {
          "description": "The mutated campaign with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV24Resources__Campaign"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateAdGroupsRequest": {
      "id": "GoogleAdsGoogleadsV24Services__MutateAdGroupsRequest",
      "type": "object",
      "description": "Request message for AdGroupService.MutateAdGroups.",
      "properties": {
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "operations": {
          "type": "array",
          "description": "Required. The list of operations to perform on individual ad groups.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__AdGroupOperation"
          }
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "responseContentType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__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.",
      "properties": {},
      "id": "GoogleAdsGoogleadsV24Common__EnhancedCpc",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateOperation": {
      "description": "A single operation (create, update, remove) on a resource, or execute an action.",
      "properties": {
        "conversionCustomVariableOperation": {
          "description": "A conversion custom variable mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__ConversionCustomVariableOperation"
        },
        "assetGroupAssetOperation": {
          "description": "An asset group asset mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__AssetGroupAssetOperation"
        },
        "assetGroupListingGroupFilterOperation": {
          "description": "An asset group listing group filter mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__AssetGroupListingGroupFilterOperation"
        },
        "customerNegativeCriterionOperation": {
          "description": "A customer negative criterion mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__CustomerNegativeCriterionOperation"
        },
        "adGroupCriterionOperation": {
          "description": "An ad group criterion mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__AdGroupCriterionOperation"
        },
        "conversionValueRuleOperation": {
          "description": "A conversion value rule mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__ConversionValueRuleOperation"
        },
        "customerConversionGoalOperation": {
          "description": "A customer conversion goal mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__CustomerConversionGoalOperation"
        },
        "audienceOperation": {
          "description": "An audience mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__AudienceOperation"
        },
        "customerCustomizerOperation": {
          "description": "A customer customizer mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__CustomerCustomizerOperation"
        },
        "adGroupCustomizerOperation": {
          "description": "An ad group customizer mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__AdGroupCustomizerOperation"
        },
        "bookCampaignsOperation": {
          "description": "Request message for the BookCampaigns action.",
          "$ref": "GoogleAdsGoogleadsV24Actions__BookCampaignsOperation"
        },
        "quoteCampaignsOperation": {
          "description": "Request message for the QuoteCampaigns action. Requests using this operation must set validate_only to true.",
          "$ref": "GoogleAdsGoogleadsV24Actions__QuoteCampaignsOperation"
        },
        "campaignLabelOperation": {
          "description": "A campaign label mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__CampaignLabelOperation"
        },
        "experimentOperation": {
          "description": "An experiment mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__ExperimentOperation"
        },
        "campaignGroupOperation": {
          "description": "A campaign group mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__CampaignGroupOperation"
        },
        "biddingStrategyOperation": {
          "description": "A bidding strategy mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__BiddingStrategyOperation"
        },
        "conversionActionOperation": {
          "description": "A conversion action mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__ConversionActionOperation"
        },
        "assetOperation": {
          "description": "An asset mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__AssetOperation"
        },
        "campaignOperation": {
          "description": "A campaign mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__CampaignOperation"
        },
        "campaignSharedSetOperation": {
          "description": "A campaign shared set mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__CampaignSharedSetOperation"
        },
        "adGroupLabelOperation": {
          "description": "An ad group label mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__AdGroupLabelOperation"
        },
        "campaignBudgetOperation": {
          "description": "A campaign budget mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__CampaignBudgetOperation"
        },
        "assetSetAssetOperation": {
          "description": "An asset set asset mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__AssetSetAssetOperation"
        },
        "labelOperation": {
          "description": "A label mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__LabelOperation"
        },
        "adGroupAssetOperation": {
          "description": "An ad group asset mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__AdGroupAssetOperation"
        },
        "adGroupCriterionLabelOperation": {
          "description": "An ad group criterion label mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__AdGroupCriterionLabelOperation"
        },
        "keywordPlanCampaignKeywordOperation": {
          "description": "A keyword plan campaign keyword operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__KeywordPlanCampaignKeywordOperation"
        },
        "keywordPlanOperation": {
          "description": "A keyword plan operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__KeywordPlanOperation"
        },
        "assetGroupOperation": {
          "description": "An asset group mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__AssetGroupOperation"
        },
        "campaignConversionGoalOperation": {
          "description": "A campaign conversion goal mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__CampaignConversionGoalOperation"
        },
        "adParameterOperation": {
          "description": "An ad parameter mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__AdParameterOperation"
        },
        "biddingSeasonalityAdjustmentOperation": {
          "description": "A bidding seasonality adjustment mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__BiddingSeasonalityAdjustmentOperation"
        },
        "adGroupCriterionCustomizerOperation": {
          "description": "An ad group criterion customizer mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__AdGroupCriterionCustomizerOperation"
        },
        "customerOperation": {
          "description": "A customer mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__CustomerOperation"
        },
        "conversionValueRuleSetOperation": {
          "description": "A conversion value rule set mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__ConversionValueRuleSetOperation"
        },
        "keywordPlanCampaignOperation": {
          "description": "A keyword plan campaign operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__KeywordPlanCampaignOperation"
        },
        "sharedSetOperation": {
          "description": "A shared set mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__SharedSetOperation"
        },
        "adGroupAdOperation": {
          "description": "An ad group ad mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__AdGroupAdOperation"
        },
        "campaignCriterionOperation": {
          "description": "A campaign criterion mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__CampaignCriterionOperation"
        },
        "conversionGoalCampaignConfigOperation": {
          "description": "A conversion goal campaign config mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__ConversionGoalCampaignConfigOperation"
        },
        "adGroupOperation": {
          "description": "An ad group mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__AdGroupOperation"
        },
        "keywordPlanAdGroupKeywordOperation": {
          "description": "A keyword plan ad group keyword operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__KeywordPlanAdGroupKeywordOperation"
        },
        "remarketingActionOperation": {
          "description": "A remarketing action mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__RemarketingActionOperation"
        },
        "adGroupAdLabelOperation": {
          "description": "An ad group ad label mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__AdGroupAdLabelOperation"
        },
        "campaignBidModifierOperation": {
          "description": "A campaign bid modifier mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__CampaignBidModifierOperation"
        },
        "campaignAssetSetOperation": {
          "description": "A campaign asset mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__CampaignAssetSetOperation"
        },
        "customerAssetOperation": {
          "description": "A customer asset mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__CustomerAssetOperation"
        },
        "assetGroupSignalOperation": {
          "description": "An asset group signal mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__AssetGroupSignalOperation"
        },
        "biddingDataExclusionOperation": {
          "description": "A bidding data exclusion mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__BiddingDataExclusionOperation"
        },
        "keywordPlanAdGroupOperation": {
          "description": "A keyword plan ad group operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__KeywordPlanAdGroupOperation"
        },
        "campaignDraftOperation": {
          "description": "A campaign draft mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__CampaignDraftOperation"
        },
        "customizerAttributeOperation": {
          "description": "A customizer attribute mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__CustomizerAttributeOperation"
        },
        "customConversionGoalOperation": {
          "description": "A custom conversion goal mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__CustomConversionGoalOperation"
        },
        "assetSetOperation": {
          "description": "An asset set mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__AssetSetOperation"
        },
        "adOperation": {
          "description": "An ad mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__AdOperation"
        },
        "sharedCriterionOperation": {
          "description": "A shared criterion mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__SharedCriterionOperation"
        },
        "customerLabelOperation": {
          "description": "A customer label mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__CustomerLabelOperation"
        },
        "campaignCustomizerOperation": {
          "description": "A campaign customizer mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__CampaignCustomizerOperation"
        },
        "userListOperation": {
          "description": "A user list mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__UserListOperation"
        },
        "recommendationSubscriptionOperation": {
          "description": "A recommendation subscription mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__RecommendationSubscriptionOperation"
        },
        "campaignAssetOperation": {
          "description": "A campaign asset mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__CampaignAssetOperation"
        },
        "experimentArmOperation": {
          "description": "An experiment arm mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__ExperimentArmOperation"
        },
        "smartCampaignSettingOperation": {
          "description": "A Smart campaign setting mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__SmartCampaignSettingOperation"
        },
        "adGroupBidModifierOperation": {
          "description": "An ad group bid modifier mutate operation.",
          "$ref": "GoogleAdsGoogleadsV24Services__AdGroupBidModifierOperation"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services_SuggestGeoTargetConstantsRequest_LocationNames": {
      "id": "GoogleAdsGoogleadsV24Services_SuggestGeoTargetConstantsRequest_LocationNames",
      "type": "object",
      "description": "A list of location names.",
      "properties": {
        "names": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of location names."
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_Recommendation_UseBroadMatchKeywordRecommendation": {
      "description": "The use broad match keyword recommendation.",
      "properties": {
        "campaignKeywordsCount": {
          "description": "Output only. Total number of keywords in the campaign.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "campaignUsesSharedBudget": {
          "description": "Output only. Whether the associated campaign uses a shared budget.",
          "readOnly": true,
          "type": "boolean"
        },
        "keyword": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__KeywordInfo"
          },
          "description": "Output only. Sample of keywords to be expanded to Broad Match.",
          "readOnly": true
        },
        "requiredCampaignBudgetAmountMicros": {
          "description": "Output only. The budget recommended to avoid becoming budget constrained after applying the recommendation.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "suggestedKeywordsCount": {
          "type": "string",
          "description": "Output only. Total number of keywords to be expanded to Broad Match in the campaign.",
          "readOnly": true,
          "format": "int64"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_Recommendation_UseBroadMatchKeywordRecommendation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_ResponsiveSearchAdParameters": {
      "description": "Parameters to use when applying a responsive search ad recommendation.",
      "properties": {
        "ad": {
          "description": "Required. New ad to add to recommended ad group.",
          "$ref": "GoogleAdsGoogleadsV24Resources__Ad"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_ResponsiveSearchAdParameters",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__AppAdInfo": {
      "description": "An app ad.",
      "properties": {
        "html5MediaBundles": {
          "type": "array",
          "description": "List of media bundle assets that may be used with the ad.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdMediaBundleAsset"
          }
        },
        "headlines": {
          "type": "array",
          "description": "List of text assets for headlines. When the ad serves the headlines will be selected from this list.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdTextAsset"
          }
        },
        "images": {
          "description": "List of image assets that may be displayed with the ad.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdImageAsset"
          },
          "type": "array"
        },
        "youtubeVideos": {
          "type": "array",
          "description": "List of YouTube video assets that may be displayed with the ad.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdVideoAsset"
          }
        },
        "appDeepLink": {
          "description": "An app deep link asset that may be used with the ad.",
          "$ref": "GoogleAdsGoogleadsV24Common__AdAppDeepLinkAsset"
        },
        "mandatoryAdText": {
          "description": "Mandatory ad text.",
          "$ref": "GoogleAdsGoogleadsV24Common__AdTextAsset"
        },
        "descriptions": {
          "type": "array",
          "description": "List of text assets for descriptions. When the ad serves the descriptions will be selected from this list.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdTextAsset"
          }
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__AppAdInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateConversionValueRuleSetsResponse": {
      "id": "GoogleAdsGoogleadsV24Services__MutateConversionValueRuleSetsResponse",
      "type": "object",
      "description": "Response message for ConversionValueRuleSetService.MutateConversionValueRuleSets.",
      "properties": {
        "results": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateConversionValueRuleSetResult"
          },
          "description": "All results for the mutate.",
          "type": "array"
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateCampaignConversionGoalResult": {
      "description": "The result for the campaign conversion goal mutate.",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateCampaignConversionGoalResult",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__BasicUserListInfo": {
      "description": "User list targeting as a collection of conversions or remarketing actions.",
      "properties": {
        "actions": {
          "description": "Actions associated with this user list.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__UserListActionInfo"
          },
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__BasicUserListInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__InsightsAudience": {
      "description": "A set of users, defined by various characteristics, for which insights can be requested in AudienceInsightsService.",
      "properties": {
        "incomeRanges": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__IncomeRangeInfo"
          },
          "description": "Household income percentile ranges for the audience. If absent, the audience does not restrict by household income range."
        },
        "userList": {
          "description": "User list to be targeted by the audience.",
          "$ref": "GoogleAdsGoogleadsV24Common__UserListInfo"
        },
        "subCountryLocations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__LocationInfo"
          },
          "description": "Sub-country geographic location attributes. If present, each of these must be contained in one of the countries in this audience. If absent, the audience is geographically to the country_locations and no further.",
          "type": "array"
        },
        "lineups": {
          "description": "Lineups representing the YouTube content viewed by the audience.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AudienceInsightsLineup"
          },
          "type": "array"
        },
        "countryLocations": {
          "description": "Required. The countries for the audience.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__LocationInfo"
          },
          "type": "array"
        },
        "ageRanges": {
          "type": "array",
          "description": "Age ranges for the audience. If absent, the audience represents all people over 18 that match the other attributes.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AgeRangeInfo"
          }
        },
        "gender": {
          "description": "Gender for the audience. If absent, the audience does not restrict by gender.",
          "$ref": "GoogleAdsGoogleadsV24Common__GenderInfo"
        },
        "parentalStatus": {
          "description": "Parental status for the audience. If absent, the audience does not restrict by parental status.",
          "$ref": "GoogleAdsGoogleadsV24Common__ParentalStatusInfo"
        },
        "topicAudienceCombinations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__InsightsAudienceAttributeGroup"
          },
          "description": "A list of audience attribute groups consisting of one or more Knowledge Graph entities, Product & Service Categories and user interests that describe an audience. The groups have a logical AND-of-ORs structure: 1. Attributes within each InsightsAudienceAttributeGroup are combined with OR. 2. The groups themselves are combined together with AND. For example, an audience (Interest A OR Interest B) AND (Entity C) is represented using two groups. The first group contains the two interests and the second group contains the entity.",
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__InsightsAudience",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateBiddingStrategiesResponse": {
      "description": "Response message for bidding strategy mutate.",
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateBiddingStrategyResult"
          },
          "description": "All results for the mutate."
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateBiddingStrategiesResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateGoalsRequest": {
      "id": "GoogleAdsGoogleadsV24Services__MutateGoalsRequest",
      "type": "object",
      "description": "Request message for GoalService.MutateGoals.",
      "properties": {
        "operations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__GoalOperation"
          },
          "description": "Required. The list of operations to perform on the goals.",
          "type": "array"
        },
        "validateOnly": {
          "description": "Optional. If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "partialFailure": {
          "description": "Optional. If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__BreakdownMetrics": {
      "description": "Metrics for a given breakdown.",
      "properties": {
        "breakdownKey": {
          "description": "Dimensions by which the breakdown metrics are grouped by.",
          "$ref": "GoogleAdsGoogleadsV24Services__BreakdownKey"
        },
        "customerMetrics": {
          "description": "Metrics belonging to the customer.",
          "$ref": "GoogleAdsGoogleadsV24Services__Metrics"
        },
        "averageBenchmarksMetrics": {
          "description": "Metrics for the selected benchmarks source.",
          "$ref": "GoogleAdsGoogleadsV24Services__Metrics"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__BreakdownMetrics",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateBiddingStrategiesRequest": {
      "id": "GoogleAdsGoogleadsV24Services__MutateBiddingStrategiesRequest",
      "type": "object",
      "description": "Request message for BiddingStrategyService.MutateBiddingStrategies.",
      "properties": {
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__BiddingStrategyOperation"
          },
          "description": "Required. The list of operations to perform on individual bidding strategies."
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "responseContentType": {
          "type": "string",
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_Recommendation_UpgradeLocalCampaignToPerformanceMaxRecommendation": {
      "description": "The Upgrade Local campaign to Performance Max campaign recommendation.",
      "properties": {},
      "id": "GoogleAdsGoogleadsV24Resources_Recommendation_UpgradeLocalCampaignToPerformanceMaxRecommendation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateSmartCampaignSettingsResponse": {
      "id": "GoogleAdsGoogleadsV24Services__MutateSmartCampaignSettingsResponse",
      "type": "object",
      "description": "Response message for campaign mutate.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "type": "array",
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateSmartCampaignSettingResult"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__CustomerAcquisitionGoalSettings": {
      "id": "GoogleAdsGoogleadsV24Resources__CustomerAcquisitionGoalSettings",
      "type": "object",
      "description": "The customer acquisition goal settings for the campaign.",
      "properties": {
        "optimizationMode": {
          "description": "Output only. Customer acquisition optimization mode of this campaign.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The mode is used when campaign is optimizing equally for existing and new customers, which is the default value.",
            "The mode is used when campaign is bidding higher for new customers than existing customer.",
            "The mode is used when campaign is only optimizing for new customers."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "TARGET_ALL_EQUALLY",
            "BID_HIGHER_FOR_NEW_CUSTOMER",
            "TARGET_NEW_CUSTOMER"
          ],
          "type": "string"
        },
        "valueSettings": {
          "description": "Output only. Campaign specific values for the customer acquisition goal.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Common__LifecycleGoalValueSettings"
        }
      }
    },
    "GoogleRpc__Status": {
      "description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).",
      "properties": {
        "code": {
          "description": "The status code, which should be an enum value of google.rpc.Code.",
          "format": "int32",
          "type": "integer"
        },
        "message": {
          "type": "string",
          "description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client."
        },
        "details": {
          "items": {
            "type": "object",
            "additionalProperties": {
              "type": "any",
              "description": "Properties of the object. Contains field @type with type URL."
            }
          },
          "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.",
          "type": "array"
        }
      },
      "id": "GoogleRpc__Status",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__AndroidPrivacySharedKeyGoogleNetworkType": {
      "id": "GoogleAdsGoogleadsV24Resources__AndroidPrivacySharedKeyGoogleNetworkType",
      "type": "object",
      "description": "An Android privacy shared key view for Google network type key.",
      "properties": {
        "androidPrivacyInteractionType": {
          "description": "Output only. The interaction type enum used in the share key encoding.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "The physical click interaction type.",
            "The 10 seconds engaged view interaction type.",
            "The view (ad impression) interaction type."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CLICK",
            "ENGAGED_VIEW",
            "VIEW"
          ],
          "type": "string"
        },
        "sharedNetworkTypeKey": {
          "type": "string",
          "description": "Output only. 128 bit hex string of the encoded shared network type key, including a '0x' prefix. This key can be used to do a bitwise OR operator with the aggregate conversion key to create a full aggregation key to retrieve the Aggregate API Report in Android Privacy Sandbox.",
          "readOnly": true
        },
        "campaignId": {
          "description": "Output only. The campaign ID used in the share key encoding.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "androidPrivacyInteractionDate": {
          "type": "string",
          "description": "Output only. The interaction date used in the shared key encoding in the format of \"YYYY-MM-DD\" in UTC timezone.",
          "readOnly": true
        },
        "androidPrivacyNetworkType": {
          "type": "string",
          "description": "Output only. The network type enum used in the share key encoding.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Search Network.",
            "Display Network.",
            "YouTube Network."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SEARCH",
            "DISPLAY",
            "YOUTUBE"
          ]
        },
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the Android privacy shared key. Android privacy shared key resource names have the form: `customers/{customer_id}/androidPrivacySharedKeyGoogleNetworkTypes/{campaign_id}~{android_privacy_interaction_type}~{android_privacy_network_type}~{android_privacy_interaction_date(yyyy-mm-dd)}`",
          "readOnly": true
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__ExternalAttributionData": {
      "description": "Contains additional information about externally attributed conversions.",
      "properties": {
        "externalAttributionCredit": {
          "description": "Represents the fraction of the conversion that is attributed to the Google Ads click.",
          "format": "double",
          "type": "number"
        },
        "externalAttributionModel": {
          "description": "Specifies the attribution model name.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__ExternalAttributionData",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__WhatsappBusinessMessageInfo": {
      "id": "GoogleAdsGoogleadsV24Common__WhatsappBusinessMessageInfo",
      "type": "object",
      "description": "Whatsapp information to use for messaging.",
      "properties": {
        "phoneNumber": {
          "type": "string",
          "description": "Required. Whatsapp phone number of the business. Examples: '1234567890', '(123)456-7890'."
        },
        "countryCode": {
          "type": "string",
          "description": "Required. Two-letter country code of the phone number. Examples: 'US', 'us'."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateAccountLinkRequest": {
      "id": "GoogleAdsGoogleadsV24Services__MutateAccountLinkRequest",
      "type": "object",
      "description": "Request message for AccountLinkService.MutateAccountLink.",
      "properties": {
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "operation": {
          "description": "Required. The operation to perform on the link.",
          "$ref": "GoogleAdsGoogleadsV24Services__AccountLinkOperation"
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__HotelStateInfo": {
      "description": "State the hotel is located in.",
      "properties": {
        "stateCriterion": {
          "type": "string",
          "description": "The Geo Target Constant resource name."
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__HotelStateInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Actions_QuoteCampaignsOperation_Campaign": {
      "description": "A campaign for which the quote is requested.",
      "properties": {
        "campaign": {
          "type": "string",
          "description": "Campaign for which the quote is requested. Format: customers/{customer_id}/campaigns/{campaign_id}"
        }
      },
      "id": "GoogleAdsGoogleadsV24Actions_QuoteCampaignsOperation_Campaign",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__DeviceInfo": {
      "id": "GoogleAdsGoogleadsV24Common__DeviceInfo",
      "type": "object",
      "description": "A device criterion.",
      "properties": {
        "type": {
          "type": "string",
          "description": "Type of the 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"
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__BrandListInfo": {
      "description": "A Brand List Criterion is used to specify a list of brands. The list is represented as a SharedSet id type BRAND_HINT. A criterion of this type can be either targeted or excluded.",
      "properties": {
        "sharedSet": {
          "type": "string",
          "description": "Shared set resource name of the brand list."
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__BrandListInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__LogicalUserListInfo": {
      "id": "GoogleAdsGoogleadsV24Common__LogicalUserListInfo",
      "type": "object",
      "description": "Represents a user list that is a custom combination of user lists.",
      "properties": {
        "rules": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__UserListLogicalRuleInfo"
          },
          "description": "Logical list rules that define this user list. The rules are defined as a logical operator (ALL/ANY/NONE) and a list of user lists. All the rules are ANDed when they are evaluated. Required for creating a logical user list."
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__ChangeStatus": {
      "id": "GoogleAdsGoogleadsV24Resources__ChangeStatus",
      "type": "object",
      "description": "Describes the status of returned resource. ChangeStatus could have up to 3 minutes delay to reflect a new change.",
      "properties": {
        "customerAsset": {
          "type": "string",
          "description": "Output only. The CustomerAsset affected by this change.",
          "readOnly": true
        },
        "assetGroup": {
          "type": "string",
          "description": "Output only. The AssetGroup affected by this change.",
          "readOnly": true
        },
        "lastChangeDateTime": {
          "type": "string",
          "description": "Output only. Time at which the most recent change has occurred on this resource.",
          "readOnly": true
        },
        "adGroupAd": {
          "description": "Output only. The AdGroupAd affected by this change.",
          "readOnly": true,
          "type": "string"
        },
        "adGroupAsset": {
          "description": "Output only. The AdGroupAsset affected by this change.",
          "readOnly": true,
          "type": "string"
        },
        "campaignCriterion": {
          "type": "string",
          "description": "Output only. The CampaignCriterion affected by this change.",
          "readOnly": true
        },
        "resourceStatus": {
          "description": "Output only. Represents the status of the changed resource.",
          "readOnly": true,
          "enumDescriptions": [
            "No value has been specified.",
            "Used for return value only. Represents an unclassified resource unknown in this version.",
            "The resource was created.",
            "The resource was modified.",
            "The resource was removed."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADDED",
            "CHANGED",
            "REMOVED"
          ],
          "type": "string"
        },
        "campaignAsset": {
          "description": "Output only. The CampaignAsset affected by this change.",
          "readOnly": true,
          "type": "string"
        },
        "campaignAssetSet": {
          "type": "string",
          "description": "Output only. The CampaignAssetSet affected by this change.",
          "readOnly": true
        },
        "asset": {
          "description": "Output only. The Asset affected by this change.",
          "readOnly": true,
          "type": "string"
        },
        "campaignBudget": {
          "description": "Output only. The CampaignBudget affected by this change.",
          "readOnly": true,
          "type": "string"
        },
        "adGroup": {
          "description": "Output only. The AdGroup affected by this change.",
          "readOnly": true,
          "type": "string"
        },
        "sharedSet": {
          "type": "string",
          "description": "Output only. The SharedSet affected by this change.",
          "readOnly": true
        },
        "combinedAudience": {
          "description": "Output only. The CombinedAudience affected by this change.",
          "readOnly": true,
          "type": "string"
        },
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the change status. Change status resource names have the form: `customers/{customer_id}/changeStatus/{change_status_id}`",
          "readOnly": true
        },
        "campaignSharedSet": {
          "description": "Output only. The CampaignSharedSet affected by this change.",
          "readOnly": true,
          "type": "string"
        },
        "campaign": {
          "description": "Output only. The Campaign affected by this change.",
          "readOnly": true,
          "type": "string"
        },
        "resourceType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AD_GROUP",
            "AD_GROUP_AD",
            "AD_GROUP_CRITERION",
            "CAMPAIGN",
            "CAMPAIGN_CRITERION",
            "CAMPAIGN_BUDGET",
            "FEED",
            "FEED_ITEM",
            "AD_GROUP_FEED",
            "CAMPAIGN_FEED",
            "AD_GROUP_BID_MODIFIER",
            "SHARED_SET",
            "CAMPAIGN_SHARED_SET",
            "ASSET",
            "CUSTOMER_ASSET",
            "CAMPAIGN_ASSET",
            "AD_GROUP_ASSET",
            "COMBINED_AUDIENCE",
            "ASSET_GROUP",
            "ASSET_SET",
            "CAMPAIGN_ASSET_SET"
          ],
          "description": "Output only. Represents the type of the changed resource. This dictates what fields will be set. For example, for AD_GROUP, campaign and ad_group fields will be set.",
          "readOnly": true,
          "enumDescriptions": [
            "No value has been specified.",
            "Used for return value only. Represents an unclassified resource unknown in this version.",
            "An AdGroup resource change.",
            "An AdGroupAd resource change.",
            "An AdGroupCriterion resource change.",
            "A Campaign resource change.",
            "A CampaignCriterion resource change.",
            "A CampaignBudget resource change.",
            "A Feed resource change.",
            "A FeedItem resource change.",
            "An AdGroupFeed resource change.",
            "A CampaignFeed resource change.",
            "An AdGroupBidModifier resource change.",
            "A SharedSet resource change.",
            "A CampaignSharedSet resource change.",
            "An Asset resource change.",
            "A CustomerAsset resource change.",
            "A CampaignAsset resource change.",
            "An AdGroupAsset resource change.",
            "A CombinedAudience resource change.",
            "An AssetGroup resource change.",
            "An AssetSet resource change.",
            "A CampaignAssetSet resource change."
          ]
        },
        "adGroupBidModifier": {
          "description": "Output only. The AdGroupBidModifier affected by this change.",
          "readOnly": true,
          "type": "string"
        },
        "adGroupCriterion": {
          "type": "string",
          "description": "Output only. The AdGroupCriterion affected by this change.",
          "readOnly": true
        },
        "assetSet": {
          "description": "Output only. The AssetSet affected by this change.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__ApplyRecommendationResult": {
      "id": "GoogleAdsGoogleadsV24Services__ApplyRecommendationResult",
      "type": "object",
      "description": "The result of applying a recommendation.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful applies."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__GenerateTargetingSuggestionMetricsRequest": {
      "id": "GoogleAdsGoogleadsV24Services__GenerateTargetingSuggestionMetricsRequest",
      "type": "object",
      "description": "Request message for AudienceInsightsService.GenerateTargetingSuggestionMetrics.",
      "properties": {
        "audiences": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__InsightsAudience"
          },
          "description": "Required. Audiences to request metrics for.",
          "type": "array"
        },
        "insightsApplicationInfo": {
          "description": "Optional. Additional information on the application issuing the request.",
          "$ref": "GoogleAdsGoogleadsV24Common__AdditionalApplicationInfo"
        },
        "customerInsightsGroup": {
          "description": "Optional. The name of the customer being planned for. This is a user-defined value.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__TargetImpressionShare": {
      "description": "An automated bidding strategy that sets bids so that a certain percentage of search ads are shown at the top of the first page (or other targeted location).",
      "properties": {
        "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.",
          "format": "int64",
          "type": "string"
        },
        "location": {
          "type": "string",
          "description": "The targeted location on the search results page.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Any location on the web page.",
            "Top box of ads.",
            "Top slot in the top box of ads."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ANYWHERE_ON_PAGE",
            "TOP_OF_PAGE",
            "ABSOLUTE_TOP_OF_PAGE"
          ]
        },
        "locationFractionMicros": {
          "type": "string",
          "description": "The chosen fraction of ads to be shown in the targeted location in micros. For example, 1% equals 10,000.",
          "format": "int64"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__TargetImpressionShare",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__ChannelAggregateAssetView": {
      "description": "A channel-level aggregate asset view that shows where the asset is linked, performamce of the asset and stats.",
      "properties": {
        "asset": {
          "description": "Output only. The ID of the asset.",
          "readOnly": true,
          "type": "string"
        },
        "assetSource": {
          "type": "string",
          "description": "Output only. Source of the asset link.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset or asset link is provided by advertiser.",
            "The asset or asset link is generated by Google."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADVERTISER",
            "AUTOMATICALLY_CREATED"
          ]
        },
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the channel aggregate asset view. Channel aggregate asset view resource names have the form: `customers/{customer_id}/channelAggregateAssetViews/{ChannelAssetV2.advertising_channel_type}~{ChannelAssetV2.asset_id}~{ChannelAssetV2.asset_source}~{ChannelAssetV2.field_type}\"`",
          "readOnly": true
        },
        "advertisingChannelType": {
          "type": "string",
          "description": "Output only. Channel in which the asset served.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Search Network. Includes display bundled, and Search+ campaigns.",
            "Google Display Network only.",
            "Shopping campaigns serve on the shopping property and on google.com search results.",
            "Hotel Ads campaigns.",
            "Video campaigns.",
            "App Campaigns, and App Campaigns for Engagement, that run across multiple channels.",
            "Local ads campaigns.",
            "Smart campaigns.",
            "Performance Max campaigns.",
            "Local services campaigns.",
            "Travel campaigns.",
            "Demand Gen campaigns."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SEARCH",
            "DISPLAY",
            "SHOPPING",
            "HOTEL",
            "VIDEO",
            "MULTI_CHANNEL",
            "LOCAL",
            "SMART",
            "PERFORMANCE_MAX",
            "LOCAL_SERVICES",
            "TRAVEL",
            "DEMAND_GEN"
          ]
        },
        "fieldType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE",
            "DESCRIPTION",
            "MANDATORY_AD_TEXT",
            "MARKETING_IMAGE",
            "MEDIA_BUNDLE",
            "YOUTUBE_VIDEO",
            "BOOK_ON_GOOGLE",
            "LEAD_FORM",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "LONG_HEADLINE",
            "BUSINESS_NAME",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "VIDEO",
            "CALL_TO_ACTION_SELECTION",
            "AD_IMAGE",
            "BUSINESS_LOGO",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "TALL_PORTRAIT_MARKETING_IMAGE",
            "RELATED_YOUTUBE_VIDEOS",
            "LANDING_PAGE_PREVIEW",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION"
          ],
          "description": "Output only. FieldType of the asset.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is linked for use as a headline.",
            "The asset is linked for use as a description.",
            "The asset is linked for use as mandatory ad text.",
            "The asset is linked for use as a marketing image.",
            "The asset is linked for use as a media bundle.",
            "The asset is linked for use as a YouTube video.",
            "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
            "The asset is linked for use as a Lead Form extension.",
            "The asset is linked for use as a Promotion extension.",
            "The asset is linked for use as a Callout extension.",
            "The asset is linked for use as a Structured Snippet extension.",
            "The asset is linked for use as a Sitelink.",
            "The asset is linked for use as a Mobile App extension.",
            "The asset is linked for use as a Hotel Callout extension.",
            "The asset is linked for use as a Call extension.",
            "The asset is linked for use as a Price extension.",
            "The asset is linked for use as a long headline.",
            "The asset is linked for use as a business name.",
            "The asset is linked for use as a square marketing image.",
            "The asset is linked for use as a portrait marketing image.",
            "The asset is linked for use as a logo.",
            "The asset is linked for use as a landscape logo.",
            "The asset is linked for use as a non YouTube logo.",
            "The asset is linked for use to select a call-to-action.",
            "The asset is linked for use to select an ad image.",
            "The asset is linked for use as a business logo.",
            "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
            "The asset is linked for use as a Demand Gen carousel card.",
            "The asset is linked for use as a Business Message.",
            "The asset is linked for use as a tall portrait marketing image.",
            "The asset is linked for use as related YouTube videos.",
            "The asset is linked for use as a landing page preview image.",
            "The asset is linked for use as a long description.",
            "The asset is linked for use as a call-to-action."
          ],
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__ChannelAggregateAssetView",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_TargetRoasOptInParameters": {
      "id": "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_TargetRoasOptInParameters",
      "type": "object",
      "description": "Parameters to use when applying a Target ROAS opt-in recommendation.",
      "properties": {
        "targetRoas": {
          "type": "number",
          "description": "Average ROAS (revenue per unit of spend) to use for Target ROAS bidding strategy. The value is between 0.01 and 1000.0, inclusive. This is a required field, unless new_campaign_budget_amount_micros is set.",
          "format": "double"
        },
        "newCampaignBudgetAmountMicros": {
          "description": "Optional, budget amount to set for the campaign.",
          "format": "int64",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__AdGroupAdOperation": {
      "id": "GoogleAdsGoogleadsV24Services__AdGroupAdOperation",
      "type": "object",
      "description": "A single operation (create, update, remove) on an ad group ad.",
      "properties": {
        "update": {
          "description": "Update operation: The ad is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AdGroupAd"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed ad is expected, in this format: `customers/{customer_id}/adGroupAds/{ad_group_id}~{ad_id}`"
        },
        "policyValidationParameter": {
          "description": "Configuration for how policies are validated.",
          "$ref": "GoogleAdsGoogleadsV24Common__PolicyValidationParameter"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new ad.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AdGroupAd"
        },
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Actions__GenerateShareablePreviewsOperation": {
      "description": "Operation to generate shareable previews.",
      "properties": {
        "shareablePreviews": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Actions__ShareablePreview"
          },
          "description": "Required. The list of shareable previews to generate.",
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Actions__GenerateShareablePreviewsOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_AdGroup_VideoAdGroupSettings": {
      "id": "GoogleAdsGoogleadsV24Resources_AdGroup_VideoAdGroupSettings",
      "type": "object",
      "description": "Settings for video ad groups.",
      "properties": {
        "videoAdSequence": {
          "description": "The video ads sequence step settings containing step ID.",
          "$ref": "GoogleAdsGoogleadsV24Resources_AdGroupVideoAdGroupSettings_VideoAdSequenceStepSetting"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__PromoteCampaignDraftRequest": {
      "id": "GoogleAdsGoogleadsV24Services__PromoteCampaignDraftRequest",
      "type": "object",
      "description": "Request message for CampaignDraftService.PromoteCampaignDraft.",
      "properties": {
        "validateOnly": {
          "description": "If true, the request is validated but no Long Running Operation is created. Only errors are returned.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MetricAttributes": {
      "description": "Indicates the attributes of metrics.",
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of the metric."
        },
        "attributes": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services_MetricAttributes_Attribute"
          },
          "description": "The attributes of the metric."
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MetricAttributes",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__DateRange": {
      "id": "GoogleAdsGoogleadsV24Common__DateRange",
      "type": "object",
      "description": "A date range.",
      "properties": {
        "startDate": {
          "type": "string",
          "description": "The start date, in yyyy-mm-dd format. This date is inclusive."
        },
        "endDate": {
          "description": "The end date, in yyyy-mm-dd format. This date is inclusive.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__AssetUsage": {
      "description": "Contains the usage information of the asset.",
      "properties": {
        "asset": {
          "description": "Resource name of the asset.",
          "type": "string"
        },
        "servedAssetFieldType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE_1",
            "HEADLINE_2",
            "HEADLINE_3",
            "DESCRIPTION_1",
            "DESCRIPTION_2",
            "HEADLINE",
            "HEADLINE_IN_PORTRAIT",
            "LONG_HEADLINE",
            "DESCRIPTION",
            "DESCRIPTION_IN_PORTRAIT",
            "BUSINESS_NAME_IN_PORTRAIT",
            "BUSINESS_NAME",
            "MARKETING_IMAGE",
            "MARKETING_IMAGE_IN_PORTRAIT",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "CALL_TO_ACTION",
            "YOU_TUBE_VIDEO",
            "SITELINK",
            "CALL",
            "MOBILE_APP",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "PRICE",
            "PROMOTION",
            "AD_IMAGE",
            "LEAD_FORM",
            "BUSINESS_LOGO",
            "DESCRIPTION_PREFIX",
            "HEADLINE_AS_SITELINK_POSITION_ONE",
            "HEADLINE_AS_SITELINK_POSITION_TWO",
            "DESCRIPTION_LINE_HEADLINE_AS_SITELINK_POSITION_ONE",
            "DESCRIPTION_LINE_HEADLINE_AS_SITELINK_POSITION_TWO"
          ],
          "description": "The served field type of the asset.",
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The asset is used in headline 1.",
            "The asset is used in headline 2.",
            "The asset is used in headline 3.",
            "The asset is used in description 1.",
            "The asset is used in description 2.",
            "The asset was used in a headline. Use this only if there is only one headline in the ad. Otherwise, use the HEADLINE_1, HEADLINE_2 or HEADLINE_3 enums",
            "The asset was used as a headline in portrait image.",
            "The asset was used in a long headline (used in MultiAssetResponsiveAd).",
            "The asset was used in a description. Use this only if there is only one description in the ad. Otherwise, use the DESCRIPTION_1 or DESCRIPTION_@ enums",
            "The asset was used as description in portrait image.",
            "The asset was used as business name in portrait image.",
            "The asset was used as business name.",
            "The asset was used as a marketing image.",
            "The asset was used as a marketing image in portrait image.",
            "The asset was used as a square marketing image.",
            "The asset was used as a portrait marketing image.",
            "The asset was used as a logo.",
            "The asset was used as a landscape logo.",
            "The asset was used as a call-to-action.",
            "The asset was used as a YouTube video.",
            "This asset is used as a sitelink.",
            "This asset is used as a call.",
            "This asset is used as a mobile app.",
            "This asset is used as a callout.",
            "This asset is used as a structured snippet.",
            "This asset is used as a price.",
            "This asset is used as a promotion.",
            "This asset is used as an image.",
            "The asset is used as a lead form.",
            "The asset is used as a business logo.",
            "The asset is used as a description prefix.",
            "A headline asset used as a sitelink in position 1.",
            "A headline asset used as a sitelink in position 2.",
            "A description line asset used as a sitelink in position 1.",
            "A description line asset used as a sitelink in position 2."
          ],
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__AssetUsage",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__CallFeedItem": {
      "id": "GoogleAdsGoogleadsV24Common__CallFeedItem",
      "type": "object",
      "description": "Represents a Call extension.",
      "properties": {
        "callTrackingEnabled": {
          "type": "boolean",
          "description": "Indicates whether call tracking is enabled. By default, call tracking is not enabled."
        },
        "callConversionAction": {
          "type": "string",
          "description": "The conversion action to attribute a call conversion to. If not set a default conversion action is used. This field only has effect if call_tracking_enabled is set to true. Otherwise this field is ignored."
        },
        "countryCode": {
          "type": "string",
          "description": "Uppercase two-letter country code of the advertiser's phone number. This string must not be empty."
        },
        "callConversionReportingState": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DISABLED",
            "USE_ACCOUNT_LEVEL_CALL_CONVERSION_ACTION",
            "USE_RESOURCE_LEVEL_CALL_CONVERSION_ACTION"
          ],
          "description": "Enum value that indicates whether this call extension uses its own call conversion setting (or just have call conversion disabled), or following the account level setting.",
          "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."
          ],
          "type": "string"
        },
        "callConversionTrackingDisabled": {
          "type": "boolean",
          "description": "If true, disable call conversion tracking. call_conversion_action should not be set if this is true. Optional."
        },
        "phoneNumber": {
          "type": "string",
          "description": "The advertiser's phone number to append to the ad. This string must not be empty."
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__LeadFormDeliveryMethod": {
      "description": "A configuration of how leads are delivered to the advertiser.",
      "properties": {
        "webhook": {
          "description": "Webhook method of delivery.",
          "$ref": "GoogleAdsGoogleadsV24Common__WebhookDelivery"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__LeadFormDeliveryMethod",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__VideoEnhancement": {
      "description": "Represents a video that can include both advertiser uploaded videos or enhancements generated from the advertiser uploaded videos. Only publicly available videos are returned. Each row in this resource represents either the video uploaded by the advertiser or each specific variation of it. In contrast, the `Video` resource represents only the advertiser-provided video and would aggregate metrics across all its variations (including enhancements). {-- next tag to use: 5 --}",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the video enhancement. Video enhancement resource names have the form: `customers/{customer_id}/videoEnhancements/{video_id}`",
          "readOnly": true
        },
        "durationMillis": {
          "type": "string",
          "description": "Output only. Duration of this video, in milliseconds.",
          "readOnly": true,
          "format": "int64"
        },
        "title": {
          "type": "string",
          "description": "Output only. Title of this video.",
          "readOnly": true
        },
        "source": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADVERTISER",
            "ENHANCED_BY_GOOGLE_ADS"
          ],
          "description": "Output only. The source of the video (e.g. advertiser or enhanced by Google Ads).",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The video is provided by the advertiser.",
            "The video is an enhancement generated by Google."
          ]
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__VideoEnhancement",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__VideoOutstreamAdInfo": {
      "description": "Representation of video out-stream ad format (ad shown alongside a feed with automatic playback, without sound).",
      "properties": {
        "headline": {
          "description": "The headline of the ad.",
          "type": "string"
        },
        "description": {
          "description": "The description line.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__VideoOutstreamAdInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__PercentCpcBidSimulationPointList": {
      "id": "GoogleAdsGoogleadsV24Common__PercentCpcBidSimulationPointList",
      "type": "object",
      "description": "A container for simulation points for simulations of type PERCENT_CPC_BID.",
      "properties": {
        "points": {
          "type": "array",
          "description": "Projected metrics for a series of percent CPC bid amounts.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__PercentCpcBidSimulationPoint"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__CustomInterestMember": {
      "id": "GoogleAdsGoogleadsV24Resources__CustomInterestMember",
      "type": "object",
      "description": "A member of custom interest audience. A member can be a keyword or url. It is immutable, that is, it can only be created or removed but not changed.",
      "properties": {
        "memberType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "KEYWORD",
            "URL"
          ],
          "description": "The type of custom interest member, KEYWORD or URL.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Custom interest member type KEYWORD.",
            "Custom interest member type URL."
          ],
          "type": "string"
        },
        "parameter": {
          "description": "Keyword text when member_type is KEYWORD or URL string when member_type is URL.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateCampaignCriteriaRequest": {
      "description": "Request message for CampaignCriterionService.MutateCampaignCriteria.",
      "properties": {
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__CampaignCriterionOperation"
          },
          "description": "Required. The list of operations to perform on individual criteria."
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "responseContentType": {
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateCampaignCriteriaRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateConversionActionResult": {
      "description": "The result for the conversion action mutate.",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        },
        "conversionAction": {
          "description": "The mutated conversion action with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV24Resources__ConversionAction"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateConversionActionResult",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__InsuranceVerificationArtifact": {
      "description": "A proto holding information specific to a local services insurance.",
      "properties": {
        "rejectionReason": {
          "description": "Output only. Insurance document's rejection reason.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Business name doesn't match business name for the Local Services Ad.",
            "Insurance amount doesn't meet requirement listed in the legal summaries documentation for that geographic + category ID combination.",
            "Insurance document is expired.",
            "Insurance document is missing a signature.",
            "Insurance document is missing a policy number.",
            "Commercial General Liability(CGL) box is not marked in the insurance document.",
            "Insurance document is in an editable format.",
            "Insurance document does not cover insurance for a particular category.",
            "Insurance document is missing an expiration date.",
            "Insurance document is poor quality - blurry images, illegible, etc...",
            "Insurance document is suspected of being edited.",
            "Insurance document not accepted. For example, documents of insurance proposals, but missing coverages are not accepted.",
            "Insurance document is not final.",
            "Insurance document has another flaw not listed explicitly."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BUSINESS_NAME_MISMATCH",
            "INSURANCE_AMOUNT_INSUFFICIENT",
            "EXPIRED",
            "NO_SIGNATURE",
            "NO_POLICY_NUMBER",
            "NO_COMMERCIAL_GENERAL_LIABILITY",
            "EDITABLE_FORMAT",
            "CATEGORY_MISMATCH",
            "MISSING_EXPIRATION_DATE",
            "POOR_QUALITY",
            "POTENTIALLY_EDITED",
            "WRONG_DOCUMENT_TYPE",
            "NON_FINAL",
            "OTHER"
          ],
          "type": "string"
        },
        "insuranceDocumentReadonly": {
          "description": "Output only. The readonly field containing the information for an uploaded insurance document.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Common__LocalServicesDocumentReadOnly"
        },
        "expirationDateTime": {
          "type": "string",
          "description": "Output only. The timestamp when this insurance expires. The format is \"YYYY-MM-DD HH:MM:SS\" in the Google Ads account's timezone. Examples: \"2018-03-05 09:15:00\" or \"2018-02-01 14:34:30\"",
          "readOnly": true
        },
        "amountMicros": {
          "description": "Output only. Insurance amount. This is measured in \"micros\" of the currency mentioned in the insurance document.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__InsuranceVerificationArtifact",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__OperatingSystemVersionConstant": {
      "description": "A mobile operating system version or a range of versions, depending on `operator_type`. List of available mobile platforms at https://developers.google.com/google-ads/api/reference/data/codes-formats#mobile-platforms",
      "properties": {
        "resourceName": {
          "description": "Output only. The resource name of the operating system version constant. Operating system version constant resource names have the form: `operatingSystemVersionConstants/{criterion_id}`",
          "readOnly": true,
          "type": "string"
        },
        "osMinorVersion": {
          "description": "Output only. The OS Minor Version number.",
          "readOnly": true,
          "format": "int32",
          "type": "integer"
        },
        "id": {
          "description": "Output only. The ID of the operating system version.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "name": {
          "description": "Output only. Name of the operating system.",
          "readOnly": true,
          "type": "string"
        },
        "osMajorVersion": {
          "description": "Output only. The OS Major Version number.",
          "readOnly": true,
          "format": "int32",
          "type": "integer"
        },
        "operatorType": {
          "description": "Output only. Determines whether this constant represents a single version or a range of versions.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Equals to the specified version.",
            "Greater than or equals to the specified version."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EQUALS_TO",
            "GREATER_THAN_EQUALS_TO"
          ],
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__OperatingSystemVersionConstant",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__HotelAdInfo": {
      "id": "GoogleAdsGoogleadsV24Common__HotelAdInfo",
      "type": "object",
      "description": "A hotel ad.",
      "properties": {}
    },
    "GoogleAdsGoogleadsV24Common__BusinessProfileLocation": {
      "id": "GoogleAdsGoogleadsV24Common__BusinessProfileLocation",
      "type": "object",
      "description": "Business Profile location data synced from the linked Business Profile account.",
      "properties": {
        "listingId": {
          "description": "Listing ID of this Business Profile location. This is synced from the linked Business Profile account.",
          "format": "int64",
          "type": "string"
        },
        "labels": {
          "description": "Advertiser specified label for the location on the Business Profile account. This is synced from the Business Profile account.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "storeCode": {
          "type": "string",
          "description": "Business Profile store code of this location. This is synced from the Business Profile account."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__UserListOperation": {
      "description": "A single operation (create, update) on a user list.",
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new user list.",
          "$ref": "GoogleAdsGoogleadsV24Resources__UserList"
        },
        "updateMask": {
          "type": "string",
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask"
        },
        "update": {
          "description": "Update operation: The user list is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV24Resources__UserList"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed user list is expected, in this format: `customers/{customer_id}/userLists/{user_list_id}`"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__UserListOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__KeywordInfo": {
      "description": "A keyword criterion.",
      "properties": {
        "text": {
          "description": "The text of the keyword (at most 80 characters and 10 words).",
          "type": "string"
        },
        "matchType": {
          "description": "The match type of the keyword.",
          "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"
          ],
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__KeywordInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateCustomerSkAdNetworkConversionValueSchemaResponse": {
      "description": "Response message for MutateCustomerSkAdNetworkConversionValueSchema.",
      "properties": {
        "warning": {
          "description": "Non blocking errors that provides schema validation failure details. Returned only when enable_warnings = true.",
          "$ref": "GoogleRpc__Status"
        },
        "result": {
          "description": "All results for the mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomerSkAdNetworkConversionValueSchemaResult"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateCustomerSkAdNetworkConversionValueSchemaResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateAdGroupAdLabelsResponse": {
      "description": "Response message for an ad group ad labels mutate.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateAdGroupAdLabelResult"
          },
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateAdGroupAdLabelsResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__PolicyTopicConstraint": {
      "id": "GoogleAdsGoogleadsV24Common__PolicyTopicConstraint",
      "type": "object",
      "description": "Describes the effect on serving that a policy topic entry will have.",
      "properties": {
        "countryConstraintList": {
          "description": "Countries where the resource cannot serve.",
          "$ref": "GoogleAdsGoogleadsV24Common_PolicyTopicConstraint_CountryConstraintList"
        },
        "certificateMissingInCountryList": {
          "description": "Countries where a certificate is required for serving.",
          "$ref": "GoogleAdsGoogleadsV24Common_PolicyTopicConstraint_CountryConstraintList"
        },
        "resellerConstraint": {
          "description": "Reseller constraint.",
          "$ref": "GoogleAdsGoogleadsV24Common_PolicyTopicConstraint_ResellerConstraint"
        },
        "certificateDomainMismatchInCountryList": {
          "description": "Countries where the resource's domain is not covered by the certificates associated with it.",
          "$ref": "GoogleAdsGoogleadsV24Common_PolicyTopicConstraint_CountryConstraintList"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__TargetCpm": {
      "id": "GoogleAdsGoogleadsV24Common__TargetCpm",
      "type": "object",
      "description": "Target CPM (cost per thousand impressions) is an automated bidding strategy that sets bids to optimize performance given the target CPM you set.",
      "properties": {
        "targetFrequencyGoal": {
          "description": "Target Frequency bidding goal details.",
          "$ref": "GoogleAdsGoogleadsV24Common__TargetCpmTargetFrequencyGoal"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__GenerateConversionRatesRequest": {
      "description": "Request message for ReachPlanService.GenerateConversionRates.",
      "properties": {
        "customerId": {
          "description": "Required. The ID of the customer. A conversion rate based on the historical data of this customer may be suggested.",
          "type": "string"
        },
        "customerReachGroup": {
          "description": "The name of the customer being planned for. This is a user-defined value.",
          "type": "string"
        },
        "reachApplicationInfo": {
          "description": "Optional. Additional information on the application issuing the request.",
          "$ref": "GoogleAdsGoogleadsV24Common__AdditionalApplicationInfo"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__GenerateConversionRatesRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Actions__BookCampaignsOperation": {
      "id": "GoogleAdsGoogleadsV24Actions__BookCampaignsOperation",
      "type": "object",
      "description": "Request message for the BookCampaigns action. Request including this operation can have a latency of up to 30 seconds. This feature is not publicly available.",
      "properties": {
        "quoteSignature": {
          "description": "If provided, the signature of the previous quote. Clients should always provide the quote signature from previous quotes if they haven't changed the campaigns to prevent price fluctuations within a user session.",
          "type": "string"
        },
        "campaigns": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Actions_BookCampaignsOperation_Campaign"
          },
          "description": "Campaigns to book. Maximum 2 campaigns per request."
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_Campaign_PmaxCampaignSettings": {
      "description": "Settings for Performance Max campaigns.",
      "properties": {
        "brandTargetingOverrides": {
          "description": "Overrides of brand targeting for various ad types.",
          "$ref": "GoogleAdsGoogleadsV24Resources_CampaignPmaxCampaignSettings_BrandTargetingOverrides"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_Campaign_PmaxCampaignSettings",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__GenerateTrendingInsightsRequest": {
      "description": "Request message for ContentCreatorInsightsService.GenerateTrendingInsights.",
      "properties": {
        "insightsApplicationInfo": {
          "description": "Optional. Additional information on the application issuing the request.",
          "$ref": "GoogleAdsGoogleadsV24Common__AdditionalApplicationInfo"
        },
        "customerInsightsGroup": {
          "type": "string",
          "description": "Required. The name of the customer being planned for. This is a user-defined value."
        },
        "searchTopics": {
          "description": "Content topics to return trend information for.",
          "$ref": "GoogleAdsGoogleadsV24Services__SearchTopics"
        },
        "searchAudience": {
          "description": "An audience to search for trending content in.",
          "$ref": "GoogleAdsGoogleadsV24Services__SearchAudience"
        },
        "countryLocation": {
          "description": "Required. The country to find trends in.",
          "$ref": "GoogleAdsGoogleadsV24Common__LocationInfo"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__GenerateTrendingInsightsRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_UseBroadMatchKeywordParameters": {
      "description": "Parameters to use when applying a use broad match keyword recommendation.",
      "properties": {
        "newBudgetAmountMicros": {
          "description": "New budget amount to set for target budget resource.",
          "format": "int64",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_UseBroadMatchKeywordParameters",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__BrandCampaignAssets": {
      "id": "GoogleAdsGoogleadsV24Services__BrandCampaignAssets",
      "type": "object",
      "description": "Assets linked at the campaign level. A business_name and at least one logo_asset are required.",
      "properties": {
        "landscapeLogoAsset": {
          "items": {
            "type": "string"
          },
          "description": "Optional. The resource name of landscape logo assets.",
          "type": "array"
        },
        "businessNameAsset": {
          "description": "Required. The resource name of the business name text asset.",
          "type": "string"
        },
        "logoAsset": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Required. The resource name of square logo assets."
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_RecommendationKeywordRecommendation_SearchTerm": {
      "description": "Information about a search term as related to a keyword recommendation.",
      "properties": {
        "text": {
          "description": "Output only. The text of the search term.",
          "readOnly": true,
          "type": "string"
        },
        "estimatedWeeklySearchCount": {
          "description": "Output only. Estimated number of historical weekly searches for this search term.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_RecommendationKeywordRecommendation_SearchTerm",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Actions__UiPreviewResult": {
      "id": "GoogleAdsGoogleadsV24Actions__UiPreviewResult",
      "type": "object",
      "description": "Message to hold a UI preview result.",
      "properties": {
        "shareablePreviewUrl": {
          "type": "string",
          "description": "The shareable preview URL."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__CustomerUserAccessInvitationOperation": {
      "description": "A single operation (create or remove) on customer user access invitation.",
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new access invitation.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CustomerUserAccessInvitation"
        },
        "remove": {
          "description": "Remove operation: A resource name for the revoke invitation is expected, in this format: `customers/{customer_id}/customerUserAccessInvitations/{invitation_id}`",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__CustomerUserAccessInvitationOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateAdGroupCriterionLabelResult": {
      "id": "GoogleAdsGoogleadsV24Services__MutateAdGroupCriterionLabelResult",
      "type": "object",
      "description": "The result for an ad group criterion label mutate.",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__ListBenchmarksSourcesRequest": {
      "id": "GoogleAdsGoogleadsV24Services__ListBenchmarksSourcesRequest",
      "type": "object",
      "description": "Request message for BenchmarksService.ListBenchmarksSources.",
      "properties": {
        "benchmarksSources": {
          "items": {
            "enumDescriptions": [
              "Not specified.",
              "The value is unknown in this version.",
              "The classification of ad categories for benchmarking. (for example, \"Technology\" or \"Finance\")."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "INDUSTRY_VERTICAL"
            ],
            "type": "string"
          },
          "description": "Required. The types of benchmarks sources to be returned (for example, INDUSTRY_VERTICAL).",
          "type": "array"
        },
        "applicationInfo": {
          "description": "Additional information on the application issuing the request.",
          "$ref": "GoogleAdsGoogleadsV24Common__AdditionalApplicationInfo"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__CampaignAsset": {
      "description": "A link between a Campaign and an Asset.",
      "properties": {
        "asset": {
          "type": "string",
          "description": "Immutable. The asset which is linked to the campaign."
        },
        "primaryStatus": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ELIGIBLE",
            "PAUSED",
            "REMOVED",
            "PENDING",
            "LIMITED",
            "NOT_ELIGIBLE"
          ],
          "description": "Output only. Provides the PrimaryStatus of this asset link. Primary status is meant essentially to differentiate between the plain \"status\" field, which has advertiser set values of enabled, paused, or removed. The primary status takes into account other signals (for assets its mainly policy and quality approvals) to come up with a more comprehensive status to indicate its serving state.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is eligible to serve.",
            "The user-specified asset link status is paused.",
            "The user-specified asset link status is removed.",
            "The asset may serve in the future.",
            "The asset is serving in a partial capacity.",
            "The asset is not eligible to serve."
          ],
          "type": "string"
        },
        "fieldType": {
          "type": "string",
          "description": "Immutable. Role that the asset takes under the linked campaign. Required.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is linked for use as a headline.",
            "The asset is linked for use as a description.",
            "The asset is linked for use as mandatory ad text.",
            "The asset is linked for use as a marketing image.",
            "The asset is linked for use as a media bundle.",
            "The asset is linked for use as a YouTube video.",
            "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
            "The asset is linked for use as a Lead Form extension.",
            "The asset is linked for use as a Promotion extension.",
            "The asset is linked for use as a Callout extension.",
            "The asset is linked for use as a Structured Snippet extension.",
            "The asset is linked for use as a Sitelink.",
            "The asset is linked for use as a Mobile App extension.",
            "The asset is linked for use as a Hotel Callout extension.",
            "The asset is linked for use as a Call extension.",
            "The asset is linked for use as a Price extension.",
            "The asset is linked for use as a long headline.",
            "The asset is linked for use as a business name.",
            "The asset is linked for use as a square marketing image.",
            "The asset is linked for use as a portrait marketing image.",
            "The asset is linked for use as a logo.",
            "The asset is linked for use as a landscape logo.",
            "The asset is linked for use as a non YouTube logo.",
            "The asset is linked for use to select a call-to-action.",
            "The asset is linked for use to select an ad image.",
            "The asset is linked for use as a business logo.",
            "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
            "The asset is linked for use as a Demand Gen carousel card.",
            "The asset is linked for use as a Business Message.",
            "The asset is linked for use as a tall portrait marketing image.",
            "The asset is linked for use as related YouTube videos.",
            "The asset is linked for use as a landing page preview image.",
            "The asset is linked for use as a long description.",
            "The asset is linked for use as a call-to-action."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE",
            "DESCRIPTION",
            "MANDATORY_AD_TEXT",
            "MARKETING_IMAGE",
            "MEDIA_BUNDLE",
            "YOUTUBE_VIDEO",
            "BOOK_ON_GOOGLE",
            "LEAD_FORM",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "LONG_HEADLINE",
            "BUSINESS_NAME",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "VIDEO",
            "CALL_TO_ACTION_SELECTION",
            "AD_IMAGE",
            "BUSINESS_LOGO",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "TALL_PORTRAIT_MARKETING_IMAGE",
            "RELATED_YOUTUBE_VIDEOS",
            "LANDING_PAGE_PREVIEW",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION"
          ]
        },
        "primaryStatusDetails": {
          "type": "array",
          "description": "Output only. Provides the details of the primary status and its associated reasons.",
          "readOnly": true,
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AssetLinkPrimaryStatusDetails"
          }
        },
        "primaryStatusReasons": {
          "items": {
            "type": "string",
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "ASSET_LINK_PAUSED",
              "ASSET_LINK_REMOVED",
              "ASSET_DISAPPROVED",
              "ASSET_UNDER_REVIEW",
              "ASSET_APPROVED_LABELED"
            ],
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "The asset is paused for its linked rollup level. Contributes to a PrimaryStatus of PAUSED.",
              "The asset is removed for its linked rollup level. Contributes to a PrimaryStatus of REMOVED.",
              "The asset has been marked as disapproved. Contributes to a PrimaryStatus of NOT_ELIGIBLE",
              "The asset has not completed policy review. Contributes to a PrimaryStatus of PENDING.",
              "The asset is approved with policies applied. Contributes to a PrimaryStatus of LIMITED."
            ]
          },
          "description": "Output only. Provides a list of reasons for why an asset is not serving or not serving at full capacity.",
          "readOnly": true,
          "type": "array"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the campaign asset. CampaignAsset resource names have the form: `customers/{customer_id}/campaignAssets/{campaign_id}~{asset_id}~{field_type}`"
        },
        "campaign": {
          "description": "Immutable. The campaign to which the asset is linked.",
          "type": "string"
        },
        "source": {
          "description": "Output only. Source of the campaign asset link.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset or asset link is provided by advertiser.",
            "The asset or asset link is generated by Google."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADVERTISER",
            "AUTOMATICALLY_CREATED"
          ],
          "type": "string"
        },
        "status": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED",
            "PAUSED"
          ],
          "description": "Status of the campaign asset.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Asset link is enabled.",
            "Asset link has been removed.",
            "Asset link is paused."
          ],
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__CampaignAsset",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateCampaignBudgetsRequest": {
      "id": "GoogleAdsGoogleadsV24Services__MutateCampaignBudgetsRequest",
      "type": "object",
      "description": "Request message for CampaignBudgetService.MutateCampaignBudgets.",
      "properties": {
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "operations": {
          "type": "array",
          "description": "Required. The list of operations to perform on individual campaign budgets.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__CampaignBudgetOperation"
          }
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "responseContentType": {
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__AssetGroupListingGroupFilterOperation": {
      "id": "GoogleAdsGoogleadsV24Services__AssetGroupListingGroupFilterOperation",
      "type": "object",
      "description": "A single operation (create, remove) on an asset group listing group filter.",
      "properties": {
        "updateMask": {
          "type": "string",
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask"
        },
        "update": {
          "description": "Update operation: The asset group listing group filter is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AssetGroupListingGroupFilter"
        },
        "remove": {
          "description": "Remove operation: A resource name for the removed asset group listing group filter is expected, in this format: `customers/{customer_id}/assetGroupListingGroupFilters/{asset_group_id}~{listing_group_filter_id}` An entity can be removed only if it's not referenced by other parent_listing_group_id. If multiple entities are being deleted, the mutates must be in the correct order.",
          "type": "string"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new asset group listing group filter.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AssetGroupListingGroupFilter"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateCustomerLabelResult": {
      "description": "The result for a customer label mutate.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateCustomerLabelResult",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__YouTubeSelectSettings": {
      "id": "GoogleAdsGoogleadsV24Services__YouTubeSelectSettings",
      "type": "object",
      "description": "Request settings for YouTube Select Lineups",
      "properties": {
        "lineupId": {
          "description": "Lineup for YouTube Select Targeting.",
          "format": "int64",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__Ad": {
      "description": "An ad.",
      "properties": {
        "systemManagedResourceSource": {
          "description": "Output only. If this ad is system managed, then this field will indicate the source. This field is read-only.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Generated ad variations experiment ad."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AD_VARIATIONS"
          ],
          "type": "string"
        },
        "travelAd": {
          "description": "Details pertaining to a travel ad.",
          "$ref": "GoogleAdsGoogleadsV24Common__TravelAdInfo"
        },
        "expandedDynamicSearchAd": {
          "description": "Immutable. Details pertaining to an Expanded Dynamic Search Ad. This type of ad has its headline, final URLs, and display URL auto-generated at serving time according to domain name specific information provided by `dynamic_search_ads_setting` linked at the campaign level.",
          "$ref": "GoogleAdsGoogleadsV24Common__ExpandedDynamicSearchAdInfo"
        },
        "hotelAd": {
          "description": "Details pertaining to a hotel ad.",
          "$ref": "GoogleAdsGoogleadsV24Common__HotelAdInfo"
        },
        "finalAppUrls": {
          "type": "array",
          "description": "A list of final app URLs that will be used on mobile if the user has the specific app installed.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__FinalAppUrl"
          }
        },
        "appEngagementAd": {
          "description": "Details pertaining to an app engagement ad.",
          "$ref": "GoogleAdsGoogleadsV24Common__AppEngagementAdInfo"
        },
        "videoAd": {
          "description": "Details pertaining to a Video ad.",
          "$ref": "GoogleAdsGoogleadsV24Common__VideoAdInfo"
        },
        "videoResponsiveAd": {
          "description": "Details pertaining to a Video responsive ad.",
          "$ref": "GoogleAdsGoogleadsV24Common__VideoResponsiveAdInfo"
        },
        "shoppingProductAd": {
          "description": "Details pertaining to a Shopping product ad.",
          "$ref": "GoogleAdsGoogleadsV24Common__ShoppingProductAdInfo"
        },
        "appPreRegistrationAd": {
          "description": "Details pertaining to an app pre-registration ad.",
          "$ref": "GoogleAdsGoogleadsV24Common__AppPreRegistrationAdInfo"
        },
        "legacyAppInstallAd": {
          "description": "Immutable. Details pertaining to a legacy app install ad.",
          "$ref": "GoogleAdsGoogleadsV24Common__LegacyAppInstallAdInfo"
        },
        "demandGenVideoResponsiveAd": {
          "description": "Details pertaining to a Demand Gen video responsive ad.",
          "$ref": "GoogleAdsGoogleadsV24Common__DemandGenVideoResponsiveAdInfo"
        },
        "responsiveSearchAd": {
          "description": "Details pertaining to a responsive search ad.",
          "$ref": "GoogleAdsGoogleadsV24Common__ResponsiveSearchAdInfo"
        },
        "finalUrls": {
          "type": "array",
          "description": "The list of possible final URLs after all cross-domain redirects for the ad.",
          "items": {
            "type": "string"
          }
        },
        "demandGenMultiAssetAd": {
          "description": "Details pertaining to a Demand Gen multi asset ad.",
          "$ref": "GoogleAdsGoogleadsV24Common__DemandGenMultiAssetAdInfo"
        },
        "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. The name field is currently only supported for DisplayUploadAd, ImageAd, LegacyAppInstallAd, ShoppingComparisonListingAd, VideoAd, VideoResponsiveAd and DemandGen ads.",
          "type": "string"
        },
        "localAd": {
          "description": "Details pertaining to a local ad.",
          "$ref": "GoogleAdsGoogleadsV24Common__LocalAdInfo"
        },
        "finalMobileUrls": {
          "items": {
            "type": "string"
          },
          "description": "The list of possible final mobile URLs after all cross-domain redirects for the ad.",
          "type": "array"
        },
        "devicePreference": {
          "description": "The device preference for the ad. You can only specify a preference for mobile devices. When this preference is set the ad will be preferred over other ads when being displayed on a mobile device. The ad can still be displayed on other device types, for example, if no other ads are available. If unspecified (no device preference), all devices are targeted. This is only supported by some ad types.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Mobile devices with full browsers.",
            "Tablets with full browsers.",
            "Computers.",
            "Smart TVs and game consoles.",
            "Other device types."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MOBILE",
            "TABLET",
            "DESKTOP",
            "CONNECTED_TV",
            "OTHER"
          ],
          "type": "string"
        },
        "finalUrlSuffix": {
          "description": "The suffix to use when constructing a final URL.",
          "type": "string"
        },
        "id": {
          "description": "Output only. The ID of the ad.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "urlCollections": {
          "description": "Additional URLs for the ad that are tagged with a unique identifier that can be referenced from other fields in the ad.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__UrlCollection"
          },
          "type": "array"
        },
        "shoppingSmartAd": {
          "description": "Details pertaining to a Smart Shopping ad.",
          "$ref": "GoogleAdsGoogleadsV24Common__ShoppingSmartAdInfo"
        },
        "addedByGoogleAds": {
          "description": "Output only. Indicates if this ad was automatically added by Google Ads and not by a user. For example, this could happen when ads are automatically created as suggestions for new ads based on knowledge of how existing ads are performing.",
          "readOnly": true,
          "type": "boolean"
        },
        "urlCustomParameters": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__CustomParameter"
          },
          "description": "The list of mappings that can be used to substitute custom parameter tags in a `tracking_url_template`, `final_urls`, or `mobile_final_urls`. For mutates, use url custom parameter operations.",
          "type": "array"
        },
        "imageAd": {
          "description": "Immutable. Details pertaining to an Image ad.",
          "$ref": "GoogleAdsGoogleadsV24Common__ImageAdInfo"
        },
        "demandGenProductAd": {
          "description": "Details pertaining to a Demand Gen product ad.",
          "$ref": "GoogleAdsGoogleadsV24Common__DemandGenProductAdInfo"
        },
        "responsiveDisplayAd": {
          "description": "Details pertaining to a responsive display ad.",
          "$ref": "GoogleAdsGoogleadsV24Common__ResponsiveDisplayAdInfo"
        },
        "demandGenCarouselAd": {
          "description": "Details pertaining to a Demand Gen carousel ad.",
          "$ref": "GoogleAdsGoogleadsV24Common__DemandGenCarouselAdInfo"
        },
        "shoppingComparisonListingAd": {
          "description": "Details pertaining to a Shopping Comparison Listing ad.",
          "$ref": "GoogleAdsGoogleadsV24Common__ShoppingComparisonListingAdInfo"
        },
        "displayUrl": {
          "type": "string",
          "description": "The URL that appears in the ad description for some ad formats."
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the ad. Ad resource names have the form: `customers/{customer_id}/ads/{ad_id}`"
        },
        "legacyResponsiveDisplayAd": {
          "description": "Details pertaining to a legacy responsive display ad.",
          "$ref": "GoogleAdsGoogleadsV24Common__LegacyResponsiveDisplayAdInfo"
        },
        "textAd": {
          "description": "Immutable. Details pertaining to a text ad.",
          "$ref": "GoogleAdsGoogleadsV24Common__TextAdInfo"
        },
        "smartCampaignAd": {
          "description": "Details pertaining to a Smart campaign ad.",
          "$ref": "GoogleAdsGoogleadsV24Common__SmartCampaignAdInfo"
        },
        "appAd": {
          "description": "Details pertaining to an app ad.",
          "$ref": "GoogleAdsGoogleadsV24Common__AppAdInfo"
        },
        "type": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "TEXT_AD",
            "EXPANDED_TEXT_AD",
            "EXPANDED_DYNAMIC_SEARCH_AD",
            "HOTEL_AD",
            "SHOPPING_SMART_AD",
            "SHOPPING_PRODUCT_AD",
            "VIDEO_AD",
            "IMAGE_AD",
            "RESPONSIVE_SEARCH_AD",
            "LEGACY_RESPONSIVE_DISPLAY_AD",
            "APP_AD",
            "LEGACY_APP_INSTALL_AD",
            "RESPONSIVE_DISPLAY_AD",
            "LOCAL_AD",
            "HTML5_UPLOAD_AD",
            "DYNAMIC_HTML5_AD",
            "APP_ENGAGEMENT_AD",
            "SHOPPING_COMPARISON_LISTING_AD",
            "VIDEO_BUMPER_AD",
            "VIDEO_NON_SKIPPABLE_IN_STREAM_AD",
            "VIDEO_TRUEVIEW_IN_STREAM_AD",
            "VIDEO_RESPONSIVE_AD",
            "SMART_CAMPAIGN_AD",
            "CALL_AD",
            "APP_PRE_REGISTRATION_AD",
            "IN_FEED_VIDEO_AD",
            "DEMAND_GEN_MULTI_ASSET_AD",
            "DEMAND_GEN_CAROUSEL_AD",
            "TRAVEL_AD",
            "DEMAND_GEN_VIDEO_RESPONSIVE_AD",
            "DEMAND_GEN_PRODUCT_AD",
            "YOUTUBE_AUDIO_AD"
          ],
          "description": "Output only. The type of ad.",
          "readOnly": true,
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The ad is a text ad.",
            "The ad is an expanded text ad. Expanded text ads are deprecated.",
            "The ad is an expanded dynamic search ad.",
            "The ad is a hotel ad.",
            "The ad is a Smart Shopping ad.",
            "The ad is a standard Shopping ad.",
            "The ad is a video ad.",
            "This ad is an Image ad.",
            "The ad is a responsive search ad.",
            "The ad is a legacy responsive display ad.",
            "The ad is an app ad.",
            "The ad is a legacy app install ad.",
            "The ad is a responsive display ad.",
            "The ad is a local ad.",
            "The ad is a display upload ad with the HTML5_UPLOAD_AD product type.",
            "The ad is a display upload ad with one of the DYNAMIC_HTML5_* product types.",
            "The ad is an app engagement ad.",
            "The ad is a Shopping Comparison Listing ad.",
            "Video bumper ad.",
            "Video non-skippable in-stream ad.",
            "Video TrueView in-stream ad.",
            "Video responsive ad.",
            "Smart campaign ad.",
            "Call ad.",
            "Universal app pre-registration ad.",
            "In-feed video ad.",
            "Demand Gen multi asset ad.",
            "Demand Gen carousel ad.",
            "Travel ad.",
            "Demand Gen video responsive ad.",
            "Demand Gen product ad.",
            "YouTube Audio ad."
          ],
          "type": "string"
        },
        "displayUploadAd": {
          "description": "Details pertaining to a display upload ad.",
          "$ref": "GoogleAdsGoogleadsV24Common__DisplayUploadAdInfo"
        },
        "trackingUrlTemplate": {
          "description": "The URL template for constructing a tracking URL.",
          "type": "string"
        },
        "expandedTextAd": {
          "description": "Details pertaining to an expanded text ad. Expanded text ads are deprecated. Use `ResponsiveSearchAd` instead.",
          "$ref": "GoogleAdsGoogleadsV24Common__ExpandedTextAdInfo"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__Ad",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__ListPlannableProductsRequest": {
      "description": "Request to list available products in a given location.",
      "properties": {
        "plannableLocationId": {
          "description": "Required. The ID of the selected location for planning. To list the available plannable location IDs use ReachPlanService.ListPlannableLocations.",
          "type": "string"
        },
        "reachApplicationInfo": {
          "description": "Optional. Additional information on the application issuing the request.",
          "$ref": "GoogleAdsGoogleadsV24Common__AdditionalApplicationInfo"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__ListPlannableProductsRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__SmartCampaignPausedDetails": {
      "description": "Details related to paused Smart campaigns.",
      "properties": {
        "pausedDateTime": {
          "type": "string",
          "description": "The timestamp of when the campaign was last paused. The timestamp is in the customer’s timezone and in “yyyy-MM-dd HH:mm:ss” format."
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__SmartCampaignPausedDetails",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__OfflineUserDataJob": {
      "id": "GoogleAdsGoogleadsV24Resources__OfflineUserDataJob",
      "type": "object",
      "description": "A job containing offline user data of store visitors, or user list members that will be processed asynchronously. The uploaded data isn't readable and the processing results of the job can only be read using GoogleAdsService.Search/SearchStream.",
      "properties": {
        "operationMetadata": {
          "description": "Output only. Metadata of offline user data job depicting match rate range.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources__OfflineUserDataJobMetadata"
        },
        "customerMatchUserListMetadata": {
          "description": "Immutable. Metadata for data updates to a CRM-based user list.",
          "$ref": "GoogleAdsGoogleadsV24Common__CustomerMatchUserListMetadata"
        },
        "failureReason": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INSUFFICIENT_MATCHED_TRANSACTIONS",
            "INSUFFICIENT_TRANSACTIONS",
            "HIGH_AVERAGE_TRANSACTION_VALUE",
            "LOW_AVERAGE_TRANSACTION_VALUE",
            "NEWLY_OBSERVED_CURRENCY_CODE"
          ],
          "description": "Output only. Reason for the processing failure, if status is FAILED.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The matched transactions are insufficient.",
            "The uploaded transactions are insufficient.",
            "The average transaction value is unusually high for your account. If this is intended, contact support to request an exception. Learn more at https://support.google.com/google-ads/answer/10018944#transaction_value",
            "The average transaction value is unusually low for your account. If this is intended, contact support to request an exception. Learn more at https://support.google.com/google-ads/answer/10018944#transaction_value",
            "There's a currency code that you haven't used before in your uploads. If this is intended, contact support to request an exception. Learn more at https://support.google.com/google-ads/answer/10018944#Unrecognized_currency"
          ]
        },
        "type": {
          "type": "string",
          "description": "Immutable. Type of the job.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Store Sales Direct data for self service.",
            "Store Sales Direct data for third party.",
            "Customer Match user list data.",
            "Customer Match with attribute data."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "STORE_SALES_UPLOAD_FIRST_PARTY",
            "STORE_SALES_UPLOAD_THIRD_PARTY",
            "CUSTOMER_MATCH_USER_LIST",
            "CUSTOMER_MATCH_WITH_ATTRIBUTES"
          ]
        },
        "id": {
          "description": "Output only. ID of this offline user data job.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "externalId": {
          "description": "Immutable. User specified job ID.",
          "format": "int64",
          "type": "string"
        },
        "status": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PENDING",
            "RUNNING",
            "SUCCESS",
            "FAILED"
          ],
          "description": "Output only. Status of the job.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The job has been successfully created and pending for uploading.",
            "Upload(s) have been accepted and data is being processed.",
            "Uploaded data has been successfully processed. The job might have no operations, which can happen if the job was run without any operations added, or if all operations failed validation individually when attempting to add them to the job.",
            "Uploaded data has failed to be processed. Some operations may have been successfully processed."
          ]
        },
        "resourceName": {
          "description": "Immutable. The resource name of the offline user data job. Offline user data job resource names have the form: `customers/{customer_id}/offlineUserDataJobs/{offline_user_data_job_id}`",
          "type": "string"
        },
        "storeSalesMetadata": {
          "description": "Immutable. Metadata for store sales data update.",
          "$ref": "GoogleAdsGoogleadsV24Common__StoreSalesMetadata"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__CalloutFeedItem": {
      "id": "GoogleAdsGoogleadsV24Common__CalloutFeedItem",
      "type": "object",
      "description": "Represents a callout extension.",
      "properties": {
        "calloutText": {
          "description": "The callout text. The length of this string should be between 1 and 25, inclusive.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__Commission": {
      "id": "GoogleAdsGoogleadsV24Common__Commission",
      "type": "object",
      "description": "Commission is an automatic bidding strategy in which the advertiser pays a certain portion of the conversion value.",
      "properties": {
        "commissionRateMicros": {
          "description": "Commission rate defines the portion of the conversion value that the advertiser will be billed. A commission rate of x should be passed into this field as (x * 1,000,000). For example, 106,000 represents a commission rate of 0.106 (10.6%).",
          "format": "int64",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__PerformanceMaxPlacementView": {
      "id": "GoogleAdsGoogleadsV24Resources__PerformanceMaxPlacementView",
      "type": "object",
      "description": "A view with impression metrics for Performance Max campaign placements.",
      "properties": {
        "resourceName": {
          "description": "Output only. The resource name of the Performance Max placement view. Performance Max placement view resource names have the form: `customers/{customer_id}/performanceMaxPlacementViews/{base_64_placement}`",
          "readOnly": true,
          "type": "string"
        },
        "placement": {
          "type": "string",
          "description": "Output only. The default placement string, such as the website URL, mobile application ID, or a YouTube video ID.",
          "readOnly": true
        },
        "targetUrl": {
          "description": "Output only. URL of the placement, for example, website, link to the mobile application in app store, or a YouTube video URL.",
          "readOnly": true,
          "type": "string"
        },
        "placementType": {
          "description": "Output only. Type of the placement. Possible values for Performance Max placements are WEBSITE, MOBILE_APPLICATION, or YOUTUBE_VIDEO.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Websites(for example, 'www.flowers4sale.com').",
            "Mobile application categories(for example, 'Games').",
            "mobile applications(for example, 'mobileapp::2-com.whatsthewordanswers').",
            "YouTube videos(for example, 'youtube.com/video/wtLJPvx7-ys').",
            "YouTube channels(for example, 'youtube.com::L8ZULXASCc1I_oaOT0NaOQ').",
            "Surfaces owned and operated by Google(for example, 'tv.google.com')."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "WEBSITE",
            "MOBILE_APP_CATEGORY",
            "MOBILE_APPLICATION",
            "YOUTUBE_VIDEO",
            "YOUTUBE_CHANNEL",
            "GOOGLE_PRODUCTS"
          ],
          "type": "string"
        },
        "displayName": {
          "description": "Output only. The name displayed to represent the placement, such as the URL name for websites, YouTube video name for YouTube videos, and translated mobile app name for mobile apps.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateCampaignsResponse": {
      "description": "Response message for campaign mutate.",
      "properties": {
        "results": {
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateCampaignResult"
          },
          "type": "array"
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateCampaignsResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__GranularInsuranceStatus": {
      "description": "Insurance status at geo + vertical level.",
      "properties": {
        "geoCriterionId": {
          "description": "Output only. Geotarget criterion ID associated with the status. Can be on country or state/province geo level, depending on requirements and location. See https://developers.google.com/google-ads/api/data/geotargets for more information.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "categoryId": {
          "description": "Output only. Service category associated with the status. For example, xcat:service_area_business_plumber. For more details see: https://developers.google.com/google-ads/api/data/codes-formats#local_services_ids",
          "readOnly": true,
          "type": "string"
        },
        "verificationStatus": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NEEDS_REVIEW",
            "FAILED",
            "PASSED",
            "NOT_APPLICABLE",
            "NO_SUBMISSION",
            "PARTIAL_SUBMISSION",
            "PENDING_ESCALATION"
          ],
          "description": "Output only. Granular insurance status, per geo + vertical.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Unknown verification status.",
            "Verification has started, but has not finished.",
            "Verification has failed.",
            "Verification has passed.",
            "Verification is not applicable.",
            "Verification is required but pending submission.",
            "Not all required verification has been submitted.",
            "Verification needs review by Local Services Ads Ops Specialist."
          ],
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__GranularInsuranceStatus",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__AdGroupCriterionCustomizerOperation": {
      "id": "GoogleAdsGoogleadsV24Services__AdGroupCriterionCustomizerOperation",
      "type": "object",
      "description": "A single operation (create, remove) on a customizer attribute.",
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new ad group criterion customizer.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AdGroupCriterionCustomizer"
        },
        "remove": {
          "description": "Remove operation: A resource name for the removed ad group criterion customizer is expected, in this format: `customers/{customer_id}/adGroupCriterionCustomizers/{ad_group_id}~{criterion_id}~{customizer_attribute_id}`",
          "type": "string"
        }
      }
    },
    "GoogleLongrunning__ListOperationsResponse": {
      "description": "The response message for Operations.ListOperations.",
      "properties": {
        "nextPageToken": {
          "type": "string",
          "description": "The standard List next-page token."
        },
        "unreachable": {
          "description": "Unordered list. Unreachable resources. Populated when the request sets `ListOperationsRequest.return_partial_success` and reads across collections. For example, when attempting to list all resources across all supported locations.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "operations": {
          "type": "array",
          "description": "A list of operations that matches the specified filter in the request.",
          "items": {
            "$ref": "GoogleLongrunning__Operation"
          }
        }
      },
      "id": "GoogleLongrunning__ListOperationsResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__ExperimentArmOperation": {
      "id": "GoogleAdsGoogleadsV24Services__ExperimentArmOperation",
      "type": "object",
      "description": "A single operation on an experiment arm.",
      "properties": {
        "create": {
          "description": "Create operation",
          "$ref": "GoogleAdsGoogleadsV24Resources__ExperimentArm"
        },
        "updateMask": {
          "type": "string",
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask"
        },
        "update": {
          "description": "Update operation: The experiment arm is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV24Resources__ExperimentArm"
        },
        "remove": {
          "description": "Remove operation: The experiment arm is expected to have a valid resource name, in this format: `customers/{customer_id}/experiments/{campaign_experiment_id}`",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__OfflineConversionError": {
      "description": "Possible errors for offline conversion client summary.",
      "properties": {
        "collectionSizeError": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "TOO_FEW",
            "TOO_MANY"
          ],
          "description": "Output only. Collection size error.",
          "readOnly": true,
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Too few.",
            "Too many."
          ]
        },
        "conversionAdjustmentUploadError": {
          "type": "string",
          "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": "Output only. Conversion adjustment upload error.",
          "readOnly": true,
          "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`."
          ]
        },
        "dateError": {
          "type": "string",
          "description": "Output only. Date error.",
          "readOnly": true,
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Given field values do not correspond to a valid date.",
            "Given field values do not correspond to a valid date time.",
            "The string date's format should be yyyy-mm-dd.",
            "The string date time's format should be yyyy-mm-dd hh:mm:ss.ssssss.",
            "The string date time's format should be yyyy-mm-dd hh:mm:ss.",
            "The string date time's format should be yyyy-mm-dd hh:mm:ss+|-hh:mm.",
            "Date is before allowed minimum.",
            "Date is after allowed maximum.",
            "Date range bounds are not in order.",
            "Both dates in range are null.",
            "This campaign type doesn't support a start date time that isn't the start of the day.",
            "This campaign type doesn't support an end date time that isn't the end of the day."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_FIELD_VALUES_IN_DATE",
            "INVALID_FIELD_VALUES_IN_DATE_TIME",
            "INVALID_STRING_DATE",
            "INVALID_STRING_DATE_TIME_MICROS",
            "INVALID_STRING_DATE_TIME_SECONDS",
            "INVALID_STRING_DATE_TIME_SECONDS_WITH_OFFSET",
            "EARLIER_THAN_MINIMUM_DATE",
            "LATER_THAN_MAXIMUM_DATE",
            "DATE_RANGE_MINIMUM_DATE_LATER_THAN_MAXIMUM_DATE",
            "DATE_RANGE_MINIMUM_AND_MAXIMUM_DATES_BOTH_NULL",
            "DATE_RANGE_ERROR_START_TIME_MUST_BE_THE_START_OF_A_DAY",
            "DATE_RANGE_ERROR_END_TIME_MUST_BE_THE_END_OF_A_DAY"
          ]
        },
        "fieldError": {
          "type": "string",
          "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"
          ],
          "description": "Output only. Field error.",
          "readOnly": true,
          "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."
          ]
        },
        "notAllowlistedError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CUSTOMER_NOT_ALLOWLISTED_FOR_THIS_FEATURE"
          ],
          "description": "Output only. Not allowlisted error.",
          "readOnly": true,
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Customer is not allowlisted for accessing this feature."
          ],
          "type": "string"
        },
        "distinctError": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DUPLICATE_ELEMENT",
            "DUPLICATE_TYPE"
          ],
          "description": "Output only. Distinct error.",
          "readOnly": true,
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Duplicate element.",
            "Duplicate type."
          ]
        },
        "stringFormatError": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ILLEGAL_CHARS",
            "INVALID_FORMAT"
          ],
          "description": "Output only. String format error.",
          "readOnly": true,
          "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."
          ]
        },
        "stringLengthError": {
          "type": "string",
          "description": "Output only. String length error.",
          "readOnly": true,
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The specified field should have a least one non-whitespace character in it.",
            "Too short.",
            "Too long."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EMPTY",
            "TOO_SHORT",
            "TOO_LONG"
          ]
        },
        "conversionUploadError": {
          "type": "string",
          "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"
          ],
          "description": "Output only. Conversion upload error.",
          "readOnly": true,
          "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."
          ]
        },
        "mutateError": {
          "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": "Output only. Mutate error.",
          "readOnly": true,
          "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."
          ],
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__OfflineConversionError",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateAdGroupAssetSetsResponse": {
      "description": "Response message for an ad group asset set mutate.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (e.g. auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateAdGroupAssetSetResult"
          },
          "description": "All results for the mutate.",
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateAdGroupAssetSetsResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__BusinessMessageAsset": {
      "id": "GoogleAdsGoogleadsV24Common__BusinessMessageAsset",
      "type": "object",
      "description": "A business message asset.",
      "properties": {
        "callToAction": {
          "description": "A call to action for the business message asset.",
          "$ref": "GoogleAdsGoogleadsV24Common__BusinessMessageCallToActionInfo"
        },
        "starterMessage": {
          "type": "string",
          "description": "Required. A welcome message to prompt the user to initiate a conversation."
        },
        "facebookMessengerInfo": {
          "description": "Facebook Messenger.",
          "$ref": "GoogleAdsGoogleadsV24Common__FacebookMessengerBusinessMessageInfo"
        },
        "whatsappInfo": {
          "description": "Whatsapp.",
          "$ref": "GoogleAdsGoogleadsV24Common__WhatsappBusinessMessageInfo"
        },
        "zaloInfo": {
          "description": "Zalo.",
          "$ref": "GoogleAdsGoogleadsV24Common__ZaloBusinessMessageInfo"
        },
        "messageProvider": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "WHATSAPP",
            "FACEBOOK_MESSENGER",
            "ZALO"
          ],
          "description": "Required. Message provider of the business message asset.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "WhatsApp message provider",
            "Facebook Messenger message provider",
            "Zalo message provider"
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateSmartCampaignSettingResult": {
      "description": "The result for the Smart campaign setting mutate.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        },
        "smartCampaignSetting": {
          "description": "The mutated Smart campaign setting with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV24Resources__SmartCampaignSetting"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateSmartCampaignSettingResult",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__CampaignLifecycleGoalOperation": {
      "description": "A single operation on a campaign lifecycle goal.",
      "properties": {
        "create": {
          "description": "Create operation: Create a new campaign lifecycle goal. The campaign field should be set for this operation.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CampaignLifecycleGoal"
        },
        "updateMask": {
          "type": "string",
          "description": "Optional. FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask"
        },
        "update": {
          "description": "Update operation: Update an existing campaign lifecycle goal. The campaign field should not be set for this operation.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CampaignLifecycleGoal"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__CampaignLifecycleGoalOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__KeywordPlanAggregateMetrics": {
      "description": "The aggregate metrics specification of the request.",
      "properties": {
        "aggregateMetricTypes": {
          "description": "The list of aggregate metrics to fetch data.",
          "items": {
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "DEVICE"
            ],
            "enumDescriptions": [
              "Not specified.",
              "The value is unknown in this version.",
              "The device breakdown of aggregate search volume."
            ],
            "type": "string"
          },
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__KeywordPlanAggregateMetrics",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services_SuggestSmartCampaignBudgetOptionsResponse_Metrics": {
      "description": "Performance metrics for a given budget option.",
      "properties": {
        "maxDailyClicks": {
          "type": "string",
          "description": "The estimated max daily clicks.",
          "format": "int64"
        },
        "minDailyClicks": {
          "description": "The estimated min daily clicks.",
          "format": "int64",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services_SuggestSmartCampaignBudgetOptionsResponse_Metrics",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__CustomerManagerLink": {
      "description": "Represents customer-manager link relationship.",
      "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": {
          "type": "string",
          "description": "Output only. The manager customer linked to the customer.",
          "readOnly": true
        },
        "managerLinkId": {
          "type": "string",
          "description": "Output only. ID of the customer-manager link. This field is read only.",
          "readOnly": true,
          "format": "int64"
        },
        "status": {
          "description": "Status of the link between the customer and the manager.",
          "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"
          ],
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__CustomerManagerLink",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateCampaignConversionGoalsResponse": {
      "description": "Response message for a campaign conversion goal mutate.",
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateCampaignConversionGoalResult"
          },
          "description": "All results for the mutate."
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateCampaignConversionGoalsResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateBiddingDataExclusionsResponse": {
      "id": "GoogleAdsGoogleadsV24Services__MutateBiddingDataExclusionsResponse",
      "type": "object",
      "description": "Response message for data exclusions mutate.",
      "properties": {
        "results": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateBiddingDataExclusionsResult"
          },
          "description": "All results for the mutate.",
          "type": "array"
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_Campaign_TextGuidelines": {
      "description": "Settings to control automatically generated text assets.",
      "properties": {
        "termExclusions": {
          "type": "array",
          "description": "Exact words or phrases that will be excluded from generated text assets. At most 25 exclusions may be provided. Valid exclusions may contain a maximum of 30 characters.",
          "items": {
            "type": "string"
          }
        },
        "messagingRestrictions": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Resources_Campaign_MessagingRestriction"
          },
          "description": "Freeform instructions that will be used to guide text asset generation using LLM inference. At most 40 restrictions may be provided."
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_Campaign_TextGuidelines",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_Campaign_OptimizationGoalSetting": {
      "id": "GoogleAdsGoogleadsV24Resources_Campaign_OptimizationGoalSetting",
      "type": "object",
      "description": "Optimization goal setting for this campaign, which includes a set of optimization goal types.",
      "properties": {
        "optimizationGoalTypes": {
          "description": "The list of optimization goal types.",
          "items": {
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "CALL_CLICKS",
              "DRIVING_DIRECTIONS",
              "APP_PRE_REGISTRATION"
            ],
            "enumDescriptions": [
              "Not specified.",
              "Used as a return value only. Represents value unknown in this version.",
              "Optimize for call clicks. Call click conversions are times people selected 'Call' to contact a store after viewing an ad.",
              "Optimize for driving directions. Driving directions conversions are times people selected 'Get directions' to navigate to a store after viewing an ad.",
              "Optimize for pre-registration. Pre-registration conversions are the number of pre-registration signups to receive a notification when the app is released."
            ],
            "type": "string"
          },
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV24Errors__GoogleAdsError": {
      "description": "GoogleAds-specific error.",
      "properties": {
        "message": {
          "description": "A human-readable description of the error.",
          "type": "string"
        },
        "trigger": {
          "description": "The value that triggered the error.",
          "$ref": "GoogleAdsGoogleadsV24Common__Value"
        },
        "location": {
          "description": "Describes the part of the request proto that caused the error.",
          "$ref": "GoogleAdsGoogleadsV24Errors__ErrorLocation"
        },
        "details": {
          "description": "Additional error details, which are returned by certain error codes. Most error codes do not include details.",
          "$ref": "GoogleAdsGoogleadsV24Errors__ErrorDetails"
        },
        "errorCode": {
          "description": "An enum value that indicates which error occurred.",
          "$ref": "GoogleAdsGoogleadsV24Errors__ErrorCode"
        }
      },
      "id": "GoogleAdsGoogleadsV24Errors__GoogleAdsError",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__LabelOperation": {
      "id": "GoogleAdsGoogleadsV24Services__LabelOperation",
      "type": "object",
      "description": "A single operation (create, remove, update) on a label.",
      "properties": {
        "update": {
          "description": "Update operation: The label is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV24Resources__Label"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the label being removed, in this format: `customers/{customer_id}/labels/{label_id}`"
        },
        "updateMask": {
          "type": "string",
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new label.",
          "$ref": "GoogleAdsGoogleadsV24Resources__Label"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateUserListResult": {
      "description": "The result for the user list mutate.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateUserListResult",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__SuggestTravelAssetsResponse": {
      "id": "GoogleAdsGoogleadsV24Services__SuggestTravelAssetsResponse",
      "type": "object",
      "description": "Response message for TravelAssetSuggestionService.SuggestTravelAssets.",
      "properties": {
        "hotelAssetSuggestions": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__HotelAssetSuggestion"
          },
          "description": "Asset suggestions for each place ID submitted in the request."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__BenchmarksSourceMetadata": {
      "id": "GoogleAdsGoogleadsV24Services__BenchmarksSourceMetadata",
      "type": "object",
      "description": "The metadata associated with a benchmarks source.",
      "properties": {
        "industryVerticalInfo": {
          "description": "Information on the Industry Vertical.",
          "$ref": "GoogleAdsGoogleadsV24Services__IndustryVerticalInfo"
        },
        "benchmarksSourceType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INDUSTRY_VERTICAL"
          ],
          "description": "The type of benchmarks source.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "The classification of ad categories for benchmarking. (for example, \"Technology\" or \"Finance\")."
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__ListAccessibleCustomersResponse": {
      "description": "Response message for CustomerService.ListAccessibleCustomers.",
      "properties": {
        "resourceNames": {
          "type": "array",
          "description": "Resource name of customers directly accessible by the user authenticating the call.",
          "items": {
            "type": "string"
          }
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__ListAccessibleCustomersResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__KeywordPlanAggregateMetricResults": {
      "id": "GoogleAdsGoogleadsV24Common__KeywordPlanAggregateMetricResults",
      "type": "object",
      "description": "The aggregated historical metrics for keyword plan keywords.",
      "properties": {
        "deviceSearches": {
          "type": "array",
          "description": "The aggregate searches for all the keywords segmented by device for the specified time. Supports the following device types: MOBILE, TABLET, DESKTOP. This is only set when KeywordPlanAggregateMetricTypeEnum.DEVICE is set in the KeywordPlanAggregateMetrics field in the request.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__KeywordPlanDeviceSearches"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__AudienceSegment": {
      "id": "GoogleAdsGoogleadsV24Common__AudienceSegment",
      "type": "object",
      "description": "Positive audience segment.",
      "properties": {
        "userList": {
          "description": "User list segment.",
          "$ref": "GoogleAdsGoogleadsV24Common__UserListSegment"
        },
        "detailedDemographic": {
          "description": "Detailed demographic segment.",
          "$ref": "GoogleAdsGoogleadsV24Common__DetailedDemographicSegment"
        },
        "lifeEvent": {
          "description": "Live-event audience segment.",
          "$ref": "GoogleAdsGoogleadsV24Common__LifeEventSegment"
        },
        "customAudience": {
          "description": "Custom audience segment.",
          "$ref": "GoogleAdsGoogleadsV24Common__CustomAudienceSegment"
        },
        "userInterest": {
          "description": "Affinity or In-market segment.",
          "$ref": "GoogleAdsGoogleadsV24Common__UserInterestSegment"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateAdResult": {
      "id": "GoogleAdsGoogleadsV24Services__MutateAdResult",
      "type": "object",
      "description": "The result for the ad mutate.",
      "properties": {
        "ad": {
          "description": "The mutated ad with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV24Resources__Ad"
        },
        "resourceName": {
          "description": "The resource name returned for successful operations.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__ListingGroupFilterDimension": {
      "description": "Listing dimensions for the asset group listing group filter.",
      "properties": {
        "productType": {
          "description": "Type of a product offer.",
          "$ref": "GoogleAdsGoogleadsV24Resources_ListingGroupFilterDimension_ProductType"
        },
        "productItemId": {
          "description": "Item id of a product offer.",
          "$ref": "GoogleAdsGoogleadsV24Resources_ListingGroupFilterDimension_ProductItemId"
        },
        "webpage": {
          "description": "Filters for URLs in a page feed and URLs from the advertiser web domain.",
          "$ref": "GoogleAdsGoogleadsV24Resources_ListingGroupFilterDimension_Webpage"
        },
        "productCustomAttribute": {
          "description": "Custom attribute of a product offer.",
          "$ref": "GoogleAdsGoogleadsV24Resources_ListingGroupFilterDimension_ProductCustomAttribute"
        },
        "productCategory": {
          "description": "Category of a product offer.",
          "$ref": "GoogleAdsGoogleadsV24Resources_ListingGroupFilterDimension_ProductCategory"
        },
        "productBrand": {
          "description": "Brand of a product offer.",
          "$ref": "GoogleAdsGoogleadsV24Resources_ListingGroupFilterDimension_ProductBrand"
        },
        "productChannel": {
          "description": "Locality of a product offer.",
          "$ref": "GoogleAdsGoogleadsV24Resources_ListingGroupFilterDimension_ProductChannel"
        },
        "productCondition": {
          "description": "Condition of a product offer.",
          "$ref": "GoogleAdsGoogleadsV24Resources_ListingGroupFilterDimension_ProductCondition"
        },
        "retailFilterBundle": {
          "description": "Dimension for Retail Product Tags.",
          "$ref": "GoogleAdsGoogleadsV24Resources_ListingGroupFilterDimension_RetailFilterBundle"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__ListingGroupFilterDimension",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateBiddingSeasonalityAdjustmentsRequest": {
      "id": "GoogleAdsGoogleadsV24Services__MutateBiddingSeasonalityAdjustmentsRequest",
      "type": "object",
      "description": "Request message for BiddingSeasonalityAdjustmentService.MutateBiddingSeasonalityAdjustments.",
      "properties": {
        "operations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__BiddingSeasonalityAdjustmentOperation"
          },
          "description": "Required. The list of operations to perform on individual seasonality adjustments.",
          "type": "array"
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "responseContentType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ]
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__BatchJob": {
      "id": "GoogleAdsGoogleadsV24Resources__BatchJob",
      "type": "object",
      "description": "A list of mutates being processed asynchronously. The mutates are uploaded by the user. The mutates themselves aren't readable and the results of the job can only be read using BatchJobService.ListBatchJobResults.",
      "properties": {
        "status": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PENDING",
            "RUNNING",
            "DONE"
          ],
          "description": "Output only. Status of this batch job.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The job is not currently running.",
            "The job is running.",
            "The job is done."
          ],
          "type": "string"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the batch job. Batch job resource names have the form: `customers/{customer_id}/batchJobs/{batch_job_id}`"
        },
        "id": {
          "type": "string",
          "description": "Output only. ID of this batch job.",
          "readOnly": true,
          "format": "int64"
        },
        "nextAddSequenceToken": {
          "type": "string",
          "description": "Output only. The next sequence token to use when adding operations. Only set when the batch job status is PENDING.",
          "readOnly": true
        },
        "longRunningOperation": {
          "type": "string",
          "description": "Output only. The resource name of the long-running operation that can be used to poll for completion. Only set when the batch job status is RUNNING or DONE.",
          "readOnly": true
        },
        "metadata": {
          "description": "Output only. Contains additional information about this batch job.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_BatchJob_BatchJobMetadata"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__KnowledgeGraphAttributeMetadata": {
      "id": "GoogleAdsGoogleadsV24Common__KnowledgeGraphAttributeMetadata",
      "type": "object",
      "description": "Metadata associated with a Knowledge Graph Entity attribute.",
      "properties": {
        "entityCapabilities": {
          "type": "array",
          "description": "The capabilities of the entity used in ContentCreatorInsightsService.",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "The value is unknown in this version.",
              "An entity that is supported to use as a trending topic in ContentCreatorInsightsService.GenerateTrendingInsights.",
              "An entity that is supported to use as a creator attribute in ContentCreatorInsightsService.GenerateCreatorInsights."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "CONTENT_TRENDING_INSIGHTS",
              "CREATOR_ATTRIBUTE"
            ]
          }
        },
        "relatedCategories": {
          "type": "array",
          "description": "A list of CATEGORY attributes related to this entity.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AudienceInsightsAttributeMetadata"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__AdvertisingPartnerProperties": {
      "description": "Properties specific to an Advertising Partner link.",
      "properties": {
        "allowedDomain": {
          "description": "Output only. The allowed domain for the Advertising Partner link. The advertising partner will only be able to advertise on this domain. The field is immutable.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__AdvertisingPartnerProperties",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__ProductCategoryInfo": {
      "id": "GoogleAdsGoogleadsV24Common__ProductCategoryInfo",
      "type": "object",
      "description": "Category of a product offer.",
      "properties": {
        "level": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "LEVEL1",
            "LEVEL2",
            "LEVEL3",
            "LEVEL4",
            "LEVEL5"
          ],
          "description": "Level of the product category.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Level 1.",
            "Level 2.",
            "Level 3.",
            "Level 4.",
            "Level 5."
          ],
          "type": "string"
        },
        "categoryId": {
          "type": "string",
          "description": "ID of the product category. This ID is equivalent to the google_product_category ID as described in this article: https://support.google.com/merchants/answer/6324436",
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateConversionValueRuleSetResult": {
      "id": "GoogleAdsGoogleadsV24Services__MutateConversionValueRuleSetResult",
      "type": "object",
      "description": "The result for the conversion value rule set mutate.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        },
        "conversionValueRuleSet": {
          "description": "The mutated conversion value rule set with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV24Resources__ConversionValueRuleSet"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__UserIdentifier": {
      "description": "User identifying information.",
      "properties": {
        "hashedEmail": {
          "description": "Hashed email address using SHA-256 hash function after normalization. Accepted for Customer Match, Store Sales, ConversionUploadService, and ConversionAdjustmentUploadService.",
          "type": "string"
        },
        "addressInfo": {
          "description": "Address information. Accepted only for Customer Match, Store Sales, and ConversionAdjustmentUploadService.",
          "$ref": "GoogleAdsGoogleadsV24Common__OfflineUserAddressInfo"
        },
        "hashedPhoneNumber": {
          "type": "string",
          "description": "Hashed phone number using SHA-256 hash function after normalization (E164 standard). Accepted for Customer Match, Store Sales, ConversionUploadService, and ConversionAdjustmentUploadService."
        },
        "thirdPartyUserId": {
          "type": "string",
          "description": "Advertiser-assigned user ID for Customer Match upload, or third-party-assigned user ID for Store Sales. Accepted only for Customer Match and Store Sales."
        },
        "mobileId": {
          "type": "string",
          "description": "Mobile device ID (advertising ID/IDFA). Accepted only for Customer Match."
        },
        "userIdentifierSource": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "FIRST_PARTY",
            "THIRD_PARTY"
          ],
          "description": "Source of the user identifier when the upload is from Store Sales, ConversionUploadService, or ConversionAdjustmentUploadService.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version",
            "Indicates that the user identifier was provided by the first party (advertiser).",
            "Indicates that the user identifier was provided by the third party (partner)."
          ]
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__UserIdentifier",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateCustomerClientLinkRequest": {
      "description": "Request message for CustomerClientLinkService.MutateCustomerClientLink.",
      "properties": {
        "operation": {
          "description": "Required. The operation to perform on the individual CustomerClientLink.",
          "$ref": "GoogleAdsGoogleadsV24Services__CustomerClientLinkOperation"
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateCustomerClientLinkRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__AudienceInsightsLineup": {
      "id": "GoogleAdsGoogleadsV24Common__AudienceInsightsLineup",
      "type": "object",
      "description": "A YouTube Lineup.",
      "properties": {
        "lineupId": {
          "type": "string",
          "description": "Required. The numeric ID of the lineup."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateKeywordPlanAdGroupsRequest": {
      "id": "GoogleAdsGoogleadsV24Services__MutateKeywordPlanAdGroupsRequest",
      "type": "object",
      "description": "Request message for KeywordPlanAdGroupService.MutateKeywordPlanAdGroups.",
      "properties": {
        "operations": {
          "description": "Required. The list of operations to perform on individual Keyword Plan ad groups.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__KeywordPlanAdGroupOperation"
          },
          "type": "array"
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__TopicView": {
      "id": "GoogleAdsGoogleadsV24Resources__TopicView",
      "type": "object",
      "description": "A topic view.",
      "properties": {
        "resourceName": {
          "description": "Output only. The resource name of the topic view. Topic view resource names have the form: `customers/{customer_id}/topicViews/{ad_group_id}~{criterion_id}`",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services_GenerateRecommendationsRequest_AssetGroupInfo": {
      "description": "Current AssetGroup information of the campaign.",
      "properties": {
        "finalUrl": {
          "type": "string",
          "description": "Required. Current url of the asset group. This field is necessary for the following recommendation_types if asset_group_info is set: CAMPAIGN_BUDGET"
        },
        "description": {
          "description": "Optional. Current descriptions of the asset group. This field is optional for the following recommendation_types if asset_group_info is set: CAMPAIGN_BUDGET",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "headline": {
          "type": "array",
          "description": "Optional. Current headlines of the asset group. This field is optional for the following recommendation_types if asset_group_info is set: CAMPAIGN_BUDGET",
          "items": {
            "type": "string"
          }
        }
      },
      "id": "GoogleAdsGoogleadsV24Services_GenerateRecommendationsRequest_AssetGroupInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__TargetRoasSimulationPointList": {
      "id": "GoogleAdsGoogleadsV24Common__TargetRoasSimulationPointList",
      "type": "object",
      "description": "A container for simulation points for simulations of type TARGET_ROAS.",
      "properties": {
        "points": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__TargetRoasSimulationPoint"
          },
          "description": "Projected metrics for a series of target ROAS amounts.",
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__PlannedProductForecast": {
      "id": "GoogleAdsGoogleadsV24Services__PlannedProductForecast",
      "type": "object",
      "description": "Forecasted traffic metrics for a planned product.",
      "properties": {
        "totalReach": {
          "type": "string",
          "description": "Number of unique people reached. This includes people that may fall outside the specified Targeting. Note that a minimum number of unique people must be reached in order for data to be reported. If the minimum number is not met, the total_reach value will be rounded to 0.",
          "format": "int64"
        },
        "onTargetCoviewReach": {
          "type": "string",
          "description": "Number of unique people reached that exactly matches the Targeting including co-viewers.",
          "format": "int64"
        },
        "conversions": {
          "description": "The number of conversions. This metric is only available for DEMAND_GEN plannable products. See https://support.google.com/google-ads/answer/2375431 for more information on conversions.",
          "format": "double",
          "type": "number"
        },
        "averageFrequency": {
          "description": "The number of times per selected time unit a user will see an ad, averaged over the number of time units in the forecast length. This field will only be populated for a Target Frequency campaign. See https://support.google.com/google-ads/answer/12400225 for more information about Target Frequency campaigns.",
          "format": "double",
          "type": "number"
        },
        "onTargetReach": {
          "description": "Number of unique people reached that exactly matches the Targeting. Note that a minimum number of unique people must be reached in order for data to be reported. If the minimum number is not met, the on_target_reach value will be rounded to 0.",
          "format": "int64",
          "type": "string"
        },
        "totalCoviewImpressions": {
          "type": "string",
          "description": "Total number of ad impressions including co-viewers. This includes impressions that may fall outside the specified Targeting, due to insufficient information on signed-in users.",
          "format": "int64"
        },
        "totalCoviewReach": {
          "description": "Number of unique people reached including co-viewers. This includes people that may fall outside the specified Targeting.",
          "format": "int64",
          "type": "string"
        },
        "clicks": {
          "description": "The number of clicks, which is the main user action associated with an ad format of bid type CPC (Cost-Per-Click). See https://support.google.com/google-ads/answer/31799 for more information on clicks.",
          "format": "int64",
          "type": "string"
        },
        "onTargetImpressions": {
          "type": "string",
          "description": "Number of ad impressions that exactly matches the Targeting.",
          "format": "int64"
        },
        "trueviewViews": {
          "description": "Number of ad views forecasted for the specified product and targeting. A TrueView View is counted when a viewer views a larger portion or the entirety of an ad beyond an impression. See https://support.google.com/google-ads/answer/2375431 for more information on TrueView Views.",
          "format": "int64",
          "type": "string"
        },
        "viewableImpressions": {
          "type": "string",
          "description": "Number of times the ad's impressions were considered viewable. See https://support.google.com/google-ads/answer/7029393 for more information about what makes an ad viewable and how viewability is measured.",
          "format": "int64"
        },
        "totalImpressions": {
          "type": "string",
          "description": "Total number of ad impressions. This includes impressions that may fall outside the specified Targeting, due to insufficient information on signed-in users.",
          "format": "int64"
        },
        "onTargetCoviewImpressions": {
          "type": "string",
          "description": "Number of ad impressions that exactly matches the Targeting including co-viewers.",
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services_DismissRecommendationResponse_DismissRecommendationResult": {
      "id": "GoogleAdsGoogleadsV24Services_DismissRecommendationResponse_DismissRecommendationResult",
      "type": "object",
      "description": "The result of dismissing a recommendation.",
      "properties": {
        "resourceName": {
          "description": "Returned for successful dismissals.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateSharedCriterionResult": {
      "id": "GoogleAdsGoogleadsV24Services__MutateSharedCriterionResult",
      "type": "object",
      "description": "The result for the shared criterion mutate.",
      "properties": {
        "sharedCriterion": {
          "description": "The mutated shared criterion with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV24Resources__SharedCriterion"
        },
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__SurveySatisfied": {
      "description": "Details about various factors for being satisfied with the lead.",
      "properties": {
        "surveySatisfiedReason": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "OTHER_SATISFIED_REASON",
            "BOOKED_CUSTOMER",
            "LIKELY_BOOKED_CUSTOMER",
            "SERVICE_RELATED",
            "HIGH_VALUE_SERVICE"
          ],
          "description": "Required. Provider's reason for being satisfied with the lead.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Other reasons.",
            "Lead converted into a booked customer or client.",
            "Lead could convert into a booked customer or client soon.",
            "Lead was related to the services the business offers.",
            "Lead was for a service that generates high value for the business."
          ]
        },
        "otherReasonComment": {
          "type": "string",
          "description": "Optional. Provider's free form comments. This field is required when OTHER_SATISFIED_REASON is selected as the reason."
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__SurveySatisfied",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__YouTubeVideoListAsset": {
      "id": "GoogleAdsGoogleadsV24Common__YouTubeVideoListAsset",
      "type": "object",
      "description": "A YouTube video list asset.",
      "properties": {
        "youtubeVideos": {
          "type": "array",
          "description": "List of videos. Each is a reference to a YouTube video asset. Minimum of 2 videos required and maximum of 5 allowed.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdVideoAsset"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__OfflineConversionUploadClientSummary": {
      "description": "Offline conversion upload summary at customer level.",
      "properties": {
        "dailySummaries": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Resources__OfflineConversionSummary"
          },
          "description": "Output only. Summary of history stats by last N days.",
          "readOnly": true,
          "type": "array"
        },
        "client": {
          "description": "Output only. Client type of the upload event.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Google Ads API.",
            "Google Ads web client, which could include multiple sources like Ads UI, SFTP, etc.",
            "Connection platform."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "GOOGLE_ADS_API",
            "GOOGLE_ADS_WEB_CLIENT",
            "ADS_DATA_CONNECTOR"
          ],
          "type": "string"
        },
        "alerts": {
          "type": "array",
          "description": "Output only. Details for each error code. Alerts are generated from most recent calendar day with upload stats.",
          "readOnly": true,
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Resources__OfflineConversionAlert"
          }
        },
        "totalEventCount": {
          "description": "Output only. Total count of uploaded events.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "successRate": {
          "type": "number",
          "description": "Output only. Successful rate.",
          "readOnly": true,
          "format": "double"
        },
        "jobSummaries": {
          "type": "array",
          "description": "Output only. Summary of history stats by last N jobs.",
          "readOnly": true,
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Resources__OfflineConversionSummary"
          }
        },
        "pendingRate": {
          "description": "Output only. The ratio of total pending events to total events.",
          "readOnly": true,
          "format": "double",
          "type": "number"
        },
        "status": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EXCELLENT",
            "GOOD",
            "NEEDS_ATTENTION",
            "NO_RECENT_UPLOAD"
          ],
          "description": "Output only. Overall status for offline conversion client summary. Status is generated from most recent calendar day with upload stats.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Your offline data ingestion setup is active and optimal for downstream processing.",
            "Your offline ingestion setup is active, but there are further improvements you could make. See alerts.",
            "Your offline ingestion setup is active, but there are errors that require your attention. See alerts.",
            "Your offline ingestion setup has not received data in the last 28 days, there may be something wrong."
          ]
        },
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the offline conversion upload summary at customer level. Offline conversion upload client summary resource names have the form: `customers/{customer_id}/offlineConversionUploadClientSummaries/{client}`",
          "readOnly": true
        },
        "pendingEventCount": {
          "description": "Output only. Total count of pending uploaded events.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "successfulEventCount": {
          "type": "string",
          "description": "Output only. Total count of successful uploaded events.",
          "readOnly": true,
          "format": "int64"
        },
        "lastUploadDateTime": {
          "type": "string",
          "description": "Output only. Date for the latest upload batch. The format is \"yyyy-mm-dd hh:mm:ss\", and it's in the time zone of the Google Ads account.",
          "readOnly": true
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__OfflineConversionUploadClientSummary",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__UserList": {
      "id": "GoogleAdsGoogleadsV24Resources__UserList",
      "type": "object",
      "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`.",
      "properties": {
        "closingReason": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "UNUSED"
          ],
          "description": "Indicating the reason why this user list membership status is closed. It is only populated on lists that were automatically closed due to inactivity, and will be cleared once the list membership status becomes open.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The userlist was closed because of not being used for over one year."
          ],
          "type": "string"
        },
        "crmBasedUserList": {
          "description": "User list of CRM users provided by the advertiser.",
          "$ref": "GoogleAdsGoogleadsV24Common__CrmBasedUserListInfo"
        },
        "matchRatePercentage": {
          "description": "Output only. Indicates match rate for Customer Match lists. The range of this field is [0-100]. This will be null for other list types or when it's not possible to calculate the match rate. This field is read-only.",
          "readOnly": true,
          "format": "int32",
          "type": "integer"
        },
        "sizeForSearch": {
          "type": "string",
          "description": "Output only. Estimated number of users in this user list in the google.com domain. These are the users available for targeting in Search campaigns. This value is null if the number of users has not yet been determined. This field is read-only.",
          "readOnly": true,
          "format": "int64"
        },
        "basicUserList": {
          "description": "User list targeting as a collection of conversion or remarketing actions.",
          "$ref": "GoogleAdsGoogleadsV24Common__BasicUserListInfo"
        },
        "lookalikeUserList": {
          "description": "Immutable. Lookalike User List.",
          "$ref": "GoogleAdsGoogleadsV24Common__LookalikeUserListInfo"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the user list. User list resource names have the form: `customers/{customer_id}/userLists/{user_list_id}`"
        },
        "type": {
          "type": "string",
          "description": "Output only. Type of this list. This field is read-only.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "UserList represented as a collection of conversion types.",
            "UserList represented as a combination of other user lists/interests.",
            "UserList created in the Google Ad Manager platform.",
            "UserList associated with a rule.",
            "UserList with users similar to users of another UserList.",
            "UserList of first-party CRM data provided by advertiser in the form of emails or other formats.",
            "LookalikeUserlist, composed of users similar to those of a configurable seed (set of UserLists)"
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "REMARKETING",
            "LOGICAL",
            "EXTERNAL_REMARKETING",
            "RULE_BASED",
            "SIMILAR",
            "CRM_BASED",
            "LOOKALIKE"
          ]
        },
        "readOnly": {
          "description": "Output only. An option that indicates if a user may edit a list. Depends on the list ownership and list type. For example, external remarketing user lists are not editable. This field is read-only.",
          "readOnly": true,
          "type": "boolean"
        },
        "sizeRangeForDisplay": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "LESS_THAN_FIVE_HUNDRED",
            "LESS_THAN_ONE_THOUSAND",
            "ONE_THOUSAND_TO_TEN_THOUSAND",
            "TEN_THOUSAND_TO_FIFTY_THOUSAND",
            "FIFTY_THOUSAND_TO_ONE_HUNDRED_THOUSAND",
            "ONE_HUNDRED_THOUSAND_TO_THREE_HUNDRED_THOUSAND",
            "THREE_HUNDRED_THOUSAND_TO_FIVE_HUNDRED_THOUSAND",
            "FIVE_HUNDRED_THOUSAND_TO_ONE_MILLION",
            "ONE_MILLION_TO_TWO_MILLION",
            "TWO_MILLION_TO_THREE_MILLION",
            "THREE_MILLION_TO_FIVE_MILLION",
            "FIVE_MILLION_TO_TEN_MILLION",
            "TEN_MILLION_TO_TWENTY_MILLION",
            "TWENTY_MILLION_TO_THIRTY_MILLION",
            "THIRTY_MILLION_TO_FIFTY_MILLION",
            "OVER_FIFTY_MILLION"
          ],
          "description": "Output only. Size range in terms of number of users of the UserList, on the Google Display Network. This field is read-only.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "User list has less than 500 users.",
            "User list has number of users in range of 500 to 1000.",
            "User list has number of users in range of 1000 to 10000.",
            "User list has number of users in range of 10000 to 50000.",
            "User list has number of users in range of 50000 to 100000.",
            "User list has number of users in range of 100000 to 300000.",
            "User list has number of users in range of 300000 to 500000.",
            "User list has number of users in range of 500000 to 1 million.",
            "User list has number of users in range of 1 to 2 millions.",
            "User list has number of users in range of 2 to 3 millions.",
            "User list has number of users in range of 3 to 5 millions.",
            "User list has number of users in range of 5 to 10 millions.",
            "User list has number of users in range of 10 to 20 millions.",
            "User list has number of users in range of 20 to 30 millions.",
            "User list has number of users in range of 30 to 50 millions.",
            "User list has over 50 million users."
          ]
        },
        "ruleBasedUserList": {
          "description": "User list generated by a rule.",
          "$ref": "GoogleAdsGoogleadsV24Common__RuleBasedUserListInfo"
        },
        "membershipStatus": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "OPEN",
            "CLOSED"
          ],
          "description": "Membership status of this user list. Indicates whether a user list is open or active. Only open user lists can accumulate more users and can be targeted to.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Open status - List is accruing members and can be targeted to.",
            "Closed status - No new members being added. Cannot be used for targeting."
          ],
          "type": "string"
        },
        "description": {
          "type": "string",
          "description": "Description of this user list."
        },
        "sizeRangeForSearch": {
          "type": "string",
          "description": "Output only. Size range in terms of number of users of the UserList, for Search ads. This field is read-only.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "User list has less than 500 users.",
            "User list has number of users in range of 500 to 1000.",
            "User list has number of users in range of 1000 to 10000.",
            "User list has number of users in range of 10000 to 50000.",
            "User list has number of users in range of 50000 to 100000.",
            "User list has number of users in range of 100000 to 300000.",
            "User list has number of users in range of 300000 to 500000.",
            "User list has number of users in range of 500000 to 1 million.",
            "User list has number of users in range of 1 to 2 millions.",
            "User list has number of users in range of 2 to 3 millions.",
            "User list has number of users in range of 3 to 5 millions.",
            "User list has number of users in range of 5 to 10 millions.",
            "User list has number of users in range of 10 to 20 millions.",
            "User list has number of users in range of 20 to 30 millions.",
            "User list has number of users in range of 30 to 50 millions.",
            "User list has over 50 million users."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "LESS_THAN_FIVE_HUNDRED",
            "LESS_THAN_ONE_THOUSAND",
            "ONE_THOUSAND_TO_TEN_THOUSAND",
            "TEN_THOUSAND_TO_FIFTY_THOUSAND",
            "FIFTY_THOUSAND_TO_ONE_HUNDRED_THOUSAND",
            "ONE_HUNDRED_THOUSAND_TO_THREE_HUNDRED_THOUSAND",
            "THREE_HUNDRED_THOUSAND_TO_FIVE_HUNDRED_THOUSAND",
            "FIVE_HUNDRED_THOUSAND_TO_ONE_MILLION",
            "ONE_MILLION_TO_TWO_MILLION",
            "TWO_MILLION_TO_THREE_MILLION",
            "THREE_MILLION_TO_FIVE_MILLION",
            "FIVE_MILLION_TO_TEN_MILLION",
            "TEN_MILLION_TO_TWENTY_MILLION",
            "TWENTY_MILLION_TO_THIRTY_MILLION",
            "THIRTY_MILLION_TO_FIFTY_MILLION",
            "OVER_FIFTY_MILLION"
          ]
        },
        "accessReason": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "OWNED",
            "SHARED",
            "LICENSED",
            "SUBSCRIBED",
            "AFFILIATED"
          ],
          "description": "Output only. Indicates the reason this account has been granted access to the list. The reason can be SHARED, OWNED, LICENSED or SUBSCRIBED. This field is read-only.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The resource is owned by the user.",
            "The resource is shared to the user.",
            "The resource is licensed to the user.",
            "The user subscribed to the resource.",
            "The resource is accessible to the user."
          ],
          "type": "string"
        },
        "integrationCode": {
          "type": "string",
          "description": "An ID from external system. It is used by user list sellers to correlate IDs on their systems."
        },
        "eligibleForSearch": {
          "description": "Indicates if this user list is eligible for Google Search Network.",
          "type": "boolean"
        },
        "logicalUserList": {
          "description": "User list that is a custom combination of user lists and user interests.",
          "$ref": "GoogleAdsGoogleadsV24Common__LogicalUserListInfo"
        },
        "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"
        },
        "eligibleForDisplay": {
          "type": "boolean",
          "description": "Output only. Indicates this user list is eligible for Google Display Network. This field is read-only.",
          "readOnly": true
        },
        "similarUserList": {
          "description": "Output only. User list which are similar to users from another UserList. These lists are readonly and automatically created by google.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Common__SimilarUserListInfo"
        },
        "membershipLifeSpan": {
          "description": "Number of days a user's cookie stays on your list since its most recent addition to the list. This field must be between 0 and 540 inclusive. This field is ignored for `logical_user_list` and `rule_based_user_list` types. Membership to lists of these types depends on the rules defined by the lists.",
          "format": "int64",
          "type": "string"
        },
        "sizeForDisplay": {
          "description": "Output only. Estimated number of users in this user list, on the Google Display Network. This value is null if the number of users has not yet been determined. This field is read-only.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "accountUserListStatus": {
          "description": "Indicates if this share is still enabled. When a UserList is shared with the user this field is set to ENABLED. Later the userList owner can decide to revoke the share and make it DISABLED. The default value of this field is set to ENABLED.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The access is enabled.",
            "The access is disabled."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "DISABLED"
          ],
          "type": "string"
        },
        "id": {
          "type": "string",
          "description": "Output only. Id of the user list.",
          "readOnly": true,
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__RemoveCampaignAutomaticallyCreatedAssetOperation": {
      "id": "GoogleAdsGoogleadsV24Services__RemoveCampaignAutomaticallyCreatedAssetOperation",
      "type": "object",
      "description": "A single operation to remove an automatically created asset from a campaign.",
      "properties": {
        "fieldType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE",
            "DESCRIPTION",
            "MANDATORY_AD_TEXT",
            "MARKETING_IMAGE",
            "MEDIA_BUNDLE",
            "YOUTUBE_VIDEO",
            "BOOK_ON_GOOGLE",
            "LEAD_FORM",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "LONG_HEADLINE",
            "BUSINESS_NAME",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "VIDEO",
            "CALL_TO_ACTION_SELECTION",
            "AD_IMAGE",
            "BUSINESS_LOGO",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "TALL_PORTRAIT_MARKETING_IMAGE",
            "RELATED_YOUTUBE_VIDEOS",
            "LANDING_PAGE_PREVIEW",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION"
          ],
          "description": "Required. The field type of the asset to remove.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is linked for use as a headline.",
            "The asset is linked for use as a description.",
            "The asset is linked for use as mandatory ad text.",
            "The asset is linked for use as a marketing image.",
            "The asset is linked for use as a media bundle.",
            "The asset is linked for use as a YouTube video.",
            "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
            "The asset is linked for use as a Lead Form extension.",
            "The asset is linked for use as a Promotion extension.",
            "The asset is linked for use as a Callout extension.",
            "The asset is linked for use as a Structured Snippet extension.",
            "The asset is linked for use as a Sitelink.",
            "The asset is linked for use as a Mobile App extension.",
            "The asset is linked for use as a Hotel Callout extension.",
            "The asset is linked for use as a Call extension.",
            "The asset is linked for use as a Price extension.",
            "The asset is linked for use as a long headline.",
            "The asset is linked for use as a business name.",
            "The asset is linked for use as a square marketing image.",
            "The asset is linked for use as a portrait marketing image.",
            "The asset is linked for use as a logo.",
            "The asset is linked for use as a landscape logo.",
            "The asset is linked for use as a non YouTube logo.",
            "The asset is linked for use to select a call-to-action.",
            "The asset is linked for use to select an ad image.",
            "The asset is linked for use as a business logo.",
            "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
            "The asset is linked for use as a Demand Gen carousel card.",
            "The asset is linked for use as a Business Message.",
            "The asset is linked for use as a tall portrait marketing image.",
            "The asset is linked for use as related YouTube videos.",
            "The asset is linked for use as a landing page preview image.",
            "The asset is linked for use as a long description.",
            "The asset is linked for use as a call-to-action."
          ],
          "type": "string"
        },
        "campaign": {
          "description": "Required. The resource name of the campaign.",
          "type": "string"
        },
        "asset": {
          "description": "Required. The resource name of the asset to remove.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__AssetOperation": {
      "description": "A single operation to create an asset. Supported asset types are YoutubeVideoAsset, MediaBundleAsset, ImageAsset, LeadFormAsset, LocationAsset, and ImageAsset. TextAsset can be created with an Ad inline, but it can also be created apart from an Ad like other assets.",
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new asset.",
          "$ref": "GoogleAdsGoogleadsV24Resources__Asset"
        },
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask",
          "type": "string"
        },
        "update": {
          "description": "Update operation: The asset is expected to have a valid resource name in this format: `customers/{customer_id}/assets/{asset_id}`",
          "$ref": "GoogleAdsGoogleadsV24Resources__Asset"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__AssetOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__AccountBudgetProposal": {
      "id": "GoogleAdsGoogleadsV24Resources__AccountBudgetProposal",
      "type": "object",
      "description": "An account-level budget proposal. All fields prefixed with 'proposed' may not necessarily be applied directly. For example, proposed spending limits may be adjusted before their application. This is true if the 'proposed' field has an 'approved' counterpart, for example, spending limits. Note that the proposal type (proposal_type) changes which fields are required and which must remain empty.",
      "properties": {
        "billingSetup": {
          "description": "Immutable. The resource name of the billing setup associated with this proposal.",
          "type": "string"
        },
        "accountBudget": {
          "description": "Immutable. The resource name of the account-level budget associated with this proposal.",
          "type": "string"
        },
        "proposedSpendingLimitMicros": {
          "type": "string",
          "description": "Immutable. The proposed spending limit in micros. One million is equivalent to one unit.",
          "format": "int64"
        },
        "approvedStartDateTime": {
          "description": "Output only. The approved start date time in yyyy-mm-dd hh:mm:ss format.",
          "readOnly": true,
          "type": "string"
        },
        "id": {
          "description": "Output only. The ID of the proposal.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "proposedStartDateTime": {
          "description": "Immutable. The proposed start date time in yyyy-mm-dd hh:mm:ss format.",
          "type": "string"
        },
        "proposedSpendingLimitType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INFINITE"
          ],
          "description": "Immutable. The proposed spending limit as a well-defined type, for example, INFINITE.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Infinite, indicates unlimited spending power."
          ],
          "type": "string"
        },
        "creationDateTime": {
          "type": "string",
          "description": "Output only. The date time when this account-level budget proposal was created, which is not the same as its approval date time, if applicable.",
          "readOnly": true
        },
        "approvedSpendingLimitType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INFINITE"
          ],
          "description": "Output only. The approved spending limit as a well-defined type, for example, INFINITE.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Infinite, indicates unlimited spending power."
          ]
        },
        "proposedName": {
          "type": "string",
          "description": "Immutable. The name to assign to the account-level budget."
        },
        "approvedEndDateTime": {
          "description": "Output only. The approved end date time in yyyy-mm-dd hh:mm:ss format.",
          "readOnly": true,
          "type": "string"
        },
        "proposalType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CREATE",
            "UPDATE",
            "END",
            "REMOVE"
          ],
          "description": "Immutable. The type of this proposal, for example, END to end the budget associated with this proposal.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Identifies a request to create a new budget.",
            "Identifies a request to edit an existing budget.",
            "Identifies a request to end a budget that has already started.",
            "Identifies a request to remove a budget that hasn't started yet."
          ],
          "type": "string"
        },
        "proposedPurchaseOrderNumber": {
          "description": "Immutable. A purchase order number is a value that enables the user to help them reference this budget in their monthly invoices.",
          "type": "string"
        },
        "proposedEndTimeType": {
          "type": "string",
          "description": "Immutable. The proposed end date time as a well-defined type, for example, FOREVER.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "As soon as possible.",
            "An infinite point in the future."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NOW",
            "FOREVER"
          ]
        },
        "approvedEndTimeType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NOW",
            "FOREVER"
          ],
          "description": "Output only. The approved end date time as a well-defined type, for example, FOREVER.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "As soon as possible.",
            "An infinite point in the future."
          ]
        },
        "resourceName": {
          "description": "Immutable. The resource name of the proposal. AccountBudgetProposal resource names have the form: `customers/{customer_id}/accountBudgetProposals/{account_budget_proposal_id}`",
          "type": "string"
        },
        "status": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PENDING",
            "APPROVED_HELD",
            "APPROVED",
            "CANCELLED",
            "REJECTED"
          ],
          "description": "Output only. The status of this proposal. When a new proposal is created, the status defaults to PENDING.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The proposal is pending approval.",
            "The proposal has been approved but the corresponding billing setup has not. This can occur for proposals that set up the first budget when signing up for billing or when performing a change of bill-to operation.",
            "The proposal has been approved.",
            "The proposal has been cancelled by the user.",
            "The proposal has been rejected by the user, for example, by rejecting an acceptance email."
          ]
        },
        "proposedEndDateTime": {
          "type": "string",
          "description": "Immutable. The proposed end date time in yyyy-mm-dd hh:mm:ss format."
        },
        "approvedSpendingLimitMicros": {
          "description": "Output only. The approved spending limit in micros. One million is equivalent to one unit.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "approvalDateTime": {
          "type": "string",
          "description": "Output only. The date time when this account-level budget was approved, if applicable.",
          "readOnly": true
        },
        "proposedNotes": {
          "type": "string",
          "description": "Immutable. Notes associated with this budget."
        },
        "proposedStartTimeType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NOW",
            "FOREVER"
          ],
          "description": "Immutable. The proposed start date time as a well-defined type, for example, NOW.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "As soon as possible.",
            "An infinite point in the future."
          ],
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__ForecastMetricOptions": {
      "id": "GoogleAdsGoogleadsV24Services__ForecastMetricOptions",
      "type": "object",
      "description": "Controls forecast metrics to return.",
      "properties": {
        "includeCoview": {
          "description": "Indicates whether to include co-view metrics in the response forecast.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__CampaignCustomizer": {
      "id": "GoogleAdsGoogleadsV24Resources__CampaignCustomizer",
      "type": "object",
      "description": "A customizer value for the associated CustomizerAttribute at the Campaign level.",
      "properties": {
        "resourceName": {
          "description": "Immutable. The resource name of the campaign customizer. Campaign customizer resource names have the form: `customers/{customer_id}/campaignCustomizers/{campaign_id}~{customizer_attribute_id}`",
          "type": "string"
        },
        "customizerAttribute": {
          "description": "Required. Immutable. The customizer attribute which is linked to the campaign.",
          "type": "string"
        },
        "value": {
          "description": "Required. The value to associate with the customizer attribute at this level. The value must be of the type specified for the CustomizerAttribute.",
          "$ref": "GoogleAdsGoogleadsV24Common__CustomizerValue"
        },
        "campaign": {
          "description": "Immutable. The campaign to which the customizer attribute is linked.",
          "type": "string"
        },
        "status": {
          "description": "Output only. The status of the campaign customizer.",
          "readOnly": true,
          "enumDescriptions": [
            "The status has not been specified.",
            "The received value is not known in this version.",
            "The customizer value is enabled.",
            "The customizer value is removed."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateConversionValueRuleResult": {
      "id": "GoogleAdsGoogleadsV24Services__MutateConversionValueRuleResult",
      "type": "object",
      "description": "The result for the conversion value rule mutate.",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        },
        "conversionValueRule": {
          "description": "The mutated conversion value rule with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV24Resources__ConversionValueRule"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_AdGroupDemandGenAdGroupSettings_DemandGenChannelControls": {
      "description": "Channel controls for Demand Gen ad groups.",
      "properties": {
        "channelConfig": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CHANNEL_STRATEGY",
            "SELECTED_CHANNELS"
          ],
          "description": "Output only. Channel configuration reflecting which field in the oneof is populated.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "The channel controls configuration uses a general channel strategy; individual channels are not configured separately.",
            "The channel controls configuration explicitly defines the selected channels."
          ]
        },
        "selectedChannels": {
          "description": "Explicitly selected channels. This field should be set with at least one true value when present.",
          "$ref": "GoogleAdsGoogleadsV24Resources_AdGroupDemandGenAdGroupSettingsDemandGenChannelControls_DemandGenSelectedChannels"
        },
        "channelStrategy": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ALL_CHANNELS",
            "ALL_OWNED_AND_OPERATED_CHANNELS"
          ],
          "description": "High level channel strategy.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "All channels are enabled.",
            "All Google-owned and operated channels are enabled; third-party channels (e.g., Display) are disabled."
          ],
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_AdGroupDemandGenAdGroupSettings_DemandGenChannelControls",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__AssetSet": {
      "description": "An asset set representing a collection of assets. Use AssetSetAsset to link an asset to the asset set.",
      "properties": {
        "status": {
          "type": "string",
          "description": "Output only. The status of the asset set. Read-only.",
          "readOnly": true,
          "enumDescriptions": [
            "The status has not been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The asset set is enabled.",
            "The asset set is removed."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ]
        },
        "businessProfileLocationGroup": {
          "description": "Business Profile location group asset set data.",
          "$ref": "GoogleAdsGoogleadsV24Common__BusinessProfileLocationGroup"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the asset set. Asset set resource names have the form: `customers/{customer_id}/assetSets/{asset_set_id}`"
        },
        "id": {
          "description": "Output only. The ID of the asset set.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "hotelPropertyData": {
          "description": "Output only. For Performance Max for travel goals campaigns with a Hotel Center account link. Read-only.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_AssetSet_HotelPropertyData"
        },
        "travelFeedData": {
          "description": "Output only. Travel Feed data. Read-only",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_AssetSet_TravelFeedData"
        },
        "merchantCenterFeed": {
          "description": "Merchant ID and Feed Label from Google Merchant Center.",
          "$ref": "GoogleAdsGoogleadsV24Resources_AssetSet_MerchantCenterFeed"
        },
        "locationSet": {
          "description": "Location asset set data. This will be used for sync level location set. This can only be set if AssetSet's type is LOCATION_SYNC.",
          "$ref": "GoogleAdsGoogleadsV24Common__LocationSet"
        },
        "chainLocationGroup": {
          "description": "Represents information about a Chain dynamic location group. Only applicable if the sync level AssetSet's type is LOCATION_SYNC and sync source is chain.",
          "$ref": "GoogleAdsGoogleadsV24Common__ChainLocationGroup"
        },
        "name": {
          "description": "Required. Name of the asset set. Required. It must have a minimum length of 1 and maximum length of 128.",
          "type": "string"
        },
        "locationGroupParentAssetSetId": {
          "type": "string",
          "description": "Immutable. Parent asset set ID for the asset set where the elements of this asset set come from. For example: the sync level location AssetSet id where the elements in LocationGroup AssetSet come from. This field is required and only applicable for Location Group typed AssetSet.",
          "format": "int64"
        },
        "type": {
          "description": "Required. Immutable. The type of the asset set. Required.",
          "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"
          ],
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__AssetSet",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Actions__ShareablePreview": {
      "description": "A shareable preview with its identifier.",
      "properties": {
        "previewType": {
          "description": "Required. The type of preview to generate.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Request a URL to a preview in the Google Ads UI. The generated URLs are shareable.",
            "Request a URL to a preview of the ad in YouTube. The generated URLs are shareable."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "UI_PREVIEW",
            "YOUTUBE_LIVE_PREVIEW"
          ],
          "type": "string"
        },
        "adGroupAd": {
          "description": "Ad group ad of the shareable preview. Only supported for preview type YOUTUBE_LIVE_PREVIEW. Format: customers/{customer_id}/adGroupAds/{ad_group_id}~{ad_id}",
          "type": "string"
        },
        "assetGroup": {
          "type": "string",
          "description": "Asset group of the shareable preview. Format: customers/{customer_id}/assetGroups/{asset_group_id}"
        }
      },
      "id": "GoogleAdsGoogleadsV24Actions__ShareablePreview",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__AssetsWithFieldType": {
      "id": "GoogleAdsGoogleadsV24Services__AssetsWithFieldType",
      "type": "object",
      "description": "The combination of system asset and field type to remove.",
      "properties": {
        "asset": {
          "description": "Required. The resource name of the asset to be removed.",
          "type": "string"
        },
        "assetFieldType": {
          "description": "Required. The asset field type.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is linked for use as a headline.",
            "The asset is linked for use as a description.",
            "The asset is linked for use as mandatory ad text.",
            "The asset is linked for use as a marketing image.",
            "The asset is linked for use as a media bundle.",
            "The asset is linked for use as a YouTube video.",
            "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
            "The asset is linked for use as a Lead Form extension.",
            "The asset is linked for use as a Promotion extension.",
            "The asset is linked for use as a Callout extension.",
            "The asset is linked for use as a Structured Snippet extension.",
            "The asset is linked for use as a Sitelink.",
            "The asset is linked for use as a Mobile App extension.",
            "The asset is linked for use as a Hotel Callout extension.",
            "The asset is linked for use as a Call extension.",
            "The asset is linked for use as a Price extension.",
            "The asset is linked for use as a long headline.",
            "The asset is linked for use as a business name.",
            "The asset is linked for use as a square marketing image.",
            "The asset is linked for use as a portrait marketing image.",
            "The asset is linked for use as a logo.",
            "The asset is linked for use as a landscape logo.",
            "The asset is linked for use as a non YouTube logo.",
            "The asset is linked for use to select a call-to-action.",
            "The asset is linked for use to select an ad image.",
            "The asset is linked for use as a business logo.",
            "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
            "The asset is linked for use as a Demand Gen carousel card.",
            "The asset is linked for use as a Business Message.",
            "The asset is linked for use as a tall portrait marketing image.",
            "The asset is linked for use as related YouTube videos.",
            "The asset is linked for use as a landing page preview image.",
            "The asset is linked for use as a long description.",
            "The asset is linked for use as a call-to-action."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE",
            "DESCRIPTION",
            "MANDATORY_AD_TEXT",
            "MARKETING_IMAGE",
            "MEDIA_BUNDLE",
            "YOUTUBE_VIDEO",
            "BOOK_ON_GOOGLE",
            "LEAD_FORM",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "LONG_HEADLINE",
            "BUSINESS_NAME",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "VIDEO",
            "CALL_TO_ACTION_SELECTION",
            "AD_IMAGE",
            "BUSINESS_LOGO",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "TALL_PORTRAIT_MARKETING_IMAGE",
            "RELATED_YOUTUBE_VIDEOS",
            "LANDING_PAGE_PREVIEW",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION"
          ],
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__Recommendation": {
      "id": "GoogleAdsGoogleadsV24Resources__Recommendation",
      "type": "object",
      "description": "A recommendation.",
      "properties": {
        "maximizeClicksOptInRecommendation": {
          "description": "Output only. The MaximizeClicks Opt-In recommendation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_MaximizeClicksOptInRecommendation"
        },
        "raiseTargetCpaRecommendation": {
          "description": "Output only. Recommendation to raise Target CPA.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_RaiseTargetCpaRecommendation"
        },
        "lowerTargetRoasRecommendation": {
          "description": "Output only. Recommendation to lower Target ROAS.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_LowerTargetRoasRecommendation"
        },
        "keywordRecommendation": {
          "description": "Output only. The keyword recommendation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_KeywordRecommendation"
        },
        "keywordMatchTypeRecommendation": {
          "description": "Output only. The keyword match type recommendation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_KeywordMatchTypeRecommendation"
        },
        "forecastingSetTargetRoasRecommendation": {
          "description": "Output only. The forecasting set target ROAS recommendation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_ForecastingSetTargetRoasRecommendation"
        },
        "improveGoogleTagCoverageRecommendation": {
          "description": "Output only. Recommendation to deploy Google Tag on more pages.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_ImproveGoogleTagCoverageRecommendation"
        },
        "responsiveSearchAdImproveAdStrengthRecommendation": {
          "description": "Output only. The responsive search ad improve ad strength recommendation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_ResponsiveSearchAdImproveAdStrengthRecommendation"
        },
        "improvePerformanceMaxAdStrengthRecommendation": {
          "description": "Output only. The improve Performance Max ad strength recommendation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_ImprovePerformanceMaxAdStrengthRecommendation"
        },
        "campaigns": {
          "items": {
            "type": "string"
          },
          "description": "Output only. The campaigns targeted by this recommendation. This field will be set for the following recommendation types: CAMPAIGN_BUDGET, FORECASTING_CAMPAIGN_BUDGET, MARGINAL_ROI_CAMPAIGN_BUDGET and MOVE_UNUSED_BUDGET",
          "readOnly": true,
          "type": "array"
        },
        "moveUnusedBudgetRecommendation": {
          "description": "Output only. The move unused budget recommendation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_MoveUnusedBudgetRecommendation"
        },
        "impact": {
          "description": "Output only. The impact on account performance as a result of applying the recommendation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_RecommendationImpact"
        },
        "responsiveSearchAdAssetRecommendation": {
          "description": "Output only. The responsive search ad asset recommendation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_ResponsiveSearchAdAssetRecommendation"
        },
        "setTargetRoasRecommendation": {
          "description": "Output only. The set target ROAS recommendation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_ForecastingSetTargetRoasRecommendation"
        },
        "targetCpaOptInRecommendation": {
          "description": "Output only. The TargetCPA opt-in recommendation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_TargetCpaOptInRecommendation"
        },
        "marginalRoiCampaignBudgetRecommendation": {
          "description": "Output only. The marginal ROI campaign budget recommendation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_CampaignBudgetRecommendation"
        },
        "responsiveSearchAdRecommendation": {
          "description": "Output only. The add responsive search ad recommendation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_ResponsiveSearchAdRecommendation"
        },
        "campaignBudget": {
          "description": "Output only. The budget targeted by this recommendation. This will be set only when the recommendation affects a single campaign budget. This field will be set for the following recommendation types: CAMPAIGN_BUDGET, FORECASTING_CAMPAIGN_BUDGET, MARGINAL_ROI_CAMPAIGN_BUDGET, MOVE_UNUSED_BUDGET",
          "readOnly": true,
          "type": "string"
        },
        "adGroup": {
          "description": "Output only. The ad group targeted by this recommendation. This will be set only when the recommendation affects a single ad group. This field will be set for the following recommendation types: KEYWORD, OPTIMIZE_AD_ROTATION, RESPONSIVE_SEARCH_AD, RESPONSIVE_SEARCH_AD_ASSET, TEXT_AD",
          "readOnly": true,
          "type": "string"
        },
        "shoppingAddGtinRecommendation": {
          "description": "Output only. The shopping add GTIN recommendation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_ShoppingOfferAttributeRecommendation"
        },
        "campaign": {
          "description": "Output only. The campaign targeted by this recommendation. This field will be set for the following recommendation types: CALL_EXTENSION, CALLOUT_EXTENSION, ENHANCED_CPC_OPT_IN, USE_BROAD_MATCH_KEYWORD, KEYWORD, KEYWORD_MATCH_TYPE, UPGRADE_LOCAL_CAMPAIGN_TO_PERFORMANCE_MAX, MAXIMIZE_CLICKS_OPT_IN, MAXIMIZE_CONVERSIONS_OPT_IN, OPTIMIZE_AD_ROTATION, RESPONSIVE_SEARCH_AD, RESPONSIVE_SEARCH_AD_ASSET, SEARCH_PARTNERS_OPT_IN, DISPLAY_EXPANSION_OPT_IN, SITELINK_EXTENSION, TARGET_CPA_OPT_IN, TARGET_ROAS_OPT_IN, TEXT_AD, UPGRADE_SMART_SHOPPING_CAMPAIGN_TO_PERFORMANCE_MAX, RAISE_TARGET_CPA_BID_TOO_LOW, FORECASTING_SET_TARGET_ROAS, SHOPPING_ADD_AGE_GROUP, SHOPPING_ADD_COLOR, SHOPPING_ADD_GENDER, SHOPPING_ADD_SIZE, SHOPPING_ADD_GTIN, SHOPPING_ADD_MORE_IDENTIFIERS, SHOPPING_ADD_PRODUCTS_TO_CAMPAIGN, SHOPPING_FIX_DISAPPROVED_PRODUCTS, SHOPPING_MIGRATE_REGULAR_SHOPPING_CAMPAIGN_OFFERS_TO_PERFORMANCE_MAX, DYNAMIC_IMAGE_EXTENSION_OPT_IN, RAISE_TARGET_CPA, LOWER_TARGET_ROAS, FORECASTING_SET_TARGET_CPA, SET_TARGET_CPA, SET_TARGET_ROAS, MAXIMIZE_CONVERSION_VALUE_OPT_IN, IMPROVE_GOOGLE_TAG_COVERAGE, PERFORMANCE_MAX_FINAL_URL_OPT_IN",
          "readOnly": true,
          "type": "string"
        },
        "shoppingTargetAllOffersRecommendation": {
          "description": "Output only. The shopping target all offers recommendation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_ShoppingTargetAllOffersRecommendation"
        },
        "performanceMaxOptInRecommendation": {
          "description": "Output only. The Performance Max Opt In recommendation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_PerformanceMaxOptInRecommendation"
        },
        "upgradeLocalCampaignToPerformanceMaxRecommendation": {
          "description": "Output only. The upgrade a Local campaign to a Performance Max campaign recommendation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_UpgradeLocalCampaignToPerformanceMaxRecommendation"
        },
        "performanceMaxFinalUrlOptInRecommendation": {
          "description": "Output only. Recommendation to turn on Final URL expansion for your Performance Max campaigns.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_PerformanceMaxFinalUrlOptInRecommendation"
        },
        "customAudienceOptInRecommendation": {
          "description": "Output only. The custom audience opt in recommendation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_CustomAudienceOptInRecommendation"
        },
        "type": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CAMPAIGN_BUDGET",
            "KEYWORD",
            "TEXT_AD",
            "TARGET_CPA_OPT_IN",
            "MAXIMIZE_CONVERSIONS_OPT_IN",
            "ENHANCED_CPC_OPT_IN",
            "SEARCH_PARTNERS_OPT_IN",
            "MAXIMIZE_CLICKS_OPT_IN",
            "OPTIMIZE_AD_ROTATION",
            "KEYWORD_MATCH_TYPE",
            "MOVE_UNUSED_BUDGET",
            "FORECASTING_CAMPAIGN_BUDGET",
            "TARGET_ROAS_OPT_IN",
            "RESPONSIVE_SEARCH_AD",
            "MARGINAL_ROI_CAMPAIGN_BUDGET",
            "USE_BROAD_MATCH_KEYWORD",
            "RESPONSIVE_SEARCH_AD_ASSET",
            "UPGRADE_SMART_SHOPPING_CAMPAIGN_TO_PERFORMANCE_MAX",
            "RESPONSIVE_SEARCH_AD_IMPROVE_AD_STRENGTH",
            "DISPLAY_EXPANSION_OPT_IN",
            "UPGRADE_LOCAL_CAMPAIGN_TO_PERFORMANCE_MAX",
            "RAISE_TARGET_CPA_BID_TOO_LOW",
            "FORECASTING_SET_TARGET_ROAS",
            "CALLOUT_ASSET",
            "SITELINK_ASSET",
            "CALL_ASSET",
            "SHOPPING_ADD_AGE_GROUP",
            "SHOPPING_ADD_COLOR",
            "SHOPPING_ADD_GENDER",
            "SHOPPING_ADD_GTIN",
            "SHOPPING_ADD_MORE_IDENTIFIERS",
            "SHOPPING_ADD_SIZE",
            "SHOPPING_ADD_PRODUCTS_TO_CAMPAIGN",
            "SHOPPING_FIX_DISAPPROVED_PRODUCTS",
            "SHOPPING_TARGET_ALL_OFFERS",
            "SHOPPING_FIX_SUSPENDED_MERCHANT_CENTER_ACCOUNT",
            "SHOPPING_FIX_MERCHANT_CENTER_ACCOUNT_SUSPENSION_WARNING",
            "SHOPPING_MIGRATE_REGULAR_SHOPPING_CAMPAIGN_OFFERS_TO_PERFORMANCE_MAX",
            "DYNAMIC_IMAGE_EXTENSION_OPT_IN",
            "RAISE_TARGET_CPA",
            "LOWER_TARGET_ROAS",
            "PERFORMANCE_MAX_OPT_IN",
            "IMPROVE_PERFORMANCE_MAX_AD_STRENGTH",
            "MIGRATE_DYNAMIC_SEARCH_ADS_CAMPAIGN_TO_PERFORMANCE_MAX",
            "FORECASTING_SET_TARGET_CPA",
            "SET_TARGET_CPA",
            "SET_TARGET_ROAS",
            "MAXIMIZE_CONVERSION_VALUE_OPT_IN",
            "IMPROVE_GOOGLE_TAG_COVERAGE",
            "PERFORMANCE_MAX_FINAL_URL_OPT_IN",
            "REFRESH_CUSTOMER_MATCH_LIST",
            "CUSTOM_AUDIENCE_OPT_IN",
            "LEAD_FORM_ASSET",
            "IMPROVE_DEMAND_GEN_AD_STRENGTH"
          ],
          "description": "Output only. The type of recommendation.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Provides optimized budget recommendations for campaigns.",
            "Keyword recommendation.",
            "Recommendation to add a new text ad.",
            "Recommendation to update a campaign to use a Target CPA bidding strategy.",
            "Recommendation to update a campaign to use the Maximize Conversions bidding strategy.",
            "Recommendation to enable Enhanced Cost Per Click for a campaign.",
            "Recommendation to start showing your campaign's ads on Google Search Partners Websites.",
            "Recommendation to update a campaign to use a Maximize Clicks bidding strategy.",
            "Recommendation to start using the \"Optimize\" ad rotation setting for the given ad group.",
            "Recommendation to change an existing keyword from one match type to a broader match type.",
            "Recommendation to move unused budget from one budget to a constrained budget.",
            "Budget recommendation for campaigns that are expected to become budget-constrained in the future (as opposed to the CAMPAIGN_BUDGET recommendation, which applies to campaigns that are currently budget-constrained).",
            "Recommendation to update a campaign to use a Target ROAS bidding strategy.",
            "Recommendation to add a new responsive search ad.",
            "Budget recommendation for campaigns whose ROI is predicted to increase with a budget adjustment.",
            "Recommendation to add broad match versions of keywords for fully automated conversion-based bidding campaigns.",
            "Recommendation to add new responsive search ad assets.",
            "Recommendation to upgrade a Smart Shopping campaign to a Performance Max campaign.",
            "Recommendation to improve strength of responsive search ad.",
            "Recommendation to update a campaign to use Display Expansion.",
            "Recommendation to upgrade a Local campaign to a Performance Max campaign.",
            "Recommendation to raise target CPA when it is too low and there are very few or no conversions. It is applied asynchronously and can take minutes depending on the number of ad groups there are in the related campaign.",
            "Recommendation to raise the budget in advance of a seasonal event that is forecasted to increase traffic, and change bidding strategy from maximize conversion value to target ROAS.",
            "Recommendation to add callout assets to campaign or customer level.",
            "Recommendation to add sitelink assets to campaign or customer level.",
            "Recommendation to add call assets to campaign or customer level.",
            "Recommendation to add the age group attribute to offers that are demoted because of a missing age group.",
            "Recommendation to add a color to offers that are demoted because of a missing color.",
            "Recommendation to add a gender to offers that are demoted because of a missing gender.",
            "Recommendation to add a GTIN (Global Trade Item Number) to offers that are demoted because of a missing GTIN.",
            "Recommendation to add more identifiers to offers that are demoted because of missing identifiers.",
            "Recommendation to add the size to offers that are demoted because of a missing size.",
            "Recommendation informing a customer about a campaign that cannot serve because no products are being targeted.",
            "The shopping recommendation informing a customer about campaign with a high percentage of disapproved products.",
            "Recommendation to create a catch-all campaign that targets all offers.",
            "Recommendation to fix Merchant Center account suspension issues.",
            "Recommendation to fix Merchant Center account suspension warning issues.",
            "Recommendation to migrate offers targeted by Regular Shopping Campaigns to existing Performance Max campaigns.",
            "Recommendation to enable dynamic image extensions on the account, allowing Google to find the best images from ad landing pages and complement text ads.",
            "Recommendation to raise Target CPA based on Google predictions modeled from past conversions. It is applied asynchronously and can take minutes depending on the number of ad groups there are in the related campaign.",
            "Recommendation to lower Target ROAS.",
            "Recommendation to opt into Performance Max campaigns.",
            "Recommendation to improve the asset group strength of a Performance Max campaign to an \"Excellent\" rating.",
            "Recommendation to migrate Dynamic Search Ads to Performance Max campaigns.",
            "Recommendation to set a target CPA for campaigns that do not have one specified, in advance of a seasonal event that is forecasted to increase traffic.",
            "Recommendation to set a target CPA for campaigns that do not have one specified.",
            "Recommendation to set a target ROAS for campaigns that do not have one specified.",
            "Recommendation to update a campaign to use the Maximize Conversion Value bidding strategy.",
            "Recommendation to deploy Google Tag on more pages.",
            "Recommendation to turn on Final URL expansion for your Performance Max campaigns.",
            "Recommendation to update a customer list that hasn't been updated in the last 90 days.",
            "Recommendation to create a custom audience.",
            "Recommendation to add lead form assets to campaign or customer level.",
            "Recommendation to improve the strength of ads in Demand Gen campaigns."
          ]
        },
        "maximizeConversionValueOptInRecommendation": {
          "description": "Output only. The Maximize Conversion Value opt-in recommendation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_MaximizeConversionValueOptInRecommendation"
        },
        "shoppingAddAgeGroupRecommendation": {
          "description": "Output only. The shopping add age group recommendation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_ShoppingOfferAttributeRecommendation"
        },
        "forecastingSetTargetCpaRecommendation": {
          "description": "Output only. The forecasting set target CPA recommendation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_ForecastingSetTargetCpaRecommendation"
        },
        "leadFormAssetRecommendation": {
          "description": "Output only. The lead form asset recommendation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_LeadFormAssetRecommendation"
        },
        "raiseTargetCpaBidTooLowRecommendation": {
          "description": "Output only. The raise target CPA bid too low recommendation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_RaiseTargetCpaBidTooLowRecommendation"
        },
        "setTargetCpaRecommendation": {
          "description": "Output only. The set target CPA recommendation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_ForecastingSetTargetCpaRecommendation"
        },
        "improveDemandGenAdStrengthRecommendation": {
          "description": "Output only. The improve Demand Gen ad strength recommendation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_ImproveDemandGenAdStrengthRecommendation"
        },
        "shoppingAddSizeRecommendation": {
          "description": "Output only. The shopping add size recommendation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_ShoppingOfferAttributeRecommendation"
        },
        "shoppingAddColorRecommendation": {
          "description": "Output only. The shopping add color recommendation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_ShoppingOfferAttributeRecommendation"
        },
        "dismissed": {
          "type": "boolean",
          "description": "Output only. Whether the recommendation is dismissed or not.",
          "readOnly": true
        },
        "shoppingAddProductsToCampaignRecommendation": {
          "description": "Output only. The shopping add products to campaign recommendation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_ShoppingAddProductsToCampaignRecommendation"
        },
        "forecastingCampaignBudgetRecommendation": {
          "description": "Output only. The forecasting campaign budget recommendation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_CampaignBudgetRecommendation"
        },
        "calloutAssetRecommendation": {
          "description": "Output only. The callout asset recommendation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_CalloutAssetRecommendation"
        },
        "useBroadMatchKeywordRecommendation": {
          "description": "Output only. The use broad match keyword recommendation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_UseBroadMatchKeywordRecommendation"
        },
        "sitelinkAssetRecommendation": {
          "description": "Output only. The sitelink asset recommendation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_SitelinkAssetRecommendation"
        },
        "optimizeAdRotationRecommendation": {
          "description": "Output only. The Optimize Ad Rotation recommendation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_OptimizeAdRotationRecommendation"
        },
        "shoppingFixMerchantCenterAccountSuspensionWarningRecommendation": {
          "description": "Output only. The shopping fix Merchant Center account suspension warning recommendation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_ShoppingMerchantCenterAccountSuspensionRecommendation"
        },
        "searchPartnersOptInRecommendation": {
          "description": "Output only. The Search Partners Opt-In recommendation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_SearchPartnersOptInRecommendation"
        },
        "shoppingFixSuspendedMerchantCenterAccountRecommendation": {
          "description": "Output only. The shopping fix suspended Merchant Center account recommendation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_ShoppingMerchantCenterAccountSuspensionRecommendation"
        },
        "refreshCustomerMatchListRecommendation": {
          "description": "Output only. The refresh customer list recommendation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_RefreshCustomerMatchListRecommendation"
        },
        "migrateDynamicSearchAdsCampaignToPerformanceMaxRecommendation": {
          "description": "Output only. The Dynamic Search Ads to Performance Max migration recommendation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_MigrateDynamicSearchAdsCampaignToPerformanceMaxRecommendation"
        },
        "enhancedCpcOptInRecommendation": {
          "description": "Output only. The Enhanced Cost-Per-Click Opt-In recommendation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_EnhancedCpcOptInRecommendation"
        },
        "shoppingMigrateRegularShoppingCampaignOffersToPerformanceMaxRecommendation": {
          "description": "Output only. The shopping migrate Regular Shopping Campaign offers to Performance Max recommendation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_ShoppingMigrateRegularShoppingCampaignOffersToPerformanceMaxRecommendation"
        },
        "shoppingFixDisapprovedProductsRecommendation": {
          "description": "Output only. The shopping fix disapproved products recommendation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_ShoppingFixDisapprovedProductsRecommendation"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the recommendation. `customers/{customer_id}/recommendations/{recommendation_id}`"
        },
        "campaignBudgetRecommendation": {
          "description": "Output only. The campaign budget recommendation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_CampaignBudgetRecommendation"
        },
        "maximizeConversionsOptInRecommendation": {
          "description": "Output only. The MaximizeConversions Opt-In recommendation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_MaximizeConversionsOptInRecommendation"
        },
        "displayExpansionOptInRecommendation": {
          "description": "Output only. The Display Expansion opt-in recommendation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_DisplayExpansionOptInRecommendation"
        },
        "callAssetRecommendation": {
          "description": "Output only. The call asset recommendation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_CallAssetRecommendation"
        },
        "shoppingAddMoreIdentifiersRecommendation": {
          "description": "Output only. The shopping add more identifiers recommendation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_ShoppingOfferAttributeRecommendation"
        },
        "dynamicImageExtensionOptInRecommendation": {
          "description": "Output only. Recommendation to enable dynamic image extensions on the account, allowing Google to find the best images from ad landing pages and complement text ads.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_DynamicImageExtensionOptInRecommendation"
        },
        "shoppingAddGenderRecommendation": {
          "description": "Output only. The shopping add gender recommendation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_ShoppingOfferAttributeRecommendation"
        },
        "upgradeSmartShoppingCampaignToPerformanceMaxRecommendation": {
          "description": "Output only. The upgrade a Smart Shopping campaign to a Performance Max campaign recommendation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_UpgradeSmartShoppingCampaignToPerformanceMaxRecommendation"
        },
        "textAdRecommendation": {
          "description": "Output only. Add expanded text ad recommendation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_TextAdRecommendation"
        },
        "targetRoasOptInRecommendation": {
          "description": "Output only. The Target ROAS opt-in recommendation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_TargetRoasOptInRecommendation"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__LeadFormSubmissionField": {
      "id": "GoogleAdsGoogleadsV24Resources__LeadFormSubmissionField",
      "type": "object",
      "description": "Fields in the submitted lead form.",
      "properties": {
        "fieldType": {
          "type": "string",
          "description": "Output only. Field type for lead form fields.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The user will be asked to fill in their given and family name. This field cannot be set at the same time as GIVEN_NAME or FAMILY_NAME.",
            "The user will be asked to fill in their email address.",
            "The user will be asked to fill in their phone number.",
            "The user will be asked to fill in their zip code.",
            "The user will be asked to fill in their street address.",
            "The user will be asked to fill in their city.",
            "The user will be asked to fill in their region part of the address (for example, state for US, province for Canada).",
            "The user will be asked to fill in their country.",
            "The user will be asked to fill in their work email address.",
            "The user will be asked to fill in their company name.",
            "The user will be asked to fill in their work phone.",
            "The user will be asked to fill in their job title.",
            "The user will be asked to fill in their CPF for Brazil users.",
            "The user will be asked to fill in their DNI for Argentina users.",
            "The user will be asked to fill in their DNI for Peru users.",
            "The user will be asked to fill in their RUT for Chile users.",
            "The user will be asked to fill in their CC for Colombia users.",
            "The user will be asked to fill in their CI for Ecuador users.",
            "The user will be asked to fill in their RFC for Mexico users.",
            "The user will be asked to fill in their first name. This field can not be set at the same time as FULL_NAME.",
            "The user will be asked to fill in their last name. This field can not be set at the same time as FULL_NAME.",
            "Question: \"Which model are you interested in?\" Category: \"Auto\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Which type of vehicle are you interested in?\" Category: \"Auto\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your preferred dealership?\" Category: \"Auto\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"When do you plan on purchasing a vehicle?\" Category: \"Auto\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Do you own a vehicle?\" Category: \"Auto\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What vehicle ownership option are you interested in?\" Category: \"Auto\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What type of vehicle condition are you interested in?\" Category: \"Auto\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What size is your company?\" Category: \"Business\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your annual sales volume?\" Category: \"Business\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"How many years have you been in business?\" Category: \"Business\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your job department?\" Category: \"Business\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your job role?\" Category: \"Business\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 18 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 19 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 20 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 21 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 22 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 23 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 24 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 25 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 26 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 27 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 28 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 29 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 30 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 31 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 32 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 33 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 34 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 35 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 36 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 37 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 38 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 39 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 40 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 41 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 42 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 43 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 44 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 45 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 46 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 47 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 48 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 49 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 50 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 51 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 52 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 53 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 54 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 55 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 56 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 57 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 58 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 59 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 60 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 61 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 62 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 63 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 64 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 65 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Which program are you interested in?\" Category: \"Education\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Which course are you interested in?\" Category: \"Education\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Which product are you interested in?\" Category: \"General\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Which service are you interested in?\" Category: \"General\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Which offer are you interested in?\" Category: \"General\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Which category are you interested in?\" Category: \"General\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your preferred method of contact?\" Category: \"General\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your preferred location?\" Category: \"General\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is the best time to contact you?\" Category: \"General\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"When are you looking to make a purchase?\" Category: \"General\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"How many years of work experience do you have?\" Category: \"Jobs\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What industry do you work in?\" Category: \"Jobs\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your highest level of education?\" Category: \"Jobs\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What type of property are you looking for?\" Category: \"Real Estate\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What do you need a realtor's help with?\" Category: \"Real Estate\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What neighborhood are you interested in?\" Category: \"Real Estate\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What price range are you looking for?\" Category: \"Real Estate\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"How many bedrooms are you looking for?\" Category: \"Real Estate\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you looking for a fully furnished property?\" Category: \"Real Estate\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you looking for properties that allow pets?\" Category: \"Real Estate\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is the next product you plan to purchase?\" Category: \"Retail\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Would you like to sign up for an event?\" Category: \"Retail\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Where are you interested in shopping?\" Category: \"Retail\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your favorite brand?\" Category: \"Retail\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Which type of valid commercial license do you have?\" Category: \"Transportation\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Interested in booking an event?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your destination country?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your destination city?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your departure country?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your departure city?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your departure date?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your return date?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"How many people are you traveling with?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your travel budget?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Where do you want to stay during your travel?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "FULL_NAME",
            "EMAIL",
            "PHONE_NUMBER",
            "POSTAL_CODE",
            "STREET_ADDRESS",
            "CITY",
            "REGION",
            "COUNTRY",
            "WORK_EMAIL",
            "COMPANY_NAME",
            "WORK_PHONE",
            "JOB_TITLE",
            "GOVERNMENT_ISSUED_ID_CPF_BR",
            "GOVERNMENT_ISSUED_ID_DNI_AR",
            "GOVERNMENT_ISSUED_ID_DNI_PE",
            "GOVERNMENT_ISSUED_ID_RUT_CL",
            "GOVERNMENT_ISSUED_ID_CC_CO",
            "GOVERNMENT_ISSUED_ID_CI_EC",
            "GOVERNMENT_ISSUED_ID_RFC_MX",
            "FIRST_NAME",
            "LAST_NAME",
            "VEHICLE_MODEL",
            "VEHICLE_TYPE",
            "PREFERRED_DEALERSHIP",
            "VEHICLE_PURCHASE_TIMELINE",
            "VEHICLE_OWNERSHIP",
            "VEHICLE_PAYMENT_TYPE",
            "VEHICLE_CONDITION",
            "COMPANY_SIZE",
            "ANNUAL_SALES",
            "YEARS_IN_BUSINESS",
            "JOB_DEPARTMENT",
            "JOB_ROLE",
            "OVER_18_AGE",
            "OVER_19_AGE",
            "OVER_20_AGE",
            "OVER_21_AGE",
            "OVER_22_AGE",
            "OVER_23_AGE",
            "OVER_24_AGE",
            "OVER_25_AGE",
            "OVER_26_AGE",
            "OVER_27_AGE",
            "OVER_28_AGE",
            "OVER_29_AGE",
            "OVER_30_AGE",
            "OVER_31_AGE",
            "OVER_32_AGE",
            "OVER_33_AGE",
            "OVER_34_AGE",
            "OVER_35_AGE",
            "OVER_36_AGE",
            "OVER_37_AGE",
            "OVER_38_AGE",
            "OVER_39_AGE",
            "OVER_40_AGE",
            "OVER_41_AGE",
            "OVER_42_AGE",
            "OVER_43_AGE",
            "OVER_44_AGE",
            "OVER_45_AGE",
            "OVER_46_AGE",
            "OVER_47_AGE",
            "OVER_48_AGE",
            "OVER_49_AGE",
            "OVER_50_AGE",
            "OVER_51_AGE",
            "OVER_52_AGE",
            "OVER_53_AGE",
            "OVER_54_AGE",
            "OVER_55_AGE",
            "OVER_56_AGE",
            "OVER_57_AGE",
            "OVER_58_AGE",
            "OVER_59_AGE",
            "OVER_60_AGE",
            "OVER_61_AGE",
            "OVER_62_AGE",
            "OVER_63_AGE",
            "OVER_64_AGE",
            "OVER_65_AGE",
            "EDUCATION_PROGRAM",
            "EDUCATION_COURSE",
            "PRODUCT",
            "SERVICE",
            "OFFER",
            "CATEGORY",
            "PREFERRED_CONTACT_METHOD",
            "PREFERRED_LOCATION",
            "PREFERRED_CONTACT_TIME",
            "PURCHASE_TIMELINE",
            "YEARS_OF_EXPERIENCE",
            "JOB_INDUSTRY",
            "LEVEL_OF_EDUCATION",
            "PROPERTY_TYPE",
            "REALTOR_HELP_GOAL",
            "PROPERTY_COMMUNITY",
            "PRICE_RANGE",
            "NUMBER_OF_BEDROOMS",
            "FURNISHED_PROPERTY",
            "PETS_ALLOWED_PROPERTY",
            "NEXT_PLANNED_PURCHASE",
            "EVENT_SIGNUP_INTEREST",
            "PREFERRED_SHOPPING_PLACES",
            "FAVORITE_BRAND",
            "TRANSPORTATION_COMMERCIAL_LICENSE_TYPE",
            "EVENT_BOOKING_INTEREST",
            "DESTINATION_COUNTRY",
            "DESTINATION_CITY",
            "DEPARTURE_COUNTRY",
            "DEPARTURE_CITY",
            "DEPARTURE_DATE",
            "RETURN_DATE",
            "NUMBER_OF_TRAVELERS",
            "TRAVEL_BUDGET",
            "TRAVEL_ACCOMMODATION"
          ]
        },
        "fieldValue": {
          "type": "string",
          "description": "Output only. Field value for lead form fields.",
          "readOnly": true
        }
      }
    },
    "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_CallAssetParameters": {
      "description": "Parameters to use when applying call asset recommendations.",
      "properties": {
        "adAssetApplyParameters": {
          "description": "Required. Call assets to be added. This is a required field.",
          "$ref": "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_AdAssetApplyParameters"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_CallAssetParameters",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateCampaignGroupsRequest": {
      "description": "Request message for CampaignGroupService.MutateCampaignGroups.",
      "properties": {
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "operations": {
          "type": "array",
          "description": "Required. The list of operations to perform on individual campaign groups.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__CampaignGroupOperation"
          }
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "responseContentType": {
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateCampaignGroupsRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_AdGroupCriterion_PositionEstimates": {
      "description": "Estimates for criterion bids at various positions.",
      "properties": {
        "firstPageCpcMicros": {
          "description": "Output only. The estimate of the CPC bid required for ad to be shown on first page of search results.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "estimatedAddClicksAtFirstPositionCpc": {
          "description": "Output only. Estimate of how many clicks per week you might get by changing your keyword bid to the value in first_position_cpc_micros.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "firstPositionCpcMicros": {
          "type": "string",
          "description": "Output only. The estimate of the CPC bid required for ad to be displayed in first position, at the top of the first page of search results.",
          "readOnly": true,
          "format": "int64"
        },
        "topOfPageCpcMicros": {
          "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,
          "format": "int64",
          "type": "string"
        },
        "estimatedAddCostAtFirstPositionCpc": {
          "type": "string",
          "description": "Output only. Estimate of how your cost per week might change when changing your keyword bid to the value in first_position_cpc_micros.",
          "readOnly": true,
          "format": "int64"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_AdGroupCriterion_PositionEstimates",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__MobileAppCategoryInfo": {
      "id": "GoogleAdsGoogleadsV24Common__MobileAppCategoryInfo",
      "type": "object",
      "description": "A mobile app category criterion.",
      "properties": {
        "mobileAppCategoryConstant": {
          "description": "The mobile app category constant resource name.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_Recommendation_TargetRoasOptInRecommendation": {
      "description": "The Target ROAS opt-in recommendation.",
      "properties": {
        "recommendedTargetRoas": {
          "description": "Output only. The recommended target ROAS (revenue per unit of spend). The value is between 0.01 and 1000.0, inclusive.",
          "readOnly": true,
          "format": "double",
          "type": "number"
        },
        "requiredCampaignBudgetAmountMicros": {
          "description": "Output only. The minimum campaign budget, in local currency for the account, required to achieve the target ROAS. Amount is specified in micros, where one million is equivalent to one currency unit.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_Recommendation_TargetRoasOptInRecommendation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__ConversionTrackingSetting": {
      "description": "A collection of customer-wide settings related to Google Ads Conversion Tracking.",
      "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. This field can only be managed through the Google Ads UI. This field is read-only.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "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"
        },
        "googleAdsConversionCustomer": {
          "type": "string",
          "description": "The resource name of the customer where conversions are created and managed. This field is read-only."
        },
        "conversionTrackingStatus": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NOT_CONVERSION_TRACKED",
            "CONVERSION_TRACKING_MANAGED_BY_SELF",
            "CONVERSION_TRACKING_MANAGED_BY_THIS_MANAGER",
            "CONVERSION_TRACKING_MANAGED_BY_ANOTHER_MANAGER"
          ],
          "description": "Output only. Conversion tracking status. It indicates whether the customer is using conversion tracking, and who is the conversion tracking owner of this customer. If this customer is using cross-account conversion tracking, the value returned will differ based on the `login-customer-id` of the request.",
          "readOnly": true,
          "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`."
          ]
        },
        "conversionTrackingId": {
          "type": "string",
          "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,
          "format": "int64"
        },
        "acceptedCustomerDataTerms": {
          "type": "boolean",
          "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
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__ConversionTrackingSetting",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateCampaignSharedSetsRequest": {
      "description": "Request message for CampaignSharedSetService.MutateCampaignSharedSets.",
      "properties": {
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__CampaignSharedSetOperation"
          },
          "description": "Required. The list of operations to perform on individual campaign shared sets."
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "responseContentType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ]
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateCampaignSharedSetsRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateKeywordPlanCampaignsResponse": {
      "id": "GoogleAdsGoogleadsV24Services__MutateKeywordPlanCampaignsResponse",
      "type": "object",
      "description": "Response message for a Keyword Plan campaign mutate.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateKeywordPlanCampaignResult"
          },
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services_SuggestGeoTargetConstantsRequest_GeoTargets": {
      "id": "GoogleAdsGoogleadsV24Services_SuggestGeoTargetConstantsRequest_GeoTargets",
      "type": "object",
      "description": "A list of geo target constant resource names.",
      "properties": {
        "geoTargetConstants": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of geo target constant resource names."
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__ItemAttribute": {
      "id": "GoogleAdsGoogleadsV24Common__ItemAttribute",
      "type": "object",
      "description": "Item attributes of the transaction.",
      "properties": {
        "itemId": {
          "description": "A unique identifier of a product. It must be the exact same Merchant Center Item ID you use in your Google Merchant Center for this product. Required.",
          "type": "string"
        },
        "countryCode": {
          "description": "Common Locale Data Repository (CLDR) territory code of the country associated with the feed where your items are uploaded. See https://developers.google.com/google-ads/api/reference/data/codes-formats#country-codes for more information. This information is useful to differentiate product information in cases where a product (identified by item_id) is associated with multiple countries.",
          "type": "string"
        },
        "merchantId": {
          "description": "ID of the Merchant Center Account. Required.",
          "format": "int64",
          "type": "string"
        },
        "quantity": {
          "type": "string",
          "description": "The number of items sold. Defaults to 1 if not set.",
          "format": "int64"
        },
        "languageCode": {
          "description": "ISO 639-1 code of the language associated with the feed where your items are uploaded. This information is useful to differentiate product information in cases where a product (identified by item_id) is associated with multiple languages.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__GenerateBenchmarksMetricsResponse": {
      "description": "Response message for BenchmarksService.GenerateBenchmarksMetrics.",
      "properties": {
        "breakdownMetrics": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__BreakdownMetrics"
          },
          "description": "Breakdown metrics grouped by dimensions."
        },
        "averageBenchmarksMetrics": {
          "description": "Metrics for the selected benchmarks source.",
          "$ref": "GoogleAdsGoogleadsV24Services__Metrics"
        },
        "customerMetrics": {
          "description": "Metrics belonging to the customer.",
          "$ref": "GoogleAdsGoogleadsV24Services__Metrics"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__GenerateBenchmarksMetricsResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_AdStrengthActionItem_AddAssetDetails": {
      "id": "GoogleAdsGoogleadsV24Resources_AdStrengthActionItem_AddAssetDetails",
      "type": "object",
      "description": "The details of the asset to add.",
      "properties": {
        "assetFieldType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE",
            "DESCRIPTION",
            "MANDATORY_AD_TEXT",
            "MARKETING_IMAGE",
            "MEDIA_BUNDLE",
            "YOUTUBE_VIDEO",
            "BOOK_ON_GOOGLE",
            "LEAD_FORM",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "LONG_HEADLINE",
            "BUSINESS_NAME",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "VIDEO",
            "CALL_TO_ACTION_SELECTION",
            "AD_IMAGE",
            "BUSINESS_LOGO",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "TALL_PORTRAIT_MARKETING_IMAGE",
            "RELATED_YOUTUBE_VIDEOS",
            "LANDING_PAGE_PREVIEW",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION"
          ],
          "description": "Output only. The asset field type of the asset(s) to add.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is linked for use as a headline.",
            "The asset is linked for use as a description.",
            "The asset is linked for use as mandatory ad text.",
            "The asset is linked for use as a marketing image.",
            "The asset is linked for use as a media bundle.",
            "The asset is linked for use as a YouTube video.",
            "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
            "The asset is linked for use as a Lead Form extension.",
            "The asset is linked for use as a Promotion extension.",
            "The asset is linked for use as a Callout extension.",
            "The asset is linked for use as a Structured Snippet extension.",
            "The asset is linked for use as a Sitelink.",
            "The asset is linked for use as a Mobile App extension.",
            "The asset is linked for use as a Hotel Callout extension.",
            "The asset is linked for use as a Call extension.",
            "The asset is linked for use as a Price extension.",
            "The asset is linked for use as a long headline.",
            "The asset is linked for use as a business name.",
            "The asset is linked for use as a square marketing image.",
            "The asset is linked for use as a portrait marketing image.",
            "The asset is linked for use as a logo.",
            "The asset is linked for use as a landscape logo.",
            "The asset is linked for use as a non YouTube logo.",
            "The asset is linked for use to select a call-to-action.",
            "The asset is linked for use to select an ad image.",
            "The asset is linked for use as a business logo.",
            "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
            "The asset is linked for use as a Demand Gen carousel card.",
            "The asset is linked for use as a Business Message.",
            "The asset is linked for use as a tall portrait marketing image.",
            "The asset is linked for use as related YouTube videos.",
            "The asset is linked for use as a landing page preview image.",
            "The asset is linked for use as a long description.",
            "The asset is linked for use as a call-to-action."
          ],
          "type": "string"
        },
        "assetCount": {
          "description": "Output only. The number of assets to add.",
          "readOnly": true,
          "format": "int32",
          "type": "integer"
        },
        "videoAspectRatioRequirement": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HORIZONTAL",
            "SQUARE",
            "VERTICAL"
          ],
          "description": "Output only. For video field types, the required aspect ratio of the video. When unset and asset_field_type is YOUTUBE_VIDEO, the system recommends the advertiser upload any YouTube video, regardless of aspect ratio.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "The received value is not known in this version.",
            "The video requires a horizontal aspect ratio.",
            "The video requires a square aspect ratio.",
            "The video requires a vertical aspect ratio."
          ],
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateConversionActionsResponse": {
      "id": "GoogleAdsGoogleadsV24Services__MutateConversionActionsResponse",
      "type": "object",
      "description": "Response message for ConversionActionService.MutateConversionActions.",
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateConversionActionResult"
          },
          "description": "All results for the mutate."
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_ProductCategoryConstant_ProductCategoryLocalization": {
      "description": "Localization for the product category.",
      "properties": {
        "value": {
          "description": "Output only. The name of the category in the specified locale.",
          "readOnly": true,
          "type": "string"
        },
        "regionCode": {
          "description": "Output only. Upper-case two-letter ISO 3166-1 country code of the localized category.",
          "readOnly": true,
          "type": "string"
        },
        "languageCode": {
          "type": "string",
          "description": "Output only. Two-letter ISO 639-1 language code of the localized category.",
          "readOnly": true
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_ProductCategoryConstant_ProductCategoryLocalization",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateRemarketingActionsRequest": {
      "id": "GoogleAdsGoogleadsV24Services__MutateRemarketingActionsRequest",
      "type": "object",
      "description": "Request message for RemarketingActionService.MutateRemarketingActions.",
      "properties": {
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "operations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__RemarketingActionOperation"
          },
          "description": "Required. The list of operations to perform on individual remarketing actions.",
          "type": "array"
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__YouTubeSelectLineUp": {
      "description": "A Plannable YouTube Select Lineup for product targeting.",
      "properties": {
        "lineupId": {
          "type": "string",
          "description": "The ID of the YouTube Select Lineup.",
          "format": "int64"
        },
        "lineupName": {
          "type": "string",
          "description": "The unique name of the YouTube Select Lineup."
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__YouTubeSelectLineUp",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__SurveyDissatisfied": {
      "description": "Details about various factors for not being satisfied with the lead.",
      "properties": {
        "surveyDissatisfiedReason": {
          "description": "Required. Provider's reason for not being satisfied with the lead.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Other reasons.",
            "Lead was for a service that does not match the business' service area.",
            "Lead was for a service that is not offered by the business.",
            "Lead was by a customer that was not ready to book.",
            "Lead was a spam. Example: lead was from a bot, silent called, scam, etc.",
            "Lead was a duplicate of another lead that is, customer contacted the business more than once.",
            "Lead due to solicitation. Example: a person trying to get a job or selling a product, etc."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "OTHER_DISSATISFIED_REASON",
            "GEO_MISMATCH",
            "JOB_TYPE_MISMATCH",
            "NOT_READY_TO_BOOK",
            "SPAM",
            "DUPLICATE",
            "SOLICITATION"
          ],
          "type": "string"
        },
        "otherReasonComment": {
          "type": "string",
          "description": "Optional. Provider's free form comments. This field is required when OTHER_DISSATISFIED_REASON is selected as the reason."
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__SurveyDissatisfied",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__PaidOrganicSearchTermView": {
      "description": "A paid organic search term view providing a view of search stats across ads and organic listings aggregated by search term at the ad group level.",
      "properties": {
        "searchTerm": {
          "description": "Output only. The search term.",
          "readOnly": true,
          "type": "string"
        },
        "resourceName": {
          "description": "Output only. The resource name of the search term view. Search term view resource names have the form: `customers/{customer_id}/paidOrganicSearchTermViews/{campaign_id}~ {ad_group_id}~{URL-base64 search term}`",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__PaidOrganicSearchTermView",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_ConversionAction_ThirdPartyAppAnalyticsSettings": {
      "description": "Settings related to a third party app analytics conversion action.",
      "properties": {
        "eventName": {
          "description": "Output only. The event name of a third-party app analytics conversion.",
          "readOnly": true,
          "type": "string"
        },
        "providerName": {
          "description": "Output only. Name of the third-party app analytics provider.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_ConversionAction_ThirdPartyAppAnalyticsSettings",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__CustomizerAttribute": {
      "id": "GoogleAdsGoogleadsV24Resources__CustomizerAttribute",
      "type": "object",
      "description": "A customizer attribute. Use CustomerCustomizer, CampaignCustomizer, AdGroupCustomizer, or AdGroupCriterionCustomizer to associate a customizer attribute and set its value at the customer, campaign, ad group, or ad group criterion level, respectively.",
      "properties": {
        "resourceName": {
          "description": "Immutable. The resource name of the customizer attribute. Customizer Attribute resource names have the form: `customers/{customer_id}/customizerAttributes/{customizer_attribute_id}`",
          "type": "string"
        },
        "status": {
          "type": "string",
          "description": "Output only. The status of the customizer attribute.",
          "readOnly": true,
          "enumDescriptions": [
            "The status has not been specified.",
            "The received value is not known in this version.",
            "The customizer attribute is enabled.",
            "The customizer attribute is removed."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ]
        },
        "id": {
          "type": "string",
          "description": "Output only. The ID of the customizer attribute.",
          "readOnly": true,
          "format": "int64"
        },
        "name": {
          "type": "string",
          "description": "Required. Immutable. Name of the customizer attribute. Required. It must have a minimum length of 1 and maximum length of 40. Name of an enabled customizer attribute must be unique (case insensitive)."
        },
        "type": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "TEXT",
            "NUMBER",
            "PRICE",
            "PERCENT"
          ],
          "description": "Immutable. The type of the customizer attribute.",
          "enumDescriptions": [
            "The status has not been specified.",
            "The received value is not known in this version.",
            "Text customizer.",
            "Number customizer.",
            "Price customizer consisting of a number and a currency.",
            "Percentage customizer consisting of a number and a '%'."
          ],
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__LocalServicesDocumentReadOnly": {
      "id": "GoogleAdsGoogleadsV24Common__LocalServicesDocumentReadOnly",
      "type": "object",
      "description": "A Local Services Document with read only accessible data.",
      "properties": {
        "documentUrl": {
          "description": "URL to access an already uploaded Local Services document.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__AdGroupAd": {
      "id": "GoogleAdsGoogleadsV24Resources__AdGroupAd",
      "type": "object",
      "description": "An ad group ad.",
      "properties": {
        "adGroup": {
          "type": "string",
          "description": "Immutable. The ad group to which the ad belongs."
        },
        "primaryStatus": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ELIGIBLE",
            "PAUSED",
            "REMOVED",
            "PENDING",
            "LIMITED",
            "NOT_ELIGIBLE"
          ],
          "description": "Output only. Provides aggregated view into why an ad group ad is not serving or not serving optimally.",
          "readOnly": true,
          "enumDescriptions": [
            "No value has been specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The ad group ad is eligible to serve.",
            "The ad group ad is paused.",
            "The ad group ad is removed.",
            "The ad cannot serve now, but may serve later without advertiser action.",
            "The ad group ad is serving in a limited capacity.",
            "The ad group ad is not eligible to serve."
          ]
        },
        "adGroupAdAssetAutomationSettings": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Resources__AdGroupAdAssetAutomationSetting"
          },
          "description": "Settings that control the types of asset automation. See the AssetAutomationTypeEnum documentation for the default opt in/out behavior of each type."
        },
        "ad": {
          "description": "Immutable. The ad.",
          "$ref": "GoogleAdsGoogleadsV24Resources__Ad"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the ad. Ad group ad resource names have the form: `customers/{customer_id}/adGroupAds/{ad_group_id}~{ad_id}`"
        },
        "status": {
          "type": "string",
          "description": "The status of the ad.",
          "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"
          ]
        },
        "policySummary": {
          "description": "Output only. Policy information for the ad.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources__AdGroupAdPolicySummary"
        },
        "primaryStatusReasons": {
          "description": "Output only. Provides reasons for why an ad group ad is not serving or not serving optimally.",
          "readOnly": true,
          "items": {
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "CAMPAIGN_REMOVED",
              "CAMPAIGN_PAUSED",
              "CAMPAIGN_PENDING",
              "CAMPAIGN_ENDED",
              "AD_GROUP_PAUSED",
              "AD_GROUP_REMOVED",
              "AD_GROUP_AD_PAUSED",
              "AD_GROUP_AD_REMOVED",
              "AD_GROUP_AD_DISAPPROVED",
              "AD_GROUP_AD_UNDER_REVIEW",
              "AD_GROUP_AD_POOR_QUALITY",
              "AD_GROUP_AD_NO_ADS",
              "AD_GROUP_AD_APPROVED_LABELED",
              "AD_GROUP_AD_AREA_OF_INTEREST_ONLY",
              "AD_GROUP_AD_UNDER_APPEAL"
            ],
            "enumDescriptions": [
              "No value has been specified.",
              "Used for return value only. Represents value unknown in this version.",
              "The user-specified campaign status is removed. Contributes to AdGroupAdPrimaryStatus.REMOVED.",
              "The user-specified campaign status is paused. Contributes to AdGroupAdPrimaryStatus.PAUSED.",
              "The user-specified time for this campaign to start is in the future. Contributes to AdGroupAdPrimaryStatus.PENDING.",
              "The user-specified time for this campaign to end has passed. Contributes to AdGroupAdPrimaryStatus.ENDED.",
              "The user-specified ad group status is paused. Contributes to AdGroupAdPrimaryStatus.PAUSED.",
              "The user-specified ad group status is removed. Contributes to AdGroupAdPrimaryStatus.REMOVED.",
              "The user-specified ad status is paused. Contributes to AdGroupAdPrimaryStatus.PAUSED.",
              "The user-specified ad status is removed. Contributes to AdGroupAdPrimaryStatus.REMOVED.",
              "The ad is disapproved. Contributes to AdGroupAdPrimaryStatus.NOT_ELIGIBLE.",
              "The ad is under review. Contributes to AdGroupAdPrimaryStatus.PENDING.",
              "The ad is poor quality. This is determined by the serving stack that served the Ad. Contributes to AdGroupAdPrimaryStatus.LIMITED.",
              "No eligible ads instances could be generated. Contributes to AdGroupAdPrimaryStatus.PENDING.",
              "The ad is internally labeled with a limiting label. Contributes to AdGroupAdPrimaryStatus.LIMITED.",
              "The ad is only serving in the user-specified area of interest. Contributes to AdGroupAdPrimaryStatus.LIMITED.",
              "The ad is part of an ongoing appeal. This reason does not impact AdGroupAdPrimaryStatus."
            ],
            "type": "string"
          },
          "type": "array"
        },
        "labels": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Output only. The resource names of labels attached to this ad group ad.",
          "readOnly": true
        },
        "endDateTime": {
          "description": "The last day and time when ad group ad serves. This is added on top of the campaign's end date and time, if present, to further restrict the duration of an ad group ad. The timestamp is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss\" format. Only supported for some ad types.",
          "type": "string"
        },
        "adStrength": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PENDING",
            "NO_ADS",
            "POOR",
            "AVERAGE",
            "GOOD",
            "EXCELLENT"
          ],
          "description": "Output only. Overall ad strength for this ad group ad.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The ad strength is currently pending.",
            "No ads could be generated.",
            "Poor strength.",
            "Average strength.",
            "Good strength.",
            "Excellent strength."
          ]
        },
        "startDateTime": {
          "type": "string",
          "description": "The date and time when ad group ad starts serving. This is added on top of the campaign's start date and time, if present, to further restrict the duration of an ad group ad. The timestamp is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss\" format. Only supported for some ad types."
        },
        "actionItems": {
          "description": "Output only. A list of recommendations to improve the ad strength. For example, a recommendation could be \"Try adding a few more unique headlines or unpinning some assets.\".",
          "readOnly": true,
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__HotelCheckInDateRangeInfo": {
      "id": "GoogleAdsGoogleadsV24Common__HotelCheckInDateRangeInfo",
      "type": "object",
      "description": "Criterion for a check-in date range.",
      "properties": {
        "endDate": {
          "description": "End date in the YYYY-MM-DD format.",
          "type": "string"
        },
        "startDate": {
          "description": "Start date in the YYYY-MM-DD format.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__CampaignReservationQuote": {
      "id": "GoogleAdsGoogleadsV24Common__CampaignReservationQuote",
      "type": "object",
      "description": "The campaign reservation quote.",
      "properties": {
        "possibleHoldDurationSeconds": {
          "description": "The possible duration of the hold, in seconds.",
          "format": "int64",
          "type": "string"
        },
        "suggestedCpmMicros": {
          "type": "string",
          "description": "The CPM that would be accepted for the campaign calculated at the proposed budget. Specified in micros of the advertiser currency.",
          "format": "int64"
        },
        "campaign": {
          "description": "The campaign resource name, as it was specified in the request. It could contain a temp ID. Format: customers/{customer_id}/campaigns/{campaign_id}",
          "type": "string"
        },
        "maxBudgetMicros": {
          "type": "string",
          "description": "Maximum budget to get all available impressions at the current CPM. Capped at 10M USD. Specified in micros of the advertiser currency.",
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__BatchJobOperation": {
      "description": "A single operation on a batch job.",
      "properties": {
        "remove": {
          "description": "Remove operation: The batch job must not have been run. A resource name for the removed batch job is expected, in this format: `customers/{customer_id}/batchJobs/{batch_job_id}`",
          "type": "string"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new batch job.",
          "$ref": "GoogleAdsGoogleadsV24Resources__BatchJob"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__BatchJobOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__ProductItemIdInfo": {
      "description": "Item id of a product offer.",
      "properties": {
        "value": {
          "type": "string",
          "description": "Value of the id."
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__ProductItemIdInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__BusinessRegistrationNumber": {
      "description": "A proto holding information specific to a local services business registration number.",
      "properties": {
        "number": {
          "type": "string",
          "description": "Output only. Government-issued number for the business.",
          "readOnly": true
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__BusinessRegistrationNumber",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__BusinessProfileLocationGroup": {
      "description": "Information about a Business Profile dynamic location group. Only applicable if the sync level AssetSet's type is LOCATION_SYNC and sync source is Business Profile.",
      "properties": {
        "dynamicBusinessProfileLocationGroupFilter": {
          "description": "Filter for dynamic Business Profile location sets.",
          "$ref": "GoogleAdsGoogleadsV24Common__DynamicBusinessProfileLocationGroupFilter"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__BusinessProfileLocationGroup",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__FrequencyCap": {
      "id": "GoogleAdsGoogleadsV24Services__FrequencyCap",
      "type": "object",
      "description": "A rule specifying the maximum number of times an ad can be shown to a user over a particular time period.",
      "properties": {
        "impressions": {
          "type": "integer",
          "description": "Required. The number of impressions, inclusive.",
          "format": "int32"
        },
        "timeUnit": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DAY",
            "WEEK",
            "MONTH"
          ],
          "description": "Required. The type of time unit.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The cap would define limit per one day.",
            "The cap would define limit per one week.",
            "The cap would define limit per one month."
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__ListBenchmarksAvailableDatesResponse": {
      "description": "Response message for BenchmarksService.ListBenchmarksAvailableDates.",
      "properties": {
        "supportedDates": {
          "description": "The dates that support benchmarks metrics. Data is supported for any dates within this date range inclusive.",
          "$ref": "GoogleAdsGoogleadsV24Common__DateRange"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__ListBenchmarksAvailableDatesResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common_PolicyTopicConstraint_CountryConstraint": {
      "id": "GoogleAdsGoogleadsV24Common_PolicyTopicConstraint_CountryConstraint",
      "type": "object",
      "description": "Indicates that a resource's ability to serve in a particular country is constrained.",
      "properties": {
        "countryCriterion": {
          "description": "Geo target constant resource name of the country in which serving is constrained.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__QuoteCampaignsResponse": {
      "id": "GoogleAdsGoogleadsV24Services__QuoteCampaignsResponse",
      "type": "object",
      "description": "Response message for ReservationService.QuoteCampaigns.",
      "properties": {
        "result": {
          "description": "The result of the quote campaigns operation.",
          "$ref": "GoogleAdsGoogleadsV24Actions__QuoteCampaignsResult"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__CampaignSearchTermView": {
      "id": "GoogleAdsGoogleadsV24Resources__CampaignSearchTermView",
      "type": "object",
      "description": "This report provides granular performance data, including cost metrics, for each individual search term that triggered your ads. If keyword-related segments are used, Performance Max data will be excluded from the results.",
      "properties": {
        "searchTerm": {
          "description": "Output only. The search term.",
          "readOnly": true,
          "type": "string"
        },
        "campaign": {
          "type": "string",
          "description": "Output only. The campaign the search term served in.",
          "readOnly": true
        },
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the campaign search term view. Campaign search term view resource names have the form: `customers/{customer_id}/campaignSearchTermViews/{campaign_id}~{URL-base64_search_term}`",
          "readOnly": true
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__DetailContentSuitabilityPlacementView": {
      "description": "A detail content suitability placement view.",
      "properties": {
        "displayName": {
          "type": "string",
          "description": "Output only. The display name is URL for websites, YouTube video name for YouTube videos, and translated mobile app name for mobile apps.",
          "readOnly": true
        },
        "placementType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "WEBSITE",
            "MOBILE_APP_CATEGORY",
            "MOBILE_APPLICATION",
            "YOUTUBE_VIDEO",
            "YOUTUBE_CHANNEL",
            "GOOGLE_PRODUCTS"
          ],
          "description": "Output only. Represents the type of the placement, for example, Website, YouTubeVideo and MobileApplication.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Websites(for example, 'www.flowers4sale.com').",
            "Mobile application categories(for example, 'Games').",
            "mobile applications(for example, 'mobileapp::2-com.whatsthewordanswers').",
            "YouTube videos(for example, 'youtube.com/video/wtLJPvx7-ys').",
            "YouTube channels(for example, 'youtube.com::L8ZULXASCc1I_oaOT0NaOQ').",
            "Surfaces owned and operated by Google(for example, 'tv.google.com')."
          ]
        },
        "targetUrl": {
          "type": "string",
          "description": "Output only. URL of the placement, for example, website, link to the mobile application in app store, or a YouTube video URL.",
          "readOnly": true
        },
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the detail content suitability placement view. Detail content suitability placement view resource names have the form: `customers/{customer_id}/detailContentSuitabilityPlacementViews/{placement_fingerprint}`",
          "readOnly": true
        },
        "placement": {
          "description": "Output only. The automatic placement string at detail level, for example. website url, mobile application id, or a YouTube video id.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__DetailContentSuitabilityPlacementView",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__BenchmarksLocation": {
      "description": "A location that supports benchmarks data.",
      "properties": {
        "locationType": {
          "type": "string",
          "description": "The location's type. Location types correspond to target_type returned by searching location type in GoogleAdsService.Search/SearchStream."
        },
        "locationInfo": {
          "description": "Information on the geographic location, including the location ID.",
          "$ref": "GoogleAdsGoogleadsV24Common__LocationInfo"
        },
        "locationName": {
          "description": "The unique location name in English.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__BenchmarksLocation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__CampaignCriterionOperation": {
      "description": "A single operation (create, update, remove) on a campaign criterion.",
      "properties": {
        "update": {
          "description": "Update operation: The criterion is expected to have a valid resource name. Note that for smart campaigns, you cannot use the update method to edit the geolocation target.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CampaignCriterion"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed criterion is expected, in this format: `customers/{customer_id}/campaignCriteria/{campaign_id}~{criterion_id}`"
        },
        "updateMask": {
          "type": "string",
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new criterion.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CampaignCriterion"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__CampaignCriterionOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__CustomerUserAccess": {
      "id": "GoogleAdsGoogleadsV24Resources__CustomerUserAccess",
      "type": "object",
      "description": "Represents the permission of a single user onto a single customer.",
      "properties": {
        "emailAddress": {
          "description": "Output only. Email address of the user. Read only field",
          "readOnly": true,
          "type": "string"
        },
        "accessCreationDateTime": {
          "description": "Output only. The customer user access creation time. Read only field The format is \"YYYY-MM-DD HH:MM:SS\". Examples: \"2018-03-05 09:15:00\" or \"2018-02-01 14:34:30\"",
          "readOnly": true,
          "type": "string"
        },
        "accessRole": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADMIN",
            "STANDARD",
            "READ_ONLY",
            "EMAIL_ONLY"
          ],
          "description": "Access role of the user.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Owns its account and can control the addition of other users.",
            "Can modify campaigns, but can't affect other users.",
            "Can view campaigns and account changes, but cannot make edits.",
            "Role for \\\"email only\\\" access. Represents an email recipient rather than a true User entity."
          ]
        },
        "inviterUserEmailAddress": {
          "description": "Output only. The email address of the inviter user. Read only field",
          "readOnly": true,
          "type": "string"
        },
        "resourceName": {
          "description": "Immutable. Name of the resource. Resource names have the form: `customers/{customer_id}/customerUserAccesses/{user_id}`",
          "type": "string"
        },
        "userId": {
          "type": "string",
          "description": "Output only. User id of the user with the customer access. Read only field",
          "readOnly": true,
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__GenerateTextRequest": {
      "id": "GoogleAdsGoogleadsV24Services__GenerateTextRequest",
      "type": "object",
      "description": "Request message for AssetGenerationService.GenerateText",
      "properties": {
        "keywords": {
          "items": {
            "type": "string"
          },
          "description": "Optional. A freeform list of keywords that are relevant, used to inform asset generation.",
          "type": "array"
        },
        "freeformPrompt": {
          "type": "string",
          "description": "Optional. A freeform description of what assets should be generated. The string length must be between 1 and 1500, inclusive."
        },
        "existingGenerationContext": {
          "description": "Optional. The setting for which assets are being generated, such as an existing AssetGroup or AdGroupAd.",
          "$ref": "GoogleAdsGoogleadsV24Services__AssetGenerationExistingContext"
        },
        "advertisingChannelType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SEARCH",
            "DISPLAY",
            "SHOPPING",
            "HOTEL",
            "VIDEO",
            "MULTI_CHANNEL",
            "LOCAL",
            "SMART",
            "PERFORMANCE_MAX",
            "LOCAL_SERVICES",
            "TRAVEL",
            "DEMAND_GEN"
          ],
          "description": "Optional. The advertising channel for which to generate assets. Required if existing_context is not provided. Supported channel types: SEARCH, PERFORMANCE_MAX, DISPLAY, and DEMAND_GEN",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Search Network. Includes display bundled, and Search+ campaigns.",
            "Google Display Network only.",
            "Shopping campaigns serve on the shopping property and on google.com search results.",
            "Hotel Ads campaigns.",
            "Video campaigns.",
            "App Campaigns, and App Campaigns for Engagement, that run across multiple channels.",
            "Local ads campaigns.",
            "Smart campaigns.",
            "Performance Max campaigns.",
            "Local services campaigns.",
            "Travel campaigns.",
            "Demand Gen campaigns."
          ]
        },
        "assetFieldTypes": {
          "type": "array",
          "items": {
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "The asset is linked for use as a headline.",
              "The asset is linked for use as a description.",
              "The asset is linked for use as mandatory ad text.",
              "The asset is linked for use as a marketing image.",
              "The asset is linked for use as a media bundle.",
              "The asset is linked for use as a YouTube video.",
              "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
              "The asset is linked for use as a Lead Form extension.",
              "The asset is linked for use as a Promotion extension.",
              "The asset is linked for use as a Callout extension.",
              "The asset is linked for use as a Structured Snippet extension.",
              "The asset is linked for use as a Sitelink.",
              "The asset is linked for use as a Mobile App extension.",
              "The asset is linked for use as a Hotel Callout extension.",
              "The asset is linked for use as a Call extension.",
              "The asset is linked for use as a Price extension.",
              "The asset is linked for use as a long headline.",
              "The asset is linked for use as a business name.",
              "The asset is linked for use as a square marketing image.",
              "The asset is linked for use as a portrait marketing image.",
              "The asset is linked for use as a logo.",
              "The asset is linked for use as a landscape logo.",
              "The asset is linked for use as a non YouTube logo.",
              "The asset is linked for use to select a call-to-action.",
              "The asset is linked for use to select an ad image.",
              "The asset is linked for use as a business logo.",
              "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
              "The asset is linked for use as a Demand Gen carousel card.",
              "The asset is linked for use as a Business Message.",
              "The asset is linked for use as a tall portrait marketing image.",
              "The asset is linked for use as related YouTube videos.",
              "The asset is linked for use as a landing page preview image.",
              "The asset is linked for use as a long description.",
              "The asset is linked for use as a call-to-action."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "HEADLINE",
              "DESCRIPTION",
              "MANDATORY_AD_TEXT",
              "MARKETING_IMAGE",
              "MEDIA_BUNDLE",
              "YOUTUBE_VIDEO",
              "BOOK_ON_GOOGLE",
              "LEAD_FORM",
              "PROMOTION",
              "CALLOUT",
              "STRUCTURED_SNIPPET",
              "SITELINK",
              "MOBILE_APP",
              "HOTEL_CALLOUT",
              "CALL",
              "PRICE",
              "LONG_HEADLINE",
              "BUSINESS_NAME",
              "SQUARE_MARKETING_IMAGE",
              "PORTRAIT_MARKETING_IMAGE",
              "LOGO",
              "LANDSCAPE_LOGO",
              "VIDEO",
              "CALL_TO_ACTION_SELECTION",
              "AD_IMAGE",
              "BUSINESS_LOGO",
              "HOTEL_PROPERTY",
              "DEMAND_GEN_CAROUSEL_CARD",
              "BUSINESS_MESSAGE",
              "TALL_PORTRAIT_MARKETING_IMAGE",
              "RELATED_YOUTUBE_VIDEOS",
              "LANDING_PAGE_PREVIEW",
              "LONG_DESCRIPTION",
              "CALL_TO_ACTION"
            ],
            "type": "string"
          },
          "description": "Required. Which field types text is being generated for. Supported values are: HEADLINE, LONG_HEADLINE, DESCRIPTION. Required."
        },
        "finalUrl": {
          "description": "Optional. Final url to use as a source for generating assets. Required if existing_generation_context is not provided or does not have a final url associated with it.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Actions__ShareablePreviewResult": {
      "description": "Message to hold a shareable preview result.",
      "properties": {
        "assetGroup": {
          "type": "string",
          "description": "Asset group of the shareable preview. Format: customers/{customer_id}/assetGroups/{asset_group_id}"
        },
        "uiPreviewResult": {
          "description": "The result of a UI preview. Only populated for preview type UI_PREVIEW.",
          "$ref": "GoogleAdsGoogleadsV24Actions__UiPreviewResult"
        },
        "youtubeLivePreviewResult": {
          "description": "The result of a YouTube live preview. Only populated for preview type YOUTUBE_LIVE_PREVIEW.",
          "$ref": "GoogleAdsGoogleadsV24Actions__YouTubeLivePreviewResult"
        },
        "expirationDateTime": {
          "description": "Expiration date time using the ISO-8601 format.",
          "type": "string"
        },
        "adGroupAd": {
          "type": "string",
          "description": "Ad group ad of the shareable preview. Format: customers/{customer_id}/adGroupAds/{ad_group_id}~{ad_id}"
        }
      },
      "id": "GoogleAdsGoogleadsV24Actions__ShareablePreviewResult",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateGoalResult": {
      "id": "GoogleAdsGoogleadsV24Services__MutateGoalResult",
      "type": "object",
      "description": "The result for the goal mutate.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__BiddingDataExclusion": {
      "id": "GoogleAdsGoogleadsV24Resources__BiddingDataExclusion",
      "type": "object",
      "description": "Represents a bidding data exclusion. Bidding data exclusions can be set in client accounts only, and cannot be used in manager accounts. See \"About data exclusions\" at https://support.google.com/google-ads/answer/10370710. Note: A customer account can have a maximum of 500 active bidding data exclusions.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the data exclusion. Data exclusion resource names have the form: `customers/{customer_id}/biddingDataExclusions/{data_exclusion_id}`"
        },
        "campaigns": {
          "description": "The data exclusion will apply to the campaigns listed when the scope of this exclusion is CAMPAIGN. The maximum number of campaigns per event is 2000. Note: a data exclusion with both advertising_channel_types and campaign_ids is not supported.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "status": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "description": "Output only. The status of the data exclusion.",
          "readOnly": true,
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The seasonality event is enabled.",
            "The seasonality event is removed."
          ]
        },
        "startDateTime": {
          "description": "Required. The inclusive start time of the data exclusion in yyyy-MM-dd HH:mm:ss format. A data exclusion is backward looking and should be used for events that start in the past and end either in the past or future.",
          "type": "string"
        },
        "description": {
          "type": "string",
          "description": "The description of the data exclusion. The description can be at most 2048 characters."
        },
        "advertisingChannelTypes": {
          "items": {
            "type": "string",
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "SEARCH",
              "DISPLAY",
              "SHOPPING",
              "HOTEL",
              "VIDEO",
              "MULTI_CHANNEL",
              "LOCAL",
              "SMART",
              "PERFORMANCE_MAX",
              "LOCAL_SERVICES",
              "TRAVEL",
              "DEMAND_GEN"
            ],
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "Search Network. Includes display bundled, and Search+ campaigns.",
              "Google Display Network only.",
              "Shopping campaigns serve on the shopping property and on google.com search results.",
              "Hotel Ads campaigns.",
              "Video campaigns.",
              "App Campaigns, and App Campaigns for Engagement, that run across multiple channels.",
              "Local ads campaigns.",
              "Smart campaigns.",
              "Performance Max campaigns.",
              "Local services campaigns.",
              "Travel campaigns.",
              "Demand Gen campaigns."
            ]
          },
          "description": "The data_exclusion will apply to all the campaigns under the listed channels retroactively as well as going forward when the scope of this exclusion is CHANNEL. The supported advertising channel types are DISPLAY, SEARCH and SHOPPING. Note: a data exclusion with both advertising_channel_types and campaign_ids is not supported.",
          "type": "array"
        },
        "scope": {
          "description": "The scope of the data exclusion.",
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The seasonality event is applied to all the customer's traffic for supported advertising channel types and device types. The CUSTOMER scope cannot be used in mutates.",
            "The seasonality event is applied to all specified campaigns.",
            "The seasonality event is applied to all campaigns that belong to specified channel types."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CUSTOMER",
            "CAMPAIGN",
            "CHANNEL"
          ],
          "type": "string"
        },
        "endDateTime": {
          "type": "string",
          "description": "Required. The exclusive end time of the data exclusion in yyyy-MM-dd HH:mm:ss format. The length of [start_date_time, end_date_time) interval must be within (0, 14 days]."
        },
        "devices": {
          "description": "If not specified, all devices will be included in this exclusion. Otherwise, only the specified targeted devices will be included in this exclusion.",
          "items": {
            "type": "string",
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "MOBILE",
              "TABLET",
              "DESKTOP",
              "CONNECTED_TV",
              "OTHER"
            ],
            "enumDescriptions": [
              "Not specified.",
              "The value is unknown in this version.",
              "Mobile devices with full browsers.",
              "Tablets with full browsers.",
              "Computers.",
              "Smart TVs and game consoles.",
              "Other device types."
            ]
          },
          "type": "array"
        },
        "dataExclusionId": {
          "type": "string",
          "description": "Output only. The ID of the data exclusion.",
          "readOnly": true,
          "format": "int64"
        },
        "name": {
          "description": "The name of the data exclusion. The name can be at most 255 characters.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__CustomAudience": {
      "description": "A custom audience. This is a list of users by interest. The unique key of a custom audience consists of the following fields: name. Violating the unique key constraint produces error: CustomAudienceError.NAME_ALREADY_USED",
      "properties": {
        "type": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AUTO",
            "INTEREST",
            "PURCHASE_INTENT",
            "SEARCH"
          ],
          "description": "Type of the custom audience. (\"INTEREST\" OR \"PURCHASE_INTENT\" is not allowed for newly created custom audience but kept for existing audiences)",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Google Ads will auto-select the best interpretation at serving time.",
            "Matches users by their interests.",
            "Matches users by topics they are researching or products they are considering for purchase.",
            "Matches users by what they searched on Google Search."
          ],
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "Name of the custom audience. It should be unique for all custom audiences created by a customer. This field is required for creating operations."
        },
        "members": {
          "type": "array",
          "description": "List of custom audience members that this custom audience is composed of. Members can be added during CustomAudience creation. If members are presented in UPDATE operation, existing members will be overridden.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Resources__CustomAudienceMember"
          }
        },
        "id": {
          "type": "string",
          "description": "Output only. ID of the custom audience.",
          "readOnly": true,
          "format": "int64"
        },
        "status": {
          "description": "Output only. Status of this custom audience. Indicates whether the custom audience is enabled or removed.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Enabled status - custom audience is enabled and can be targeted.",
            "Removed status - custom audience is removed and cannot be used for targeting."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "type": "string"
        },
        "description": {
          "type": "string",
          "description": "Description of this custom audience."
        },
        "resourceName": {
          "description": "Immutable. The resource name of the custom audience. Custom audience resource names have the form: `customers/{customer_id}/customAudiences/{custom_audience_id}`",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__CustomAudience",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__LanguageConstant": {
      "id": "GoogleAdsGoogleadsV24Resources__LanguageConstant",
      "type": "object",
      "description": "A language.",
      "properties": {
        "code": {
          "description": "Output only. The language code, for example, \"en_US\", \"en_AU\", \"es\", \"fr\", etc.",
          "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"
        },
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the language constant. Language constant resource names have the form: `languageConstants/{criterion_id}`",
          "readOnly": true
        },
        "id": {
          "type": "string",
          "description": "Output only. The ID of the language constant.",
          "readOnly": true,
          "format": "int64"
        },
        "targetable": {
          "description": "Output only. Whether the language is targetable.",
          "readOnly": true,
          "type": "boolean"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateCampaignCustomizersRequest": {
      "id": "GoogleAdsGoogleadsV24Services__MutateCampaignCustomizersRequest",
      "type": "object",
      "description": "Request message for CampaignCustomizerService.MutateCampaignCustomizers.",
      "properties": {
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "operations": {
          "description": "Required. The list of operations to perform on individual campaign customizers.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__CampaignCustomizerOperation"
          },
          "type": "array"
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "responseContentType": {
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__CustomerSearchTermInsight": {
      "description": "This report provides a high-level view of search demand at the customer level by grouping similar search terms into categories and showing their search volume. Historical data is available starting March 2023.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the customer level search term insight. Customer level search term insight resource names have the form: `customers/{customer_id}/customerSearchTermInsights/{category_id}`",
          "readOnly": true
        },
        "categoryLabel": {
          "type": "string",
          "description": "Output only. The label for the search category. An empty string denotes the catch-all category for search terms that didn't fit into another category.",
          "readOnly": true
        },
        "id": {
          "type": "string",
          "description": "Output only. The ID of the insight.",
          "readOnly": true,
          "format": "int64"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__CustomerSearchTermInsight",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__DemandGenVideoResponsiveAdInfo": {
      "description": "A Demand Gen video responsive ad.",
      "properties": {
        "companionBanners": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdImageAsset"
          },
          "description": "List of image assets used for the companion banner. Currently, only a single value for the companion banner asset is supported.",
          "type": "array"
        },
        "videos": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdVideoAsset"
          },
          "description": "Required. List of YouTube video assets used for the ad.",
          "type": "array"
        },
        "businessName": {
          "description": "Required. The advertiser/brand name.",
          "$ref": "GoogleAdsGoogleadsV24Common__AdTextAsset"
        },
        "descriptions": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdTextAsset"
          },
          "description": "List of text assets used for the description.",
          "type": "array"
        },
        "breadcrumb2": {
          "description": "Second part of text that appears in the ad with the displayed URL.",
          "type": "string"
        },
        "callToActions": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdCallToActionAsset"
          },
          "description": "Assets of type CallToActionAsset used for the \"Call To Action\" button.",
          "type": "array"
        },
        "headlines": {
          "type": "array",
          "description": "List of text assets used for the short headline.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdTextAsset"
          }
        },
        "longHeadlines": {
          "type": "array",
          "description": "List of text assets used for the long headline.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdTextAsset"
          }
        },
        "logoImages": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdImageAsset"
          },
          "description": "Required. Logo image to be used in the ad. Valid image types are GIF, JPEG, and PNG. The minimum size is 128x128 and the aspect ratio must be 1:1 (+-1%)."
        },
        "breadcrumb1": {
          "type": "string",
          "description": "First part of text that appears in the ad with the displayed URL."
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__DemandGenVideoResponsiveAdInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Errors__PolicyFindingDetails": {
      "description": "Error returned as part of a mutate response. This error indicates one or more policy findings in the fields of a resource.",
      "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).",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__PolicyTopicEntry"
          },
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Errors__PolicyFindingDetails",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_Recommendation_RecommendationMetrics": {
      "description": "Weekly account performance metrics. For some recommendation types, these are averaged over the past 90-day period and hence can be fractional.",
      "properties": {
        "impressions": {
          "description": "Output only. Number of ad impressions.",
          "readOnly": true,
          "format": "double",
          "type": "number"
        },
        "conversions": {
          "type": "number",
          "description": "Output only. Number of conversions.",
          "readOnly": true,
          "format": "double"
        },
        "clicks": {
          "description": "Output only. Number of ad clicks.",
          "readOnly": true,
          "format": "double",
          "type": "number"
        },
        "costMicros": {
          "description": "Output only. Cost (in micros) for advertising, in the local currency for the account.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "conversionsValue": {
          "description": "Output only. Sum of the conversion value of the conversions.",
          "readOnly": true,
          "format": "double",
          "type": "number"
        },
        "videoViews": {
          "description": "Output only. Number of video views for a video ad campaign.",
          "readOnly": true,
          "format": "double",
          "type": "number"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_Recommendation_RecommendationMetrics",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_Campaign_CategoryBid": {
      "id": "GoogleAdsGoogleadsV24Resources_Campaign_CategoryBid",
      "type": "object",
      "description": "Category bids in LocalServicesReportingCampaignSettings.",
      "properties": {
        "categoryId": {
          "type": "string",
          "description": "Category for which the bid will be associated with. For example, xcat:service_area_business_plumber."
        },
        "manualCpaBidMicros": {
          "description": "Manual CPA bid for the category. Bid must be greater than the reserve price associated for that category. Value is in micros and in the advertiser's currency.",
          "format": "int64",
          "type": "string"
        },
        "targetCpaBidMicros": {
          "description": "Target CPA bid for the category. Value is in micros and in the advertiser's currency.",
          "format": "int64",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__BillingSetupOperation": {
      "description": "A single operation on a billing setup, which describes the cancellation of an existing billing setup.",
      "properties": {
        "remove": {
          "type": "string",
          "description": "Resource name of the billing setup to remove. A setup cannot be removed unless it is in a pending state or its scheduled start time is in the future. The resource name looks like `customers/{customer_id}/billingSetups/{billing_id}`."
        },
        "create": {
          "description": "Creates a billing setup. No resource name is expected for the new billing setup.",
          "$ref": "GoogleAdsGoogleadsV24Resources__BillingSetup"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__BillingSetupOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__PolicySummary": {
      "description": "Contains policy summary information.",
      "properties": {
        "approvalStatus": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DISAPPROVED",
            "APPROVED_LIMITED",
            "APPROVED",
            "AREA_OF_INTEREST_ONLY"
          ],
          "description": "The overall approval status, which is calculated based on the status of its individual policy topic entries.",
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "Will not serve.",
            "Serves with restrictions.",
            "Serves without restrictions.",
            "Will not serve in targeted countries, but may serve for users who are searching for information about the targeted countries."
          ]
        },
        "policyTopicEntries": {
          "type": "array",
          "description": "The list of policy findings.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__PolicyTopicEntry"
          }
        },
        "reviewStatus": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "REVIEW_IN_PROGRESS",
            "REVIEWED",
            "UNDER_APPEAL",
            "ELIGIBLE_MAY_SERVE"
          ],
          "description": "Where in the review process the resource is.",
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "Currently under review.",
            "Primary review complete. Other reviews may be continuing.",
            "The resource has been resubmitted for approval or its policy decision has been appealed.",
            "The resource is eligible and may be serving but could still undergo further review."
          ]
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__PolicySummary",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__CombinedAudienceInfo": {
      "description": "A combined audience criterion.",
      "properties": {
        "combinedAudience": {
          "type": "string",
          "description": "The CombinedAudience resource name."
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__CombinedAudienceInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_Recommendation_ResponsiveSearchAdImproveAdStrengthRecommendation": {
      "description": "The responsive search ad improve ad strength recommendation.",
      "properties": {
        "currentAd": {
          "description": "Output only. The current ad to be updated.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources__Ad"
        },
        "recommendedAd": {
          "description": "Output only. The updated ad.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources__Ad"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_Recommendation_ResponsiveSearchAdImproveAdStrengthRecommendation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__ConversionRateSuggestion": {
      "id": "GoogleAdsGoogleadsV24Services__ConversionRateSuggestion",
      "type": "object",
      "description": "A conversion rate suggestion.",
      "properties": {
        "plannableProductCode": {
          "type": "string",
          "description": "The code associated with the plannable product (for example: DEMAND_GEN). To list all plannable product codes, use ReachPlanService.ListPlannableProducts."
        },
        "surfaceTargeting": {
          "description": "The surfaces associated with the plannable product. If not present, the conversion rate is considered surface agnostic for this product.",
          "$ref": "GoogleAdsGoogleadsV24Services__SurfaceTargeting"
        },
        "conversionRateModel": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CUSTOMER_HISTORY",
            "INVENTORY_AGGRESSIVE",
            "INVENTORY_CONSERVATIVE",
            "INVENTORY_MEDIAN"
          ],
          "description": "Model type used to calculate the suggested conversion rate.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Suggested conversion rate for the authenticated customer based on the previous 70 days.",
            "Suggested conversion rate based on an aggressive rate for the entire inventory.",
            "Suggested conversion rate based on a conservative rate for the entire inventory.",
            "Suggested conversion rate based on the median rate for the entire inventory."
          ]
        },
        "conversionRate": {
          "description": "The suggested conversion rate. The value is between 0 and 1 (exclusive).",
          "format": "double",
          "type": "number"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__AudienceCompositionSection": {
      "description": "A collection of related attributes of the same type in an audience composition insights report.",
      "properties": {
        "dimension": {
          "description": "The type of the attributes in this section.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "A Product & Service category.",
            "A Knowledge Graph entity.",
            "A country, represented by a geo target.",
            "A geographic location within a country.",
            "A YouTube channel.",
            "An Affinity UserInterest.",
            "An In-Market UserInterest.",
            "A Parental Status value (parent, or not a parent).",
            "A household income percentile range.",
            "An age range.",
            "A gender.",
            "A YouTube video.",
            "A device type, such as Mobile, Desktop, Tablet, and Connected TV.",
            "A YouTube Lineup.",
            "A User List.",
            "A Life Event UserInterest."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CATEGORY",
            "KNOWLEDGE_GRAPH",
            "GEO_TARGET_COUNTRY",
            "SUB_COUNTRY_LOCATION",
            "YOUTUBE_CHANNEL",
            "AFFINITY_USER_INTEREST",
            "IN_MARKET_USER_INTEREST",
            "PARENTAL_STATUS",
            "INCOME_RANGE",
            "AGE_RANGE",
            "GENDER",
            "YOUTUBE_VIDEO",
            "DEVICE",
            "YOUTUBE_LINEUP",
            "USER_LIST",
            "LIFE_EVENT_USER_INTEREST"
          ],
          "type": "string"
        },
        "clusteredAttributes": {
          "type": "array",
          "description": "Additional attributes for this audience, grouped into clusters. Only populated if dimension is YOUTUBE_CHANNEL.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__AudienceCompositionAttributeCluster"
          }
        },
        "topAttributes": {
          "description": "The most relevant segments for this audience. If dimension is GENDER, AGE_RANGE or PARENTAL_STATUS, then this list of attributes is exhaustive.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__AudienceCompositionAttribute"
          },
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__AudienceCompositionSection",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__ScheduleExperimentMetadata": {
      "description": "The metadata of the scheduled experiment.",
      "properties": {
        "experiment": {
          "description": "Required. The scheduled experiment.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__ScheduleExperimentMetadata",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__LookalikeUserListInfo": {
      "description": "LookalikeUserlist, composed of users similar to those of a configurable seed (set of UserLists)",
      "properties": {
        "expansionLevel": {
          "description": "Expansion level, reflecting the size of the lookalike audience",
          "enumDescriptions": [
            "Not specified.",
            "Invalid expansion level.",
            "Expansion to a small set of users that are similar to the seed lists",
            "Expansion to a medium set of users that are similar to the seed lists. Includes all users of EXPANSION_LEVEL_NARROW, and more.",
            "Expansion to a large set of users that are similar to the seed lists. Includes all users of EXPANSION_LEVEL_BALANCED, and more."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NARROW",
            "BALANCED",
            "BROAD"
          ],
          "type": "string"
        },
        "countryCodes": {
          "items": {
            "type": "string"
          },
          "description": "Countries targeted by the Lookalike. Two-letter country code as defined by ISO-3166",
          "type": "array"
        },
        "seedUserListIds": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "int64"
          },
          "description": "Seed UserList ID from which this list is derived, provided by user."
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__LookalikeUserListInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__ParentalStatusInfo": {
      "id": "GoogleAdsGoogleadsV24Common__ParentalStatusInfo",
      "type": "object",
      "description": "A parental status criterion.",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PARENT",
            "NOT_A_PARENT",
            "UNDETERMINED"
          ],
          "description": "Type of the parental status.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Parent.",
            "Not a parent.",
            "Undetermined parental status."
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateAssetGroupSignalsResponse": {
      "description": "Response message for an asset group signal mutate.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateAssetGroupSignalResult"
          },
          "description": "All results for the mutate.",
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateAssetGroupSignalsResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__LocalServicesLead": {
      "id": "GoogleAdsGoogleadsV24Resources__LocalServicesLead",
      "type": "object",
      "description": "Data from Local Services Lead. Contains details of Lead which is generated when user calls, messages or books service from advertiser. More info: https://ads.google.com/local-services-ads",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the local services lead data. Local Services Lead resource name have the form `customers/{customer_id}/localServicesLead/{local_services_lead_id}`"
        },
        "note": {
          "description": "Output only. Note added by advertiser for the lead.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources__Note"
        },
        "creditDetails": {
          "description": "Output only. Credit details of the lead.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources__CreditDetails"
        },
        "leadFeedbackSubmitted": {
          "type": "boolean",
          "description": "Output only. True if the advertiser submitted feedback for the lead.",
          "readOnly": true
        },
        "contactDetails": {
          "description": "Output only. Lead's contact details.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources__ContactDetails"
        },
        "leadCharged": {
          "description": "Output only. True if the advertiser was charged for the lead.",
          "readOnly": true,
          "type": "boolean"
        },
        "creationDateTime": {
          "description": "Output only. The date time at which lead was created by Local Services Ads. The format is \"YYYY-MM-DD HH:MM:SS\" in the Google Ads account's timezone. Examples: \"2018-03-05 09:15:00\" or \"2018-02-01 14:34:30\"",
          "readOnly": true,
          "type": "string"
        },
        "leadType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MESSAGE",
            "PHONE_CALL",
            "BOOKING"
          ],
          "description": "Output only. Type of Local Services lead: phone, message, booking, etc.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Message lead.",
            "Lead created by phone call.",
            "Booking lead."
          ],
          "type": "string"
        },
        "leadStatus": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NEW",
            "ACTIVE",
            "BOOKED",
            "DECLINED",
            "EXPIRED",
            "DISABLED",
            "CONSUMER_DECLINED",
            "WIPED_OUT"
          ],
          "description": "Output only. Current status of lead.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "New lead which hasn't yet been seen by advertiser.",
            "Lead that thas been interacted by advertiser.",
            "Lead has been booked.",
            "Lead was declined by advertiser.",
            "Lead has expired due to inactivity.",
            "Disabled due to spam or dispute.",
            "Consumer declined the lead.",
            "Personally Identifiable Information of the lead is wiped out."
          ]
        },
        "id": {
          "type": "string",
          "description": "Output only. ID of this Lead.",
          "readOnly": true,
          "format": "int64"
        },
        "serviceId": {
          "description": "Output only. Service for the category. For example: `buyer_agent`, `seller_agent` for the category of `xcat:service_area_business_real_estate_agent`.",
          "readOnly": true,
          "type": "string"
        },
        "locale": {
          "type": "string",
          "description": "Output only. Language used by the Local Services provider linked to lead. See https://developers.google.com/google-ads/api/data/codes-formats#locales",
          "readOnly": true
        },
        "categoryId": {
          "description": "Output only. Service category of the lead. For example: `xcat:service_area_business_hvac`, `xcat:service_area_business_real_estate_agent`, etc. For more details see: https://developers.google.com/google-ads/api/data/codes-formats#local_services_ids",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateCustomerAssetSetsResponse": {
      "description": "Response message for a customer asset set mutate.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (e.g. auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomerAssetSetResult"
          },
          "description": "All results for the mutate.",
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateCustomerAssetSetsResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common_PolicyTopicEvidence_TextList": {
      "id": "GoogleAdsGoogleadsV24Common_PolicyTopicEvidence_TextList",
      "type": "object",
      "description": "A list of fragments of text that violated a policy.",
      "properties": {
        "texts": {
          "type": "array",
          "description": "The fragments of text from the resource that caused the policy finding.",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_Recommendation_DynamicImageExtensionOptInRecommendation": {
      "description": "Recommendation to enable dynamic image extensions on the account, allowing Google to find the best images from ad landing pages and complement text ads.",
      "properties": {},
      "id": "GoogleAdsGoogleadsV24Resources_Recommendation_DynamicImageExtensionOptInRecommendation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__YouTubeSelectLineUpTargeting": {
      "description": "Targetable YouTube Select Lineups for the ad product and the default Lineup.",
      "properties": {
        "youtubeSelectLineups": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__YouTubeSelectLineUp"
          },
          "description": "Targetable YouTube Select Lineups for the ad product.",
          "type": "array"
        },
        "defaultYoutubeSelectLineup": {
          "description": "The default YouTube Select Lineup for the ad product if available.",
          "$ref": "GoogleAdsGoogleadsV24Services__YouTubeSelectLineUp"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__YouTubeSelectLineUpTargeting",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__RemoveDataLinkRequest": {
      "id": "GoogleAdsGoogleadsV24Services__RemoveDataLinkRequest",
      "type": "object",
      "description": "Request message for DataLinkService.RemoveDataLink.",
      "properties": {
        "resourceName": {
          "description": "Required. The data link is expected to have a valid resource name.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_ListingGroupFilterDimension_ProductCategory": {
      "id": "GoogleAdsGoogleadsV24Resources_ListingGroupFilterDimension_ProductCategory",
      "type": "object",
      "description": "One element of a category at a certain level. Top-level categories are at level 1, their children at level 2, and so on. We currently support up to 5 levels. The user must specify a dimension type that indicates the level of the category. All cases of the same subdivision must have the same dimension type (category level).",
      "properties": {
        "level": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "LEVEL1",
            "LEVEL2",
            "LEVEL3",
            "LEVEL4",
            "LEVEL5"
          ],
          "description": "Indicates the level of the category in the taxonomy.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Level 1.",
            "Level 2.",
            "Level 3.",
            "Level 4.",
            "Level 5."
          ],
          "type": "string"
        },
        "categoryId": {
          "type": "string",
          "description": "ID of the product category. This ID is equivalent to the google_product_category ID as described in this article: https://support.google.com/merchants/answer/6324436",
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__PlannableUserInterest": {
      "description": "A plannable user interest that can be targeted in a reach forecast using ReachPlanService.GenerateReachForecast.",
      "properties": {
        "userInterestPath": {
          "description": "The user interest path. For example, \"/Autos & Vehicles/Motor Vehicles/Motor Vehicles by Type/Off-Road Vehicles\"",
          "type": "string"
        },
        "userInterestType": {
          "type": "string",
          "description": "The user interest type.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The affinity for this user interest.",
            "The market for this user interest.",
            "Users known to have installed applications in the specified categories.",
            "The geographical location of the interest-based vertical.",
            "User interest criteria for new smart phone users."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AFFINITY",
            "IN_MARKET",
            "MOBILE_APP_INSTALL_USER",
            "VERTICAL_GEO",
            "NEW_SMART_PHONE_USER"
          ]
        },
        "userInterest": {
          "description": "The user interest id.",
          "$ref": "GoogleAdsGoogleadsV24Common__UserInterestInfo"
        },
        "userInterestDisplayName": {
          "type": "string",
          "description": "The user interest display name. For example, \"Autos & Vehicles\""
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__PlannableUserInterest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__ListPlannableLocationsResponse": {
      "id": "GoogleAdsGoogleadsV24Services__ListPlannableLocationsResponse",
      "type": "object",
      "description": "The list of plannable locations.",
      "properties": {
        "plannableLocations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__PlannableLocation"
          },
          "description": "The list of locations available for planning. See https://developers.google.com/google-ads/api/reference/data/geotargets for sample locations.",
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__CallToActionAsset": {
      "id": "GoogleAdsGoogleadsV24Common__CallToActionAsset",
      "type": "object",
      "description": "A call to action asset.",
      "properties": {
        "callToAction": {
          "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.",
          "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."
          ],
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_Recommendation_LeadFormAssetRecommendation": {
      "description": "The lead form asset recommendation.",
      "properties": {},
      "id": "GoogleAdsGoogleadsV24Resources_Recommendation_LeadFormAssetRecommendation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_ForecastingSetTargetCpaParameters": {
      "description": "Parameters to use when applying a set target CPA recommendation.",
      "properties": {
        "campaignBudgetAmountMicros": {
          "type": "string",
          "description": "New campaign budget amount to set for a campaign resource.",
          "format": "int64"
        },
        "targetCpaMicros": {
          "description": "Average CPA to use for Target CPA bidding strategy.",
          "format": "int64",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_ForecastingSetTargetCpaParameters",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateCustomerResult": {
      "id": "GoogleAdsGoogleadsV24Services__MutateCustomerResult",
      "type": "object",
      "description": "The result for the customer mutate.",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        },
        "customer": {
          "description": "The mutated customer with only mutable fields after mutate. The fields will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV24Resources__Customer"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__FreeformImageGenerationInput": {
      "description": "Input for guiding image asset generation with a freeform prompt.",
      "properties": {
        "freeformPrompt": {
          "type": "string",
          "description": "Required. A freeform text description to guide the image generation process. The maximum length is 1500 characters. Required."
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__FreeformImageGenerationInput",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__AgeRangeInfo": {
      "description": "An age range criterion.",
      "properties": {
        "type": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AGE_RANGE_18_24",
            "AGE_RANGE_25_34",
            "AGE_RANGE_35_44",
            "AGE_RANGE_45_54",
            "AGE_RANGE_55_64",
            "AGE_RANGE_65_UP",
            "AGE_RANGE_UNDETERMINED"
          ],
          "description": "Type of the age range.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Between 18 and 24 years old.",
            "Between 25 and 34 years old.",
            "Between 35 and 44 years old.",
            "Between 45 and 54 years old.",
            "Between 55 and 64 years old.",
            "65 years old and beyond.",
            "Undetermined age range."
          ],
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__AgeRangeInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__AudienceDimension": {
      "id": "GoogleAdsGoogleadsV24Common__AudienceDimension",
      "type": "object",
      "description": "Positive dimension specifying user's audience.",
      "properties": {
        "audienceSegments": {
          "description": "Dimension specifying users by their membership in other audience segments.",
          "$ref": "GoogleAdsGoogleadsV24Common__AudienceSegmentDimension"
        },
        "parentalStatus": {
          "description": "Dimension specifying users by their parental status.",
          "$ref": "GoogleAdsGoogleadsV24Common__ParentalStatusDimension"
        },
        "age": {
          "description": "Dimension specifying users by their age.",
          "$ref": "GoogleAdsGoogleadsV24Common__AgeDimension"
        },
        "gender": {
          "description": "Dimension specifying users by their gender.",
          "$ref": "GoogleAdsGoogleadsV24Common__GenderDimension"
        },
        "householdIncome": {
          "description": "Dimension specifying users by their household income.",
          "$ref": "GoogleAdsGoogleadsV24Common__HouseholdIncomeDimension"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__ConversionValueRuleOperation": {
      "description": "A single operation (create, update, remove) on a conversion value rule.",
      "properties": {
        "update": {
          "description": "Update operation: The conversion value rule is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV24Resources__ConversionValueRule"
        },
        "remove": {
          "description": "Remove operation: A resource name for the removed conversion value rule is expected, in this format: `customers/{customer_id}/conversionValueRules/{conversion_value_rule_id}`",
          "type": "string"
        },
        "updateMask": {
          "type": "string",
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new conversion value rule.",
          "$ref": "GoogleAdsGoogleadsV24Resources__ConversionValueRule"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__ConversionValueRuleOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateCustomerConversionGoalsRequest": {
      "id": "GoogleAdsGoogleadsV24Services__MutateCustomerConversionGoalsRequest",
      "type": "object",
      "description": "Request message for CustomerConversionGoalService.MutateCustomerConversionGoals.",
      "properties": {
        "operations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__CustomerConversionGoalOperation"
          },
          "description": "Required. The list of operations to perform on individual customer conversion goal.",
          "type": "array"
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__PlacementInfo": {
      "description": "A placement criterion. This can be used to modify bids for sites when targeting the content network.",
      "properties": {
        "url": {
          "description": "URL of the placement. For example, \"http://www.domain.com\".",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__PlacementInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_SmartCampaignSetting_AdOptimizedBusinessProfileSetting": {
      "description": "Settings for configuring a business profile optimized for ads as this campaign's landing page.",
      "properties": {
        "includeLeadForm": {
          "type": "boolean",
          "description": "Enabling a lead form on your business profile enables prospective customers to contact your business by filling out a simple form, and you'll receive their information through email."
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_SmartCampaignSetting_AdOptimizedBusinessProfileSetting",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__AudienceCompositionMetrics": {
      "id": "GoogleAdsGoogleadsV24Services__AudienceCompositionMetrics",
      "type": "object",
      "description": "The share and index metrics associated with an attribute in an audience composition insights report.",
      "properties": {
        "index": {
          "description": "The ratio of audience_share to baseline_audience_share, or zero if this ratio is undefined or is not meaningful.",
          "format": "double",
          "type": "number"
        },
        "audienceShare": {
          "description": "The fraction (from 0 to 1 inclusive) of the specific audience that match the attribute.",
          "format": "double",
          "type": "number"
        },
        "score": {
          "description": "A relevance score from 0 to 1 inclusive.",
          "format": "double",
          "type": "number"
        },
        "baselineAudienceShare": {
          "description": "The fraction (from 0 to 1 inclusive) of the baseline audience that match the attribute.",
          "format": "double",
          "type": "number"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common_CampaignGoalSettings_CampaignRetentionGoalSettings": {
      "description": "Retention campaign goal settings.",
      "properties": {
        "valueSettingsOverride": {
          "description": "Retention goal campaign specific value settings.",
          "$ref": "GoogleAdsGoogleadsV24Common__CustomerLifecycleOptimizationValueSettings"
        },
        "targetOption": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "TARGET_ALL",
            "TARGET_SPECIFIC"
          ],
          "description": "Retention goal optimization mode for this campaign. Defaults to TARGET_ALL. Only customers on the allowlist can set target_option.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The mode is used when the campaign optimizes for all customers, which is the default value.",
            "This mode configures the campaign to target only customers who have previously interacted but are now lapsed or disengaged."
          ],
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common_CampaignGoalSettings_CampaignRetentionGoalSettings",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_Recommendation_RefreshCustomerMatchListRecommendation": {
      "description": "The recommendation to update a customer list that hasn't been updated in the last 90 days. The customer receiving the recommendation is not necessarily the owner account. The owner account should update the customer list.",
      "properties": {
        "daysSinceLastRefresh": {
          "type": "string",
          "description": "Output only. Days since last refresh.",
          "readOnly": true,
          "format": "int64"
        },
        "userListName": {
          "type": "string",
          "description": "Output only. The name of the list.",
          "readOnly": true
        },
        "ownerAccount": {
          "description": "Output only. The owner account. This is the account that should update the customer list.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_AccountInfo"
        },
        "targetingAccountsCount": {
          "description": "Output only. User lists can be shared with other accounts by the owner. targeting_accounts_count is the number of those accounts that can use it for targeting.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "userListId": {
          "description": "Output only. The user list ID.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "topSpendingAccount": {
          "type": "array",
          "description": "Output only. The top spending account.",
          "readOnly": true,
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_AccountInfo"
          }
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_Recommendation_RefreshCustomerMatchListRecommendation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__Customer": {
      "id": "GoogleAdsGoogleadsV24Resources__Customer",
      "type": "object",
      "description": "A customer.",
      "properties": {
        "callReportingSetting": {
          "description": "Call reporting setting for a customer. Only mutable in an `update` operation.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CallReportingSetting"
        },
        "videoBrandSafetySuitability": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EXPANDED_INVENTORY",
            "STANDARD_INVENTORY",
            "LIMITED_INVENTORY"
          ],
          "description": "Brand Safety setting at the account level. Allows for selecting an inventory type to show your ads on content that is the right fit for your brand. See https://support.google.com/google-ads/answer/7515513.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "This option lets you show ads across all inventory on YouTube and video partners that meet our standards for monetization. This option may be an appropriate choice for brands that want maximum access to the full breadth of videos eligible for ads, including, for example, videos that have strong profanity in the context of comedy or a documentary, or excessive violence as featured in video games.",
            "This option lets you show ads across a wide range of content that's appropriate for most brands, such as popular music videos, documentaries, and movie trailers. The content you can show ads on is based on YouTube's advertiser-friendly content guidelines that take into account, for example, the strength or frequency of profanity, or the appropriateness of subject matter like sensitive events. Ads won't show, for example, on content with repeated strong profanity, strong sexual content, or graphic violence.",
            "This option lets you show ads on a reduced range of content that's appropriate for brands with particularly strict guidelines around inappropriate language and sexual suggestiveness; above and beyond what YouTube's advertiser-friendly content guidelines address. The videos accessible in this sensitive category meet heightened requirements, especially for inappropriate language and sexual suggestiveness. For example, your ads will be excluded from showing on some of YouTube's most popular music videos and other pop culture content across YouTube and Google video partners."
          ]
        },
        "optimizationScoreWeight": {
          "type": "number",
          "description": "Output only. Optimization score weight of the customer. Optimization score weight can be used to compare/aggregate optimization scores across multiple non-manager customers. The aggregate optimization score of a manager is computed as the sum over all of their customers of `Customer.optimization_score * Customer.optimization_score_weight`. This field is 0 for all manager customers, and for unscored non-manager customers. This field is read-only.",
          "readOnly": true,
          "format": "double"
        },
        "testAccount": {
          "type": "boolean",
          "description": "Output only. Whether the customer is a test account.",
          "readOnly": true
        },
        "timeZone": {
          "type": "string",
          "description": "Immutable. The local timezone ID of the customer."
        },
        "locationAssetAutoMigrationDone": {
          "type": "boolean",
          "description": "Output only. True if feed based location has been migrated to asset based location.",
          "readOnly": true
        },
        "optimizationScore": {
          "description": "Output only. Optimization score of the customer. Optimization score is an estimate of how well a customer's campaigns are set to perform. It ranges from 0% (0.0) to 100% (1.0). This field is null for all manager customers, and for unscored non-manager customers. See \"About optimization score\" at https://support.google.com/google-ads/answer/9061546. This field is read-only.",
          "readOnly": true,
          "format": "double",
          "type": "number"
        },
        "customerAgreementSetting": {
          "description": "Output only. Customer Agreement Setting for a customer.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources__CustomerAgreementSetting"
        },
        "finalUrlSuffix": {
          "description": "The URL template for appending params to the final URL. Only mutable in an `update` operation.",
          "type": "string"
        },
        "id": {
          "type": "string",
          "description": "Output only. The ID of the customer.",
          "readOnly": true,
          "format": "int64"
        },
        "hasPartnersBadge": {
          "type": "boolean",
          "description": "Output only. Whether the Customer has a Partners program badge. If the Customer is not associated with the Partners program, this will be false. For more information, see https://support.google.com/partners/answer/3125774.",
          "readOnly": true
        },
        "locationAssetAutoMigrationDoneDateTime": {
          "type": "string",
          "description": "Output only. Timestamp of migration from feed based location to asset base location in yyyy-MM-dd HH:mm:ss format.",
          "readOnly": true
        },
        "localServicesSettings": {
          "description": "Output only. Settings for Local Services customer.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources__LocalServicesSettings"
        },
        "containsEuPoliticalAdvertising": {
          "type": "string",
          "description": "Output only. Returns the advertiser self-declaration status of whether this customer contains political advertising content targeted towards the European Union. You can use the Google Ads UI to update this account-level declaration, or use the API to update the self-declaration status of individual campaigns.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The campaign contains political advertising targeted towards the EU. The campaign will be restricted from serving ads in the EU.",
            "The campaign does not contain political advertising targeted towards the EU. No additional serving restrictions will apply."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CONTAINS_EU_POLITICAL_ADVERTISING",
            "DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING"
          ]
        },
        "status": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "CANCELED",
            "SUSPENDED",
            "CLOSED"
          ],
          "description": "Output only. The status of the customer.",
          "readOnly": true,
          "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."
          ]
        },
        "imageAssetAutoMigrationDoneDateTime": {
          "description": "Output only. Timestamp of migration from feed based image to asset base image in yyyy-MM-dd HH:mm:ss format.",
          "readOnly": true,
          "type": "string"
        },
        "resourceName": {
          "description": "Immutable. The resource name of the customer. Customer resource names have the form: `customers/{customer_id}`",
          "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"
        },
        "conversionTrackingSetting": {
          "description": "Conversion tracking setting for a customer.",
          "$ref": "GoogleAdsGoogleadsV24Resources__ConversionTrackingSetting"
        },
        "videoCustomer": {
          "description": "Video specific information about a Customer.",
          "$ref": "GoogleAdsGoogleadsV24Resources__VideoCustomer"
        },
        "trackingUrlTemplate": {
          "description": "The URL template for constructing a tracking URL out of parameters. Only mutable in an `update` operation.",
          "type": "string"
        },
        "remarketingSetting": {
          "description": "Output only. Remarketing setting for a customer.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources__RemarketingSetting"
        },
        "autoTaggingEnabled": {
          "type": "boolean",
          "description": "Whether auto-tagging is enabled for the customer. Only mutable in an `update` operation."
        },
        "payPerConversionEligibilityFailureReasons": {
          "type": "array",
          "description": "Output only. Reasons why the customer is not eligible to use PaymentMode.CONVERSIONS. If the list is empty, the customer is eligible. This field is read-only.",
          "readOnly": true,
          "items": {
            "type": "string",
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "NOT_ENOUGH_CONVERSIONS",
              "CONVERSION_LAG_TOO_HIGH",
              "HAS_CAMPAIGN_WITH_SHARED_BUDGET",
              "HAS_UPLOAD_CLICKS_CONVERSION",
              "AVERAGE_DAILY_SPEND_TOO_HIGH",
              "ANALYSIS_NOT_COMPLETE",
              "OTHER"
            ],
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "Customer does not have enough conversions.",
              "Customer's conversion lag is too high.",
              "Customer uses shared budgets.",
              "Customer has conversions with ConversionActionType.UPLOAD_CLICKS.",
              "Customer's average daily spend is too high.",
              "Customer's eligibility has not yet been calculated by the Google Ads backend. Check back soon.",
              "Customer is not eligible due to other reasons."
            ]
          }
        },
        "imageAssetAutoMigrationDone": {
          "description": "Output only. True if feed based image has been migrated to asset based image.",
          "readOnly": true,
          "type": "boolean"
        },
        "descriptiveName": {
          "description": "Optional, non-unique descriptive name of the customer.",
          "type": "string"
        },
        "manager": {
          "type": "boolean",
          "description": "Output only. Whether the customer is a manager.",
          "readOnly": true
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__CartDataSalesView": {
      "id": "GoogleAdsGoogleadsV24Resources__CartDataSalesView",
      "type": "object",
      "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.",
      "properties": {
        "resourceName": {
          "type": "string",
          "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
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__KeywordThemeConstant": {
      "id": "GoogleAdsGoogleadsV24Resources__KeywordThemeConstant",
      "type": "object",
      "description": "A Smart Campaign keyword theme constant.",
      "properties": {
        "languageCode": {
          "description": "Output only. The ISO-639-1 language code with 2 letters of the constant, eg. \"en\". To display and query matching purpose, the keyword theme needs to be localized.",
          "readOnly": true,
          "type": "string"
        },
        "resourceName": {
          "description": "Output only. The resource name of the keyword theme constant. Keyword theme constant resource names have the form: `keywordThemeConstants/{keyword_theme_id}~{sub_keyword_theme_id}`",
          "readOnly": true,
          "type": "string"
        },
        "countryCode": {
          "description": "Output only. The ISO-3166 Alpha-2 country code of the constant, eg. \"US\". To display and query matching purpose, the keyword theme needs to be localized.",
          "readOnly": true,
          "type": "string"
        },
        "displayName": {
          "type": "string",
          "description": "Output only. The display name of the keyword theme or sub keyword theme.",
          "readOnly": true
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__CreateYouTubeVideoUploadResponse": {
      "id": "GoogleAdsGoogleadsV24Services__CreateYouTubeVideoUploadResponse",
      "type": "object",
      "description": "Response message for YouTubeVideoUploadService.CreateYouTubeVideoUpload.",
      "properties": {
        "resourceName": {
          "description": "The resource name of the successfully created YouTube video upload.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__SearchThemeInfo": {
      "id": "GoogleAdsGoogleadsV24Common__SearchThemeInfo",
      "type": "object",
      "description": "A Search Theme criterion only on Performance Max campaign. Represents a keyword-like advertiser input.",
      "properties": {
        "text": {
          "description": "Each Search Theme has a value of a simple string, like keywords. There are limits on overall length, allowed characters, and number of words.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__PageFeedAsset": {
      "id": "GoogleAdsGoogleadsV24Common__PageFeedAsset",
      "type": "object",
      "description": "A Page Feed asset.",
      "properties": {
        "pageUrl": {
          "description": "Required. The webpage that advertisers want to target.",
          "type": "string"
        },
        "labels": {
          "description": "Labels used to group the page urls.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_CalloutExtensionParameters": {
      "id": "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_CalloutExtensionParameters",
      "type": "object",
      "description": "Parameters to use when applying callout extension recommendation.",
      "properties": {
        "calloutExtensions": {
          "description": "Callout extensions to be added. This is a required field.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__CalloutFeedItem"
          },
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateKeywordPlansRequest": {
      "id": "GoogleAdsGoogleadsV24Services__MutateKeywordPlansRequest",
      "type": "object",
      "description": "Request message for KeywordPlanService.MutateKeywordPlans.",
      "properties": {
        "operations": {
          "type": "array",
          "description": "Required. The list of operations to perform on individual keyword plans.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__KeywordPlanOperation"
          }
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__DemandGenCarouselCardAsset": {
      "id": "GoogleAdsGoogleadsV24Common__DemandGenCarouselCardAsset",
      "type": "object",
      "description": "A Demand Gen Carousel Card asset.",
      "properties": {
        "callToActionText": {
          "description": "Call to action text.",
          "type": "string"
        },
        "squareMarketingImageAsset": {
          "description": "Asset resource name of the associated square marketing image. This and/or a marketing image asset is required.",
          "type": "string"
        },
        "marketingImageAsset": {
          "type": "string",
          "description": "Asset resource name of the associated 1.91:1 marketing image. This and/or square marketing image asset is required."
        },
        "headline": {
          "description": "Required. Headline of the carousel card.",
          "type": "string"
        },
        "portraitMarketingImageAsset": {
          "type": "string",
          "description": "Asset resource name of the associated 4:5 portrait marketing image."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__EnablementResult": {
      "description": "A single enablement result of a campaign.",
      "properties": {
        "campaign": {
          "type": "string",
          "description": "This indicates the campaign for which enablement was tried, regardless of the outcome."
        },
        "enablementError": {
          "description": "Details of the error when enablement fails.",
          "$ref": "GoogleRpc__Status"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__EnablementResult",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services_SuggestSmartCampaignBudgetOptionsResponse_BudgetOption": {
      "id": "GoogleAdsGoogleadsV24Services_SuggestSmartCampaignBudgetOptionsResponse_BudgetOption",
      "type": "object",
      "description": "Smart Campaign budget option.",
      "properties": {
        "dailyAmountMicros": {
          "description": "The amount of the budget, in the local currency for the account. Amount is specified in micros, where one million is equivalent to one currency unit.",
          "format": "int64",
          "type": "string"
        },
        "metrics": {
          "description": "Metrics pertaining to the suggested budget, could be empty if there is not enough information to derive the estimates.",
          "$ref": "GoogleAdsGoogleadsV24Services_SuggestSmartCampaignBudgetOptionsResponse_Metrics"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__ManagedPlacementView": {
      "description": "A managed placement view.",
      "properties": {
        "resourceName": {
          "description": "Output only. The resource name of the Managed Placement view. Managed placement view resource names have the form: `customers/{customer_id}/managedPlacementViews/{ad_group_id}~{criterion_id}`",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__ManagedPlacementView",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__HotelTextAsset": {
      "id": "GoogleAdsGoogleadsV24Services__HotelTextAsset",
      "type": "object",
      "description": "A single text asset suggestion for a hotel.",
      "properties": {
        "assetFieldType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE",
            "DESCRIPTION",
            "MANDATORY_AD_TEXT",
            "MARKETING_IMAGE",
            "MEDIA_BUNDLE",
            "YOUTUBE_VIDEO",
            "BOOK_ON_GOOGLE",
            "LEAD_FORM",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "LONG_HEADLINE",
            "BUSINESS_NAME",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "VIDEO",
            "CALL_TO_ACTION_SELECTION",
            "AD_IMAGE",
            "BUSINESS_LOGO",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "TALL_PORTRAIT_MARKETING_IMAGE",
            "RELATED_YOUTUBE_VIDEOS",
            "LANDING_PAGE_PREVIEW",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION"
          ],
          "description": "The text asset type. For example, HEADLINE, DESCRIPTION, etc.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is linked for use as a headline.",
            "The asset is linked for use as a description.",
            "The asset is linked for use as mandatory ad text.",
            "The asset is linked for use as a marketing image.",
            "The asset is linked for use as a media bundle.",
            "The asset is linked for use as a YouTube video.",
            "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
            "The asset is linked for use as a Lead Form extension.",
            "The asset is linked for use as a Promotion extension.",
            "The asset is linked for use as a Callout extension.",
            "The asset is linked for use as a Structured Snippet extension.",
            "The asset is linked for use as a Sitelink.",
            "The asset is linked for use as a Mobile App extension.",
            "The asset is linked for use as a Hotel Callout extension.",
            "The asset is linked for use as a Call extension.",
            "The asset is linked for use as a Price extension.",
            "The asset is linked for use as a long headline.",
            "The asset is linked for use as a business name.",
            "The asset is linked for use as a square marketing image.",
            "The asset is linked for use as a portrait marketing image.",
            "The asset is linked for use as a logo.",
            "The asset is linked for use as a landscape logo.",
            "The asset is linked for use as a non YouTube logo.",
            "The asset is linked for use to select a call-to-action.",
            "The asset is linked for use to select an ad image.",
            "The asset is linked for use as a business logo.",
            "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
            "The asset is linked for use as a Demand Gen carousel card.",
            "The asset is linked for use as a Business Message.",
            "The asset is linked for use as a tall portrait marketing image.",
            "The asset is linked for use as related YouTube videos.",
            "The asset is linked for use as a landing page preview image.",
            "The asset is linked for use as a long description.",
            "The asset is linked for use as a call-to-action."
          ],
          "type": "string"
        },
        "text": {
          "type": "string",
          "description": "Asset text in requested language."
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__SharedSet": {
      "id": "GoogleAdsGoogleadsV24Resources__SharedSet",
      "type": "object",
      "description": "SharedSets are used for sharing criterion exclusions across multiple campaigns.",
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of this shared set. Required. Shared Sets must have names that are unique among active shared sets of the same type. The length of this string should be between 1 and 255 UTF-8 bytes, inclusive."
        },
        "referenceCount": {
          "type": "string",
          "description": "Output only. The number of campaigns associated with this shared set. Read only.",
          "readOnly": true,
          "format": "int64"
        },
        "type": {
          "type": "string",
          "description": "Immutable. The type of this shared set: each shared set holds only a single kind of resource. Required. Immutable.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "A set of keywords that can be excluded from targeting.",
            "A set of placements that can be excluded from targeting.",
            "An account-level set of keywords that can be excluded from targeting.",
            "A set of brands can be included or excluded from targeting.",
            "A set of webpages that can be excluded from targeting. This shared set type is not publicly available.",
            "A set of vertical ads item group rules that can be included or excluded from targeting in Vertical Ads (e.g., for hotel ads).",
            "A set representing Retail Filter, which is used for filtering offers served in a campaign."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NEGATIVE_KEYWORDS",
            "NEGATIVE_PLACEMENTS",
            "ACCOUNT_LEVEL_NEGATIVE_KEYWORDS",
            "BRANDS",
            "WEBPAGES",
            "VERTICAL_ADS_ITEM_GROUP_RULE_LIST",
            "RETAIL_FILTER"
          ]
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the shared set. Shared set resource names have the form: `customers/{customer_id}/sharedSets/{shared_set_id}`"
        },
        "status": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "description": "Output only. The status of this shared set. Read only.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The shared set is enabled.",
            "The shared set is removed and can no longer be used."
          ],
          "type": "string"
        },
        "id": {
          "description": "Output only. The ID of this shared set. Read only.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "memberCount": {
          "description": "Output only. The number of shared criteria within this shared set. Read only.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "verticalAdsItemVerticalType": {
          "type": "string",
          "description": "Immutable. Shared sets of type VERTICAL_ADS_ITEM_GROUP_RULE_LIST are associated with a particular vertical (e.g. hotels, things to do, flights, etc.). This field is required for shared sets of type VERTICAL_ADS_ITEM_GROUP_RULE_LIST.",
          "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"
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__CpvBidSimulationPointList": {
      "description": "A container for simulation points for simulations of type CPV_BID.",
      "properties": {
        "points": {
          "description": "Projected metrics for a series of CPV bid amounts.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__CpvBidSimulationPoint"
          },
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__CpvBidSimulationPointList",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__MobileAppCategoryConstant": {
      "description": "A mobile application category constant.",
      "properties": {
        "id": {
          "description": "Output only. The ID of the mobile app category constant.",
          "readOnly": true,
          "format": "int32",
          "type": "integer"
        },
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the mobile app category constant. Mobile app category constant resource names have the form: `mobileAppCategoryConstants/{mobile_app_category_id}`",
          "readOnly": true
        },
        "name": {
          "description": "Output only. Mobile app category name.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__MobileAppCategoryConstant",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__AudienceOverlapItem": {
      "id": "GoogleAdsGoogleadsV24Services__AudienceOverlapItem",
      "type": "object",
      "description": "An audience attribute, with metadata including the overlap between this attribute's potential YouTube reach and that of a primary attribute.",
      "properties": {
        "attributeMetadata": {
          "description": "The attribute and its metadata, including potential YouTube reach.",
          "$ref": "GoogleAdsGoogleadsV24Common__AudienceInsightsAttributeMetadata"
        },
        "potentialYoutubeReachIntersection": {
          "type": "string",
          "description": "The estimated size of the intersection of this audience attribute with the primary attribute, that is, the number of reachable YouTube users who match BOTH the primary attribute and this one.",
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__GraduateExperimentRequest": {
      "description": "Request message for ExperimentService.GraduateExperiment.",
      "properties": {
        "campaignBudgetMappings": {
          "description": "Required. List of campaign budget mappings for graduation. Each campaign that appears here will graduate, and will be assigned a new budget that is paired with it in the mapping. The maximum size is one.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__CampaignBudgetMapping"
          },
          "type": "array"
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__GraduateExperimentRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__TrendInsightDataPoint": {
      "description": "Trend data for a specific month.",
      "properties": {
        "month": {
          "type": "string",
          "description": "The month that the trend data point represents in the string format \"YYYY-MM\"."
        },
        "trendMetrics": {
          "description": "Metrics associated with this trend and month. The comparison period for these metrics is 1 month.",
          "$ref": "GoogleAdsGoogleadsV24Services__TrendInsightMetrics"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__TrendInsightDataPoint",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__Money": {
      "description": "Represents a price in a particular currency.",
      "properties": {
        "amountMicros": {
          "type": "string",
          "description": "Amount in micros. One million is equivalent to one unit.",
          "format": "int64"
        },
        "currencyCode": {
          "type": "string",
          "description": "Three-character ISO 4217 currency code."
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__Money",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_Recommendation_ForecastingSetTargetRoasRecommendation": {
      "description": "The forecasting set target ROAS recommendation.",
      "properties": {
        "recommendedTargetRoas": {
          "description": "Output only. The recommended target ROAS (revenue per unit of spend). The value is between 0.01 and 1000.0, inclusive.",
          "readOnly": true,
          "format": "double",
          "type": "number"
        },
        "campaignBudget": {
          "description": "Output only. The campaign budget.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_CampaignBudget"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_Recommendation_ForecastingSetTargetRoasRecommendation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__IncentiveOffer": {
      "id": "GoogleAdsGoogleadsV24Services__IncentiveOffer",
      "type": "object",
      "description": "An acquisition incentive offer for a user. An offer means how the user is treated. An offer can have no incentive or multiple incentives.",
      "properties": {
        "type": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NO_INCENTIVE",
            "CYO_INCENTIVE"
          ],
          "description": "Required. The type of this acquisition incentive offer.",
          "enumDescriptions": [
            "Unknown offer type. Should not be used as a value explicitly.",
            "Unknown offer type.",
            "An offer with no incentive.",
            "A CYO (Choose-Your-Own) offer with multiple incentives to choose from."
          ],
          "type": "string"
        },
        "consolidatedTermsAndConditionsUrl": {
          "type": "string",
          "description": "Optional. The URL of the terms and conditions for the incentive offer."
        },
        "cyoIncentives": {
          "description": "CYO incentives. Set when type is CYO_INCENTIVE.",
          "$ref": "GoogleAdsGoogleadsV24Services__CyoIncentives"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__TargetRestriction": {
      "id": "GoogleAdsGoogleadsV24Common__TargetRestriction",
      "type": "object",
      "description": "The list of per-targeting-dimension targeting settings.",
      "properties": {
        "bidOnly": {
          "description": "Indicates whether to restrict your ads to show only for the criteria you have selected for this targeting_dimension, or to target all values for this targeting_dimension and show ads based on your targeting in other TargetingDimensions. A value of `true` means that these criteria will only apply bid modifiers, and not affect targeting. A value of `false` means that these criteria will restrict targeting as well as applying bid modifiers.",
          "type": "boolean"
        },
        "targetingDimension": {
          "type": "string",
          "description": "The targeting dimension that these settings apply to.",
          "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"
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__CampaignDraftOperation": {
      "id": "GoogleAdsGoogleadsV24Services__CampaignDraftOperation",
      "type": "object",
      "description": "A single operation (create, update, remove) on a campaign draft.",
      "properties": {
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask",
          "type": "string"
        },
        "update": {
          "description": "Update operation: The campaign draft is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CampaignDraft"
        },
        "remove": {
          "description": "Remove operation: The campaign draft is expected to have a valid resource name, in this format: `customers/{customer_id}/campaignDrafts/{base_campaign_id}~{draft_id}`",
          "type": "string"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new campaign draft.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CampaignDraft"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_Recommendation_ShoppingAddProductsToCampaignRecommendation": {
      "description": "The shopping recommendation to add products to a Shopping Campaign Inventory.",
      "properties": {
        "feedLabel": {
          "description": "Output only. The feed label for the campaign.",
          "readOnly": true,
          "type": "string"
        },
        "reason": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MERCHANT_CENTER_ACCOUNT_HAS_NO_SUBMITTED_PRODUCTS",
            "MERCHANT_CENTER_ACCOUNT_HAS_NO_SUBMITTED_PRODUCTS_IN_FEED",
            "ADS_ACCOUNT_EXCLUDES_OFFERS_FROM_CAMPAIGN",
            "ALL_PRODUCTS_ARE_EXCLUDED_FROM_CAMPAIGN"
          ],
          "description": "Output only. The reason why no products are attached to the campaign.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The Merchant Center account does not have any submitted products.",
            "The Merchant Center account does not have any submitted products in the feed.",
            "The Google Ads account has active campaign filters that prevents inclusion of offers in the campaign.",
            "All products available have been explicitly excluded from being targeted by the campaign."
          ],
          "type": "string"
        },
        "merchant": {
          "description": "Output only. The details of the Merchant Center account.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_MerchantInfo"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_Recommendation_ShoppingAddProductsToCampaignRecommendation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateGoogleAdsRequest": {
      "id": "GoogleAdsGoogleadsV24Services__MutateGoogleAdsRequest",
      "type": "object",
      "description": "Request message for GoogleAdsService.Mutate.",
      "properties": {
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Mutates only return errors, not results. Actions return results and errors.",
          "type": "boolean"
        },
        "responseContentType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation. The mutable resource will only be returned if the resource has the appropriate response field. For example, MutateCampaignResult.campaign.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ]
        },
        "mutateOperations": {
          "type": "array",
          "description": "Required. The list of operations to perform on individual resources.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateOperation"
          }
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__TrendInsightMetrics": {
      "description": "Metrics associated with a trend insight.",
      "properties": {
        "viewsCount": {
          "type": "string",
          "description": "The number of views for this trend. This is only populated for the latest month of data for SearchTopics requests.",
          "format": "int64"
        },
        "audienceShare": {
          "type": "number",
          "description": "The fraction (from 0 to 1 inclusive) of the requested audience that has has searched or viewed this trend. This is only populated for SearchAudience requests.",
          "format": "double"
        },
        "trendChangePercent": {
          "type": "number",
          "description": "The percentage of the change in the trend's value over the comparison period, where 1.0 represents 100%. If this is 0, it means that the trend is emerging (new) or sustained (existing but unchanged).",
          "format": "double"
        },
        "viewsIndexedValue": {
          "type": "string",
          "description": "Views value normalized to be in the range 0-100. This is only populated for SearchTopics requests.",
          "format": "int64"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__TrendInsightMetrics",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__AdGroupAdPolicySummary": {
      "id": "GoogleAdsGoogleadsV24Resources__AdGroupAdPolicySummary",
      "type": "object",
      "description": "Contains policy information for an ad.",
      "properties": {
        "policyTopicEntries": {
          "type": "array",
          "description": "Output only. The list of policy findings for this ad.",
          "readOnly": true,
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__PolicyTopicEntry"
          }
        },
        "reviewStatus": {
          "description": "Output only. Where in the review process this ad is.",
          "readOnly": true,
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "Currently under review.",
            "Primary review complete. Other reviews may be continuing.",
            "The resource has been resubmitted for approval or its policy decision has been appealed.",
            "The resource is eligible and may be serving but could still undergo further review."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "REVIEW_IN_PROGRESS",
            "REVIEWED",
            "UNDER_APPEAL",
            "ELIGIBLE_MAY_SERVE"
          ],
          "type": "string"
        },
        "approvalStatus": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DISAPPROVED",
            "APPROVED_LIMITED",
            "APPROVED",
            "AREA_OF_INTEREST_ONLY"
          ],
          "description": "Output only. The overall approval status of this ad, calculated based on the status of its individual policy topic entries.",
          "readOnly": true,
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "Will not serve.",
            "Serves with restrictions.",
            "Serves without restrictions.",
            "Will not serve in targeted countries, but may serve for users who are searching for information about the targeted countries."
          ],
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateCampaignsRequest": {
      "id": "GoogleAdsGoogleadsV24Services__MutateCampaignsRequest",
      "type": "object",
      "description": "Request message for CampaignService.MutateCampaigns.",
      "properties": {
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "operations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__CampaignOperation"
          },
          "description": "Required. The list of operations to perform on individual campaigns.",
          "type": "array"
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "responseContentType": {
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_Campaign_SelectiveOptimization": {
      "id": "GoogleAdsGoogleadsV24Resources_Campaign_SelectiveOptimization",
      "type": "object",
      "description": "Selective optimization setting for this campaign, which includes a set of conversion actions to optimize this campaign towards. This feature only applies to app campaigns that use MULTI_CHANNEL as AdvertisingChannelType and APP_CAMPAIGN or APP_CAMPAIGN_FOR_ENGAGEMENT as AdvertisingChannelSubType.",
      "properties": {
        "conversionActions": {
          "description": "The selected set of resource names for conversion actions for optimizing this campaign.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_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.",
      "properties": {
        "enableLocal": {
          "type": "boolean",
          "description": "Whether to include local products."
        },
        "advertisingPartnerIds": {
          "items": {
            "type": "string",
            "format": "int64"
          },
          "description": "The list of Google Ads accounts IDs of advertising partners cooperating within the campaign. This feature is currently available only for accounts having an advertising partner link. Once set, the field is immutable. This feature is currently supported only for Performance Max, Shopping, Search and Demand Gen campaign types.",
          "type": "array"
        },
        "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"
        },
        "campaignPriority": {
          "type": "integer",
          "description": "Priority of the campaign. Campaigns with numerically higher priorities take precedence over those with lower priorities. This field is required for Shopping campaigns, with values between 0 and 2, inclusive. This field is optional for Smart Shopping campaigns, but must be equal to 3 if set.",
          "format": "int32"
        },
        "merchantId": {
          "description": "ID of the Merchant Center account. This field is required for create operations. This field is immutable for Shopping campaigns.",
          "format": "int64",
          "type": "string"
        },
        "useVehicleInventory": {
          "type": "boolean",
          "description": "Immutable. Whether to target Vehicle Listing inventory. This field is supported only in Smart Shopping Campaigns. For setting Vehicle Listing inventory in Performance Max campaigns, use `listing_type` instead."
        },
        "disableProductFeed": {
          "type": "boolean",
          "description": "Disable the optional product feed. This field is currently supported only for Demand Gen campaigns. See https://support.google.com/google-ads/answer/13721750 to learn more about this feature."
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_Campaign_ShoppingSetting",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__CustomerCustomizerOperation": {
      "id": "GoogleAdsGoogleadsV24Services__CustomerCustomizerOperation",
      "type": "object",
      "description": "A single operation (create, remove) on a customizer attribute.",
      "properties": {
        "remove": {
          "description": "Remove operation: A resource name for the removed customer customizer is expected, in this format: `customers/{customer_id}/customerCustomizers/{customizer_attribute_id}`",
          "type": "string"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new customer customizer",
          "$ref": "GoogleAdsGoogleadsV24Resources__CustomerCustomizer"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__CustomizerValue": {
      "description": "A customizer value that is referenced in customizer linkage entities like CustomerCustomizer, CampaignCustomizer, etc.",
      "properties": {
        "type": {
          "description": "Required. The data type for the customizer value. It must match the attribute type. The string_value content must match the constraints associated with the type.",
          "enumDescriptions": [
            "The status has not been specified.",
            "The received value is not known in this version.",
            "Text customizer.",
            "Number customizer.",
            "Price customizer consisting of a number and a currency.",
            "Percentage customizer consisting of a number and a '%'."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "TEXT",
            "NUMBER",
            "PRICE",
            "PERCENT"
          ],
          "type": "string"
        },
        "stringValue": {
          "description": "Required. Value to insert in creative text. Customizer values of all types are stored as string to make formatting unambiguous.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__CustomizerValue",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__GeographicView": {
      "id": "GoogleAdsGoogleadsV24Resources__GeographicView",
      "type": "object",
      "description": "A geographic view. Geographic View includes all metrics aggregated at the country level, one row per country. It reports metrics at either actual physical location of the user or an area of interest. If other segment fields are used, you may get more than one row per country.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the geographic view. Geographic view resource names have the form: `customers/{customer_id}/geographicViews/{country_criterion_id}~{location_type}`",
          "readOnly": true
        },
        "locationType": {
          "description": "Output only. Type of the geo targeting of the campaign.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Location the user is interested in while making the query.",
            "Location of the user issuing the query."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AREA_OF_INTEREST",
            "LOCATION_OF_PRESENCE"
          ],
          "type": "string"
        },
        "countryCriterionId": {
          "description": "Output only. Criterion Id for the country.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__AudienceTargeting": {
      "description": "Audience targeting for reach forecast.",
      "properties": {
        "userInterest": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__UserInterestInfo"
          },
          "description": "List of audiences based on user interests to be targeted."
        },
        "userLists": {
          "description": "List of audiences based on user lists to be targeted.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__UserListInfo"
          },
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__AudienceTargeting",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__AssetGroupAssetCombinationData": {
      "id": "GoogleAdsGoogleadsV24Resources__AssetGroupAssetCombinationData",
      "type": "object",
      "description": "Asset group asset combination data",
      "properties": {
        "assetCombinationServedAssets": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AssetUsage"
          },
          "description": "Output only. Served assets.",
          "readOnly": true,
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__SuggestSmartCampaignBudgetOptionsRequest": {
      "id": "GoogleAdsGoogleadsV24Services__SuggestSmartCampaignBudgetOptionsRequest",
      "type": "object",
      "description": "Request message for SmartCampaignSuggestService.SuggestSmartCampaignBudgetOptions.",
      "properties": {
        "campaign": {
          "type": "string",
          "description": "Required. The resource name of the campaign to get suggestion for."
        },
        "suggestionInfo": {
          "description": "Required. Information needed to get budget options",
          "$ref": "GoogleAdsGoogleadsV24Services__SmartCampaignSuggestionInfo"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__TravelActivityGroupView": {
      "id": "GoogleAdsGoogleadsV24Resources__TravelActivityGroupView",
      "type": "object",
      "description": "A travel activity group view.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the travel activity group view. Travel Activity Group view resource names have the form: `customers/{customer_id}/travelActivityGroupViews/{ad_group_id}~{criterion_id}`",
          "readOnly": true
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__AdGroupCriterionLabel": {
      "id": "GoogleAdsGoogleadsV24Resources__AdGroupCriterionLabel",
      "type": "object",
      "description": "A relationship between an ad group criterion and a label.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the ad group criterion label. Ad group criterion label resource names have the form: `customers/{customer_id}/adGroupCriterionLabels/{ad_group_id}~{criterion_id}~{label_id}`"
        },
        "label": {
          "description": "Immutable. The label assigned to the ad group criterion.",
          "type": "string"
        },
        "adGroupCriterion": {
          "description": "Immutable. The ad group criterion to which the label is attached.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__CustomerAssetOperation": {
      "description": "A single operation (create, update, remove) on a customer asset.",
      "properties": {
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask",
          "type": "string"
        },
        "update": {
          "description": "Update operation: The customer asset is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CustomerAsset"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed customer asset is expected, in this format: `customers/{customer_id}/customerAssets/{asset_id}~{field_type}`"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new customer asset.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CustomerAsset"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__CustomerAssetOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateKeywordPlansResponse": {
      "description": "Response message for a keyword plan mutate.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateKeywordPlansResult"
          },
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateKeywordPlansResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__CampaignBudgetOperation": {
      "id": "GoogleAdsGoogleadsV24Services__CampaignBudgetOperation",
      "type": "object",
      "description": "A single operation (create, update, remove) on a campaign budget.",
      "properties": {
        "update": {
          "description": "Update operation: The campaign budget is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CampaignBudget"
        },
        "remove": {
          "description": "Remove operation: A resource name for the removed budget is expected, in this format: `customers/{customer_id}/campaignBudgets/{budget_id}`",
          "type": "string"
        },
        "updateMask": {
          "type": "string",
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new budget.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CampaignBudget"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateConversionValueRulesResponse": {
      "description": "Response message for ConversionValueRuleService.MutateConversionValueRules.",
      "properties": {
        "results": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateConversionValueRuleResult"
          },
          "description": "All results for the mutate.",
          "type": "array"
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateConversionValueRulesResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__PlannableTargeting": {
      "id": "GoogleAdsGoogleadsV24Services__PlannableTargeting",
      "type": "object",
      "description": "The targeting for which traffic metrics will be reported.",
      "properties": {
        "youtubeSelectLineupTargeting": {
          "description": "Targetable YouTube Select Lineups for the ad product. This field replaces the deprecated `youtube_select_lineups` field.",
          "$ref": "GoogleAdsGoogleadsV24Services__YouTubeSelectLineUpTargeting"
        },
        "ageRanges": {
          "type": "array",
          "items": {
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "AGE_RANGE_18_24",
              "AGE_RANGE_18_34",
              "AGE_RANGE_18_44",
              "AGE_RANGE_18_49",
              "AGE_RANGE_18_54",
              "AGE_RANGE_18_64",
              "AGE_RANGE_18_65_UP",
              "AGE_RANGE_21_34",
              "AGE_RANGE_21_44",
              "AGE_RANGE_21_49",
              "AGE_RANGE_21_54",
              "AGE_RANGE_21_64",
              "AGE_RANGE_21_65_UP",
              "AGE_RANGE_25_34",
              "AGE_RANGE_25_44",
              "AGE_RANGE_25_49",
              "AGE_RANGE_25_54",
              "AGE_RANGE_25_64",
              "AGE_RANGE_25_65_UP",
              "AGE_RANGE_35_44",
              "AGE_RANGE_35_49",
              "AGE_RANGE_35_54",
              "AGE_RANGE_35_64",
              "AGE_RANGE_35_65_UP",
              "AGE_RANGE_45_54",
              "AGE_RANGE_45_64",
              "AGE_RANGE_45_65_UP",
              "AGE_RANGE_50_65_UP",
              "AGE_RANGE_55_64",
              "AGE_RANGE_55_65_UP",
              "AGE_RANGE_65_UP"
            ],
            "enumDescriptions": [
              "Not specified.",
              "The value is unknown in this version.",
              "Between 18 and 24 years old.",
              "Between 18 and 34 years old.",
              "Between 18 and 44 years old.",
              "Between 18 and 49 years old.",
              "Between 18 and 54 years old.",
              "Between 18 and 64 years old.",
              "Between 18 and 65+ years old.",
              "Between 21 and 34 years old.",
              "Between 21 and 44 years old.",
              "Between 21 and 49 years old.",
              "Between 21 and 54 years old.",
              "Between 21 and 64 years old.",
              "Between 21 and 65+ years old.",
              "Between 25 and 34 years old.",
              "Between 25 and 44 years old.",
              "Between 25 and 49 years old.",
              "Between 25 and 54 years old.",
              "Between 25 and 64 years old.",
              "Between 25 and 65+ years old.",
              "Between 35 and 44 years old.",
              "Between 35 and 49 years old.",
              "Between 35 and 54 years old.",
              "Between 35 and 64 years old.",
              "Between 35 and 65+ years old.",
              "Between 45 and 54 years old.",
              "Between 45 and 64 years old.",
              "Between 45 and 65+ years old.",
              "Between 50 and 65+ years old.",
              "Between 55 and 64 years old.",
              "Between 55 and 65+ years old.",
              "65 years old and beyond."
            ],
            "type": "string"
          },
          "description": "Allowed plannable age ranges for the product for which metrics will be reported. Actual targeting is computed by mapping this age range onto standard Google common.AgeRangeInfo values."
        },
        "networks": {
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "Used as a return value only. Represents value unknown in this version.",
              "YouTube network.",
              "Google Video Partners (GVP) network.",
              "A combination of the YouTube network and the Google Video Partners network."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "YOUTUBE",
              "GOOGLE_VIDEO_PARTNERS",
              "YOUTUBE_AND_GOOGLE_VIDEO_PARTNERS"
            ]
          },
          "description": "Targetable networks for the ad product.",
          "type": "array"
        },
        "surfaceTargeting": {
          "description": "Targetable surface combinations for the ad product.",
          "$ref": "GoogleAdsGoogleadsV24Services__SurfaceTargetingCombinations"
        },
        "devices": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__DeviceInfo"
          },
          "description": "Targetable devices for the ad product. TABLET device targeting is automatically applied to reported metrics when MOBILE targeting is selected for CPM_MASTHEAD, GOOGLE_PREFERRED_BUMPER, and GOOGLE_PREFERRED_SHORT products.",
          "type": "array"
        },
        "genders": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__GenderInfo"
          },
          "description": "Targetable genders for the ad product.",
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__ListInsightsEligibleDatesResponse": {
      "description": "Response message for AudienceInsightsService.ListInsightsEligibleDates.",
      "properties": {
        "dataMonths": {
          "type": "array",
          "description": "The months for which AudienceInsights data is currently available, each represented as a string in the form \"YYYY-MM\".",
          "items": {
            "type": "string"
          }
        },
        "lastThirtyDays": {
          "description": "The actual dates covered by the \"last 30 days\" date range that will be used implicitly for AudienceInsightsService.GenerateAudienceCompositionInsights requests that have no data_month set.",
          "$ref": "GoogleAdsGoogleadsV24Common__DateRange"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__ListInsightsEligibleDatesResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateCampaignLabelsResponse": {
      "id": "GoogleAdsGoogleadsV24Services__MutateCampaignLabelsResponse",
      "type": "object",
      "description": "Response message for a campaign labels mutate.",
      "properties": {
        "results": {
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateCampaignLabelResult"
          },
          "type": "array"
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__AudienceInsightsCategory": {
      "id": "GoogleAdsGoogleadsV24Common__AudienceInsightsCategory",
      "type": "object",
      "description": "A Product and Service category.",
      "properties": {
        "categoryId": {
          "type": "string",
          "description": "Required. The criterion ID of the category."
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__AccountLink": {
      "id": "GoogleAdsGoogleadsV24Resources__AccountLink",
      "type": "object",
      "description": "Represents the data sharing connection between a Google Ads account and another account",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "THIRD_PARTY_APP_ANALYTICS"
          ],
          "description": "Output only. The type of the linked account.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "A link to provide third party app analytics data."
          ]
        },
        "thirdPartyAppAnalytics": {
          "description": "Immutable. A third party app analytics link.",
          "$ref": "GoogleAdsGoogleadsV24Resources__ThirdPartyAppAnalyticsLinkIdentifier"
        },
        "accountLinkId": {
          "type": "string",
          "description": "Output only. The ID of the link. This field is read only.",
          "readOnly": true,
          "format": "int64"
        },
        "resourceName": {
          "description": "Immutable. Resource name of the account link. AccountLink resource names have the form: `customers/{customer_id}/accountLinks/{account_link_id}`",
          "type": "string"
        },
        "status": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED",
            "REQUESTED",
            "PENDING_APPROVAL",
            "REJECTED",
            "REVOKED"
          ],
          "description": "The status of the link.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The link is enabled.",
            "The link is removed/disabled.",
            "The link to the other account has been requested. A user on the other account may now approve the link by setting the status to ENABLED.",
            "This link has been requested by a user on the other account. It may be approved by a user on this account by setting the status to ENABLED.",
            "The link is rejected by the approver.",
            "The link is revoked by the user who requested the link."
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateCampaignCustomizersResponse": {
      "description": "Response message for a campaign customizer mutate.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateCampaignCustomizerResult"
          },
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateCampaignCustomizersResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__GoogleAdsIdentifier": {
      "description": "The identifier for Google Ads account.",
      "properties": {
        "customer": {
          "description": "Immutable. The resource name of the Google Ads account. This field is required and should not be empty when creating a new Google Ads link. It is unable to be modified after the creation of the link.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__GoogleAdsIdentifier",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__ProductGroupingInfo": {
      "description": "Grouping of a product offer. This listing dimension is deprecated and it is supported only in Display campaigns.",
      "properties": {
        "value": {
          "description": "String value of the product grouping.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__ProductGroupingInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__CustomInterestOperation": {
      "id": "GoogleAdsGoogleadsV24Services__CustomInterestOperation",
      "type": "object",
      "description": "A single operation (create, update) on a custom interest.",
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new custom interest.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CustomInterest"
        },
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask",
          "type": "string"
        },
        "update": {
          "description": "Update operation: The custom interest is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CustomInterest"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateCustomizerAttributesResponse": {
      "id": "GoogleAdsGoogleadsV24Services__MutateCustomizerAttributesResponse",
      "type": "object",
      "description": "Response message for a customizer attribute mutate.",
      "properties": {
        "results": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomizerAttributeResult"
          },
          "description": "All results for the mutate.",
          "type": "array"
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__UserListStringRuleItemInfo": {
      "id": "GoogleAdsGoogleadsV24Common__UserListStringRuleItemInfo",
      "type": "object",
      "description": "A rule item composed of a string operation.",
      "properties": {
        "operator": {
          "description": "String comparison operator. This field is required and must be populated when creating a new string rule item.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Contains.",
            "Equals.",
            "Starts with.",
            "Ends with.",
            "Not equals.",
            "Not contains.",
            "Not starts with.",
            "Not ends with."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CONTAINS",
            "EQUALS",
            "STARTS_WITH",
            "ENDS_WITH",
            "NOT_EQUALS",
            "NOT_CONTAINS",
            "NOT_STARTS_WITH",
            "NOT_ENDS_WITH"
          ],
          "type": "string"
        },
        "value": {
          "type": "string",
          "description": "The right hand side of the string rule item. For URLs or referrer URLs, the value can not contain illegal URL chars such as newlines, quotes, tabs, or parentheses. This field is required and must be populated when creating a new string rule item."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__RemoveProductLinkRequest": {
      "id": "GoogleAdsGoogleadsV24Services__RemoveProductLinkRequest",
      "type": "object",
      "description": "Request message for ProductLinkService.RemoveProductLink.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Required. Remove operation: A resource name for the product link to remove is expected, in this format: `customers/{customer_id}/productLinks/{product_link_id} `"
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_Campaign_DemandGenCampaignSettings": {
      "id": "GoogleAdsGoogleadsV24Resources_Campaign_DemandGenCampaignSettings",
      "type": "object",
      "description": "Settings for Demand Gen campaign.",
      "properties": {
        "upgradedTargeting": {
          "description": "Immutable. Specifies whether this campaign uses upgraded targeting options. When this field is set to `true`, you can use location and language targeting at the ad group level as opposed to the standard campaign-level targeting. This field defaults to `true`, and can only be set when creating a campaign.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateRecommendationSubscriptionRequest": {
      "id": "GoogleAdsGoogleadsV24Services__MutateRecommendationSubscriptionRequest",
      "type": "object",
      "description": "Request message for RecommendationSubscriptionService.MutateRecommendationSubscription",
      "properties": {
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "operations": {
          "type": "array",
          "description": "Required. The list of create or update operations.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__RecommendationSubscriptionOperation"
          }
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "responseContentType": {
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation. The mutable resource will only be returned if the resource has the appropriate response field. For example, MutateCampaignResult.campaign.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__SmartCampaignSetting": {
      "id": "GoogleAdsGoogleadsV24Resources__SmartCampaignSetting",
      "type": "object",
      "description": "Settings for configuring Smart campaigns.",
      "properties": {
        "businessProfileLocation": {
          "type": "string",
          "description": "The resource name of a Business Profile location. Business Profile location resource names can be fetched through the Business Profile API and adhere to the following format: `locations/{locationId}`. See the [Business Profile API] (https://developers.google.com/my-business/reference/businessinformation/rest/v1/accounts.locations) for additional details."
        },
        "businessName": {
          "description": "The name of the business.",
          "type": "string"
        },
        "campaign": {
          "type": "string",
          "description": "Output only. The campaign to which these settings apply.",
          "readOnly": true
        },
        "advertisingLanguageCode": {
          "type": "string",
          "description": "The language code to advertise in from the set of [supported language codes] (https://developers.google.com/google-ads/api/reference/data/codes-formats#languages)."
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the Smart campaign setting. Smart campaign setting resource names have the form: `customers/{customer_id}/smartCampaignSettings/{campaign_id}`"
        },
        "finalUrl": {
          "type": "string",
          "description": "The user-provided landing page URL for this Campaign."
        },
        "phoneNumber": {
          "description": "Phone number and country code.",
          "$ref": "GoogleAdsGoogleadsV24Resources_SmartCampaignSetting_PhoneNumber"
        },
        "adOptimizedBusinessProfileSetting": {
          "description": "Settings for configuring a business profile optimized for ads as this campaign's landing page. This campaign must be linked to a business profile to use this option. For more information on this feature, consult https://support.google.com/google-ads/answer/9827068.",
          "$ref": "GoogleAdsGoogleadsV24Resources_SmartCampaignSetting_AdOptimizedBusinessProfileSetting"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__CustomerAssetSetOperation": {
      "id": "GoogleAdsGoogleadsV24Services__CustomerAssetSetOperation",
      "type": "object",
      "description": "A single operation (create, remove) on a customer asset set.",
      "properties": {
        "remove": {
          "description": "Remove operation: A resource name for the removed customer asset set is expected, in this format: `customers/{customer_id}/customerAssetSets/{asset_set_id}`",
          "type": "string"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new customer asset set.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CustomerAssetSet"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__SmartCampaignSettingOperation": {
      "description": "A single operation to update Smart campaign settings for a campaign.",
      "properties": {
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask",
          "type": "string"
        },
        "update": {
          "description": "Update operation: The Smart campaign setting must specify a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV24Resources__SmartCampaignSetting"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__SmartCampaignSettingOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_Invoice_CampaignSummary": {
      "description": "Represents campaign level billable cost information associated with an account budget.",
      "properties": {
        "quantity": {
          "type": "string",
          "description": "Output only. The quantity served for the given unit of measure.",
          "readOnly": true,
          "format": "int64"
        },
        "unitOfMeasure": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CLICKS",
            "IMPRESSIONS",
            "ACQUISITIONS",
            "PHONE_CALLS",
            "VIDEO_PLAYS",
            "DAYS",
            "AUDIO_PLAYS",
            "ENGAGEMENTS",
            "SECONDS",
            "LEADS",
            "GUEST_STAYS",
            "HOURS"
          ],
          "description": "Output only. The unit of measure for the quantity served.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Clicks as unit of measure.",
            "Impressions as unit of measure.",
            "Acquisitions as unit of measure.",
            "Phone calls as unit of measure.",
            "Video plays as unit of measure.",
            "Days as unit of measure.",
            "Audio plays as unit of measure.",
            "Engagements as unit of measure.",
            "Seconds as unit of measure.",
            "Leads as unit of measure.",
            "Guest stays as unit of measure.",
            "Hours as unit of measure."
          ],
          "type": "string"
        },
        "amountMicros": {
          "type": "string",
          "description": "Output only. The amount attributable to this campaign for the given unit of measure during the service period, in micros. The currency code for this amount is the same as the Invoice.currency_code.",
          "readOnly": true,
          "format": "int64"
        },
        "campaignDescription": {
          "description": "Output only. The description of the campaign. This is generally the same as the campaign name, but may differ.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_Invoice_CampaignSummary",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__GenerateShareablePreviewsRequest": {
      "id": "GoogleAdsGoogleadsV24Services__GenerateShareablePreviewsRequest",
      "type": "object",
      "description": "Request message for ShareablePreviewService.GenerateShareablePreviews.",
      "properties": {
        "operation": {
          "description": "The operation to generate shareable previews.",
          "$ref": "GoogleAdsGoogleadsV24Actions__GenerateShareablePreviewsOperation"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__ContentLabelInfo": {
      "description": "Content Label for category exclusion.",
      "properties": {
        "type": {
          "description": "Content label type, required for CREATE operations.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Sexually suggestive content.",
            "Below the fold placement.",
            "Parked domain.",
            "Juvenile, gross & bizarre content.",
            "Profanity & rough language.",
            "Death & tragedy.",
            "Video.",
            "Content rating: G.",
            "Content rating: PG.",
            "Content rating: T.",
            "Content rating: MA.",
            "Content rating: not yet rated.",
            "Embedded video.",
            "Live streaming video.",
            "Sensitive social issues.",
            "Content that's suitable for families to view together, including Made for Kids videos on YouTube.",
            "Video games that simulate hand-to-hand fighting or combat with the use of modern or medieval weapons.",
            "Video games that feature mature content, such as violence, inappropriate language, or sexual suggestiveness.",
            "Health content that people might find sensitive or upsetting, such as medical procedures or images and descriptions of various medical conditions.",
            "Health content from sources that may provide accurate information but aren't as commonly cited as other, more well-known sources.",
            "News content that's been recently announced, regardless of the themes or people being reported on.",
            "News content that people might find sensitive or upsetting, such as crimes, accidents, and natural incidents, or commentary on potentially controversial social and political issues.",
            "News content from sources that aren't featured on Google News or YouTube News.",
            "Political content, such as political statements made by well-known politicians, political elections, or events widely perceived to be political in nature.",
            "Content with religious themes, such as religious teachings or customs, holy sites or places of worship, well-known religious figures or people dressed in religious attire, or religious opinions on social and political issues."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SEXUALLY_SUGGESTIVE",
            "BELOW_THE_FOLD",
            "PARKED_DOMAIN",
            "JUVENILE",
            "PROFANITY",
            "TRAGEDY",
            "VIDEO",
            "VIDEO_RATING_DV_G",
            "VIDEO_RATING_DV_PG",
            "VIDEO_RATING_DV_T",
            "VIDEO_RATING_DV_MA",
            "VIDEO_NOT_YET_RATED",
            "EMBEDDED_VIDEO",
            "LIVE_STREAMING_VIDEO",
            "SOCIAL_ISSUES",
            "BRAND_SUITABILITY_CONTENT_FOR_FAMILIES",
            "BRAND_SUITABILITY_GAMES_FIGHTING",
            "BRAND_SUITABILITY_GAMES_MATURE",
            "BRAND_SUITABILITY_HEALTH_SENSITIVE",
            "BRAND_SUITABILITY_HEALTH_SOURCE_UNDETERMINED",
            "BRAND_SUITABILITY_NEWS_RECENT",
            "BRAND_SUITABILITY_NEWS_SENSITIVE",
            "BRAND_SUITABILITY_NEWS_SOURCE_NOT_FEATURED",
            "BRAND_SUITABILITY_POLITICS",
            "BRAND_SUITABILITY_RELIGION"
          ],
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__ContentLabelInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__Goal": {
      "id": "GoogleAdsGoogleadsV24Resources__Goal",
      "type": "object",
      "description": "Representation of goals.",
      "properties": {
        "resourceName": {
          "description": "Immutable. The resource name of the goal. Goal resource names have the form: `customers/{customer_id}/goals/{goal_id}`",
          "type": "string"
        },
        "optimizationEligibility": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ELIGIBLE",
            "INELIGIBLE"
          ],
          "description": "Output only. Indicates if this goal is eligible for campaign optimization.",
          "readOnly": true,
          "enumDescriptions": [
            "The goal optimization status has not been specified.",
            "The goal optimization status is not known in this version.",
            "The goal is eligible for campaign optimization.",
            "The goal is not eligible for campaign optimization."
          ],
          "type": "string"
        },
        "goalType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CUSTOMER_RETENTION"
          ],
          "description": "Output only. The type of this goal.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Retention goal, which allows advertisers to optimize campaigns to win back lapsed customers. (https://support.google.com/google-ads/answer/14792043?hl=en)"
          ],
          "type": "string"
        },
        "goalId": {
          "type": "string",
          "description": "Output only. The ID of this goal.",
          "readOnly": true,
          "format": "int64"
        },
        "ownerCustomer": {
          "description": "Output only. The resource name of the goal owner customer.",
          "readOnly": true,
          "type": "string"
        },
        "retentionGoalSettings": {
          "description": "Retention goal settings.",
          "$ref": "GoogleAdsGoogleadsV24Common_GoalSetting_RetentionGoal"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateCustomerCustomizersResponse": {
      "id": "GoogleAdsGoogleadsV24Services__MutateCustomerCustomizersResponse",
      "type": "object",
      "description": "Response message for a customizer attribute mutate.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "type": "array",
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomerCustomizerResult"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__ListExperimentAsyncErrorsResponse": {
      "id": "GoogleAdsGoogleadsV24Services__ListExperimentAsyncErrorsResponse",
      "type": "object",
      "description": "Response message for ExperimentService.ListExperimentAsyncErrors.",
      "properties": {
        "errors": {
          "type": "array",
          "items": {
            "$ref": "GoogleRpc__Status"
          },
          "description": "details of the errors when performing the asynchronous operation."
        },
        "nextPageToken": {
          "type": "string",
          "description": "Pagination token used to retrieve the next page of results. Pass the content of this string as the `page_token` attribute of the next request. `next_page_token` is not returned for the last page."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_CalloutAssetParameters": {
      "id": "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_CalloutAssetParameters",
      "type": "object",
      "description": "Parameters to use when applying callout asset recommendations.",
      "properties": {
        "adAssetApplyParameters": {
          "description": "Required. Callout assets to be added. This is a required field.",
          "$ref": "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_AdAssetApplyParameters"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__ShoppingProduct": {
      "id": "GoogleAdsGoogleadsV24Resources__ShoppingProduct",
      "type": "object",
      "description": "A shopping product from Google Merchant Center that can be advertised by campaigns. The resource returns currently existing products from Google Merchant Center accounts linked with the customer. A campaign includes a product by specifying its merchant id (or, if available, the Multi Client Account id of the merchant) in the `ShoppingSetting`, and can limit the inclusion to products having a specified feed label. Standard Shopping campaigns can also limit the inclusion through a `campaign_criterion.listing_scope`. Queries to this resource specify a scope: * Account: - Filters on campaigns or ad groups are not specified. - All products from the linked Google Merchant Center accounts are returned. - Metrics and some fields (see the per-field documentation) are aggregated across all Shopping and Performance Max campaigns that include a product. * Campaign: - An equality filter on `campaign` is specified. Supported campaign types are Shopping, Performance Max, Demand Gen, Video, App. - Only products that are included by the specified campaign are returned. - Metrics and some fields (see the per-field documentation) are restricted to the specified campaign. - Only the following metrics are supported for Demand Gen, Video, App campaigns: impressions, clicks, ctr. * Ad group: - An equality filter on `ad_group` and `campaign` is specified. Supported campaign types are Shopping, Demand Gen, Video, App. - Only products that are included by the specified campaign are returned. - Metrics and some fields (see the per-field documentation) are restricted to the specified ad group. - Only the following metrics are supported for Demand Gen, Video, App campaigns: impressions, clicks, ctr. Note that segmentation by date segments is not permitted and will return UNSUPPORTED_DATE_SEGMENTATION error. On the other hand, filtering on date segments is allowed.",
      "properties": {
        "productImageUri": {
          "description": "Output only. The URI of the product image as provided by the merchant.",
          "readOnly": true,
          "type": "string"
        },
        "channel": {
          "type": "string",
          "description": "Output only. The product channel describing the locality of the product.",
          "readOnly": true,
          "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"
          ]
        },
        "condition": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NEW",
            "REFURBISHED",
            "USED"
          ],
          "description": "Output only. The condition of the product as provided by the merchant.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The product condition is new.",
            "The product condition is refurbished.",
            "The product condition is used."
          ],
          "type": "string"
        },
        "productTypeLevel5": {
          "description": "Output only. The product type level 5 as provided by the merchant.",
          "readOnly": true,
          "type": "string"
        },
        "customAttribute2": {
          "type": "string",
          "description": "Output only. The custom attribute 2 of the product as provided by the merchant.",
          "readOnly": true
        },
        "categoryLevel4": {
          "type": "string",
          "description": "Output only. The category level 4 of the product.",
          "readOnly": true
        },
        "languageCode": {
          "description": "Output only. The language code as provided by the merchant, in BCP 47 format.",
          "readOnly": true,
          "type": "string"
        },
        "categoryLevel5": {
          "description": "Output only. The category level 5 of the product.",
          "readOnly": true,
          "type": "string"
        },
        "channelExclusivity": {
          "description": "Output only. The channel exclusivity of the product as provided by the merchant.",
          "readOnly": true,
          "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"
          ],
          "type": "string"
        },
        "itemId": {
          "type": "string",
          "description": "Output only. The item id of the product as provided by the merchant.",
          "readOnly": true
        },
        "priceMicros": {
          "description": "Output only. The price of the product in micros as provided by the merchant, in the currency specified in `currency_code` (e.g. $2.97 is reported as 2970000).",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "categoryLevel2": {
          "description": "Output only. The category level 2 of the product.",
          "readOnly": true,
          "type": "string"
        },
        "feedLabel": {
          "description": "Output only. The product feed label as provided by the merchant.",
          "readOnly": true,
          "type": "string"
        },
        "brand": {
          "description": "Output only. The brand of the product as provided by the merchant.",
          "readOnly": true,
          "type": "string"
        },
        "customAttribute0": {
          "type": "string",
          "description": "Output only. The custom attribute 0 of the product as provided by the merchant.",
          "readOnly": true
        },
        "title": {
          "type": "string",
          "description": "Output only. The title of the product as provided by the merchant.",
          "readOnly": true
        },
        "issues": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Resources_ShoppingProduct_ProductIssue"
          },
          "description": "Output only. The list of issues affecting whether the product can show in ads. The value of this field is restricted to the scope specified in the query, see the documentation of the resource. This field can take up to 24 hours to update. This field is not supported for App campaigns.",
          "readOnly": true,
          "type": "array"
        },
        "adGroup": {
          "type": "string",
          "description": "Output only. An ad group of a campaign that includes the product. This field is selectable only in the ad group scope, which requires an equality filter on `campaign` and `ad_group`.",
          "readOnly": true
        },
        "customAttribute4": {
          "description": "Output only. The custom attribute 4 of the product as provided by the merchant.",
          "readOnly": true,
          "type": "string"
        },
        "productTypeLevel4": {
          "type": "string",
          "description": "Output only. The product type level 4 as provided by the merchant.",
          "readOnly": true
        },
        "resourceName": {
          "description": "Output only. The resource name of the shopping product. Shopping product resource names have the form: `customers/{customer_id}/shoppingProducts/{merchant_center_id}~{channel}~{language_code}~{feed_label}~{item_id}`",
          "readOnly": true,
          "type": "string"
        },
        "currencyCode": {
          "type": "string",
          "description": "Output only. The currency code as provided by the merchant, in ISO 4217 format.",
          "readOnly": true
        },
        "categoryLevel1": {
          "description": "Output only. The category level 1 of the product.",
          "readOnly": true,
          "type": "string"
        },
        "status": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NOT_ELIGIBLE",
            "ELIGIBLE_LIMITED",
            "ELIGIBLE"
          ],
          "description": "Output only. The status that indicates whether the product can show in ads. The value of this field is restricted to the scope specified in the query, see the documentation of the resource. This field can take up to 24 hours to update. This field is not supported for App campaigns.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents values unknown in this version.",
            "The product cannot show in ads.",
            "The product can show in ads but may be limited in where and when it can show due to identified issues.",
            "The product can show in ads."
          ]
        },
        "campaign": {
          "description": "Output only. A campaign that includes the product. This field is selectable only in the campaign scope, which requires an equality filter on `campaign`.",
          "readOnly": true,
          "type": "string"
        },
        "productTypeLevel3": {
          "type": "string",
          "description": "Output only. The product type level 3 as provided by the merchant.",
          "readOnly": true
        },
        "categoryLevel3": {
          "description": "Output only. The category level 3 of the product.",
          "readOnly": true,
          "type": "string"
        },
        "productTypeLevel1": {
          "type": "string",
          "description": "Output only. The product type level 1 as provided by the merchant.",
          "readOnly": true
        },
        "customAttribute1": {
          "description": "Output only. The custom attribute 1 of the product as provided by the merchant.",
          "readOnly": true,
          "type": "string"
        },
        "productTypeLevel2": {
          "description": "Output only. The product type level 2 as provided by the merchant.",
          "readOnly": true,
          "type": "string"
        },
        "customAttribute3": {
          "type": "string",
          "description": "Output only. The custom attribute 3 of the product as provided by the merchant.",
          "readOnly": true
        },
        "effectiveMaxCpcMicros": {
          "description": "Output only. The effective maximum cost-per-click (effective max. CPC) of the product. This field is available only if the query specifies the campaign or ad group scope, and if the campaign uses manual bidding. The value is the highest bid set for the product in product groups across all enabled ad groups. It represents the most you're willing to pay for a click on the product. This field can take up to 24 hours to update.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "multiClientAccountId": {
          "type": "string",
          "description": "Output only. The id of the Multi Client Account of the merchant, if present.",
          "readOnly": true,
          "format": "int64"
        },
        "availability": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "IN_STOCK",
            "OUT_OF_STOCK",
            "PREORDER"
          ],
          "description": "Output only. The availability of the product as provided by the merchant.",
          "readOnly": true,
          "enumDescriptions": [
            "Enum unspecified.",
            "Used for return value only. Represents values unknown in this version.",
            "The product is in stock.",
            "The product is out of stock.",
            "The product can be preordered."
          ]
        },
        "targetCountries": {
          "description": "Output only. Upper-case two-letter ISO 3166-1 code of the regions where the product is intended to be shown in ads.",
          "readOnly": true,
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "merchantCenterId": {
          "description": "Output only. The id of the merchant that owns the product.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_CampaignBudgetParameters": {
      "id": "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_CampaignBudgetParameters",
      "type": "object",
      "description": "Parameters to use when applying a campaign budget recommendation.",
      "properties": {
        "newBudgetAmountMicros": {
          "type": "string",
          "description": "New budget amount to set for target budget resource. This is a required field.",
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__GeneratedImage": {
      "description": "Generated image data and metadata.",
      "properties": {
        "imageTemporaryUrl": {
          "description": "A temporary URL for the generated image.",
          "type": "string"
        },
        "assetFieldType": {
          "type": "string",
          "description": "The intended field type for this generated image.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is linked for use as a headline.",
            "The asset is linked for use as a description.",
            "The asset is linked for use as mandatory ad text.",
            "The asset is linked for use as a marketing image.",
            "The asset is linked for use as a media bundle.",
            "The asset is linked for use as a YouTube video.",
            "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
            "The asset is linked for use as a Lead Form extension.",
            "The asset is linked for use as a Promotion extension.",
            "The asset is linked for use as a Callout extension.",
            "The asset is linked for use as a Structured Snippet extension.",
            "The asset is linked for use as a Sitelink.",
            "The asset is linked for use as a Mobile App extension.",
            "The asset is linked for use as a Hotel Callout extension.",
            "The asset is linked for use as a Call extension.",
            "The asset is linked for use as a Price extension.",
            "The asset is linked for use as a long headline.",
            "The asset is linked for use as a business name.",
            "The asset is linked for use as a square marketing image.",
            "The asset is linked for use as a portrait marketing image.",
            "The asset is linked for use as a logo.",
            "The asset is linked for use as a landscape logo.",
            "The asset is linked for use as a non YouTube logo.",
            "The asset is linked for use to select a call-to-action.",
            "The asset is linked for use to select an ad image.",
            "The asset is linked for use as a business logo.",
            "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
            "The asset is linked for use as a Demand Gen carousel card.",
            "The asset is linked for use as a Business Message.",
            "The asset is linked for use as a tall portrait marketing image.",
            "The asset is linked for use as related YouTube videos.",
            "The asset is linked for use as a landing page preview image.",
            "The asset is linked for use as a long description.",
            "The asset is linked for use as a call-to-action."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE",
            "DESCRIPTION",
            "MANDATORY_AD_TEXT",
            "MARKETING_IMAGE",
            "MEDIA_BUNDLE",
            "YOUTUBE_VIDEO",
            "BOOK_ON_GOOGLE",
            "LEAD_FORM",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "LONG_HEADLINE",
            "BUSINESS_NAME",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "VIDEO",
            "CALL_TO_ACTION_SELECTION",
            "AD_IMAGE",
            "BUSINESS_LOGO",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "TALL_PORTRAIT_MARKETING_IMAGE",
            "RELATED_YOUTUBE_VIDEOS",
            "LANDING_PAGE_PREVIEW",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION"
          ]
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__GeneratedImage",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__ChainFilter": {
      "description": "One chain level filter on location in a feed item set. The filtering logic among all the fields is AND.",
      "properties": {
        "chainId": {
          "description": "Required. Used to filter chain locations by chain id. Only chain locations that belong to the specified chain will be in the asset set.",
          "format": "int64",
          "type": "string"
        },
        "locationAttributes": {
          "items": {
            "type": "string"
          },
          "description": "Used to filter chain locations by location attributes. Only chain locations that belong to all of the specified attribute(s) will be in the asset set. If this field is empty, it means no filtering on this field.",
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__ChainFilter",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_Recommendation_ShoppingFixDisapprovedProductsRecommendation": {
      "id": "GoogleAdsGoogleadsV24Resources_Recommendation_ShoppingFixDisapprovedProductsRecommendation",
      "type": "object",
      "description": "The shopping recommendation to fix disapproved products in a Shopping Campaign Inventory.",
      "properties": {
        "merchant": {
          "description": "Output only. The details of the Merchant Center account.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_MerchantInfo"
        },
        "feedLabel": {
          "description": "Output only. The feed label for the campaign.",
          "readOnly": true,
          "type": "string"
        },
        "productsCount": {
          "description": "Output only. The number of products of the campaign.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "disapprovedProductsCount": {
          "description": "Output only. The numbers of products of the campaign that are disapproved.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        }
      }
    },
    "GoogleLongrunning__Operation": {
      "id": "GoogleLongrunning__Operation",
      "type": "object",
      "description": "This resource represents a long-running operation that is the result of a network API call.",
      "properties": {
        "name": {
          "description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.",
          "type": "string"
        },
        "done": {
          "description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.",
          "type": "boolean"
        },
        "error": {
          "description": "The error result of the operation in case of failure or cancellation.",
          "$ref": "GoogleRpc__Status"
        },
        "metadata": {
          "description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.",
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object. Contains field @type with type URL."
          },
          "type": "object"
        },
        "response": {
          "description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.",
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object. Contains field @type with type URL."
          },
          "type": "object"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_Recommendation_UpgradeSmartShoppingCampaignToPerformanceMaxRecommendation": {
      "id": "GoogleAdsGoogleadsV24Resources_Recommendation_UpgradeSmartShoppingCampaignToPerformanceMaxRecommendation",
      "type": "object",
      "description": "The upgrade a Smart Shopping campaign to a Performance Max campaign recommendation.",
      "properties": {
        "merchantId": {
          "description": "Output only. ID of Merchant Center account.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "salesCountryCode": {
          "type": "string",
          "description": "Output only. Country whose products from merchant's inventory should be included.",
          "readOnly": true
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__LifecycleGoalValueSettings": {
      "id": "GoogleAdsGoogleadsV24Common__LifecycleGoalValueSettings",
      "type": "object",
      "description": "Lifecycle goal value settings.",
      "properties": {
        "highLifetimeValue": {
          "description": "High lifetime value of the lifecycle goal. For example, for customer acquisition goal, high lifetime value is the incremental conversion value for new customers who are of high value. High lifetime value should be greater than value, if set.",
          "format": "double",
          "type": "number"
        },
        "value": {
          "description": "Value of the lifecycle goal. For example, for customer acquisition goal, value is the incremental conversion value for new customers who are not of high value.",
          "format": "double",
          "type": "number"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__BiddingStrategySimulation": {
      "description": "A bidding strategy simulation. Supported combinations of simulation type and simulation modification method are detailed below respectively. 1. TARGET_CPA - UNIFORM 2. TARGET_ROAS - UNIFORM",
      "properties": {
        "biddingStrategyId": {
          "type": "string",
          "description": "Output only. Bidding strategy shared set id of the simulation.",
          "readOnly": true,
          "format": "int64"
        },
        "endDate": {
          "description": "Output only. Last day on which the simulation is based, in YYYY-MM-DD format",
          "readOnly": true,
          "type": "string"
        },
        "targetCpaPointList": {
          "description": "Output only. Simulation points if the simulation type is TARGET_CPA.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Common__TargetCpaSimulationPointList"
        },
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the bidding strategy simulation. Bidding strategy simulation resource names have the form: `customers/{customer_id}/biddingStrategySimulations/{bidding_strategy_id}~{type}~{modification_method}~{start_date}~{end_date}`",
          "readOnly": true
        },
        "modificationMethod": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "UNIFORM",
            "DEFAULT",
            "SCALING"
          ],
          "description": "Output only. How the simulation modifies the field.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The values in a simulation were applied to all children of a given resource uniformly. Overrides on child resources were not respected.",
            "The values in a simulation were applied to the given resource. Overrides on child resources were respected, and traffic estimates do not include these resources.",
            "The values in a simulation were all scaled by the same factor. For example, in a simulated TargetCpa campaign, the campaign target and all ad group targets were scaled by a factor of X."
          ]
        },
        "type": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CPC_BID",
            "CPV_BID",
            "TARGET_CPA",
            "BID_MODIFIER",
            "TARGET_ROAS",
            "PERCENT_CPC_BID",
            "TARGET_IMPRESSION_SHARE",
            "BUDGET"
          ],
          "description": "Output only. The field that the simulation modifies.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The simulation is for a CPC bid.",
            "The simulation is for a CPV bid.",
            "The simulation is for a CPA target.",
            "The simulation is for a bid modifier.",
            "The simulation is for a ROAS target.",
            "The simulation is for a percent CPC bid.",
            "The simulation is for an impression share target.",
            "The simulation is for a budget."
          ],
          "type": "string"
        },
        "startDate": {
          "type": "string",
          "description": "Output only. First day on which the simulation is based, in YYYY-MM-DD format.",
          "readOnly": true
        },
        "targetRoasPointList": {
          "description": "Output only. Simulation points if the simulation type is TARGET_ROAS.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Common__TargetRoasSimulationPointList"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__BiddingStrategySimulation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_Recommendation_ShoppingMigrateRegularShoppingCampaignOffersToPerformanceMaxRecommendation": {
      "description": "The shopping recommendation to migrate Regular Shopping Campaign targeted offers to Performance Max campaigns.",
      "properties": {
        "feedLabel": {
          "description": "Output only. The feed label of the offers targeted by the campaigns sharing this suggestion.",
          "readOnly": true,
          "type": "string"
        },
        "merchant": {
          "description": "Output only. The details of the Merchant Center account.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_MerchantInfo"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_Recommendation_ShoppingMigrateRegularShoppingCampaignOffersToPerformanceMaxRecommendation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateCampaignCriterionResult": {
      "id": "GoogleAdsGoogleadsV24Services__MutateCampaignCriterionResult",
      "type": "object",
      "description": "The result for the criterion mutate.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        },
        "campaignCriterion": {
          "description": "The mutated campaign criterion with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV24Resources__CampaignCriterion"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__MediaImage": {
      "description": "Encapsulates an Image.",
      "properties": {
        "data": {
          "type": "string",
          "description": "Immutable. Raw image data.",
          "format": "byte"
        },
        "fullSizeImageUrl": {
          "description": "Output only. The url to the full size version of the image.",
          "readOnly": true,
          "type": "string"
        },
        "previewSizeImageUrl": {
          "type": "string",
          "description": "Output only. The url to the preview size version of the image.",
          "readOnly": true
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__MediaImage",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__PolicyValidationParameter": {
      "description": "Parameter for controlling how policy exemption is done.",
      "properties": {
        "ignorablePolicyTopics": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The list of policy topics that should not cause a `PolicyFindingError` to be reported. This field is used for ad policy exemptions. It corresponds to the `PolicyTopicEntry.topic` field. If this field is populated, then `exempt_policy_violation_keys` must be empty. Resources that violate these policies will be saved, but will not be eligible to serve. They may begin serving at a later time due to a change in policies, re-review of the resource, or a change in advertiser certificates."
        },
        "exemptPolicyViolationKeys": {
          "type": "array",
          "description": "The list of policy violation keys that should not cause a `PolicyViolationError` to be reported. Not all policy violations are exemptable. Refer to the `is_exemptible` field in the returned `PolicyViolationError`. This field is used for keyword policy exemptions. If this field is populated, then `ignorable_policy_topics` must be empty. Resources that violate these policies will be saved, but will not be eligible to serve. They may begin serving at a later time due to a change in policies, re-review of the resource, or a change in advertiser certificates.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__PolicyViolationKey"
          }
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__PolicyValidationParameter",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services_GenerateRecommendationsRequest_BiddingInfo": {
      "description": "Current bidding information of the campaign. Provides a wrapper for bidding-related signals that inform recommendations.",
      "properties": {
        "targetImpressionShareInfo": {
          "description": "Optional. Current Target Impression Share information of the campaign. This field is necessary for the following recommendation_types: CAMPAIGN_BUDGET",
          "$ref": "GoogleAdsGoogleadsV24Services_GenerateRecommendationsRequest_TargetImpressionShareInfo"
        },
        "biddingStrategyType": {
          "description": "Current bidding strategy. This field is necessary for the following recommendation_types: CAMPAIGN_BUDGET, MAXIMIZE_CLICKS_OPT_IN, MAXIMIZE_CONVERSIONS_OPT_IN, MAXIMIZE_CONVERSION_VALUE_OPT_IN, SET_TARGET_CPA, SET_TARGET_ROAS, TARGET_CPA_OPT_IN, TARGET_ROAS_OPT_IN",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Commission is an automatic bidding strategy in which the advertiser pays a certain portion of the conversion value.",
            "Enhanced CPC is a bidding strategy that raises bids for clicks that seem more likely to lead to a conversion and lowers them for clicks where they seem less likely.",
            "Fixed CPM is a manual bidding strategy with a fixed CPM.",
            "Fixed share of voice is a manual bidding strategy for YouTube Sponsorships that bills either on CPM or a fixed cost per day.",
            "Used for return value only. Indicates that a campaign does not have a bidding strategy. This prevents the campaign from serving. For example, a campaign may be attached to a manager bidding strategy and the serving account is subsequently unlinked from the manager account. In this case the campaign will automatically be detached from the now inaccessible manager bidding strategy and transition to the INVALID bidding strategy type.",
            "Manual bidding strategy that allows advertiser to set the bid per advertiser-specified action.",
            "Manual click based bidding where user pays per click.",
            "Manual impression based bidding where user pays per thousand impressions.",
            "A bidding strategy that pays a configurable amount per video view.",
            "A bidding strategy that automatically maximizes number of conversions given a daily budget.",
            "An automated bidding strategy that automatically sets bids to maximize revenue while spending your budget.",
            "Page-One Promoted bidding scheme, which sets max cpc bids to target impressions on page one or page one promoted slots on google.com. This enum value is deprecated.",
            "Percent Cpc is bidding strategy where bids are a fraction of the advertised price for some good or service.",
            "Target CPA is an automated bid strategy that sets bids to help get as many conversions as possible at the target cost-per-acquisition (CPA) you set.",
            "Target CPC is an automated bid strategy that sets bids to help get as many clicks as possible at the target cost-per-click (CPC) you set.",
            "Target CPM is an automated bid strategy that sets bids to help get as many impressions as possible at the target cost per one thousand impressions (CPM) you set.",
            "Target CPV is an automated bidding strategy that sets bids to optimize performance given the average target cost per view.",
            "An automated bidding strategy that sets bids so that a certain percentage of search ads are shown at the top of the first page (or other targeted location).",
            "Target Outrank Share is an automated bidding strategy that sets bids based on the target fraction of auctions where the advertiser should outrank a specific competitor. This enum value is deprecated.",
            "Target ROAS is an automated bidding strategy that helps you maximize revenue while averaging a specific target Return On Average Spend (ROAS).",
            "Target Spend is an automated bid strategy that sets your bids to help get as many clicks as possible within your budget."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "COMMISSION",
            "ENHANCED_CPC",
            "FIXED_CPM",
            "FIXED_SHARE_OF_VOICE",
            "INVALID",
            "MANUAL_CPA",
            "MANUAL_CPC",
            "MANUAL_CPM",
            "MANUAL_CPV",
            "MAXIMIZE_CONVERSIONS",
            "MAXIMIZE_CONVERSION_VALUE",
            "PAGE_ONE_PROMOTED",
            "PERCENT_CPC",
            "TARGET_CPA",
            "TARGET_CPC",
            "TARGET_CPM",
            "TARGET_CPV",
            "TARGET_IMPRESSION_SHARE",
            "TARGET_OUTRANK_SHARE",
            "TARGET_ROAS",
            "TARGET_SPEND"
          ],
          "type": "string"
        },
        "targetCpaMicros": {
          "type": "string",
          "description": "Current target_cpa in micros. This can be populated for campaigns with a bidding strategy type of TARGET_CPA or MAXIMIZE_CONVERSIONS.",
          "format": "int64"
        },
        "targetRoas": {
          "type": "number",
          "description": "Current target_roas. This can be populated for campaigns with a bidding strategy type of TARGET_ROAS or MAXIMIZE_CONVERSION_VALUE.",
          "format": "double"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services_GenerateRecommendationsRequest_BiddingInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__OfflineConversionSummary": {
      "description": "Historical upload summary, grouped by upload date or job.",
      "properties": {
        "jobId": {
          "type": "string",
          "description": "Output only. Dimension key for last N jobs.",
          "readOnly": true,
          "format": "int64"
        },
        "pendingCount": {
          "type": "string",
          "description": "Output only. Total count of pending uploaded event.",
          "readOnly": true,
          "format": "int64"
        },
        "uploadDate": {
          "description": "Output only. Dimension key for last N days.",
          "readOnly": true,
          "type": "string"
        },
        "successfulCount": {
          "type": "string",
          "description": "Output only. Total count of successful event.",
          "readOnly": true,
          "format": "int64"
        },
        "failedCount": {
          "description": "Output only. Total count of failed event.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__OfflineConversionSummary",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateRecommendationSubscriptionResult": {
      "description": "Result message for RecommendationSubscriptionService.MutateRecommendationSubscription",
      "properties": {
        "resourceName": {
          "description": "Resource name of the subscription that was modified.",
          "type": "string"
        },
        "recommendationSubscription": {
          "description": "The mutated recommendation subscription with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV24Resources__RecommendationSubscription"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateRecommendationSubscriptionResult",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateKeywordPlanAdGroupKeywordResult": {
      "id": "GoogleAdsGoogleadsV24Services__MutateKeywordPlanAdGroupKeywordResult",
      "type": "object",
      "description": "The result for the Keyword Plan ad group keyword mutate.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateCustomerUserAccessResult": {
      "id": "GoogleAdsGoogleadsV24Services__MutateCustomerUserAccessResult",
      "type": "object",
      "description": "The result for the customer user access mutate.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__CustomAudienceSegment": {
      "description": "Custom audience segment.",
      "properties": {
        "customAudience": {
          "type": "string",
          "description": "The custom audience resource."
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__CustomAudienceSegment",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__ApplyRecommendationOperation": {
      "description": "Information about the operation to apply a recommendation and any parameters to customize it.",
      "properties": {
        "leadFormAsset": {
          "description": "Parameters to use when applying lead form asset recommendation.",
          "$ref": "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_LeadFormAssetParameters"
        },
        "callExtension": {
          "description": "Parameters to use when applying call extension recommendation.",
          "$ref": "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_CallExtensionParameters"
        },
        "setTargetCpa": {
          "description": "Parameters to use when applying set target CPA recommendation.",
          "$ref": "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_ForecastingSetTargetCpaParameters"
        },
        "responsiveSearchAdAsset": {
          "description": "Parameters to use when applying a responsive search ad asset recommendation.",
          "$ref": "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_ResponsiveSearchAdAssetParameters"
        },
        "callAsset": {
          "description": "Parameters to use when applying call asset recommendation.",
          "$ref": "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_CallAssetParameters"
        },
        "targetCpaOptIn": {
          "description": "Optional parameters to use when applying target CPA opt-in recommendation.",
          "$ref": "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_TargetCpaOptInParameters"
        },
        "campaignBudget": {
          "description": "Optional parameters to use when applying a campaign budget recommendation.",
          "$ref": "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_CampaignBudgetParameters"
        },
        "calloutExtension": {
          "description": "Parameters to use when applying callout extension recommendation.",
          "$ref": "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_CalloutExtensionParameters"
        },
        "resourceName": {
          "type": "string",
          "description": "The resource name of the recommendation to apply."
        },
        "textAd": {
          "description": "Optional parameters to use when applying a text ad recommendation.",
          "$ref": "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_TextAdParameters"
        },
        "targetRoasOptIn": {
          "description": "Optional parameters to use when applying target ROAS opt-in recommendation.",
          "$ref": "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_TargetRoasOptInParameters"
        },
        "responsiveSearchAd": {
          "description": "Parameters to use when applying a responsive search ad recommendation.",
          "$ref": "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_ResponsiveSearchAdParameters"
        },
        "sitelinkExtension": {
          "description": "Parameters to use when applying sitelink recommendation.",
          "$ref": "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_SitelinkExtensionParameters"
        },
        "setTargetRoas": {
          "description": "Parameters to use when applying set target ROAS recommendation.",
          "$ref": "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_ForecastingSetTargetRoasParameters"
        },
        "responsiveSearchAdImproveAdStrength": {
          "description": "Parameters to use when applying a responsive search ad improve ad strength recommendation.",
          "$ref": "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_ResponsiveSearchAdImproveAdStrengthParameters"
        },
        "useBroadMatchKeyword": {
          "description": "Parameters to use when applying a use broad match keyword recommendation.",
          "$ref": "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_UseBroadMatchKeywordParameters"
        },
        "moveUnusedBudget": {
          "description": "Parameters to use when applying move unused budget recommendation.",
          "$ref": "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_MoveUnusedBudgetParameters"
        },
        "raiseTargetCpa": {
          "description": "Parameters to use when applying raise Target CPA recommendation.",
          "$ref": "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_RaiseTargetCpaParameters"
        },
        "raiseTargetCpaBidTooLow": {
          "description": "Parameters to use when applying a raise target CPA bid too low recommendation. The apply is asynchronous and can take minutes depending on the number of ad groups there is in the related campaign.",
          "$ref": "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_RaiseTargetCpaBidTooLowParameters"
        },
        "lowerTargetRoas": {
          "description": "Parameters to use when applying lower Target ROAS recommendation.",
          "$ref": "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_LowerTargetRoasParameters"
        },
        "calloutAsset": {
          "description": "Parameters to use when applying callout asset recommendation.",
          "$ref": "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_CalloutAssetParameters"
        },
        "forecastingSetTargetCpa": {
          "description": "Parameters to use when applying forecasting set target CPA recommendation.",
          "$ref": "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_ForecastingSetTargetCpaParameters"
        },
        "keyword": {
          "description": "Optional parameters to use when applying keyword recommendation.",
          "$ref": "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_KeywordParameters"
        },
        "forecastingSetTargetRoas": {
          "description": "Parameters to use when applying a forecasting set target ROAS recommendation.",
          "$ref": "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_ForecastingSetTargetRoasParameters"
        },
        "sitelinkAsset": {
          "description": "Parameters to use when applying sitelink asset recommendation.",
          "$ref": "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_SitelinkAssetParameters"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__ApplyRecommendationOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_Invoice_RegulatoryCostSummary": {
      "description": "Represents regulatory cost information associated with an account.",
      "properties": {
        "regulatoryFeeType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AUSTRIA_DST_FEE",
            "TURKIYE_REGULATORY_OPERATING_COST",
            "UK_DST_FEE",
            "SPAIN_REGULATORY_OPERATING_COST",
            "FRANCE_REGULATORY_OPERATING_COST",
            "ITALY_REGULATORY_OPERATING_COST",
            "INDIA_REGULATORY_OPERATING_COST",
            "POLAND_REGULATORY_OPERATING_COST",
            "OPERATING_CHARGES",
            "CANADA_DST_FEE"
          ],
          "description": "Output only. The type of regulatory fee.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Represents Austria DST fee.",
            "Represents Türkiye regulatory operating cost.",
            "Represents UK DST fee.",
            "Represents Spain regulatory operating cost.",
            "Represents France regulatory operating cost.",
            "Represents Italy regulatory operating cost.",
            "Represents India regulatory operating cost.",
            "Represents Poland regulatory operating cost.",
            "Represents operating charges.",
            "Represents Canada DST fee."
          ],
          "type": "string"
        },
        "amountMicros": {
          "description": "Output only. The amount of the regulatory fee, in micros. The currency code for this amount is the same as the Invoice.currency_code.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_Invoice_RegulatoryCostSummary",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__CampaignAggregateAssetView": {
      "id": "GoogleAdsGoogleadsV24Resources__CampaignAggregateAssetView",
      "type": "object",
      "description": "A campaign-level aggregate asset view that shows where the asset is linked, performamce of the asset and stats.",
      "properties": {
        "asset": {
          "description": "Output only. The ID of the asset.",
          "readOnly": true,
          "type": "string"
        },
        "resourceName": {
          "description": "Output only. The resource name of the campaign aggregate asset view. Campaign aggregate asset view resource names have the form: `customers/{customer_id}/campaignAggregateAssetViews/{Campaign.campaign_id}~{Asset.asset_id}~{AssetLinkSource.asset_link_source}~{AssetFieldType.field_type}`",
          "readOnly": true,
          "type": "string"
        },
        "fieldType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE",
            "DESCRIPTION",
            "MANDATORY_AD_TEXT",
            "MARKETING_IMAGE",
            "MEDIA_BUNDLE",
            "YOUTUBE_VIDEO",
            "BOOK_ON_GOOGLE",
            "LEAD_FORM",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "LONG_HEADLINE",
            "BUSINESS_NAME",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "VIDEO",
            "CALL_TO_ACTION_SELECTION",
            "AD_IMAGE",
            "BUSINESS_LOGO",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "TALL_PORTRAIT_MARKETING_IMAGE",
            "RELATED_YOUTUBE_VIDEOS",
            "LANDING_PAGE_PREVIEW",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION"
          ],
          "description": "Output only. FieldType of the asset.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is linked for use as a headline.",
            "The asset is linked for use as a description.",
            "The asset is linked for use as mandatory ad text.",
            "The asset is linked for use as a marketing image.",
            "The asset is linked for use as a media bundle.",
            "The asset is linked for use as a YouTube video.",
            "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
            "The asset is linked for use as a Lead Form extension.",
            "The asset is linked for use as a Promotion extension.",
            "The asset is linked for use as a Callout extension.",
            "The asset is linked for use as a Structured Snippet extension.",
            "The asset is linked for use as a Sitelink.",
            "The asset is linked for use as a Mobile App extension.",
            "The asset is linked for use as a Hotel Callout extension.",
            "The asset is linked for use as a Call extension.",
            "The asset is linked for use as a Price extension.",
            "The asset is linked for use as a long headline.",
            "The asset is linked for use as a business name.",
            "The asset is linked for use as a square marketing image.",
            "The asset is linked for use as a portrait marketing image.",
            "The asset is linked for use as a logo.",
            "The asset is linked for use as a landscape logo.",
            "The asset is linked for use as a non YouTube logo.",
            "The asset is linked for use to select a call-to-action.",
            "The asset is linked for use to select an ad image.",
            "The asset is linked for use as a business logo.",
            "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
            "The asset is linked for use as a Demand Gen carousel card.",
            "The asset is linked for use as a Business Message.",
            "The asset is linked for use as a tall portrait marketing image.",
            "The asset is linked for use as related YouTube videos.",
            "The asset is linked for use as a landing page preview image.",
            "The asset is linked for use as a long description.",
            "The asset is linked for use as a call-to-action."
          ],
          "type": "string"
        },
        "campaign": {
          "type": "string",
          "description": "Output only. Campaign in which the asset served.",
          "readOnly": true
        },
        "assetSource": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADVERTISER",
            "AUTOMATICALLY_CREATED"
          ],
          "description": "Output only. Source of the asset link.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset or asset link is provided by advertiser.",
            "The asset or asset link is generated by Google."
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__CustomerLifecycleGoalOperation": {
      "description": "A single operation on a customer lifecycle goal.",
      "properties": {
        "updateMask": {
          "type": "string",
          "description": "Optional. FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask"
        },
        "update": {
          "description": "Update operation: Update an existing customer lifecycle goal.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CustomerLifecycleGoal"
        },
        "create": {
          "description": "Create operation: Create a new customer lifecycle goal.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CustomerLifecycleGoal"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__CustomerLifecycleGoalOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__HotelIdInfo": {
      "id": "GoogleAdsGoogleadsV24Common__HotelIdInfo",
      "type": "object",
      "description": "Advertiser-specific hotel ID.",
      "properties": {
        "value": {
          "description": "String value of the hotel ID.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateCustomerManagerLinkResponse": {
      "id": "GoogleAdsGoogleadsV24Services__MutateCustomerManagerLinkResponse",
      "type": "object",
      "description": "Response message for a CustomerManagerLink mutate.",
      "properties": {
        "results": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomerManagerLinkResult"
          },
          "description": "A result that identifies the resource affected by the mutate request.",
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateAssetSetAssetsResponse": {
      "description": "Response message for an asset set asset mutate.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateAssetSetAssetResult"
          },
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateAssetSetAssetsResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateAdGroupAdsResponse": {
      "id": "GoogleAdsGoogleadsV24Services__MutateAdGroupAdsResponse",
      "type": "object",
      "description": "Response message for an ad group ad mutate.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateAdGroupAdResult"
          },
          "description": "All results for the mutate."
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_Campaign_AppCampaignSetting": {
      "description": "Campaign-level settings for App Campaigns.",
      "properties": {
        "appId": {
          "description": "Immutable. A string that uniquely identifies a mobile application.",
          "type": "string"
        },
        "biddingStrategyGoalType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "OPTIMIZE_INSTALLS_TARGET_INSTALL_COST",
            "OPTIMIZE_IN_APP_CONVERSIONS_TARGET_INSTALL_COST",
            "OPTIMIZE_IN_APP_CONVERSIONS_TARGET_CONVERSION_COST",
            "OPTIMIZE_RETURN_ON_ADVERTISING_SPEND",
            "OPTIMIZE_PRE_REGISTRATION_CONVERSION_VOLUME",
            "OPTIMIZE_INSTALLS_WITHOUT_TARGET_INSTALL_COST",
            "OPTIMIZE_IN_APP_CONVERSIONS_WITHOUT_TARGET_CPA",
            "OPTIMIZE_TOTAL_VALUE_WITHOUT_TARGET_ROAS"
          ],
          "description": "Represents the goal which the bidding strategy of this app campaign should optimize towards.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Aim to maximize the number of app installs. The cpa bid is the target cost per install.",
            "Aim to maximize the long term number of selected in-app conversions from app installs. The cpa bid is the target cost per install.",
            "Aim to maximize the long term number of selected in-app conversions from app installs. The cpa bid is the target cost per in-app conversion. Note that the actual cpa may seem higher than the target cpa at first, since the long term conversions haven't happened yet.",
            "Aim to maximize all conversions' value, for example, install + selected in-app conversions while achieving or exceeding target return on advertising spend.",
            "Aim to maximize the pre-registration of the app.",
            "Aim to maximize installation of the app without target cost-per-install.",
            "Aim to maximize the selected in-app conversion's volume while spending the full budget. No advertiser-specific target CPA.",
            "Aim to maximize total conversion value, such as install and selected in-app conversions, while spending the full budget. No advertiser-specified target ROAS."
          ]
        },
        "appStore": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "APPLE_APP_STORE",
            "GOOGLE_APP_STORE"
          ],
          "description": "Immutable. The application store that distributes this specific app.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Apple app store.",
            "Google play."
          ],
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_Campaign_AppCampaignSetting",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__GeneratedText": {
      "description": "Data and metadata about a piece of generated text.",
      "properties": {
        "assetFieldType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE",
            "DESCRIPTION",
            "MANDATORY_AD_TEXT",
            "MARKETING_IMAGE",
            "MEDIA_BUNDLE",
            "YOUTUBE_VIDEO",
            "BOOK_ON_GOOGLE",
            "LEAD_FORM",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "LONG_HEADLINE",
            "BUSINESS_NAME",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "VIDEO",
            "CALL_TO_ACTION_SELECTION",
            "AD_IMAGE",
            "BUSINESS_LOGO",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "TALL_PORTRAIT_MARKETING_IMAGE",
            "RELATED_YOUTUBE_VIDEOS",
            "LANDING_PAGE_PREVIEW",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION"
          ],
          "description": "The type of asset this text is intended to be used as.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is linked for use as a headline.",
            "The asset is linked for use as a description.",
            "The asset is linked for use as mandatory ad text.",
            "The asset is linked for use as a marketing image.",
            "The asset is linked for use as a media bundle.",
            "The asset is linked for use as a YouTube video.",
            "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
            "The asset is linked for use as a Lead Form extension.",
            "The asset is linked for use as a Promotion extension.",
            "The asset is linked for use as a Callout extension.",
            "The asset is linked for use as a Structured Snippet extension.",
            "The asset is linked for use as a Sitelink.",
            "The asset is linked for use as a Mobile App extension.",
            "The asset is linked for use as a Hotel Callout extension.",
            "The asset is linked for use as a Call extension.",
            "The asset is linked for use as a Price extension.",
            "The asset is linked for use as a long headline.",
            "The asset is linked for use as a business name.",
            "The asset is linked for use as a square marketing image.",
            "The asset is linked for use as a portrait marketing image.",
            "The asset is linked for use as a logo.",
            "The asset is linked for use as a landscape logo.",
            "The asset is linked for use as a non YouTube logo.",
            "The asset is linked for use to select a call-to-action.",
            "The asset is linked for use to select an ad image.",
            "The asset is linked for use as a business logo.",
            "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
            "The asset is linked for use as a Demand Gen carousel card.",
            "The asset is linked for use as a Business Message.",
            "The asset is linked for use as a tall portrait marketing image.",
            "The asset is linked for use as related YouTube videos.",
            "The asset is linked for use as a landing page preview image.",
            "The asset is linked for use as a long description.",
            "The asset is linked for use as a call-to-action."
          ]
        },
        "text": {
          "type": "string",
          "description": "A string of text that was generated."
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__GeneratedText",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateAssetGroupListingGroupFiltersResponse": {
      "id": "GoogleAdsGoogleadsV24Services__MutateAssetGroupListingGroupFiltersResponse",
      "type": "object",
      "description": "Response message for an asset group listing group filter mutate.",
      "properties": {
        "results": {
          "type": "array",
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateAssetGroupListingGroupFilterResult"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__OnTargetAudienceMetrics": {
      "description": "Audience metrics for the planned products. These metrics consider the following targeting dimensions: - Location - PlannableAgeRange - Gender - AudienceTargeting (only for youtube_audience_size)",
      "properties": {
        "youtubeAudienceSize": {
          "type": "string",
          "description": "Reference audience size matching the considered targeting for YouTube.",
          "format": "int64"
        },
        "censusAudienceSize": {
          "description": "Reference audience size matching the considered targeting for Census.",
          "format": "int64",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__OnTargetAudienceMetrics",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__LeadFormSubmissionData": {
      "description": "Data from lead form submissions.",
      "properties": {
        "campaign": {
          "type": "string",
          "description": "Output only. Campaign associated with the submitted lead form.",
          "readOnly": true
        },
        "adGroupAd": {
          "type": "string",
          "description": "Output only. AdGroupAd associated with the submitted lead form.",
          "readOnly": true
        },
        "submissionDateTime": {
          "description": "Output only. The date and time at which the lead form was submitted. The format is \"yyyy-mm-dd hh:mm:ss+|-hh:mm\", for example, \"2019-01-01 12:32:45-08:00\".",
          "readOnly": true,
          "type": "string"
        },
        "resourceName": {
          "description": "Output only. The resource name of the lead form submission data. Lead form submission data resource names have the form: `customers/{customer_id}/leadFormSubmissionData/{lead_form_submission_data_id}`",
          "readOnly": true,
          "type": "string"
        },
        "leadFormSubmissionFields": {
          "type": "array",
          "description": "Output only. Submission data associated with a lead form.",
          "readOnly": true,
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Resources__LeadFormSubmissionField"
          }
        },
        "id": {
          "description": "Output only. ID of this lead form submission.",
          "readOnly": true,
          "type": "string"
        },
        "customLeadFormSubmissionFields": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Resources__CustomLeadFormSubmissionField"
          },
          "description": "Output only. Submission data associated with a custom lead form.",
          "readOnly": true
        },
        "adGroup": {
          "type": "string",
          "description": "Output only. AdGroup associated with the submitted lead form.",
          "readOnly": true
        },
        "asset": {
          "description": "Output only. Asset associated with the submitted lead form.",
          "readOnly": true,
          "type": "string"
        },
        "gclid": {
          "description": "Output only. Google Click Id associated with the submissed lead form.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__LeadFormSubmissionData",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__CarrierInfo": {
      "id": "GoogleAdsGoogleadsV24Common__CarrierInfo",
      "type": "object",
      "description": "Represents a Carrier Criterion.",
      "properties": {
        "carrierConstant": {
          "type": "string",
          "description": "The Carrier constant resource name."
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__CampaignConversionGoal": {
      "id": "GoogleAdsGoogleadsV24Resources__CampaignConversionGoal",
      "type": "object",
      "description": "The biddability setting for the specified campaign only for all conversion actions with a matching category and origin.",
      "properties": {
        "biddable": {
          "type": "boolean",
          "description": "The biddability of the campaign conversion goal."
        },
        "origin": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "WEBSITE",
            "GOOGLE_HOSTED",
            "APP",
            "CALL_FROM_ADS",
            "STORE",
            "YOUTUBE_HOSTED"
          ],
          "description": "The conversion origin of this campaign conversion goal.",
          "enumDescriptions": [
            "The conversion origin has not been specified.",
            "The conversion origin is not known in this version.",
            "Conversion that occurs when a user visits a website or takes an action there after viewing an ad.",
            "Conversions reported by an offline pipeline which collects local actions from Google-hosted pages (for example, Google Maps, Google Place Page, etc) and attributes them to relevant ad events.",
            "Conversion that occurs when a user performs an action through any app platforms.",
            "Conversion that occurs when a user makes a call from ads.",
            "Conversion that occurs when a user visits or makes a purchase at a physical store.",
            "Conversion that occurs on YouTube."
          ]
        },
        "campaign": {
          "type": "string",
          "description": "Immutable. The campaign with which this campaign conversion goal is associated."
        },
        "category": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DEFAULT",
            "PAGE_VIEW",
            "PURCHASE",
            "SIGNUP",
            "DOWNLOAD",
            "ADD_TO_CART",
            "BEGIN_CHECKOUT",
            "SUBSCRIBE_PAID",
            "PHONE_CALL_LEAD",
            "IMPORTED_LEAD",
            "SUBMIT_LEAD_FORM",
            "BOOK_APPOINTMENT",
            "REQUEST_QUOTE",
            "GET_DIRECTIONS",
            "OUTBOUND_CLICK",
            "CONTACT",
            "ENGAGEMENT",
            "STORE_VISIT",
            "STORE_SALE",
            "QUALIFIED_LEAD",
            "CONVERTED_LEAD",
            "YOUTUBE_FOLLOW_ON_VIEWS"
          ],
          "description": "The conversion category of this campaign conversion goal.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Default category.",
            "User visiting a page.",
            "Purchase, sales, or \"order placed\" event.",
            "Signup user action.",
            "Software download action (as for an app).",
            "The addition of items to a shopping cart or bag on an advertiser site.",
            "When someone enters the checkout flow on an advertiser site.",
            "The start of a paid subscription for a product or service.",
            "A call to indicate interest in an advertiser's offering.",
            "A lead conversion imported from an external source into Google Ads.",
            "A submission of a form on an advertiser site indicating business interest.",
            "A booking of an appointment with an advertiser's business.",
            "A quote or price estimate request.",
            "A search for an advertiser's business location with intention to visit.",
            "A click to an advertiser's partner's site.",
            "A call, SMS, email, chat or other type of contact to an advertiser.",
            "A website engagement event such as long site time or a Google Analytics (GA) Smart Goal. Intended to be used for GA, Firebase, GA Gold goal imports.",
            "A visit to a physical store location.",
            "A sale occurring in a physical store.",
            "A lead conversion imported from an external source into Google Ads, that has been further qualified by the advertiser (marketing/sales team). In the lead-to-sale journey, advertisers get leads, then act on them by reaching out to the consumer. If the consumer is interested and may end up buying their product, the advertiser marks such leads as \"qualified leads\".",
            "A lead conversion imported from an external source into Google Ads, that has further completed a chosen stage as defined by the lead gen advertiser.",
            "User watches an ad from a channel and later watches either the same video or a video from the same channel as the ad."
          ]
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the campaign conversion goal. Campaign conversion goal resource names have the form: `customers/{customer_id}/campaignConversionGoals/{campaign_id}~{category}~{origin}`"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__MerchantCenterLinkInvitationIdentifier": {
      "description": "The identifier for Merchant Center Account.",
      "properties": {
        "merchantCenterId": {
          "type": "string",
          "description": "Output only. The Merchant Center id of the Merchant account. This field is read only",
          "readOnly": true,
          "format": "int64"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__MerchantCenterLinkInvitationIdentifier",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateAssetGroupSignalResult": {
      "id": "GoogleAdsGoogleadsV24Services__MutateAssetGroupSignalResult",
      "type": "object",
      "description": "The result for the asset group signal mutate.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        },
        "assetGroupSignal": {
          "description": "The mutated AssetGroupSignal with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV24Resources__AssetGroupSignal"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__ShoppingProductAdInfo": {
      "id": "GoogleAdsGoogleadsV24Common__ShoppingProductAdInfo",
      "type": "object",
      "description": "A standard Shopping ad.",
      "properties": {}
    },
    "GoogleAdsGoogleadsV24Services__CampaignConversionGoalOperation": {
      "description": "A single operation (update) on a campaign conversion goal.",
      "properties": {
        "update": {
          "description": "Update operation: The customer conversion goal is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CampaignConversionGoal"
        },
        "updateMask": {
          "type": "string",
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__CampaignConversionGoalOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__AssetGroupAsset": {
      "description": "AssetGroupAsset is the link between an asset and an asset group. Adding an AssetGroupAsset links an asset with an asset group.",
      "properties": {
        "fieldType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE",
            "DESCRIPTION",
            "MANDATORY_AD_TEXT",
            "MARKETING_IMAGE",
            "MEDIA_BUNDLE",
            "YOUTUBE_VIDEO",
            "BOOK_ON_GOOGLE",
            "LEAD_FORM",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "LONG_HEADLINE",
            "BUSINESS_NAME",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "VIDEO",
            "CALL_TO_ACTION_SELECTION",
            "AD_IMAGE",
            "BUSINESS_LOGO",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "TALL_PORTRAIT_MARKETING_IMAGE",
            "RELATED_YOUTUBE_VIDEOS",
            "LANDING_PAGE_PREVIEW",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION"
          ],
          "description": "The description of the placement of the asset within the asset group. For example: HEADLINE, YOUTUBE_VIDEO etc",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is linked for use as a headline.",
            "The asset is linked for use as a description.",
            "The asset is linked for use as mandatory ad text.",
            "The asset is linked for use as a marketing image.",
            "The asset is linked for use as a media bundle.",
            "The asset is linked for use as a YouTube video.",
            "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
            "The asset is linked for use as a Lead Form extension.",
            "The asset is linked for use as a Promotion extension.",
            "The asset is linked for use as a Callout extension.",
            "The asset is linked for use as a Structured Snippet extension.",
            "The asset is linked for use as a Sitelink.",
            "The asset is linked for use as a Mobile App extension.",
            "The asset is linked for use as a Hotel Callout extension.",
            "The asset is linked for use as a Call extension.",
            "The asset is linked for use as a Price extension.",
            "The asset is linked for use as a long headline.",
            "The asset is linked for use as a business name.",
            "The asset is linked for use as a square marketing image.",
            "The asset is linked for use as a portrait marketing image.",
            "The asset is linked for use as a logo.",
            "The asset is linked for use as a landscape logo.",
            "The asset is linked for use as a non YouTube logo.",
            "The asset is linked for use to select a call-to-action.",
            "The asset is linked for use to select an ad image.",
            "The asset is linked for use as a business logo.",
            "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
            "The asset is linked for use as a Demand Gen carousel card.",
            "The asset is linked for use as a Business Message.",
            "The asset is linked for use as a tall portrait marketing image.",
            "The asset is linked for use as related YouTube videos.",
            "The asset is linked for use as a landing page preview image.",
            "The asset is linked for use as a long description.",
            "The asset is linked for use as a call-to-action."
          ]
        },
        "primaryStatus": {
          "description": "Output only. Provides the PrimaryStatus of this asset link. Primary status is meant essentially to differentiate between the plain \"status\" field, which has advertiser set values of enabled, paused, or removed. The primary status takes into account other signals (for assets its mainly policy and quality approvals) to come up with a more comprehensive status to indicate its serving state.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is eligible to serve.",
            "The user-specified asset link status is paused.",
            "The user-specified asset link status is removed.",
            "The asset may serve in the future.",
            "The asset is serving in a partial capacity.",
            "The asset is not eligible to serve."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ELIGIBLE",
            "PAUSED",
            "REMOVED",
            "PENDING",
            "LIMITED",
            "NOT_ELIGIBLE"
          ],
          "type": "string"
        },
        "assetGroup": {
          "description": "Immutable. The asset group which this asset group asset is linking.",
          "type": "string"
        },
        "asset": {
          "type": "string",
          "description": "Immutable. The asset which this asset group asset is linking."
        },
        "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"
        },
        "status": {
          "description": "The status of the link between an asset and asset group.",
          "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"
          ],
          "type": "string"
        },
        "source": {
          "type": "string",
          "description": "Output only. Source of the asset group asset.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset or asset link is provided by advertiser.",
            "The asset or asset link is generated by Google."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADVERTISER",
            "AUTOMATICALLY_CREATED"
          ]
        },
        "primaryStatusReasons": {
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "The asset is paused for its linked rollup level. Contributes to a PrimaryStatus of PAUSED.",
              "The asset is removed for its linked rollup level. Contributes to a PrimaryStatus of REMOVED.",
              "The asset has been marked as disapproved. Contributes to a PrimaryStatus of NOT_ELIGIBLE",
              "The asset has not completed policy review. Contributes to a PrimaryStatus of PENDING.",
              "The asset is approved with policies applied. Contributes to a PrimaryStatus of LIMITED."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "ASSET_LINK_PAUSED",
              "ASSET_LINK_REMOVED",
              "ASSET_DISAPPROVED",
              "ASSET_UNDER_REVIEW",
              "ASSET_APPROVED_LABELED"
            ]
          },
          "description": "Output only. Provides a list of reasons for why an asset is not serving or not serving at full capacity.",
          "readOnly": true,
          "type": "array"
        },
        "policySummary": {
          "description": "Output only. The policy information for this asset group asset.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Common__PolicySummary"
        },
        "primaryStatusDetails": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AssetLinkPrimaryStatusDetails"
          },
          "description": "Output only. Provides the details of the primary status and its associated reasons.",
          "readOnly": true
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__AssetGroupAsset",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__ShoppingPerformanceView": {
      "description": "Shopping performance view. Provides Shopping campaign and Performance Max campaign statistics aggregated at several product dimension levels. Product dimension values from Merchant Center such as brand, category, custom attributes, product condition, and product type will reflect the state of each dimension as of the date and time when the corresponding event was recorded. The number of impressions and clicks that `shopping_performance_view` returns stats for may be different from campaign reports. `shopping_performance_view` shows impressions and clicks on products appearing in ads, while campaign reports show impressions and clicks on the ads themselves. Depending on the format, an ad can show from zero to several products, so the numbers may not match. In Google Ads UI, you can query impressions and clicks of products appearing in ads by selecting a column from \"Product attributes\" in the report editor. For example, selecting the \"Brand\" column is equivalent to selecting `segments.product_brand`.",
      "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": "GoogleAdsGoogleadsV24Resources__ShoppingPerformanceView",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__AdGroupLabelOperation": {
      "id": "GoogleAdsGoogleadsV24Services__AdGroupLabelOperation",
      "type": "object",
      "description": "A single operation (create, remove) on an ad group label.",
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new ad group label.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AdGroupLabel"
        },
        "remove": {
          "description": "Remove operation: A resource name for the ad group label being removed, in this format: `customers/{customer_id}/adGroupLabels/{ad_group_id}~{label_id}`",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__AssetGroupAssetOperation": {
      "description": "A single operation (create, remove) on an asset group asset.",
      "properties": {
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask",
          "type": "string"
        },
        "update": {
          "description": "Update operation: The asset group asset is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AssetGroupAsset"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed asset group asset is expected, in this format: `customers/{customer_id}/assetGroupAssets/{asset_group_id}~{asset_id}~{field_type}`"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new asset group asset.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AssetGroupAsset"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__AssetGroupAssetOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__FlexibleRuleOperandInfo": {
      "id": "GoogleAdsGoogleadsV24Common__FlexibleRuleOperandInfo",
      "type": "object",
      "description": "Flexible rule that wraps the common rule and a lookback window.",
      "properties": {
        "lookbackWindowDays": {
          "type": "string",
          "description": "Lookback window for this rule in days. From now until X days ago.",
          "format": "int64"
        },
        "rule": {
          "description": "List of rule item groups that defines this rule. Rule item groups are grouped together.",
          "$ref": "GoogleAdsGoogleadsV24Common__UserListRuleInfo"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__GenerateAudienceDefinitionRequest": {
      "id": "GoogleAdsGoogleadsV24Services__GenerateAudienceDefinitionRequest",
      "type": "object",
      "description": "Request message for AudienceInsightsService.GenerateAudienceDefinition.",
      "properties": {
        "audienceDescription": {
          "description": "Required. Provide a text description of an audience to get AI-generated structured suggestions. This can take around 5 or more seconds to complete Supported marketing objectives are: AWARENESS, CONSIDERATION and RESEARCH. Supported dimensions are: AGE_RANGE, GENDER, PARENTAL_STATUS, AFFINITY_USER_INTEREST, IN_MARKET_USER_INTEREST, LIFE_EVENT_USER_INTEREST, CATEGORY and KNOWLEDGE_GRAPH.",
          "$ref": "GoogleAdsGoogleadsV24Services__InsightsAudienceDescription"
        },
        "customerInsightsGroup": {
          "description": "Optional. The name of the customer being planned for. This is a user-defined value.",
          "type": "string"
        },
        "insightsApplicationInfo": {
          "description": "Optional. Additional information on the application issuing the request.",
          "$ref": "GoogleAdsGoogleadsV24Common__AdditionalApplicationInfo"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__CreateDataLinkRequest": {
      "description": "Request message for DataLinkService.CreateDataLink.",
      "properties": {
        "dataLink": {
          "description": "Required. The data link to be created.",
          "$ref": "GoogleAdsGoogleadsV24Resources__DataLink"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__CreateDataLinkRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__ApplyRecommendationResponse": {
      "id": "GoogleAdsGoogleadsV24Services__ApplyRecommendationResponse",
      "type": "object",
      "description": "Response message for RecommendationService.ApplyRecommendation.",
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__ApplyRecommendationResult"
          },
          "description": "Results of operations to apply recommendations."
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors) we return the RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__EffectiveFrequencyLimit": {
      "description": "Effective frequency limit.",
      "properties": {
        "effectiveFrequencyBreakdownLimit": {
          "description": "The highest effective frequency value to include in Forecast.effective_frequency_breakdowns. This field supports frequencies 1-10, inclusive.",
          "format": "int32",
          "type": "integer"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__EffectiveFrequencyLimit",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_LeadFormAssetParameters": {
      "description": "Parameters to use when applying a lead form asset recommendation.",
      "properties": {
        "adAssetApplyParameters": {
          "description": "Required. Lead form assets to be added. This is a required field.",
          "$ref": "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_AdAssetApplyParameters"
        },
        "setSubmitLeadFormAssetCampaignGoal": {
          "type": "boolean",
          "description": "If true, the \"Submit Lead Form\" goal will be set on the target campaign. As a result, ads will be shown as lead form creative ads. If false, the \"Submit Lead Form\" goal will not be set on the campaign and ads will contain lead form assets."
        }
      },
      "id": "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_LeadFormAssetParameters",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__UploadClickConversionsRequest": {
      "description": "Request message for ConversionUploadService.UploadClickConversions.",
      "properties": {
        "jobId": {
          "description": "Optional. Optional input to set job ID. Must be a non-negative number that is less than 2^31 if provided. If this field is not provided, the API will generate a job ID in the range [2^31, (2^63)-1]. The API will return the value for this request in the `job_id` field of the `UploadClickConversionsResponse`.",
          "format": "int32",
          "type": "integer"
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If `true`, the request is validated but not executed. Only errors are returned, not results."
        },
        "conversions": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__ClickConversion"
          },
          "description": "Required. The conversions that are being uploaded.",
          "type": "array"
        },
        "partialFailure": {
          "description": "Required. If `true`, successful operations will be carried out and invalid operations will return errors. If `false`, all operations will be carried out in one transaction if and only if they are all valid. This should always be set to `true`. See [Best practices for partial failures](/google-ads/api/docs/best-practices/partial-failures).",
          "type": "boolean"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__UploadClickConversionsRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__GenerateReachForecastRequest": {
      "description": "Request message for ReachPlanService.GenerateReachForecast.",
      "properties": {
        "cookieFrequencyCapSetting": {
          "description": "Chosen cookie frequency cap to be applied to each planned product. This is equivalent to the frequency cap exposed in Google Ads when creating a campaign, it represents the maximum number of times an ad can be shown to the same user during a specified time interval. If not specified, a default of 0 (no cap) is applied. This field replaces the deprecated `cookie_frequency_cap` field.",
          "$ref": "GoogleAdsGoogleadsV24Services__FrequencyCap"
        },
        "plannedProducts": {
          "type": "array",
          "description": "Required. The products to be forecast. The max number of allowed planned products is 15.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__PlannedProduct"
          }
        },
        "campaignDuration": {
          "description": "Required. Campaign duration.",
          "$ref": "GoogleAdsGoogleadsV24Services__CampaignDuration"
        },
        "targeting": {
          "description": "The targeting to be applied to all products selected in the product mix. This is planned targeting: execution details might vary based on the advertising product, consult an implementation specialist. See specific metrics for details on how targeting affects them.",
          "$ref": "GoogleAdsGoogleadsV24Services__Targeting"
        },
        "reachApplicationInfo": {
          "description": "Optional. Additional information on the application issuing the request.",
          "$ref": "GoogleAdsGoogleadsV24Common__AdditionalApplicationInfo"
        },
        "cookieFrequencyCap": {
          "description": "Chosen cookie frequency cap to be applied to each planned product. This is equivalent to the frequency cap exposed in Google Ads when creating a campaign, it represents the maximum number of times an ad can be shown to the same user. If not specified, no cap is applied. This field is deprecated and will eventually be removed. Use cookie_frequency_cap_setting instead.",
          "format": "int32",
          "type": "integer"
        },
        "currencyCode": {
          "description": "The currency code. Three-character ISO 4217 currency code.",
          "type": "string"
        },
        "forecastMetricOptions": {
          "description": "Controls the forecast metrics returned in the response.",
          "$ref": "GoogleAdsGoogleadsV24Services__ForecastMetricOptions"
        },
        "minEffectiveFrequency": {
          "type": "integer",
          "description": "Chosen minimum effective frequency (the number of times a person was exposed to the ad) for the reported reach metrics [1-10]. This won't affect the targeting, but just the reporting. If not specified, a default of 1 is applied. This field cannot be combined with the effective_frequency_limit field.",
          "format": "int32"
        },
        "effectiveFrequencyLimit": {
          "description": "The highest minimum effective frequency (the number of times a person was exposed to the ad) value [1-10] to include in Forecast.effective_frequency_breakdowns. If not specified, Forecast.effective_frequency_breakdowns will not be provided. The effective frequency value provided here will also be used as the minimum effective frequency for the reported reach metrics. This field cannot be combined with the min_effective_frequency field.",
          "$ref": "GoogleAdsGoogleadsV24Services__EffectiveFrequencyLimit"
        },
        "customerReachGroup": {
          "type": "string",
          "description": "The name of the customer being planned for. This is a user-defined value."
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__GenerateReachForecastRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__RealTimeBiddingSetting": {
      "description": "Settings for Real-Time Bidding, a feature only available for campaigns targeting the Ad Exchange network.",
      "properties": {
        "optIn": {
          "description": "Whether the campaign is opted in to real-time bidding.",
          "type": "boolean"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__RealTimeBiddingSetting",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__KeywordPlanCampaignKeywordOperation": {
      "description": "A single operation (create, update, remove) on a Keyword Plan campaign keyword.",
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new Keyword Plan campaign keyword.",
          "$ref": "GoogleAdsGoogleadsV24Resources__KeywordPlanCampaignKeyword"
        },
        "update": {
          "description": "Update operation: The Keyword Plan campaign keyword expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV24Resources__KeywordPlanCampaignKeyword"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed Keyword Plan campaign keywords expected in this format: `customers/{customer_id}/keywordPlanCampaignKeywords/{kp_campaign_keyword_id}`"
        },
        "updateMask": {
          "type": "string",
          "description": "The FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__KeywordPlanCampaignKeywordOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__Value": {
      "id": "GoogleAdsGoogleadsV24Common__Value",
      "type": "object",
      "description": "A generic data container.",
      "properties": {
        "doubleValue": {
          "type": "number",
          "description": "A double.",
          "format": "double"
        },
        "stringValue": {
          "description": "A string.",
          "type": "string"
        },
        "int64Value": {
          "description": "An int64.",
          "format": "int64",
          "type": "string"
        },
        "floatValue": {
          "type": "number",
          "description": "A float.",
          "format": "float"
        },
        "booleanValue": {
          "type": "boolean",
          "description": "A boolean."
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__AudienceInsightsEntity": {
      "description": "A Knowledge Graph entity, represented by its machine id.",
      "properties": {
        "knowledgeGraphMachineId": {
          "type": "string",
          "description": "Required. The machine ID (mid) of the Knowledge Graph entity."
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__AudienceInsightsEntity",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__ManualCpv": {
      "id": "GoogleAdsGoogleadsV24Common__ManualCpv",
      "type": "object",
      "description": "View based bidding where user pays per video view.",
      "properties": {}
    },
    "GoogleAdsGoogleadsV24Services__CustomConversionGoalOperation": {
      "description": "A single operation (create, remove) on a custom conversion goal.",
      "properties": {
        "update": {
          "description": "Update operation: The custom conversion goal is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CustomConversionGoal"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed custom conversion goal is expected, in this format: 'customers/{customer_id}/customConversionGoals/{goal_id}'"
        },
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask",
          "type": "string"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new custom conversion goal",
          "$ref": "GoogleAdsGoogleadsV24Resources__CustomConversionGoal"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__CustomConversionGoalOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateBatchJobRequest": {
      "id": "GoogleAdsGoogleadsV24Services__MutateBatchJobRequest",
      "type": "object",
      "description": "Request message for BatchJobService.MutateBatchJob.",
      "properties": {
        "operation": {
          "description": "Required. The operation to perform on an individual batch job.",
          "$ref": "GoogleAdsGoogleadsV24Services__BatchJobOperation"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__ListBenchmarksLocationsRequest": {
      "description": "Request message for BenchmarksService.ListBenchmarksLocations.",
      "properties": {
        "applicationInfo": {
          "description": "Additional information on the application issuing the request.",
          "$ref": "GoogleAdsGoogleadsV24Common__AdditionalApplicationInfo"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__ListBenchmarksLocationsRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_BatchJob_BatchJobMetadata": {
      "id": "GoogleAdsGoogleadsV24Resources_BatchJob_BatchJobMetadata",
      "type": "object",
      "description": "Additional information about the batch job. This message is also used as metadata returned in batch job Long Running Operations.",
      "properties": {
        "creationDateTime": {
          "description": "Output only. The time when this batch job was created. Formatted as yyyy-mm-dd hh:mm:ss. Example: \"2018-03-05 09:15:00\"",
          "readOnly": true,
          "type": "string"
        },
        "startDateTime": {
          "type": "string",
          "description": "Output only. The time when this batch job started running. Formatted as yyyy-mm-dd hh:mm:ss. Example: \"2018-03-05 09:15:30\"",
          "readOnly": true
        },
        "executedOperationCount": {
          "description": "Output only. The number of mutate operations executed by the batch job. Present only if the job has started running.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "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,
          "format": "double",
          "type": "number"
        },
        "operationCount": {
          "type": "string",
          "description": "Output only. The number of mutate operations in the batch job.",
          "readOnly": true,
          "format": "int64"
        },
        "executionLimitSeconds": {
          "type": "integer",
          "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.",
          "format": "int32"
        },
        "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"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__BusinessRegistrationCheckVerificationArtifact": {
      "description": "A proto holding information specific to a local services business registration check.",
      "properties": {
        "rejectionReason": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BUSINESS_NAME_MISMATCH",
            "BUSINESS_DETAILS_MISMATCH",
            "ID_NOT_FOUND",
            "POOR_DOCUMENT_IMAGE_QUALITY",
            "DOCUMENT_EXPIRED",
            "DOCUMENT_INVALID",
            "DOCUMENT_TYPE_MISMATCH",
            "DOCUMENT_UNVERIFIABLE",
            "OTHER"
          ],
          "description": "Output only. Registration document rejection reason.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Business name doesn't match business name for the Local Services Ad.",
            "Business details mismatch.",
            "Business registration ID not found.",
            "Uploaded document not clear, blurry, etc.",
            "Uploaded document has expired.",
            "Document revoked or annuled.",
            "Document type mismatch.",
            "Uploaded document could not be verified as legitimate.",
            "The business registration process could not be completed due to an issue. Contact https://support.google.com/localservices to learn more."
          ],
          "type": "string"
        },
        "registrationNumber": {
          "description": "Output only. Message storing government issued number for the business.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources__BusinessRegistrationNumber"
        },
        "registrationType": {
          "description": "Output only. The type of business registration check (number, document).",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Registration number check type.",
            "Registration document check type."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NUMBER",
            "DOCUMENT"
          ],
          "type": "string"
        },
        "checkId": {
          "type": "string",
          "description": "Output only. The id of the check, such as vat_tax_id, representing \"VAT Tax ID\" requirement.",
          "readOnly": true
        },
        "registrationDocument": {
          "description": "Output only. Message storing document info for the business.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources__BusinessRegistrationDocument"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__BusinessRegistrationCheckVerificationArtifact",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_Recommendation_RaiseTargetCpaBidTooLowRecommendation": {
      "id": "GoogleAdsGoogleadsV24Resources_Recommendation_RaiseTargetCpaBidTooLowRecommendation",
      "type": "object",
      "description": "The raise target CPA bid too low recommendation.",
      "properties": {
        "averageTargetCpaMicros": {
          "description": "Output only. The current average target CPA of the campaign, in micros of customer local currency.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "recommendedTargetMultiplier": {
          "type": "number",
          "description": "Output only. A number greater than 1.0 indicating the factor by which we recommend the target CPA should be increased.",
          "readOnly": true,
          "format": "double"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateCustomerConversionGoalsResponse": {
      "id": "GoogleAdsGoogleadsV24Services__MutateCustomerConversionGoalsResponse",
      "type": "object",
      "description": "Response message for a customer conversion goal mutate.",
      "properties": {
        "results": {
          "type": "array",
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomerConversionGoalResult"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__VerticalAdsItemGroupRuleInfo": {
      "id": "GoogleAdsGoogleadsV24Common__VerticalAdsItemGroupRuleInfo",
      "type": "object",
      "description": "A criterion to represent a single item group rule in Vertical Ads.",
      "properties": {
        "itemCode": {
          "description": "The id specifying a particular Vertical Ad listing.",
          "type": "string"
        },
        "regionCriterionId": {
          "description": "The resource name of the Geo Target Constant for the region.",
          "type": "string"
        },
        "cityCriterionId": {
          "description": "The resource name of the Geo Target Constant for the city.",
          "type": "string"
        },
        "hotelClass": {
          "type": "string",
          "description": "Integer value specifying the class rating for a hotel. Ranges from 1 to 5 stars.",
          "format": "int64"
        },
        "countryCriterionId": {
          "type": "string",
          "description": "The resource name of the Geo Target Constant for the country."
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__StoreSalesMetadata": {
      "id": "GoogleAdsGoogleadsV24Common__StoreSalesMetadata",
      "type": "object",
      "description": "Metadata for Store Sales Direct.",
      "properties": {
        "loyaltyFraction": {
          "type": "number",
          "description": "This is the fraction of all transactions that are identifiable (for example, associated with any form of customer information). Required. The fraction needs to be between 0 and 1 (excluding 0).",
          "format": "double"
        },
        "transactionUploadFraction": {
          "type": "number",
          "description": "This is the ratio of sales being uploaded compared to the overall sales that can be associated with a customer. Required. The fraction needs to be between 0 and 1 (excluding 0). For example, if you upload half the sales that you are able to associate with a customer, this would be 0.5.",
          "format": "double"
        },
        "customKey": {
          "type": "string",
          "description": "Name of the store sales custom variable key. A predefined key that can be applied to the transaction and then later used for custom segmentation in reporting. Accessible only to customers on the allow-list."
        },
        "thirdPartyMetadata": {
          "description": "Metadata for a third party Store Sales upload.",
          "$ref": "GoogleAdsGoogleadsV24Common__StoreSalesThirdPartyMetadata"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__OfflineConversionAlert": {
      "description": "Alert for offline conversion client summary.",
      "properties": {
        "error": {
          "description": "Output only. Error for offline conversion client alert.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources__OfflineConversionError"
        },
        "errorPercentage": {
          "type": "number",
          "description": "Output only. Percentage of the error, the range of this field should be [0, 1.0].",
          "readOnly": true,
          "format": "double"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__OfflineConversionAlert",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__DemandGenCarouselAdInfo": {
      "description": "A Demand Gen carousel ad.",
      "properties": {
        "carouselCards": {
          "description": "Required. Carousel cards that will display with the ad. Min 2 max 10.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdDemandGenCarouselCardAsset"
          },
          "type": "array"
        },
        "description": {
          "description": "Required. The descriptive text of the ad.",
          "$ref": "GoogleAdsGoogleadsV24Common__AdTextAsset"
        },
        "callToActionText": {
          "description": "Call to action text.",
          "type": "string"
        },
        "businessName": {
          "type": "string",
          "description": "Required. The Advertiser/brand name."
        },
        "logoImage": {
          "description": "Required. Logo image to be used in the ad. The minimum size is 128x128 and the aspect ratio must be 1:1 (+-1%).",
          "$ref": "GoogleAdsGoogleadsV24Common__AdImageAsset"
        },
        "headline": {
          "description": "Required. Headline of the ad.",
          "$ref": "GoogleAdsGoogleadsV24Common__AdTextAsset"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__DemandGenCarouselAdInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__AudienceInsightsAttributeMetadataGroup": {
      "description": "A group of audience attributes with metadata, returned in response to a search.",
      "properties": {
        "attributes": {
          "type": "array",
          "description": "Attributes with metadata returned in response to a search.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AudienceInsightsAttributeMetadata"
          }
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__AudienceInsightsAttributeMetadataGroup",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__PromotionBarcodeInfo": {
      "description": "Barcode info to generate promotion barcode.",
      "properties": {
        "barcodeContent": {
          "description": "Promotion message to be encoded in the barcode.",
          "type": "string"
        },
        "type": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AZTEC",
            "CODABAR",
            "CODE39",
            "CODE128",
            "DATA_MATRIX",
            "EAN8",
            "EAN13",
            "ITF",
            "PDF417",
            "UPC_A"
          ],
          "description": "Barcode type used to generate barcode with the correct format.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Aztec 2D barcode format. Max 350 characters and no links",
            "CODABAR 1D format. Max 12 characters and no links. Supported characters include 0123456789-$:/.+ and optional start and end guards from ABCD.",
            "Code 39 1D format. Max 8 characters and no links. Supported characters include 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. *$/+%.",
            "Code 128 1D format. Max 18 ASCII characters only and no links",
            "Data Matrix 2D barcode format. Max 525 ISO-8859-1 characters only and no links",
            "EAN-8 1D format. The barcode value should be 7 digits (the check digit will be computed automatically) or 8 digits (if you are providing your own check digit).",
            "EAN-13 1D format. The barcode value should be 12 digits (the check digit will be computed automatically) or 13 digits (if you are providing your own check digit).",
            "ITF (Interleaved Two of Five) 1D format. Must be 14 digits long",
            "PDF417 format. Max 140 characters and no links",
            "UPC-A 1D format. The barcode value should be 11 digits (the check digit will be computed automatically) or 12 digits (if you are providing your own check digit)."
          ],
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__PromotionBarcodeInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__TopicConstant": {
      "id": "GoogleAdsGoogleadsV24Resources__TopicConstant",
      "type": "object",
      "description": "Use topics to target or exclude placements in the Google Display Network based on the category into which the placement falls (for example, \"Pets & Animals/Pets/Dogs\").",
      "properties": {
        "resourceName": {
          "description": "Output only. The resource name of the topic constant. topic constant resource names have the form: `topicConstants/{topic_id}`",
          "readOnly": true,
          "type": "string"
        },
        "id": {
          "type": "string",
          "description": "Output only. The ID of the topic.",
          "readOnly": true,
          "format": "int64"
        },
        "path": {
          "description": "Output only. The category to target or exclude. Each subsequent element in the array describes a more specific sub-category. For example, {\"Pets & Animals\", \"Pets\", \"Dogs\"} represents the \"Pets & Animals/Pets/Dogs\" category. List of available topic categories at https://developers.google.com/google-ads/api/reference/data/verticals",
          "readOnly": true,
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "topicConstantParent": {
          "type": "string",
          "description": "Output only. Resource name of parent of the topic constant.",
          "readOnly": true
        }
      }
    },
    "GoogleAdsGoogleadsV24Actions_BookCampaignsOperation_Campaign": {
      "description": "A single campaign to book.",
      "properties": {
        "requestType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BOOK",
            "HOLD"
          ],
          "description": "Determines if the current request should book the inventory or hold it.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Book the campaign. The campaign must have ENABLED status. If the campaign has a hold, it will remove the hold and confirm the contract.",
            "Hold the inventory for the campaign. The campaign must have PAUSED status to request a hold."
          ]
        },
        "campaign": {
          "description": "Campaign resource to book. Format: customers/{customer_id}/campaigns/{campaign_id}",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Actions_BookCampaignsOperation_Campaign",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateConversionGoalCampaignConfigsResponse": {
      "id": "GoogleAdsGoogleadsV24Services__MutateConversionGoalCampaignConfigsResponse",
      "type": "object",
      "description": "Response message for a conversion goal campaign config mutate.",
      "properties": {
        "results": {
          "type": "array",
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateConversionGoalCampaignConfigResult"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__StartIdentityVerificationRequest": {
      "description": "Request message for StartIdentityVerification.",
      "properties": {
        "verificationProgram": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADVERTISER_IDENTITY_VERIFICATION"
          ],
          "description": "Required. The verification program type for which we want to start the verification.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Advertiser submits documents to verify their identity."
          ]
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__StartIdentityVerificationRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_AdAssetApplyParameters": {
      "description": "Common parameters used when applying ad asset recommendations.",
      "properties": {
        "existingAssets": {
          "items": {
            "type": "string"
          },
          "description": "The resource names of existing assets to attach to a scope. This may be combined with new_assets in the same call.",
          "type": "array"
        },
        "scope": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CUSTOMER",
            "CAMPAIGN"
          ],
          "description": "Required. The scope at which to apply the assets. Assets at the campaign scope level will be applied to the campaign associated with the recommendation. Assets at the customer scope will apply to the entire account. Assets at the campaign scope will override any attached at the customer scope.",
          "enumDescriptions": [
            "The apply scope has not been specified.",
            "Unknown.",
            "Apply at the customer scope.",
            "Apply at the campaign scope."
          ]
        },
        "newAssets": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Resources__Asset"
          },
          "description": "The assets to create and attach to a scope. This may be combined with existing_assets in the same call."
        }
      },
      "id": "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_AdAssetApplyParameters",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__AppEngagementAdInfo": {
      "description": "App engagement ads allow you to write text encouraging a specific action in the app, like checking in, making a purchase, or booking a flight. They allow you to send users to a specific part of your app where they can find what they're looking for easier and faster.",
      "properties": {
        "headlines": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdTextAsset"
          },
          "description": "List of text assets for headlines. When the ad serves the headlines will be selected from this list."
        },
        "descriptions": {
          "description": "List of text assets for descriptions. When the ad serves the descriptions will be selected from this list.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdTextAsset"
          },
          "type": "array"
        },
        "images": {
          "description": "List of image assets that may be displayed with the ad.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdImageAsset"
          },
          "type": "array"
        },
        "videos": {
          "type": "array",
          "description": "List of video assets that may be displayed with the ad.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdVideoAsset"
          }
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__AppEngagementAdInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateRecommendationSubscriptionResponse": {
      "description": "Response message for RecommendationSubscriptionService.MutateRecommendationSubscription",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors) we return the RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateRecommendationSubscriptionResult"
          },
          "description": "Results, one per operation."
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateRecommendationSubscriptionResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_ConversionValueMapping": {
      "description": "Represents mapping from one conversion value to one or more conversion events.",
      "properties": {
        "minTimePostInstallHours": {
          "type": "string",
          "description": "Output only. The minimum of the time range in which a user was last active during the measurement window.",
          "readOnly": true,
          "format": "int64"
        },
        "mappedEvents": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_Event"
          },
          "description": "Output only. The conversion value may be mapped to multiple events with various attributes.",
          "readOnly": true
        },
        "maxTimePostInstallHours": {
          "type": "string",
          "description": "Output only. The maximum of the time range in which a user was last active during the measurement window.",
          "readOnly": true,
          "format": "int64"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_ConversionValueMapping",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__AdGroupSimulation": {
      "description": "An ad group simulation. Supported combinations of advertising channel type, simulation type and simulation modification method is detailed below respectively. 1. SEARCH - CPC_BID - DEFAULT 2. SEARCH - CPC_BID - UNIFORM 3. SEARCH - TARGET_CPA - UNIFORM 4. SEARCH - TARGET_ROAS - UNIFORM 5. DISPLAY - CPC_BID - DEFAULT 6. DISPLAY - CPC_BID - UNIFORM 7. DISPLAY - TARGET_CPA - UNIFORM",
      "properties": {
        "adGroupId": {
          "description": "Output only. Ad group id of the simulation.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "startDate": {
          "type": "string",
          "description": "Output only. First day on which the simulation is based, in YYYY-MM-DD format.",
          "readOnly": true
        },
        "type": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CPC_BID",
            "CPV_BID",
            "TARGET_CPA",
            "BID_MODIFIER",
            "TARGET_ROAS",
            "PERCENT_CPC_BID",
            "TARGET_IMPRESSION_SHARE",
            "BUDGET"
          ],
          "description": "Output only. The field that the simulation modifies.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The simulation is for a CPC bid.",
            "The simulation is for a CPV bid.",
            "The simulation is for a CPA target.",
            "The simulation is for a bid modifier.",
            "The simulation is for a ROAS target.",
            "The simulation is for a percent CPC bid.",
            "The simulation is for an impression share target.",
            "The simulation is for a budget."
          ],
          "type": "string"
        },
        "modificationMethod": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "UNIFORM",
            "DEFAULT",
            "SCALING"
          ],
          "description": "Output only. How the simulation modifies the field.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The values in a simulation were applied to all children of a given resource uniformly. Overrides on child resources were not respected.",
            "The values in a simulation were applied to the given resource. Overrides on child resources were respected, and traffic estimates do not include these resources.",
            "The values in a simulation were all scaled by the same factor. For example, in a simulated TargetCpa campaign, the campaign target and all ad group targets were scaled by a factor of X."
          ]
        },
        "cpcBidPointList": {
          "description": "Output only. Simulation points if the simulation type is CPC_BID.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Common__CpcBidSimulationPointList"
        },
        "cpvBidPointList": {
          "description": "Output only. Simulation points if the simulation type is CPV_BID.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Common__CpvBidSimulationPointList"
        },
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the ad group simulation. Ad group simulation resource names have the form: `customers/{customer_id}/adGroupSimulations/{ad_group_id}~{type}~{modification_method}~{start_date}~{end_date}`",
          "readOnly": true
        },
        "endDate": {
          "description": "Output only. Last day on which the simulation is based, in YYYY-MM-DD format",
          "readOnly": true,
          "type": "string"
        },
        "targetCpaPointList": {
          "description": "Output only. Simulation points if the simulation type is TARGET_CPA.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Common__TargetCpaSimulationPointList"
        },
        "targetRoasPointList": {
          "description": "Output only. Simulation points if the simulation type is TARGET_ROAS.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Common__TargetRoasSimulationPointList"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__AdGroupSimulation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__ProductCategoryConstant": {
      "description": "A Product Category.",
      "properties": {
        "categoryId": {
          "type": "string",
          "description": "Output only. The ID of the product category. This ID is equivalent to the google_product_category ID as described in this article: https://support.google.com/merchants/answer/6324436.",
          "readOnly": true,
          "format": "int64"
        },
        "localizations": {
          "type": "array",
          "description": "Output only. List of all available localizations of the product category.",
          "readOnly": true,
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Resources_ProductCategoryConstant_ProductCategoryLocalization"
          }
        },
        "productCategoryConstantParent": {
          "description": "Output only. Resource name of the parent product category.",
          "readOnly": true,
          "type": "string"
        },
        "level": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "LEVEL1",
            "LEVEL2",
            "LEVEL3",
            "LEVEL4",
            "LEVEL5"
          ],
          "description": "Output only. Level of the product category.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Level 1.",
            "Level 2.",
            "Level 3.",
            "Level 4.",
            "Level 5."
          ],
          "type": "string"
        },
        "state": {
          "type": "string",
          "description": "Output only. State of the product category.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The category is enabled.",
            "The category is obsolete. Used only for reporting purposes."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "OBSOLETE"
          ]
        },
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the product category. Product category resource names have the form: `productCategoryConstants/{level}~{category_id}`",
          "readOnly": true
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__ProductCategoryConstant",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__HouseholdIncomeDimension": {
      "id": "GoogleAdsGoogleadsV24Common__HouseholdIncomeDimension",
      "type": "object",
      "description": "Dimension specifying users by their household income.",
      "properties": {
        "incomeRanges": {
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "0%-50%.",
              "50% to 60%.",
              "60% to 70%.",
              "70% to 80%.",
              "80% to 90%.",
              "Greater than 90%.",
              "Undetermined income range."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "INCOME_RANGE_0_50",
              "INCOME_RANGE_50_60",
              "INCOME_RANGE_60_70",
              "INCOME_RANGE_70_80",
              "INCOME_RANGE_80_90",
              "INCOME_RANGE_90_UP",
              "INCOME_RANGE_UNDETERMINED"
            ]
          },
          "description": "Included household income demographic segments.",
          "type": "array"
        },
        "includeUndetermined": {
          "type": "boolean",
          "description": "Include users whose household income is not determined."
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__VideoCustomer": {
      "description": "Video specific information about a Customer.",
      "properties": {
        "thirdPartyIntegrationPartners": {
          "description": "Third Party integration partners.",
          "$ref": "GoogleAdsGoogleadsV24Common__CustomerThirdPartyIntegrationPartners"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__VideoCustomer",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__SitelinkFeedItem": {
      "description": "Represents a sitelink.",
      "properties": {
        "urlCustomParameters": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__CustomParameter"
          },
          "description": "A list of mappings to be used for substituting URL custom parameter tags in the tracking_url_template, final_urls, and/or final_mobile_urls.",
          "type": "array"
        },
        "finalMobileUrls": {
          "items": {
            "type": "string"
          },
          "description": "A list of possible final mobile URLs after all cross domain redirects.",
          "type": "array"
        },
        "trackingUrlTemplate": {
          "description": "URL template for constructing a tracking URL.",
          "type": "string"
        },
        "finalUrls": {
          "type": "array",
          "description": "A list of possible final URLs after all cross domain redirects.",
          "items": {
            "type": "string"
          }
        },
        "linkText": {
          "type": "string",
          "description": "URL display text for the sitelink. The length of this string should be between 1 and 25, inclusive."
        },
        "line1": {
          "description": "First line of the description for the sitelink. If this value is set, line2 must also be set. The length of this string should be between 0 and 35, inclusive.",
          "type": "string"
        },
        "line2": {
          "type": "string",
          "description": "Second line of the description for the sitelink. If this value is set, line1 must also be set. The length of this string should be between 0 and 35, inclusive."
        },
        "finalUrlSuffix": {
          "type": "string",
          "description": "Final URL suffix to be appended to landing page URLs served with parallel tracking."
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__SitelinkFeedItem",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__BudgetSimulationPoint": {
      "description": "Projected metrics for a specific budget amount.",
      "properties": {
        "requiredCpcBidCeilingMicros": {
          "type": "string",
          "description": "Projected required daily cpc bid ceiling that the advertiser must set to realize this simulation, in micros of the advertiser currency. Only campaigns with the Target Spend bidding strategy support this field.",
          "format": "int64"
        },
        "topSlotImpressions": {
          "description": "Projected number of top slot impressions. Only search advertising channel type supports this field.",
          "format": "int64",
          "type": "string"
        },
        "biddableConversionsValue": {
          "type": "number",
          "description": "Projected total value of biddable conversions.",
          "format": "double"
        },
        "clicks": {
          "description": "Projected number of clicks.",
          "format": "int64",
          "type": "string"
        },
        "budgetAmountMicros": {
          "type": "string",
          "description": "The simulated budget upon which projected metrics are based.",
          "format": "int64"
        },
        "costMicros": {
          "type": "string",
          "description": "Projected cost in micros.",
          "format": "int64"
        },
        "interactions": {
          "type": "string",
          "description": "Projected number of interactions. Only discovery advertising channel type supports this field.",
          "format": "int64"
        },
        "biddableConversions": {
          "description": "Projected number of biddable conversions.",
          "format": "double",
          "type": "number"
        },
        "impressions": {
          "description": "Projected number of impressions.",
          "format": "int64",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__BudgetSimulationPoint",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__MediaBundle": {
      "id": "GoogleAdsGoogleadsV24Resources__MediaBundle",
      "type": "object",
      "description": "Represents a ZIP archive media the content of which contains HTML5 assets.",
      "properties": {
        "url": {
          "description": "Output only. The url to access the uploaded zipped data. For example, https://tpc.googlesyndication.com/simgad/123 This field is read-only.",
          "readOnly": true,
          "type": "string"
        },
        "data": {
          "description": "Immutable. Raw zipped data.",
          "format": "byte",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__SuggestSmartCampaignAdRequest": {
      "id": "GoogleAdsGoogleadsV24Services__SuggestSmartCampaignAdRequest",
      "type": "object",
      "description": "Request message for SmartCampaignSuggestService.SuggestSmartCampaignAd.",
      "properties": {
        "suggestionInfo": {
          "description": "Required. Inputs used to suggest a Smart campaign ad. Required fields: final_url, language_code, keyword_themes. Optional but recommended fields to improve the quality of the suggestion: business_setting and geo_target.",
          "$ref": "GoogleAdsGoogleadsV24Services__SmartCampaignSuggestionInfo"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__GenerateInsightsFinderReportResponse": {
      "id": "GoogleAdsGoogleadsV24Services__GenerateInsightsFinderReportResponse",
      "type": "object",
      "description": "The response message for AudienceInsightsService.GenerateInsightsFinderReport, containing the shareable URL for the report.",
      "properties": {
        "savedReportUrl": {
          "description": "An HTTPS URL providing a deep link into the Insights Finder UI with the report inputs filled in according to the request.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateKeywordPlansResult": {
      "description": "The result for the keyword plan mutate.",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateKeywordPlansResult",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_ConversionAction_GoogleAnalytics4Settings": {
      "id": "GoogleAdsGoogleadsV24Resources_ConversionAction_GoogleAnalytics4Settings",
      "type": "object",
      "description": "Settings related to a Google Analytics 4 conversion action.",
      "properties": {
        "eventName": {
          "type": "string",
          "description": "Output only. The name of the GA 4 event.",
          "readOnly": true
        },
        "propertyName": {
          "description": "Output only. The name of the GA 4 property.",
          "readOnly": true,
          "type": "string"
        },
        "propertyId": {
          "description": "Output only. The ID of the GA 4 property.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateAdGroupBidModifiersRequest": {
      "id": "GoogleAdsGoogleadsV24Services__MutateAdGroupBidModifiersRequest",
      "type": "object",
      "description": "Request message for AdGroupBidModifierService.MutateAdGroupBidModifiers.",
      "properties": {
        "operations": {
          "type": "array",
          "description": "Required. The list of operations to perform on individual ad group bid modifiers.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__AdGroupBidModifierOperation"
          }
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "responseContentType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ]
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__ProductFilter": {
      "description": "The type and list of products to aggregate benchmarks metrics over.",
      "properties": {
        "productList": {
          "description": "The list of products.",
          "$ref": "GoogleAdsGoogleadsV24Services_ProductFilter_ProductList"
        },
        "marketingObjectiveList": {
          "description": "The list of marketing goals. Marketing objective is a broader product classification of products.",
          "$ref": "GoogleAdsGoogleadsV24Services_ProductFilter_MarketingObjectiveList"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__ProductFilter",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__GenerateKeywordHistoricalMetricsResponse": {
      "id": "GoogleAdsGoogleadsV24Services__GenerateKeywordHistoricalMetricsResponse",
      "type": "object",
      "description": "Response message for KeywordPlanIdeaService.GenerateKeywordHistoricalMetrics.",
      "properties": {
        "results": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__GenerateKeywordHistoricalMetricsResult"
          },
          "description": "List of keywords and their historical metrics.",
          "type": "array"
        },
        "aggregateMetricResults": {
          "description": "The aggregate metrics for all keywords.",
          "$ref": "GoogleAdsGoogleadsV24Common__KeywordPlanAggregateMetricResults"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__SearchGoogleAdsFieldsRequest": {
      "id": "GoogleAdsGoogleadsV24Services__SearchGoogleAdsFieldsRequest",
      "type": "object",
      "description": "Request message for GoogleAdsFieldService.SearchGoogleAdsFields.",
      "properties": {
        "pageSize": {
          "type": "integer",
          "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.",
          "format": "int32"
        },
        "query": {
          "description": "Required. The query string.",
          "type": "string"
        },
        "pageToken": {
          "type": "string",
          "description": "Token of the page to retrieve. If not specified, the first page of results will be returned. Use the value obtained from `next_page_token` in the previous response in order to request the next page of results."
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__VideoNonSkippableInStreamAdInfo": {
      "id": "GoogleAdsGoogleadsV24Common__VideoNonSkippableInStreamAdInfo",
      "type": "object",
      "description": "Representation of video non-skippable in-stream ad format (15 second in-stream non-skippable video ad).",
      "properties": {
        "companionBanner": {
          "description": "The image assets of the companion banner used with the ad.",
          "$ref": "GoogleAdsGoogleadsV24Common__AdImageAsset"
        },
        "actionHeadline": {
          "type": "string",
          "description": "Additional text displayed with the \"Call To Action\" button to give context and encourage clicking on the button."
        },
        "actionButtonLabel": {
          "description": "Label on the \"Call To Action\" button taking the user to the video ad's final URL.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__RegenerateShareableLinkIdResponse": {
      "id": "GoogleAdsGoogleadsV24Services__RegenerateShareableLinkIdResponse",
      "type": "object",
      "description": "Response message for ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId.",
      "properties": {}
    },
    "GoogleAdsGoogleadsV24Resources__SearchTermView": {
      "description": "A search term view with metrics aggregated by search term at the ad group level. This view does not include Performance Max data. If you are looking for Performance Max search term data, use the CampaignSearchTermView instead.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the search term view. Search term view resource names have the form: `customers/{customer_id}/searchTermViews/{campaign_id}~{ad_group_id}~{URL-base64_search_term}`",
          "readOnly": true
        },
        "adGroup": {
          "description": "Output only. The ad group the search term served in.",
          "readOnly": true,
          "type": "string"
        },
        "status": {
          "type": "string",
          "description": "Output only. Indicates whether the search term is currently one of your targeted or excluded keywords.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Search term is added to targeted keywords.",
            "Search term matches a negative keyword.",
            "Search term has been both added and excluded.",
            "Search term is neither targeted nor excluded."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADDED",
            "EXCLUDED",
            "ADDED_EXCLUDED",
            "NONE"
          ]
        },
        "searchTerm": {
          "type": "string",
          "description": "Output only. The search term.",
          "readOnly": true
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__SearchTermView",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_RecommendationCampaignBudgetRecommendation_CampaignBudgetRecommendationOption": {
      "id": "GoogleAdsGoogleadsV24Resources_RecommendationCampaignBudgetRecommendation_CampaignBudgetRecommendationOption",
      "type": "object",
      "description": "The impact estimates for a given budget amount.",
      "properties": {
        "impact": {
          "description": "Output only. The impact estimate if budget is changed to amount specified in this option.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_RecommendationImpact"
        },
        "budgetAmountMicros": {
          "type": "string",
          "description": "Output only. The budget amount for this option.",
          "readOnly": true,
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateAdGroupsResponse": {
      "description": "Response message for an ad group mutate.",
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateAdGroupResult"
          },
          "description": "All results for the mutate."
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateAdGroupsResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__CampaignBidModifier": {
      "description": "Represents a bid-modifiable only criterion at the campaign level.",
      "properties": {
        "criterionId": {
          "description": "Output only. The ID of the criterion to bid modify. This field is ignored for mutates.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "interactionType": {
          "description": "Immutable. Criterion for interaction type. Only supported for search campaigns.",
          "$ref": "GoogleAdsGoogleadsV24Common__InteractionTypeInfo"
        },
        "bidModifier": {
          "description": "The modifier for the bid when the criterion matches.",
          "format": "double",
          "type": "number"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the campaign bid modifier. Campaign bid modifier resource names have the form: `customers/{customer_id}/campaignBidModifiers/{campaign_id}~{criterion_id}`"
        },
        "campaign": {
          "type": "string",
          "description": "Output only. The campaign to which this criterion belongs.",
          "readOnly": true
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__CampaignBidModifier",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__CriterionCategoryChannelAvailability": {
      "id": "GoogleAdsGoogleadsV24Common__CriterionCategoryChannelAvailability",
      "type": "object",
      "description": "Information of advertising channel type and subtypes a category is available in.",
      "properties": {
        "availabilityMode": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ALL_CHANNELS",
            "CHANNEL_TYPE_AND_ALL_SUBTYPES",
            "CHANNEL_TYPE_AND_SUBSET_SUBTYPES"
          ],
          "description": "Format of the channel availability. Can be ALL_CHANNELS (the rest of the fields will not be set), CHANNEL_TYPE (only advertising_channel_type type will be set, the category is available to all sub types under it) or CHANNEL_TYPE_AND_SUBTYPES (advertising_channel_type, advertising_channel_sub_type, and include_default_channel_sub_type will all be set).",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The category is available to campaigns of all channel types and subtypes.",
            "The category is available to campaigns of a specific channel type, including all subtypes under it.",
            "The category is available to campaigns of a specific channel type and subtype(s)."
          ]
        },
        "advertisingChannelType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SEARCH",
            "DISPLAY",
            "SHOPPING",
            "HOTEL",
            "VIDEO",
            "MULTI_CHANNEL",
            "LOCAL",
            "SMART",
            "PERFORMANCE_MAX",
            "LOCAL_SERVICES",
            "TRAVEL",
            "DEMAND_GEN"
          ],
          "description": "Channel type the category is available to.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Search Network. Includes display bundled, and Search+ campaigns.",
            "Google Display Network only.",
            "Shopping campaigns serve on the shopping property and on google.com search results.",
            "Hotel Ads campaigns.",
            "Video campaigns.",
            "App Campaigns, and App Campaigns for Engagement, that run across multiple channels.",
            "Local ads campaigns.",
            "Smart campaigns.",
            "Performance Max campaigns.",
            "Local services campaigns.",
            "Travel campaigns.",
            "Demand Gen campaigns."
          ]
        },
        "advertisingChannelSubType": {
          "description": "Channel subtypes under the channel type the category is available to.",
          "items": {
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "SEARCH_MOBILE_APP",
              "DISPLAY_MOBILE_APP",
              "SEARCH_EXPRESS",
              "DISPLAY_EXPRESS",
              "SHOPPING_SMART_ADS",
              "DISPLAY_GMAIL_AD",
              "DISPLAY_SMART_CAMPAIGN",
              "VIDEO_ACTION",
              "VIDEO_NON_SKIPPABLE",
              "APP_CAMPAIGN",
              "APP_CAMPAIGN_FOR_ENGAGEMENT",
              "LOCAL_CAMPAIGN",
              "SHOPPING_COMPARISON_LISTING_ADS",
              "SMART_CAMPAIGN",
              "VIDEO_SEQUENCE",
              "APP_CAMPAIGN_FOR_PRE_REGISTRATION",
              "VIDEO_REACH_TARGET_FREQUENCY",
              "TRAVEL_ACTIVITIES",
              "YOUTUBE_AUDIO"
            ],
            "enumDescriptions": [
              "Not specified.",
              "Used as a return value only. Represents value unknown in this version.",
              "Mobile app campaigns for Search.",
              "Mobile app campaigns for Display.",
              "AdWords express campaigns for search.",
              "AdWords Express campaigns for display.",
              "Smart Shopping campaigns.",
              "Gmail Ad campaigns.",
              "Smart display campaigns. New campaigns of this sub type cannot be created.",
              "Video TrueView for Action campaigns.",
              "Video campaigns with non-skippable video ads.",
              "App Campaign that lets you easily promote your Android or iOS app across Google's top properties including Search, Play, YouTube, and the Google Display Network.",
              "App Campaign for engagement, focused on driving re-engagement with the app across several of Google's top properties including Search, YouTube, and the Google Display Network.",
              "Campaigns specialized for local advertising.",
              "Shopping Comparison Listing campaigns.",
              "Standard Smart campaigns.",
              "Video campaigns with sequence video ads.",
              "App Campaign for pre registration, specialized for advertising mobile app pre-registration, that targets multiple advertising channels across Google Play, YouTube and Display Network. See https://support.google.com/google-ads/answer/9441344 to learn more.",
              "Video reach campaign with Target Frequency bidding strategy.",
              "Travel Activities campaigns.",
              "YouTube Audio campaigns."
            ],
            "type": "string"
          },
          "type": "array"
        },
        "includeDefaultChannelSubType": {
          "description": "Whether default channel sub type is included. For example, advertising_channel_type being DISPLAY and include_default_channel_sub_type being false means that the default display campaign where channel sub type is not set is not included in this availability configuration.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__TextLabel": {
      "description": "A type of label displaying text on a colored background.",
      "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": "GoogleAdsGoogleadsV24Common__TextLabel",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__CustomerConversionGoal": {
      "id": "GoogleAdsGoogleadsV24Resources__CustomerConversionGoal",
      "type": "object",
      "description": "Biddability control for conversion actions with a matching category and origin.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the customer conversion goal. Customer conversion goal resource names have the form: `customers/{customer_id}/customerConversionGoals/{category}~{origin}`"
        },
        "biddable": {
          "type": "boolean",
          "description": "The biddability of the customer conversion goal."
        },
        "category": {
          "description": "The conversion category of this customer conversion goal. Only conversion actions that have this category will be included in this goal.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Default category.",
            "User visiting a page.",
            "Purchase, sales, or \"order placed\" event.",
            "Signup user action.",
            "Software download action (as for an app).",
            "The addition of items to a shopping cart or bag on an advertiser site.",
            "When someone enters the checkout flow on an advertiser site.",
            "The start of a paid subscription for a product or service.",
            "A call to indicate interest in an advertiser's offering.",
            "A lead conversion imported from an external source into Google Ads.",
            "A submission of a form on an advertiser site indicating business interest.",
            "A booking of an appointment with an advertiser's business.",
            "A quote or price estimate request.",
            "A search for an advertiser's business location with intention to visit.",
            "A click to an advertiser's partner's site.",
            "A call, SMS, email, chat or other type of contact to an advertiser.",
            "A website engagement event such as long site time or a Google Analytics (GA) Smart Goal. Intended to be used for GA, Firebase, GA Gold goal imports.",
            "A visit to a physical store location.",
            "A sale occurring in a physical store.",
            "A lead conversion imported from an external source into Google Ads, that has been further qualified by the advertiser (marketing/sales team). In the lead-to-sale journey, advertisers get leads, then act on them by reaching out to the consumer. If the consumer is interested and may end up buying their product, the advertiser marks such leads as \"qualified leads\".",
            "A lead conversion imported from an external source into Google Ads, that has further completed a chosen stage as defined by the lead gen advertiser.",
            "User watches an ad from a channel and later watches either the same video or a video from the same channel as the ad."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DEFAULT",
            "PAGE_VIEW",
            "PURCHASE",
            "SIGNUP",
            "DOWNLOAD",
            "ADD_TO_CART",
            "BEGIN_CHECKOUT",
            "SUBSCRIBE_PAID",
            "PHONE_CALL_LEAD",
            "IMPORTED_LEAD",
            "SUBMIT_LEAD_FORM",
            "BOOK_APPOINTMENT",
            "REQUEST_QUOTE",
            "GET_DIRECTIONS",
            "OUTBOUND_CLICK",
            "CONTACT",
            "ENGAGEMENT",
            "STORE_VISIT",
            "STORE_SALE",
            "QUALIFIED_LEAD",
            "CONVERTED_LEAD",
            "YOUTUBE_FOLLOW_ON_VIEWS"
          ],
          "type": "string"
        },
        "origin": {
          "description": "The conversion origin of this customer conversion goal. Only conversion actions that have this conversion origin will be included in this goal.",
          "enumDescriptions": [
            "The conversion origin has not been specified.",
            "The conversion origin is not known in this version.",
            "Conversion that occurs when a user visits a website or takes an action there after viewing an ad.",
            "Conversions reported by an offline pipeline which collects local actions from Google-hosted pages (for example, Google Maps, Google Place Page, etc) and attributes them to relevant ad events.",
            "Conversion that occurs when a user performs an action through any app platforms.",
            "Conversion that occurs when a user makes a call from ads.",
            "Conversion that occurs when a user visits or makes a purchase at a physical store.",
            "Conversion that occurs on YouTube."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "WEBSITE",
            "GOOGLE_HOSTED",
            "APP",
            "CALL_FROM_ADS",
            "STORE",
            "YOUTUBE_HOSTED"
          ],
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__CampaignGoalConfigOperation": {
      "id": "GoogleAdsGoogleadsV24Services__CampaignGoalConfigOperation",
      "type": "object",
      "description": "A single mutate operation on the campaign goal config.",
      "properties": {
        "update": {
          "description": "Update an existing campaign goal config.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CampaignGoalConfig"
        },
        "remove": {
          "description": "Remove an existing campaign goal config.",
          "type": "string"
        },
        "updateMask": {
          "description": "FieldMask that determines which fields are modified in an update.",
          "format": "google-fieldmask",
          "type": "string"
        },
        "create": {
          "description": "Create a new campaign goal config.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CampaignGoalConfig"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services_IncentiveRequirement_Spend": {
      "description": "Spend requirements for an incentive.",
      "properties": {
        "awardAmount": {
          "description": "Required. Amount in free spend that user will be granted after spending target amount. Denominated in the currency of the country passed in the get request.",
          "$ref": "GoogleType__Money"
        },
        "requiredAmount": {
          "description": "Required. Amount that user must spend to receive the award amount. Denominated in the currency of the country passed in the get request.",
          "$ref": "GoogleType__Money"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services_IncentiveRequirement_Spend",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__CreateProductLinkResponse": {
      "id": "GoogleAdsGoogleadsV24Services__CreateProductLinkResponse",
      "type": "object",
      "description": "Response message for ProductLinkService.CreateProductLink.",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations. Resource name of the product link.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__ClickView": {
      "description": "A click view with metrics aggregated at each click level, including both valid and invalid clicks. For non-Search campaigns, metrics.clicks represents the number of valid and invalid interactions. Queries including ClickView must have a filter limiting the results to one day and can be requested for dates back to 90 days before the time of the request. GCLIDs are not available in this report for App Campaigns for Installs (ACi) and App Campaigns for Pre-registration (ACpre).",
      "properties": {
        "userList": {
          "type": "string",
          "description": "Output only. The associated user list, if one exists.",
          "readOnly": true
        },
        "gclid": {
          "description": "Output only. The Google Click ID.",
          "readOnly": true,
          "type": "string"
        },
        "campaignLocationTarget": {
          "description": "Output only. The associated campaign location target, if one exists.",
          "readOnly": true,
          "type": "string"
        },
        "keyword": {
          "description": "Output only. The associated keyword, if one exists and the click corresponds to the SEARCH channel.",
          "readOnly": true,
          "type": "string"
        },
        "pageNumber": {
          "description": "Output only. Page number in search results where the ad was shown.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "keywordInfo": {
          "description": "Output only. Basic information about the associated keyword, if it exists.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Common__KeywordInfo"
        },
        "areaOfInterest": {
          "description": "Output only. The location criteria matching the area of interest associated with the impression.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Common__ClickLocation"
        },
        "resourceName": {
          "description": "Output only. The resource name of the click view. Click view resource names have the form: `customers/{customer_id}/clickViews/{date (yyyy-MM-dd)}~{gclid}`",
          "readOnly": true,
          "type": "string"
        },
        "locationOfPresence": {
          "description": "Output only. The location criteria matching the location of presence associated with the impression.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Common__ClickLocation"
        },
        "adGroupAd": {
          "description": "Output only. The associated ad.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__ClickView",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_ListingGroupFilterDimension_Webpage": {
      "description": "Filters for URLs in a page feed and URLs from the advertiser web domain. Several root nodes with this dimension are allowed in an asset group and their conditions are considered in OR.",
      "properties": {
        "conditions": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Resources_ListingGroupFilterDimension_WebpageCondition"
          },
          "description": "The webpage conditions are case sensitive and these are and-ed together when evaluated for filtering. All the conditions should be of same type. Example1: for URL1 = www.ads.google.com?ocid=1&euid=2 and URL2 = www.ads.google.com?ocid=1 and with \"ocid\" and \"euid\" as url_contains conditions, URL1 will be matched, but URL2 not. Example2 : If URL1 has Label1, Label2 and URL2 has Label2, Label3, then with Label1 and Label2 as custom_label conditions, URL1 will be matched but not URL2. With Label2 as the only custom_label condition then both URL1 and URL2 will be matched."
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_ListingGroupFilterDimension_Webpage",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateCampaignCriteriaResponse": {
      "id": "GoogleAdsGoogleadsV24Services__MutateCampaignCriteriaResponse",
      "type": "object",
      "description": "Response message for campaign criterion mutate.",
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateCampaignCriterionResult"
          },
          "description": "All results for the mutate."
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_AssetSet_TravelFeedData": {
      "description": "Travel Feed data. Read-only",
      "properties": {
        "subsetId": {
          "type": "string",
          "description": "Output only. Id representing a subset of the travel feed.",
          "readOnly": true,
          "format": "int64"
        },
        "partnerCenterId": {
          "description": "Output only. The Partner Center ID used for a travel vertical feed, except for Hotel, Vacation Rental, and Things to Do feeds.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "travelFeedVerticalType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HOTELS",
            "VACATION_RENTALS",
            "RENTAL_CARS",
            "EVENTS",
            "THINGS_TO_DO",
            "FLIGHTS"
          ],
          "description": "Output only. Indicates the vertical type of the travel feed.",
          "readOnly": true,
          "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."
          ]
        },
        "merchantCenterId": {
          "type": "string",
          "description": "Output only. The Merchant Center account ID used for a Things to Do feed.",
          "readOnly": true,
          "format": "int64"
        },
        "hotelCenterAccountId": {
          "description": "Output only. The Hotel Center account ID used for a Hotel or Vacation Rental feed.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_AssetSet_TravelFeedData",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__Metrics": {
      "id": "GoogleAdsGoogleadsV24Common__Metrics",
      "type": "object",
      "description": "Metrics data.",
      "properties": {
        "clicks": {
          "type": "string",
          "description": "The number of clicks.",
          "format": "int64"
        },
        "conversionsValueByConversionDate": {
          "type": "number",
          "description": "The value of conversions. This only includes conversion actions which include_in_conversions_metric attribute is set to true. If you use conversion-based bidding, your bid strategies will optimize for these conversions. When this column is selected with date, the values in date column means the conversion date. Details for the by_conversion_date columns are available at https://support.google.com/google-ads/answer/9549009.",
          "format": "double"
        },
        "gmailSaves": {
          "description": "The number of times someone has saved your Gmail ad to their inbox as a message.",
          "format": "int64",
          "type": "string"
        },
        "validAcceleratedMobilePagesClicksPercentage": {
          "type": "number",
          "description": "The percentage of ad clicks to Accelerated Mobile Pages (AMP) landing pages that reach a valid AMP page.",
          "format": "double"
        },
        "activeViewAudibilityInvalidGivtMeasurableImpressionsRate": {
          "description": "The number of impressions for which Active View could measure audibility, but that were filtered out by traffic quality filters, divided by the total number of impressions measurable for audibility. Only includes GIVT (general invalid traffic) impressions.",
          "format": "double",
          "type": "number"
        },
        "activeViewAudibleTwoSecondsImpressions": {
          "description": "The number of impressions that were audible for at least 2 seconds (cumulative).",
          "format": "int64",
          "type": "string"
        },
        "clicksUniqueQueryClusters": {
          "type": "string",
          "description": "Unique query intent cluster count for clicks.",
          "format": "int64"
        },
        "engagements": {
          "type": "string",
          "description": "The number of engagements. An engagement occurs when a viewer expands your Lightbox ad. Also, in the future, other ad types may support engagement metrics.",
          "format": "int64"
        },
        "invalidClickRate": {
          "type": "number",
          "description": "The percentage of clicks filtered out of your total number of clicks (filtered + non-filtered clicks) during the reporting period.",
          "format": "double"
        },
        "viewThroughConversionsFromLocationAssetMenu": {
          "type": "number",
          "description": "Number of menu link clicks on any location surface after an impression. This measure is coming from Asset based location.",
          "format": "double"
        },
        "assetPinnedAsDescriptionPositionOneCount": {
          "type": "string",
          "description": "Number of entities in which the asset is pinned to description 1. This metric can only be selected with ChannelAggregateAssetView and CampaignAggregateAssetView. This metric is only supported in Search channel.",
          "format": "int64"
        },
        "assetPinnedAsHeadlinePositionThreeCount": {
          "description": "Number of entities in which the asset is pinned to headline 3. This metric can only be selected with ChannelAggregateAssetView and CampaignAggregateAssetView. This metric is only supported in Search channel.",
          "format": "int64",
          "type": "string"
        },
        "activeViewAudibleTwoSecondsImpressionsRate": {
          "type": "number",
          "description": "The number of impressions that were audible for at least 2 seconds (cumulative), divided by the total number of impressions measurable for audibility.",
          "format": "double"
        },
        "costPerCurrentModelAttributedConversion": {
          "description": "The cost of ad interactions divided by current model attributed conversions. This only includes conversion actions which include_in_conversions_metric attribute is set to true. If you use conversion-based bidding, your bid strategies will optimize for these conversions.",
          "format": "double",
          "type": "number"
        },
        "videoQuartileP25Rate": {
          "type": "number",
          "description": "Percentage of impressions where the viewer watched 25% of your video.",
          "format": "double"
        },
        "viewThroughConversionsFromLocationAssetClickToCall": {
          "type": "number",
          "description": "Number of call button clicks on any location surface after an impression. This measure is coming from Asset based location.",
          "format": "double"
        },
        "videoTrueviewViewRate": {
          "type": "number",
          "description": "The number of TrueView views your video ad receives divided by its number of impressions, including thumbnail impressions for TrueView in-display ads.",
          "format": "double"
        },
        "assetPinnedTotalCount": {
          "type": "string",
          "description": "Number of total usages in which the asset is pinned. This metric can only be selected with ChannelAggregateAssetView and CampaignAggregateAssetView. This metric is only supported in Search channel.",
          "format": "int64"
        },
        "activeViewAudibleQuartileP50Rate": {
          "type": "number",
          "description": "The number of impressions that were audible at the second quartile of the ad playback, divided by the total number of impressions measurable for audibility.",
          "format": "double"
        },
        "allConversionsFromLocationAssetOtherEngagement": {
          "type": "number",
          "description": "Number of other types of local action clicks on any location surface after a chargeable ad event (click or impression). This measure is coming from Asset based location.",
          "format": "double"
        },
        "averageOrderValueMicros": {
          "type": "string",
          "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.",
          "format": "int64"
        },
        "costConvertedCurrencyPerPlatformComparableConversion": {
          "type": "number",
          "description": "The cost of the platform comparable conversion in the currency of the authorized customer.",
          "format": "double"
        },
        "uniqueUsersFivePlus": {
          "description": "This metric counts the unique individuals who were shown your video ad five or more times within the selected date range. This metric cannot be aggregated, and can only be requested for date ranges of 31 days or less.",
          "format": "int64",
          "type": "string"
        },
        "biddableAppPostInstallConversions": {
          "description": "Number of in-app actions.",
          "format": "double",
          "type": "number"
        },
        "eligibleImpressionsFromLocationAssetStoreReach": {
          "type": "string",
          "description": "Number of impressions in which the business location was shown or the location was used for targeting. This measure is coming from Asset based location.",
          "format": "int64"
        },
        "crossSellRevenueMicros": {
          "type": "string",
          "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.",
          "format": "int64"
        },
        "mobileFriendlyClicksPercentage": {
          "description": "The percentage of mobile clicks that go to a mobile-friendly page.",
          "format": "double",
          "type": "number"
        },
        "combinedQueries": {
          "description": "The number of searches that returned pages from your site in the unpaid results or showed one of your text ads. See the help page at https://support.google.com/google-ads/answer/3097241 for details.",
          "format": "int64",
          "type": "string"
        },
        "costOfGoodsSoldMicros": {
          "type": "string",
          "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.",
          "format": "int64"
        },
        "allCrossSellCostOfGoodsSoldMicros": {
          "type": "string",
          "description": "All cross-sell cost of goods sold is the total cost of products sold as a result of advertising a different product. Includes the amount from the cross_sell_cost_of_goods_sold_micros metric, plus cross-sell cost of goods sold from all your conversion actions, even if your campaigns are not actively optimizing towards them. It's calculated using product info from cart data to give more detail than conversion value alone.",
          "format": "int64"
        },
        "assetPinnedAsDescriptionPositionTwoCount": {
          "type": "string",
          "description": "Number of entities in which the asset is pinned to description 2. This metric can only be selected with ChannelAggregateAssetView and CampaignAggregateAssetView. This metric is only supported in Search channel.",
          "format": "int64"
        },
        "linkedSampleEntities": {
          "type": "array",
          "description": "A list of up to 20 sample linked resources in which the asset is used. This metric can only be selected with ChannelAggregateAssetView and CampaignAggregateAssetView.",
          "items": {
            "type": "string"
          }
        },
        "activeViewAudibilityMeasurableImpressions": {
          "description": "The number of impressions for which Active View could measure if the ad was audible.",
          "format": "int64",
          "type": "string"
        },
        "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.",
          "format": "double",
          "type": "number"
        },
        "biddableAppInstallConversions": {
          "type": "number",
          "description": "Number of app installs.",
          "format": "double"
        },
        "revenueMicros": {
          "type": "string",
          "description": "Revenue is the total amount you made from orders attributed to your ads. How it works: You report conversions with cart data for completed purchases on your website. Revenue is the total value of all the orders you received attributed to your ads, minus any discount. Example: Someone clicked on a Shopping ad for a hat then bought the same hat and a shirt in an order from your website. The hat is priced $10 and the shirt is priced $20. The entire order has a $5 discount. The revenue from this order is $25 = ($10 + $20) - $5. This metric is only available if you report conversions with cart data.",
          "format": "int64"
        },
        "uniqueUsersTwoPlus": {
          "description": "This metric counts the unique individuals who were shown your video ad two or more times within the selected date range. This metric cannot be aggregated, and can only be requested for date ranges of 31 days or less.",
          "format": "int64",
          "type": "string"
        },
        "platformComparableConversionsFromInteractionsValuePerInteraction": {
          "type": "number",
          "description": "The value of platform comparable conversions from interactions divided by the number of ad interactions. This only includes conversion actions for which include_in_conversions_metric attribute is set to true. If you use conversion-based bidding, your bid strategies will optimize for these conversions.",
          "format": "double"
        },
        "activeViewMeasurability": {
          "type": "number",
          "description": "The ratio of impressions that could be measured by Active View over the number of served impressions.",
          "format": "double"
        },
        "allConversionsFromClickToCall": {
          "type": "number",
          "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.",
          "format": "double"
        },
        "averageCost": {
          "type": "number",
          "description": "The average amount you pay per interaction. This amount is the total cost of your ads divided by the total number of interactions.",
          "format": "double"
        },
        "allLeadUnitsSold": {
          "description": "All lead units sold is the total number of products sold as a result of advertising the same product. Includes the amount shown in the lead_units_sold metric, plus lead units sold from all your conversion actions, even if your campaigns are not actively optimizing towards them. It's calculated using product info from cart data to give more detail than conversion value alone.",
          "format": "double",
          "type": "number"
        },
        "platformComparableConversionsValue": {
          "description": "The value of platform comparable conversions. This only includes conversion actions which include_in_conversions_metric attribute is set to true. If you use conversion-based bidding, your bid strategies will optimize for these conversions.",
          "format": "double",
          "type": "number"
        },
        "viewThroughConversionsFromLocationAssetStoreVisits": {
          "type": "number",
          "description": "Estimated number of visits to the business after an impression. This measure is coming from Asset based location.",
          "format": "double"
        },
        "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.",
          "format": "double",
          "type": "number"
        },
        "activeViewAudibleThirtySecondsImpressionsRate": {
          "type": "number",
          "description": "The number of impressions that were audible for at least 30 seconds (cumulative), divided by the total number of impressions measurable for audibility.",
          "format": "double"
        },
        "crossDeviceConversionsValueByConversionDate": {
          "description": "The sum of cross-device conversions value by conversion date. Details for the by_conversion_date columns are available at https://support.google.com/google-ads/answer/9549009.",
          "format": "double",
          "type": "number"
        },
        "orders": {
          "type": "number",
          "description": "Orders is the total number of purchase conversions you received attributed to your ads. How it works: You report conversions with cart data for completed purchases on your website. If a conversion is attributed to previous interactions with your ads (clicks for text or Shopping ads, views for video ads etc.) it's counted as an order. Example: Someone clicked on a Shopping ad for a hat then bought the same hat and a shirt in an order on your website. Even though they bought 2 products, this would count as 1 order. This metric is only available if you report conversions with cart data.",
          "format": "double"
        },
        "engagementRate": {
          "type": "number",
          "description": "How often people engage with your ad after it's shown to them. This is the number of ad expansions divided by the number of times your ad is shown.",
          "format": "double"
        },
        "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.",
          "format": "double",
          "type": "number"
        },
        "conversionLastConversionDate": {
          "description": "The date of the most recent conversion for this conversion action. The date is in the customer's time zone.",
          "type": "string"
        },
        "hotelExpectedCommissionCost": {
          "description": "Expected commission cost. The result of multiplying the commission value times the hotel_commission_rate in advertiser currency.",
          "format": "double",
          "type": "number"
        },
        "coviewedImpressions": {
          "description": "All co-viewed impressions represent the total number of people who saw your ad. This includes people who are signed into their Google Account, as well as other people who are watching the same ad on a connected TV. This metric is only available for the Campaign resource with adjusted_age_range and adjusted_gender segments. These segmentations are mandatory to get the all coviewed impressions.",
          "format": "int64",
          "type": "string"
        },
        "searchVolume": {
          "description": "Search volume range for a search term insight category.",
          "$ref": "GoogleAdsGoogleadsV24Common__SearchVolumeRange"
        },
        "currentModelAttributedConversionsFromInteractionsValuePerInteraction": {
          "type": "number",
          "description": "The value of current model attributed conversions from interactions divided by the number of ad interactions. This only includes conversion actions which include_in_conversions_metric attribute is set to true. If you use conversion-based bidding, your bid strategies will optimize for these conversions.",
          "format": "double"
        },
        "combinedClicks": {
          "description": "The number of times your ad or your site's listing in the unpaid results was clicked. See the help page at https://support.google.com/google-ads/answer/3097241 for details.",
          "format": "int64",
          "type": "string"
        },
        "valuePerCurrentModelAttributedConversion": {
          "description": "The value of current model attributed conversions divided by the number of the conversions. This only includes conversion actions which include_in_conversions_metric attribute is set to true. If you use conversion-based bidding, your bid strategies will optimize for these conversions.",
          "format": "double",
          "type": "number"
        },
        "hotelPriceDifferencePercentage": {
          "type": "number",
          "description": "The average price difference between the price offered by reporting hotel advertiser and the cheapest price offered by the competing advertiser.",
          "format": "double"
        },
        "messageChats": {
          "type": "string",
          "description": "Number of message chats initiated for Click To Message impressions that were message tracking eligible.",
          "format": "int64"
        },
        "organicClicks": {
          "type": "string",
          "description": "The number of times someone clicked your site's listing in the unpaid results for a particular query. See the help page at https://support.google.com/google-ads/answer/3097241 for details.",
          "format": "int64"
        },
        "averageTargetRoas": {
          "description": "The average Target ROAS, or unset if not available (for example, for campaigns that had traffic from portfolio bidding strategies or non-tROAS).",
          "format": "double",
          "type": "number"
        },
        "activeViewAudibleThirtySecondsImpressions": {
          "type": "string",
          "description": "The number of impressions that were audible for at least 30 seconds (cumulative).",
          "format": "int64"
        },
        "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/google-ads/answer/9549009.",
          "format": "double",
          "type": "number"
        },
        "crossSellGrossProfitMicros": {
          "description": "Cross-sell gross profit is the profit you made from products sold as a result of advertising a different product, minus cost of goods sold (COGS). How it works: You report conversions with cart data for completed purchases on your website. If the ad that was interacted with before the purchase has an associated product (see Shopping Ads) then this product is considered the advertised product. Any product included in the purchase is a sold product. If these products don't match then this is considered cross-sell. Cross-sell gross profit is the revenue you made from cross-sell attributed to your ads minus the cost of the goods sold. Example: Someone clicked on a Shopping ad for a hat then bought the same hat and a shirt. The shirt is priced $20 and has a cost of goods sold value of $5. The cross-sell gross profit of this order is $15 = $20 - $5. This metric is only available if you report conversions with cart data.",
          "format": "int64",
          "type": "string"
        },
        "conversionsFromInteractionsValuePerInteraction": {
          "type": "number",
          "description": "The value of conversions from interactions divided by the number of ad interactions. This only includes conversion actions which include_in_conversions_metric attribute is set to true. If you use conversion-based bidding, your bid strategies will optimize for these conversions.",
          "format": "double"
        },
        "costPerConversion": {
          "type": "number",
          "description": "The cost of ad interactions divided by conversions. This only includes conversion actions which include_in_conversions_metric attribute is set to true. If you use conversion-based bidding, your bid strategies will optimize for these conversions.",
          "format": "double"
        },
        "relativeCtr": {
          "description": "Your clickthrough rate (Ctr) divided by the average clickthrough rate of all advertisers on the websites that show your ads. Measures how your ads perform on Display Network sites compared to other ads on the same sites.",
          "format": "double",
          "type": "number"
        },
        "valuePerAllConversions": {
          "description": "The value of all conversions divided by the number of all conversions.",
          "format": "double",
          "type": "number"
        },
        "conversionsFromInteractionsRate": {
          "description": "Conversions from interactions divided by the number of ad interactions (such as clicks for text ads or views for video ads). This only includes conversion actions which include_in_conversions_metric attribute is set to true. If you use conversion-based bidding, your bid strategies will optimize for these conversions.",
          "format": "double",
          "type": "number"
        },
        "activeViewAudibilityMeasurableImpressionsRate": {
          "type": "number",
          "description": "The number of impressions for which Active View could measure if the ad was audible, divided by the total number of impressions with Active View audio enabled.",
          "format": "double"
        },
        "skAdNetworkTotalConversions": {
          "type": "string",
          "description": "The total number of iOS Store Kit Ad Network conversions.",
          "format": "int64"
        },
        "viewThroughConversionsFromLocationAssetWebsite": {
          "description": "Number of website URL clicks on any location surface after an impression. This measure is coming from Asset based location.",
          "format": "double",
          "type": "number"
        },
        "leadCostOfGoodsSoldMicros": {
          "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.",
          "format": "int64",
          "type": "string"
        },
        "svr": {
          "description": "This feature is available to allowlisted accounts only.",
          "format": "int64",
          "type": "string"
        },
        "averageTargetCpaMicros": {
          "description": "The average Target CPA, or unset if not available (for example, for campaigns that had traffic from portfolio bidding strategies or non-tCPA).",
          "format": "int64",
          "type": "string"
        },
        "platformComparableConversionsValueByConversionDate": {
          "description": "The value of platform comparable conversions. When this metric is segmented by date, the values in the date segment represent the conversion date. This only includes conversion actions for which include_in_conversions_metric attribute is set to true. If you use conversion-based bidding, your bid strategies will optimize for these conversions.",
          "format": "double",
          "type": "number"
        },
        "activeViewViewability": {
          "description": "The percentage of time when your ad appeared on an Active View enabled site (measurable impressions) and was viewable (viewable impressions).",
          "format": "double",
          "type": "number"
        },
        "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/google-ads/answer/9549009.",
          "format": "double",
          "type": "number"
        },
        "allConversionsFromLocationAssetWebsite": {
          "type": "number",
          "description": "Number of website URL clicks on any location surface after a chargeable ad event (click or impression). This measure is coming from Asset based location.",
          "format": "double"
        },
        "viewThroughConversionsFromLocationAssetDirections": {
          "type": "number",
          "description": "Number of driving directions clicks on any location surface after an impression. This measure is coming from Asset based location.",
          "format": "double"
        },
        "allConversions": {
          "type": "number",
          "description": "The total number of conversions. This includes all conversions regardless of the value of include_in_conversions_metric.",
          "format": "double"
        },
        "auctionInsightSearchAbsoluteTopImpressionPercentage": {
          "type": "number",
          "description": "This metric is part of the Auction Insights report, and tells how often the ads of another participant showed in the most prominent position on the search results page. This percentage is computed only over the auctions that you appeared in the page. This metric is not publicly available.",
          "format": "double"
        },
        "allConversionsFromMenu": {
          "type": "number",
          "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.",
          "format": "double"
        },
        "crossDeviceConversions": {
          "type": "number",
          "description": "Conversions from when a customer clicks on a Google Ads ad on one device, then converts on a different device or browser. Cross-device conversions are already included in all_conversions.",
          "format": "double"
        },
        "crossDeviceConversionsValueMicros": {
          "type": "string",
          "description": "The sum of the value of cross-device conversions, in micros.",
          "format": "int64"
        },
        "historicalCreativeQualityScore": {
          "description": "The creative historical quality score.",
          "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"
          ],
          "type": "string"
        },
        "allCrossSellRevenueMicros": {
          "description": "All cross-sell revenue is the total amount you made from products sold as a result of advertising a different product. Includes the amount from the cross_sell_revenue_micros metric, plus cross-sell revenue from all your conversion actions, even if your campaigns are not actively optimizing towards them. It's calculated using product info from cart data to give more detail than conversion value alone.",
          "format": "int64",
          "type": "string"
        },
        "allConversionsFromInteractionsValuePerInteraction": {
          "description": "The value of all conversions from interactions divided by the total number of interactions.",
          "format": "double",
          "type": "number"
        },
        "hotelEligibleImpressions": {
          "description": "The number of impressions that hotel partners could have had given their feed performance.",
          "format": "int64",
          "type": "string"
        },
        "impressionsFromStoreReach": {
          "description": "The number of times a business's location-based ad was shown. This metric applies to feed items only.",
          "format": "int64",
          "type": "string"
        },
        "allConversionsFromLocationAssetStoreVisits": {
          "type": "number",
          "description": "Estimated number of visits to the business after a chargeable ad event (click or impression). This measure is coming from Asset based location.",
          "format": "double"
        },
        "videoTrueviewViewRateShorts": {
          "description": "The number of TrueView views divided by number of impressions that can potentially lead to TrueView views for Shorts ads.",
          "format": "double",
          "type": "number"
        },
        "allCrossSellUnitsSold": {
          "type": "number",
          "description": "All cross-sell units sold is the total number of products sold as a result of advertising a different product. Includes the amount shown in the cross_sell_units_sold metric, plus cross-sell units sold from all your conversion actions, even if your campaigns are not actively optimizing towards them. It's calculated using product info from cart data to give more detail than conversion value alone.",
          "format": "double"
        },
        "allLeadRevenueMicros": {
          "description": "All lead revenue is the total amount you made from products sold as a result of advertising the same product. Includes the amount shown in the lead_revenue_micros metric, plus lead revenue from all your conversion actions, even if your campaigns are not actively optimizing towards them. It's calculated using product info from cart data to give more detail than conversion value alone.",
          "format": "int64",
          "type": "string"
        },
        "allCrossSellGrossProfitMicros": {
          "type": "string",
          "description": "All 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). Includes the amount from the cross_sell_gross_profit_micros metric, plus cross-sell gross profit from all your conversion actions, even if your campaigns are not actively optimizing towards them. It's calculated using product info from cart data to give more detail than conversion value alone.",
          "format": "int64"
        },
        "valuePerConversion": {
          "type": "number",
          "description": "The value of conversions divided by the number of conversions. This only includes conversion actions which include_in_conversions_metric attribute is set to true. If you use conversion-based bidding, your bid strategies will optimize for these conversions.",
          "format": "double"
        },
        "allConversionsFromLocationAssetClickToCall": {
          "type": "number",
          "description": "Number of call button clicks on any location surface after a chargeable ad event (click or impression). This measure is coming from Asset based location.",
          "format": "double"
        },
        "activeViewMeasurableImpressions": {
          "description": "The number of times your ads are appearing on placements in positions where they can be seen.",
          "format": "int64",
          "type": "string"
        },
        "averagePageViews": {
          "description": "Average number of pages viewed per session.",
          "format": "double",
          "type": "number"
        },
        "organicClicksPerQuery": {
          "description": "The number of times someone clicked your site's listing in the unpaid results (organic_clicks) divided by the total number of searches that returned pages from your site (organic_queries). See the help page at https://support.google.com/google-ads/answer/3097241 for details.",
          "format": "double",
          "type": "number"
        },
        "optimizationScoreUplift": {
          "type": "number",
          "description": "Total optimization score uplift of all recommendations.",
          "format": "double"
        },
        "videoTrueviewViews": {
          "description": "The number of TrueView views your video ads received.",
          "format": "int64",
          "type": "string"
        },
        "conversionLastReceivedRequestDateTime": {
          "description": "The last date/time a conversion tag for this conversion action successfully fired and was seen by Google Ads. This firing event may not have been the result of an attributable conversion (for example, because the tag was fired from a browser that did not previously click an ad from an appropriate advertiser). The date/time is in the customer's time zone.",
          "type": "string"
        },
        "conversionsByConversionDate": {
          "type": "number",
          "description": "The number of conversions. This only includes conversion actions which include_in_conversions_metric attribute is set to true. If you use conversion-based bidding, your bid strategies will optimize for these conversions. When this column is selected with date, the values in date column means the conversion date. Details for the by_conversion_date columns are available at https://support.google.com/google-ads/answer/9549009.",
          "format": "double"
        },
        "organicImpressions": {
          "description": "The number of listings for your site in the unpaid search results. See the help page at https://support.google.com/google-ads/answer/3097241 for details.",
          "format": "int64",
          "type": "string"
        },
        "platformComparableConversions": {
          "type": "number",
          "description": "The number of platform comparable conversions. This only includes conversion actions for which include_in_conversions_metric attribute is set to true. If you use conversion-based bidding, your bid strategies will optimize for these conversions.",
          "format": "double"
        },
        "allAverageOrderValueMicros": {
          "type": "string",
          "description": "All average order value is the average revenue you made per order attributed to your ads. Includes the amount from the average_order_value metric, plus avg. order value from all your conversion actions, even if your campaigns are not actively optimizing towards them. It's calculated using product info from cart data to give more detail than conversion value alone.",
          "format": "int64"
        },
        "allUnitsSold": {
          "type": "number",
          "description": "All units sold is the total number of products sold from orders attributed to your ads. Includes the amount from the units_sold metric, plus units sold from all your conversion actions, even if your campaigns are not actively optimizing towards them. It's calculated using product info from cart data to give more detail than conversion value alone.",
          "format": "double"
        },
        "uniqueUsers": {
          "type": "string",
          "description": "The number of unique users who saw your ad during the requested time period. This metric cannot be aggregated, and can only be requested for date ranges of 92 days or less. This metric is available for following campaign types - Display, Video, Discovery and App.",
          "format": "int64"
        },
        "valuePerPlatformComparableConversion": {
          "description": "The value of platform comparable conversions divided by the number of platform comparable conversions. This only includes conversion actions for which include_in_conversions_metric attribute is set to true. If you use conversion-based bidding, your bid strategies will optimize for these conversions.",
          "format": "double",
          "type": "number"
        },
        "videoQuartileP100Rate": {
          "description": "Percentage of impressions where the viewer watched all of your video.",
          "format": "double",
          "type": "number"
        },
        "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.",
          "format": "double",
          "type": "number"
        },
        "allConversionsFromInteractionsRate": {
          "description": "All conversions from interactions (as oppose to view through conversions) divided by the number of ad interactions.",
          "format": "double",
          "type": "number"
        },
        "currentModelAttributedConversions": {
          "description": "Shows how your historic conversions data would look under the attribution model you've currently selected. This only includes conversion actions which include_in_conversions_metric attribute is set to true. If you use conversion-based bidding, your bid strategies will optimize for these conversions.",
          "format": "double",
          "type": "number"
        },
        "allConversionsFromStoreVisit": {
          "description": "Estimated number of times people visited a business after clicking an ad. This metric applies to feed items only.",
          "format": "double",
          "type": "number"
        },
        "allConversionsFromLocationAssetDirections": {
          "type": "number",
          "description": "Number of driving directions clicks on any location surface after a chargeable ad event (click or impression). This measure is coming from Asset based location.",
          "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.",
          "format": "double",
          "type": "number"
        },
        "searchExactMatchImpressionShare": {
          "type": "number",
          "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.",
          "format": "double"
        },
        "skAdNetworkInstalls": {
          "description": "The number of iOS Store Kit Ad Network conversions.",
          "format": "int64",
          "type": "string"
        },
        "crossSellCostOfGoodsSoldMicros": {
          "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.",
          "format": "int64",
          "type": "string"
        },
        "valuePerConversionsByConversionDate": {
          "type": "number",
          "description": "The value of conversions divided by the number of conversions. This only includes conversion actions which include_in_conversions_metric attribute is set to true. If you use conversion-based bidding, your bid strategies will optimize for these conversions. When this column is selected with date, the values in date column means the conversion date. Details for the by_conversion_date columns are available at https://support.google.com/google-ads/answer/9549009.",
          "format": "double"
        },
        "currentModelAttributedConversionsValuePerCost": {
          "description": "The value of current model attributed conversions divided by the cost of ad interactions. This only includes conversion actions which include_in_conversions_metric attribute is set to true. If you use conversion-based bidding, your bid strategies will optimize for these conversions.",
          "format": "double",
          "type": "number"
        },
        "uniqueUsersThreePlus": {
          "type": "string",
          "description": "This metric counts the unique individuals who were shown your video ad three or more times within the selected date range. This metric cannot be aggregated, and can only be requested for date ranges of 31 days or less.",
          "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.",
          "format": "int64",
          "type": "string"
        },
        "averageImpressionFrequencyPerUser": {
          "type": "number",
          "description": "The average number of times a unique user saw your ad during the requested time period. This metric cannot be aggregated, and can only be requested for date ranges of 92 days or less. This metric is available for following campaign types - Display, Video, Discovery and App.",
          "format": "double"
        },
        "messageImpressions": {
          "type": "string",
          "description": "Number of Click To Message impressions that were message tracking eligible.",
          "format": "int64"
        },
        "phoneCalls": {
          "description": "Number of offline phone calls.",
          "format": "int64",
          "type": "string"
        },
        "assetPinnedAsHeadlinePositionOneCount": {
          "type": "string",
          "description": "Number of entities in which the asset is pinned to headline 1. This metric can only be selected with ChannelAggregateAssetView and CampaignAggregateAssetView. This metric is only supported in Search channel.",
          "format": "int64"
        },
        "allLeadGrossProfitMicros": {
          "type": "string",
          "description": "All 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). Includes the amount from the lead_gross_profit_micros metric, plus lead gross profit from all your conversion actions, even if your campaigns are not actively optimizing towards them. It's calculated using product info from cart data to give more detail than conversion value alone.",
          "format": "int64"
        },
        "allGrossProfitMargin": {
          "type": "number",
          "description": "All 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). This value is between 0.0 and 1.0, where 1.0 means 100%. Includes the amount from the gross_profit_margin metric, plus gross profit margin across all conversion actions, even if your campaigns are not actively optimizing towards them. It's calculated using product info from cart data to give more detail than conversion value alone.",
          "format": "double"
        },
        "activeViewCpm": {
          "description": "Average cost of viewable impressions (`active_view_impressions`).",
          "format": "double",
          "type": "number"
        },
        "averageVideoWatchTimeDurationMillis": {
          "description": "Average video watch time duration in milliseconds for video impressions that started playing.",
          "format": "int64",
          "type": "string"
        },
        "linkedEntitiesCount": {
          "description": "Number of linked resources in which the asset is used. This metric can only be selected with ChannelAggregateAssetView and CampaignAggregateAssetView.",
          "format": "int64",
          "type": "string"
        },
        "costPerPlatformComparableConversion": {
          "description": "The cost of ad interactions divided by the number of platform comparable conversions. This only includes conversion actions for which include_in_conversions_metric attribute is set to true. If you use conversion-based bidding, your bid strategies will optimize for these conversions.",
          "format": "double",
          "type": "number"
        },
        "allCostOfGoodsSoldMicros": {
          "type": "string",
          "description": "All cost of goods sold is the total cost of the products you sold in orders attributed to your ads. Includes the amount from the cost_of_goods_sold_micros metric, plus cost of goods sold from all conversion actions, even if your campaigns are not actively optimizing towards them. It's calculated using product info from cart data to give more detail than conversion value alone.",
          "format": "int64"
        },
        "viewThroughConversionsFromLocationAssetOtherEngagement": {
          "description": "Number of other types of local action clicks on any location surface after an impression. This measure is coming from Asset based location.",
          "format": "double",
          "type": "number"
        },
        "allValueAdjustment": {
          "description": "The conversion value rule adjustment from all conversions in all conversion categories.",
          "format": "double",
          "type": "number"
        },
        "viewThroughConversionsFromLocationAssetOrder": {
          "description": "Number of order clicks on any location surface after an impression. This measure is coming from Asset based location.",
          "format": "double",
          "type": "number"
        },
        "activeViewAudibleImpressionsRate": {
          "type": "number",
          "description": "The number of impressions that were audible (volume \u003e 0%) at any point during the ad playback, divided by the total number of impressions measurable for audibility.",
          "format": "double"
        },
        "historicalSearchPredictedCtr": {
          "type": "string",
          "description": "The historical search predicted click through rate (CTR).",
          "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"
          ]
        },
        "currentModelAttributedConversionsFromInteractionsRate": {
          "type": "number",
          "description": "Current model attributed conversions from interactions divided by the number of ad interactions (such as clicks for text ads or views for video ads). This only includes conversion actions which include_in_conversions_metric attribute is set to true. If you use conversion-based bidding, your bid strategies will optimize for these conversions.",
          "format": "double"
        },
        "percentNewVisitors": {
          "type": "number",
          "description": "Percentage of first-time sessions (from people who had never visited your site before). Imported from Google Analytics.",
          "format": "double"
        },
        "allAverageCartSize": {
          "description": "All average cart size is the average number of products in each order attributed to your ads. Includes the amount from the average_cart_size metric, plus avg. cart size from all your conversion actions, even if your campaigns are not actively optimizing towards them. It's calculated using product info from cart data to give more detail than conversion value alone.",
          "format": "double",
          "type": "number"
        },
        "absoluteTopImpressionPercentage": {
          "description": "Search absolute top impression share is the percentage of your Search ad impressions that are shown in the most prominent Search position.",
          "format": "double",
          "type": "number"
        },
        "contentRankLostImpressionShare": {
          "type": "number",
          "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.",
          "format": "double"
        },
        "videoTrueviewViewRateInFeed": {
          "description": "The number of TrueView views divided by number of impressions that can potentially lead to TrueView views for in-feed formats.",
          "format": "double",
          "type": "number"
        },
        "activeViewCtr": {
          "description": "Active view measurable clicks divided by active view viewable impressions. This metric is reported only for the Display Network.",
          "format": "double",
          "type": "number"
        },
        "valuePerPlatformComparableConversionsByConversionDate": {
          "description": "The value of platform comparable conversions divided by the number of platform comparable conversions. When this metric is segmented by date, the values in the date segment represent the conversion date. This only includes conversion actions for which include_in_conversions_metric attribute is set to true. If you use conversion-based bidding, your bid strategies will optimize for these conversions.",
          "format": "double",
          "type": "number"
        },
        "searchRankLostAbsoluteTopImpressionShare": {
          "type": "number",
          "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.",
          "format": "double"
        },
        "allOrders": {
          "type": "number",
          "description": "All orders is total number of purchase conversions attributed to your ads. Includes the amount from the orders metric, plus orders from all your conversion actions, even if your campaigns are not actively optimizing towards them. It's calculated using product info from cart data to give more detail than conversion value alone.",
          "format": "double"
        },
        "allConversionsFromStoreWebsite": {
          "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.",
          "format": "double",
          "type": "number"
        },
        "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.",
          "format": "double",
          "type": "number"
        },
        "platformComparableConversionsFromInteractionsRate": {
          "description": "Platform comparable conversions from interactions divided by the number of ad interactions (such as clicks for text ads or views for video ads). This only includes conversion actions for which include_in_conversions_metric attribute is set to true. If you use conversion-based bidding, your bid strategies will optimize for these conversions.",
          "format": "double",
          "type": "number"
        },
        "interactionEventTypes": {
          "type": "array",
          "items": {
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "CLICK",
              "ENGAGEMENT",
              "VIDEO_VIEW",
              "NONE"
            ],
            "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."
            ],
            "type": "string"
          },
          "description": "The types of payable and free interactions."
        },
        "topImpressionPercentage": {
          "description": "The percent of your ad impressions that are shown adjacent to the top organic search results.",
          "format": "double",
          "type": "number"
        },
        "organicQueries": {
          "type": "string",
          "description": "The total number of searches that returned your site's listing in the unpaid results. See the help page at https://support.google.com/google-ads/answer/3097241 for details.",
          "format": "int64"
        },
        "generalInvalidClickRate": {
          "type": "number",
          "description": "The percentage of clicks that have been filtered out of your total number of clicks (filtered + non-filtered clicks) due to being general invalid clicks. These are clicks Google considers illegitimate that are detected through routine means of filtration (that is, known invalid data-center traffic, bots and spiders or other crawlers, irregular patterns, etc). You're not charged for them, and they don't affect your account statistics. See the help page at https://support.google.com/campaignmanager/answer/6076504 for details.",
          "format": "double"
        },
        "conversionsValuePerCost": {
          "description": "The value of conversions divided by the cost of ad interactions. This only includes conversion actions which include_in_conversions_metric attribute is set to true. If you use conversion-based bidding, your bid strategies will optimize for these conversions.",
          "format": "double",
          "type": "number"
        },
        "auctionInsightSearchPositionAboveRate": {
          "type": "number",
          "description": "This metric is part of the Auction Insights report, and tells how often another participant's ad was shown in a higher position than yours, when both of your ads were shown at the same page. This metric is not publicly available.",
          "format": "double"
        },
        "averageCpm": {
          "description": "Average cost-per-thousand impressions (CPM).",
          "format": "double",
          "type": "number"
        },
        "uniqueUsersTenPlus": {
          "type": "string",
          "description": "This metric counts the unique individuals who were shown your video ad ten or more times within the selected date range. This metric cannot be aggregated, and can only be requested for date ranges of 31 days or less.",
          "format": "int64"
        },
        "generalInvalidClicks": {
          "type": "string",
          "description": "Number of general invalid clicks. These are a subset of your invalid clicks that are detected through routine means of filtration (such as known invalid data-center traffic, bots and spiders or other crawlers, irregular patterns, etc.). You're not charged for them, and they don't affect your account statistics. See the help page at https://support.google.com/campaignmanager/answer/6076504 for details.",
          "format": "int64"
        },
        "videoTrueviewViewRateInStream": {
          "type": "number",
          "description": "The number of TrueView views divided by number of impressions that can potentially lead to TrueView views for in-stream formats.",
          "format": "double"
        },
        "videoQuartileP75Rate": {
          "type": "number",
          "description": "Percentage of impressions where the viewer watched 75% of your video.",
          "format": "double"
        },
        "storeVisitsLastClickModelAttributedConversions": {
          "description": "The amount of business visits attributed by the last click model.",
          "format": "double",
          "type": "number"
        },
        "gmailForwards": {
          "type": "string",
          "description": "The number of times the ad was forwarded to someone else as a message.",
          "format": "int64"
        },
        "allConversionsValue": {
          "type": "number",
          "description": "The value of all conversions.",
          "format": "double"
        },
        "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/google-ads/answer/7501826 for details. Any value below 0.1 is reported as 0.0999.",
          "format": "double",
          "type": "number"
        },
        "searchBudgetLostImpressionShare": {
          "description": "The estimated percent of times that your ad was eligible to show on the Search Network but didn't because your budget was too low. Note: Search budget lost impression share is reported in the range of 0 to 0.9. Any value above 0.9 is reported as 0.9001.",
          "format": "double",
          "type": "number"
        },
        "auctionInsightSearchOutrankingShare": {
          "description": "This metric is part of the Auction Insights report, and tells the percentage of impressions that your ads outranked (showed above) another participant in the auction, compared to the total number of impressions that your ads were eligible for. Any value below 0.1 is reported as 0.0999. This metric is not publicly available.",
          "format": "double",
          "type": "number"
        },
        "combinedClicksPerQuery": {
          "type": "number",
          "description": "The number of times your ad or your site's listing in the unpaid results was clicked (combined_clicks) divided by combined_queries. See the help page at https://support.google.com/google-ads/answer/3097241 for details.",
          "format": "double"
        },
        "primaryImpressions": {
          "type": "string",
          "description": "Primary impression is counted each time your ad is served. This metric is only available for the Campaign resource with adjusted_age_range and adjusted_gender segments. These segmentations are mandatory to get the primary impressions.",
          "format": "int64"
        },
        "hotelAverageLeadValueMicros": {
          "type": "number",
          "description": "Average lead value based on clicks.",
          "format": "double"
        },
        "historicalLandingPageQualityScore": {
          "description": "The quality of historical landing page experience.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Quality of the creative is below average.",
            "Quality of the creative is average.",
            "Quality of the creative is above average."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BELOW_AVERAGE",
            "AVERAGE",
            "ABOVE_AVERAGE"
          ],
          "type": "string"
        },
        "gmailSecondaryClicks": {
          "type": "string",
          "description": "The number of clicks to the landing page on the expanded state of Gmail ads.",
          "format": "int64"
        },
        "valueAdjustment": {
          "type": "number",
          "description": "The conversion value rule adjustment from biddable conversions in all conversion categories.",
          "format": "double"
        },
        "conversionsUniqueQueryClusters": {
          "description": "Unique query intent cluster count for conversions.",
          "format": "int64",
          "type": "string"
        },
        "platformComparableConversionsValuePerCost": {
          "type": "number",
          "description": "The value of conversions divided by the cost of ad interactions. This only includes conversion actions for which include_in_conversions_metric attribute is set to true. If you use conversion-based bidding, your bid strategies will optimize for these conversions.",
          "format": "double"
        },
        "uniqueUsersFourPlus": {
          "type": "string",
          "description": "This metric counts the unique individuals who were shown your video ad four or more times within the selected date range. This metric cannot be aggregated, and can only be requested for date ranges of 31 days or less.",
          "format": "int64"
        },
        "allNewCustomerLifetimeValue": {
          "type": "number",
          "description": "All of new customers' lifetime conversion value. If you have set up customer acquisition goal at either account level or campaign level, this will include the additional conversion value from new customers for both biddable and non-biddable conversions. If your campaign has adopted the customer acquisition goal and selected \"bid higher for new customers\", these values will be included in \"all_conversions_value\". See https://support.google.com/google-ads/answer/12080169 for more details.",
          "format": "double"
        },
        "impressions": {
          "type": "string",
          "description": "Count of how often your ad has appeared on a search results page or website on the Google Network.",
          "format": "int64"
        },
        "searchTopImpressionShare": {
          "type": "number",
          "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.",
          "format": "double"
        },
        "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).",
          "format": "double",
          "type": "number"
        },
        "contentImpressionShare": {
          "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.",
          "format": "double",
          "type": "number"
        },
        "viewThroughConversions": {
          "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.",
          "format": "int64",
          "type": "string"
        },
        "publisherUnknownClicks": {
          "description": "Clicks from traffic which is not identified as \"Publisher Purchased\" or \"Publisher Organic\"",
          "format": "int64",
          "type": "string"
        },
        "averageCpc": {
          "type": "number",
          "description": "The total cost of all clicks divided by the total number of clicks received.",
          "format": "double"
        },
        "bounceRate": {
          "type": "number",
          "description": "Percentage of clicks where the user only visited a single page on your site. Imported from Google Analytics.",
          "format": "double"
        },
        "allConversionsFromLocationAssetOrder": {
          "type": "number",
          "description": "Number of order clicks on any location surface after a chargeable ad event (click or impression). This measure is coming from Asset based location.",
          "format": "double"
        },
        "searchBudgetLostAbsoluteTopImpressionShare": {
          "type": "number",
          "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.",
          "format": "double"
        },
        "allLeadCostOfGoodsSoldMicros": {
          "type": "string",
          "description": "All lead cost of goods sold is the total cost of products sold as a result of advertising the same product. Includes the amount shown in the lead_cost_of_goods_sold_micros metric, plus lead cost of goods sold from all your conversion actions, even if your campaigns are not actively optimizing towards them. It's calculated using product info from cart data to give more detail than conversion value alone.",
          "format": "int64"
        },
        "crossDeviceConversionsValue": {
          "type": "number",
          "description": "The sum of the value of cross-device conversions.",
          "format": "double"
        },
        "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.",
          "format": "double",
          "type": "number"
        },
        "averageCpe": {
          "description": "The average amount that you've been charged for an ad engagement. This amount is the total cost of all ad engagements divided by the total number of ad engagements.",
          "format": "double",
          "type": "number"
        },
        "leadGrossProfitMicros": {
          "description": "Lead gross profit is the profit you made from products sold as a result of advertising the same product, minus cost of goods sold (COGS). How it works: You report conversions with cart data for completed purchases on your website. If the ad that was interacted with before the purchase has an associated product (see Shopping Ads) then this product is considered the advertised product. Any product included in the order the customer places is a sold product. If the advertised and sold products match, then the revenue you made from these sales minus the cost of goods sold is your lead gross profit. Example: Someone clicked on a Shopping ad for a hat then bought the same hat and a shirt. The hat is priced $10 and has a cost of goods sold value of $3. The lead gross profit of this order is $7 = $10 - $3. This metric is only available if you report conversions with cart data.",
          "format": "int64",
          "type": "string"
        },
        "benchmarkCtr": {
          "type": "number",
          "description": "An indication on how other advertisers' Shopping ads for similar products are performing based on how often people who see their ad click on it.",
          "format": "double"
        },
        "searchBudgetLostTopImpressionShare": {
          "type": "number",
          "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.",
          "format": "double"
        },
        "auctionInsightSearchOverlapRate": {
          "type": "number",
          "description": "This metric is part of the Auction Insights report, and tells how often another participant's ad received an impression when your ad also received an impression. This metric is not publicly available.",
          "format": "double"
        },
        "costPerAllConversions": {
          "type": "number",
          "description": "The cost of ad interactions divided by all conversions.",
          "format": "double"
        },
        "allConversionsFromLocationAssetMenu": {
          "description": "Number of menu link clicks on any location surface after a chargeable ad event (click or impression). This measure is coming from Asset based location.",
          "format": "double",
          "type": "number"
        },
        "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.",
          "format": "double",
          "type": "number"
        },
        "conversionsValue": {
          "description": "The value of conversions. This only includes conversion actions which include_in_conversions_metric attribute is set to true. If you use conversion-based bidding, your bid strategies will optimize for these conversions.",
          "format": "double",
          "type": "number"
        },
        "allRevenueMicros": {
          "type": "string",
          "description": "All revenue is the total you made from orders attributed to your ads. Includes the amount from the revenue_micros metric, plus revenue from all your conversion actions, even if your campaigns are not actively optimizing towards them. It's calculated using product info from cart data to give more detail than conversion value alone.",
          "format": "int64"
        },
        "activeViewAudibilityInvalidMeasurableImpressionsRate": {
          "type": "number",
          "description": "The number of impressions for which Active View could measure audibility, but that were filtered out by traffic quality filters, divided by the total number of impressions measurable for audibility.",
          "format": "double"
        },
        "ctr": {
          "type": "number",
          "description": "The number of clicks your ad receives (Clicks) divided by the number of times your ad is shown (Impressions).",
          "format": "double"
        },
        "allGrossProfitMicros": {
          "description": "All gross profit is the total profit made from orders attributed to your ads minus the cost of goods sold (COGS). Includes the amount from the gross_profit_micros metric, plus gross profit from all your conversion actions, even if your campaigns are not actively optimizing towards them. It's calculated using product info from cart data to give more detail than conversion value alone.",
          "format": "int64",
          "type": "string"
        },
        "activeViewAudibleQuartileP25Rate": {
          "type": "number",
          "description": "The number of impressions that were audible at the first quartile of the ad playback, divided by the total number of impressions measurable for audibility.",
          "format": "double"
        },
        "organicImpressionsPerQuery": {
          "description": "The number of times a page from your site was listed in the unpaid search results (organic_impressions) divided by the number of searches returning your site's listing in the unpaid results (organic_queries). See the help page at https://support.google.com/google-ads/answer/3097241 for details.",
          "format": "double",
          "type": "number"
        },
        "allConversionsByConversionDate": {
          "type": "number",
          "description": "The total number of conversions. This includes all conversions regardless of the value of include_in_conversions_metric. When this column is selected with date, the values in date column means the conversion date. Details for the by_conversion_date columns are available at https://support.google.com/google-ads/answer/9549009.",
          "format": "double"
        },
        "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.",
          "format": "double",
          "type": "number"
        },
        "activeViewAudibleImpressions": {
          "description": "The number of impressions that were audible (volume \u003e 0%) at any point during the ad playback.",
          "format": "int64",
          "type": "string"
        },
        "auctionInsightSearchImpressionShare": {
          "description": "This metric is part of the Auction Insights report, and tells the percentage of impressions that another participant obtained, over the total number of impressions that your ads were eligible for. Any value below 0.1 is reported as 0.0999. This metric is not publicly available.",
          "format": "double",
          "type": "number"
        },
        "valuePerAllConversionsByConversionDate": {
          "description": "The value of all conversions divided by the number of all conversions. When this column is selected with date, the values in date column means the conversion date. Details for the by_conversion_date columns are available at https://support.google.com/google-ads/answer/9549009.",
          "format": "double",
          "type": "number"
        },
        "benchmarkAverageMaxCpc": {
          "description": "An indication of how other advertisers are bidding on similar products.",
          "format": "double",
          "type": "number"
        },
        "crossSellUnitsSold": {
          "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.",
          "format": "double",
          "type": "number"
        },
        "resultsConversionsPurchase": {
          "type": "number",
          "description": "The purchase conversion stats for the unified goals results.",
          "format": "double"
        },
        "averageCartSize": {
          "type": "number",
          "description": "Average cart size is the average number of products in each order attributed to your ads. How it works: You report conversions with cart data for completed purchases on your website. Average cart size is the total number of products sold divided by the total number of orders you received. Example: You received 2 orders, the first included 3 products and the second included 2. The average cart size is 2.5 products = (3+2)/2. This metric is only available if you report conversions with cart data.",
          "format": "double"
        },
        "activeViewAudibleQuartileP100Rate": {
          "description": "The number of impressions that were audible at the fourth quartile of the ad playback, divided by the total number of impressions measurable for audibility.",
          "format": "double",
          "type": "number"
        },
        "speedScore": {
          "type": "string",
          "description": "A measure of how quickly your page loads after clicks on your mobile ads. The score is a range from 1 to 10, 10 being the fastest.",
          "format": "int64"
        },
        "activeViewMeasurableCostMicros": {
          "type": "string",
          "description": "The cost of the impressions you received that were measurable by Active View.",
          "format": "int64"
        },
        "averageTimeOnSite": {
          "description": "Total duration of all sessions (in seconds) / number of sessions. Imported from Google Analytics.",
          "format": "double",
          "type": "number"
        },
        "optimizationScoreUrl": {
          "description": "URL for the optimization score page in the Google Ads web interface. This metric can be selected from `customer` or `campaign`, and can be segmented by `segments.recommendation_type`. For example, `SELECT metrics.optimization_score_url, segments.recommendation_type FROM customer` will return a URL for each unique (customer, recommendation_type) combination.",
          "type": "string"
        },
        "hotelCommissionRateMicros": {
          "description": "Commission bid rate in micros. A 20% commission is represented as 200,000.",
          "format": "int64",
          "type": "string"
        },
        "publisherOrganicClicks": {
          "type": "string",
          "description": "Clicks from properties for which the traffic the publisher has not paid for or acquired through incentivized activity",
          "format": "int64"
        },
        "messageChatRate": {
          "description": "Number of message chats initiated (message_chats) divided by the number of message impressions (message_impressions). Rate at which a user initiates a message chat from an ad impression with a messaging option and message tracking enabled. Note that this rate can be more than 1.0 for a given message impression.",
          "format": "double",
          "type": "number"
        },
        "trueviewAverageCpv": {
          "type": "number",
          "description": "The average amount you pay each time someone views your ad. The average CPV is defined by the total cost of all ad views divided by the number of TrueView views.",
          "format": "double"
        },
        "grossProfitMargin": {
          "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.",
          "format": "double",
          "type": "number"
        },
        "grossProfitMicros": {
          "type": "string",
          "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.",
          "format": "int64"
        },
        "phoneThroughRate": {
          "description": "Number of phone calls received (phone_calls) divided by the number of times your phone number is shown (phone_impressions).",
          "format": "double",
          "type": "number"
        },
        "publisherPurchasedClicks": {
          "type": "string",
          "description": "Clicks from properties not owned by the publisher for which the traffic the publisher has paid for or acquired through incentivized activity",
          "format": "int64"
        },
        "assetPinnedAsHeadlinePositionTwoCount": {
          "type": "string",
          "description": "Number of entities in which the asset is pinned to headline 2. This metric can only be selected with ChannelAggregateAssetView and CampaignAggregateAssetView. This metric is only supported in Search channel.",
          "format": "int64"
        },
        "historicalQualityScore": {
          "type": "string",
          "description": "The historical quality score.",
          "format": "int64"
        },
        "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.",
          "format": "double",
          "type": "number"
        },
        "conversions": {
          "type": "number",
          "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.",
          "format": "double"
        },
        "biddableCohortAppPostInstallConversions": {
          "description": "Participated in-app actions. The number of in app actions that come directly or indirectly from the campaign.",
          "format": "double",
          "type": "number"
        },
        "activeViewImpressions": {
          "description": "A measurement of how often your ad has become viewable on a Display Network site.",
          "format": "int64",
          "type": "string"
        },
        "platformComparableConversionsByConversionDate": {
          "description": "The number of platform comparable conversions. When this metric is segmented by date, the values in the date segment represent the conversion date. This only includes conversion actions for which include_in_conversions_metric attribute is set to true. If you use conversion-based bidding, your bid strategies will optimize for these conversions.",
          "format": "double",
          "type": "number"
        },
        "videoWatchTimeDurationMillis": {
          "type": "string",
          "description": "Total watch time duration in milliseconds for video impressions that started playing. For a small percentage of impressions, we may not be able to measure the watch time accurately. In such cases, we adjust the total time to account for any unmeasured time by applying the average watch time of impressions that were measured.",
          "format": "int64"
        },
        "biddableIndirectInstallFirstInAppConversionMicros": {
          "type": "string",
          "description": "The number of biddable first in app conversions where the app install was driven by interaction with a web campaign.",
          "format": "int64"
        },
        "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.",
          "format": "int64",
          "type": "string"
        },
        "activeViewAudibleQuartileP75Rate": {
          "description": "The number of impressions that were audible at the third quartile of the ad playback, divided by the total number of impressions measurable for audibility.",
          "format": "double",
          "type": "number"
        },
        "impressionsUniqueQueryClusters": {
          "description": "Unique query intent cluster count for impressions.",
          "format": "int64",
          "type": "string"
        },
        "auctionInsightSearchTopImpressionPercentage": {
          "type": "number",
          "description": "This metric is part of the Auction Insights report, and tells how often the ads of another participant showed adjacent to the top organic search results. This percentage is computed only over the auctions that you appeared in the page. This metric is not publicly available.",
          "format": "double"
        },
        "currentModelAttributedConversionsValue": {
          "type": "number",
          "description": "The value of current model attributed conversions. This only includes conversion actions which include_in_conversions_metric attribute is set to true. If you use conversion-based bidding, your bid strategies will optimize for these conversions.",
          "format": "double"
        },
        "costMicros": {
          "type": "string",
          "description": "The sum of your cost-per-click (CPC) and cost-per-thousand impressions (CPM) costs during this period.",
          "format": "int64"
        },
        "interactionRate": {
          "type": "number",
          "description": "How often people interact with your ad after it is shown to them. This is the number of interactions divided by the number of times your ad is shown.",
          "format": "double"
        },
        "videoQuartileP50Rate": {
          "type": "number",
          "description": "Percentage of impressions where the viewer watched 50% of your video.",
          "format": "double"
        },
        "newCustomerLifetimeValue": {
          "type": "number",
          "description": "New customers' lifetime conversion value. If you have set up customer acquisition goal at either account level or campaign level, this will include the additional conversion value from new customers for biddable conversions. If your campaign has adopted the customer acquisition goal and selected \"bid higher for new customers\", these values will be included in \"conversions_value\" for optimization. See https://support.google.com/google-ads/answer/12080169 for more details.",
          "format": "double"
        },
        "phoneImpressions": {
          "type": "string",
          "description": "Number of offline phone impressions.",
          "format": "int64"
        },
        "invalidClicks": {
          "type": "string",
          "description": "Number of clicks Google considers illegitimate and doesn't charge you for.",
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__CampaignAssetSet": {
      "id": "GoogleAdsGoogleadsV24Resources__CampaignAssetSet",
      "type": "object",
      "description": "CampaignAssetSet is the linkage between a campaign and an asset set. Adding a CampaignAssetSet links an asset set with a campaign.",
      "properties": {
        "assetSet": {
          "type": "string",
          "description": "Immutable. The asset set which is linked to the campaign."
        },
        "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"
        },
        "campaign": {
          "description": "Immutable. The campaign to which this asset set is linked.",
          "type": "string"
        },
        "status": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "description": "Output only. The status of the campaign asset set asset. Read-only.",
          "readOnly": true,
          "enumDescriptions": [
            "The status has not been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The linkage between asset set and its container is enabled.",
            "The linkage between asset set and its container is removed."
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__CampaignSharedSet": {
      "description": "CampaignSharedSets are used for managing the shared sets associated with a campaign.",
      "properties": {
        "sharedSet": {
          "type": "string",
          "description": "Immutable. The shared set associated with the campaign. This may be a negative keyword shared set of another customer. This customer should be a manager of the other customer, otherwise the campaign shared set will exist but have no serving effect. Only negative keyword shared sets can be associated with Shopping campaigns. Only negative placement shared sets can be associated with Display mobile app campaigns."
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the campaign shared set. Campaign shared set resource names have the form: `customers/{customer_id}/campaignSharedSets/{campaign_id}~{shared_set_id}`"
        },
        "campaign": {
          "description": "Immutable. The campaign to which the campaign shared set belongs.",
          "type": "string"
        },
        "status": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "description": "Output only. The status of this campaign shared set. Read only.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The campaign shared set is enabled.",
            "The campaign shared set is removed and can no longer be used."
          ],
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__CampaignSharedSet",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__ConversionAction": {
      "id": "GoogleAdsGoogleadsV24Resources__ConversionAction",
      "type": "object",
      "description": "A conversion action.",
      "properties": {
        "mobileAppVendor": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "APPLE_APP_STORE",
            "GOOGLE_APP_STORE"
          ],
          "description": "Output only. Mobile app vendor for an app conversion action.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Mobile app vendor for Apple app store.",
            "Mobile app vendor for Google app store."
          ],
          "type": "string"
        },
        "firebaseSettings": {
          "description": "Output only. Firebase settings for Firebase conversion types.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_ConversionAction_FirebaseSettings"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the conversion action. Conversion action resource names have the form: `customers/{customer_id}/conversionActions/{conversion_action_id}`"
        },
        "status": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED",
            "HIDDEN"
          ],
          "description": "The status of this conversion action for conversion event accrual.",
          "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."
          ],
          "type": "string"
        },
        "phoneCallDurationSeconds": {
          "type": "string",
          "description": "The phone call duration in seconds after which a conversion should be reported for this conversion action. The value must be between 0 and 10000, inclusive.",
          "format": "int64"
        },
        "clickThroughLookbackWindowDays": {
          "description": "The maximum number of days that may elapse between an interaction (for example, a click) and a conversion event.",
          "format": "int64",
          "type": "string"
        },
        "googleAnalytics4Settings": {
          "description": "Output only. Google Analytics 4 settings for Google Analytics 4 conversion types.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_ConversionAction_GoogleAnalytics4Settings"
        },
        "valueSettings": {
          "description": "Settings related to the value for conversion events associated with this conversion action.",
          "$ref": "GoogleAdsGoogleadsV24Resources_ConversionAction_ValueSettings"
        },
        "appId": {
          "type": "string",
          "description": "App ID for an app conversion action."
        },
        "ownerCustomer": {
          "description": "Output only. The resource name of the conversion action owner customer, or null if this is a system-defined conversion action.",
          "readOnly": true,
          "type": "string"
        },
        "id": {
          "type": "string",
          "description": "Output only. The ID of the conversion action.",
          "readOnly": true,
          "format": "int64"
        },
        "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,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AD_CALL",
            "CLICK_TO_CALL",
            "GOOGLE_PLAY_DOWNLOAD",
            "GOOGLE_PLAY_IN_APP_PURCHASE",
            "UPLOAD_CALLS",
            "UPLOAD_CLICKS",
            "WEBPAGE",
            "WEBSITE_CALL",
            "STORE_SALES_DIRECT_UPLOAD",
            "STORE_SALES",
            "FIREBASE_ANDROID_FIRST_OPEN",
            "FIREBASE_ANDROID_IN_APP_PURCHASE",
            "FIREBASE_ANDROID_CUSTOM",
            "FIREBASE_IOS_FIRST_OPEN",
            "FIREBASE_IOS_IN_APP_PURCHASE",
            "FIREBASE_IOS_CUSTOM",
            "THIRD_PARTY_APP_ANALYTICS_ANDROID_FIRST_OPEN",
            "THIRD_PARTY_APP_ANALYTICS_ANDROID_IN_APP_PURCHASE",
            "THIRD_PARTY_APP_ANALYTICS_ANDROID_CUSTOM",
            "THIRD_PARTY_APP_ANALYTICS_IOS_FIRST_OPEN",
            "THIRD_PARTY_APP_ANALYTICS_IOS_IN_APP_PURCHASE",
            "THIRD_PARTY_APP_ANALYTICS_IOS_CUSTOM",
            "ANDROID_APP_PRE_REGISTRATION",
            "ANDROID_INSTALLS_ALL_OTHER_APPS",
            "FLOODLIGHT_ACTION",
            "FLOODLIGHT_TRANSACTION",
            "GOOGLE_HOSTED",
            "LEAD_FORM_SUBMIT",
            "SALESFORCE",
            "SEARCH_ADS_360",
            "SMART_CAMPAIGN_AD_CLICKS_TO_CALL",
            "SMART_CAMPAIGN_MAP_CLICKS_TO_CALL",
            "SMART_CAMPAIGN_MAP_DIRECTIONS",
            "SMART_CAMPAIGN_TRACKED_CALLS",
            "STORE_VISITS",
            "WEBPAGE_CODELESS",
            "UNIVERSAL_ANALYTICS_GOAL",
            "UNIVERSAL_ANALYTICS_TRANSACTION",
            "GOOGLE_ANALYTICS_4_CUSTOM",
            "GOOGLE_ANALYTICS_4_PURCHASE",
            "GOOGLE_ANALYTICS_4_GENERATE_LEAD",
            "GOOGLE_ANALYTICS_4_QUALIFY_LEAD",
            "GOOGLE_ANALYTICS_4_CLOSE_CONVERT_LEAD",
            "FIREBASE_ANDROID_GENERATE_LEAD",
            "FIREBASE_ANDROID_QUALIFY_LEAD",
            "FIREBASE_ANDROID_CLOSE_CONVERT_LEAD",
            "FIREBASE_IOS_GENERATE_LEAD",
            "FIREBASE_IOS_QUALIFY_LEAD",
            "FIREBASE_IOS_CLOSE_CONVERT_LEAD"
          ],
          "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.",
            "Conversions that come from linked Google Analytics 4 generate lead conversions.",
            "Conversions that come from linked Google Analytics 4 qualify lead conversions.",
            "Conversions that come from linked Google Analytics 4 close convert lead conversions.",
            "Conversions that come from linked Firebase Android generate lead conversions.",
            "Conversions that come from linked Firebase Android qualify lead conversions.",
            "Conversions that come from linked Firebase Android close convert lead conversions.",
            "Conversions that come from linked Firebase iOS generate lead conversions.",
            "Conversions that come from linked Firebase iOS qualify lead conversions.",
            "Conversions that come from linked Firebase iOS close convert lead conversions."
          ]
        },
        "tagSnippets": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__TagSnippet"
          },
          "description": "Output only. The snippets used for tracking conversions.",
          "readOnly": true
        },
        "origin": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "WEBSITE",
            "GOOGLE_HOSTED",
            "APP",
            "CALL_FROM_ADS",
            "STORE",
            "YOUTUBE_HOSTED"
          ],
          "description": "Output only. The conversion origin of this conversion action.",
          "readOnly": true,
          "enumDescriptions": [
            "The conversion origin has not been specified.",
            "The conversion origin is not known in this version.",
            "Conversion that occurs when a user visits a website or takes an action there after viewing an ad.",
            "Conversions reported by an offline pipeline which collects local actions from Google-hosted pages (for example, Google Maps, Google Place Page, etc) and attributes them to relevant ad events.",
            "Conversion that occurs when a user performs an action through any app platforms.",
            "Conversion that occurs when a user makes a call from ads.",
            "Conversion that occurs when a user visits or makes a purchase at a physical store.",
            "Conversion that occurs on YouTube."
          ],
          "type": "string"
        },
        "includeInConversionsMetric": {
          "description": "Whether this conversion action should be included in the \"conversions\" metric.",
          "type": "boolean"
        },
        "name": {
          "type": "string",
          "description": "The name of the conversion action. This field is required and should not be empty when creating new conversion actions."
        },
        "viewThroughLookbackWindowDays": {
          "type": "string",
          "description": "The maximum number of days which may elapse between an impression and a conversion without an interaction.",
          "format": "int64"
        },
        "attributionModelSettings": {
          "description": "Settings related to this conversion action's attribution model.",
          "$ref": "GoogleAdsGoogleadsV24Resources_ConversionAction_AttributionModelSettings"
        },
        "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"
        },
        "category": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DEFAULT",
            "PAGE_VIEW",
            "PURCHASE",
            "SIGNUP",
            "DOWNLOAD",
            "ADD_TO_CART",
            "BEGIN_CHECKOUT",
            "SUBSCRIBE_PAID",
            "PHONE_CALL_LEAD",
            "IMPORTED_LEAD",
            "SUBMIT_LEAD_FORM",
            "BOOK_APPOINTMENT",
            "REQUEST_QUOTE",
            "GET_DIRECTIONS",
            "OUTBOUND_CLICK",
            "CONTACT",
            "ENGAGEMENT",
            "STORE_VISIT",
            "STORE_SALE",
            "QUALIFIED_LEAD",
            "CONVERTED_LEAD",
            "YOUTUBE_FOLLOW_ON_VIEWS"
          ],
          "description": "The category of conversions reported for this conversion action.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Default category.",
            "User visiting a page.",
            "Purchase, sales, or \"order placed\" event.",
            "Signup user action.",
            "Software download action (as for an app).",
            "The addition of items to a shopping cart or bag on an advertiser site.",
            "When someone enters the checkout flow on an advertiser site.",
            "The start of a paid subscription for a product or service.",
            "A call to indicate interest in an advertiser's offering.",
            "A lead conversion imported from an external source into Google Ads.",
            "A submission of a form on an advertiser site indicating business interest.",
            "A booking of an appointment with an advertiser's business.",
            "A quote or price estimate request.",
            "A search for an advertiser's business location with intention to visit.",
            "A click to an advertiser's partner's site.",
            "A call, SMS, email, chat or other type of contact to an advertiser.",
            "A website engagement event such as long site time or a Google Analytics (GA) Smart Goal. Intended to be used for GA, Firebase, GA Gold goal imports.",
            "A visit to a physical store location.",
            "A sale occurring in a physical store.",
            "A lead conversion imported from an external source into Google Ads, that has been further qualified by the advertiser (marketing/sales team). In the lead-to-sale journey, advertisers get leads, then act on them by reaching out to the consumer. If the consumer is interested and may end up buying their product, the advertiser marks such leads as \"qualified leads\".",
            "A lead conversion imported from an external source into Google Ads, that has further completed a chosen stage as defined by the lead gen advertiser.",
            "User watches an ad from a channel and later watches either the same video or a video from the same channel as the ad."
          ],
          "type": "string"
        },
        "countingType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ONE_PER_CLICK",
            "MANY_PER_CLICK"
          ],
          "description": "How to count conversion events for the conversion action.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Count only one conversion per click.",
            "Count all conversions per click."
          ]
        },
        "thirdPartyAppAnalyticsSettings": {
          "description": "Output only. Third Party App Analytics settings for third party conversion types.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_ConversionAction_ThirdPartyAppAnalyticsSettings"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__CustomerThirdPartyBrandLiftIntegrationPartner": {
      "id": "GoogleAdsGoogleadsV24Common__CustomerThirdPartyBrandLiftIntegrationPartner",
      "type": "object",
      "description": "Container for third party Brand Lift integration data for Customer.",
      "properties": {
        "brandLiftIntegrationPartner": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "KANTAR_MILLWARD_BROWN",
            "DYNATA",
            "INTAGE",
            "MACROMILL"
          ],
          "description": "Allowed Third Party integration partners for Brand Lift verification.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Kantar",
            "Dynata",
            "Intage",
            "Macromill"
          ],
          "type": "string"
        },
        "allowShareCost": {
          "type": "boolean",
          "description": "If true, cost data can be shared with this vendor."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__AddBatchJobOperationsRequest": {
      "description": "Request message for BatchJobService.AddBatchJobOperations.",
      "properties": {
        "sequenceToken": {
          "description": "A token used to enforce sequencing. The first AddBatchJobOperations request for a batch job should not set sequence_token. Subsequent requests must set sequence_token to the value of next_sequence_token received in the previous AddBatchJobOperations response.",
          "type": "string"
        },
        "mutateOperations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateOperation"
          },
          "description": "Required. The list of mutates being added. Operations can use negative integers as temp ids to signify dependencies between entities created in this batch job. For example, a customer with id = 1234 can create a campaign and an ad group in that same campaign by creating a campaign in the first operation with the resource name explicitly set to \"customers/1234/campaigns/-1\", and creating an ad group in the second operation with the campaign field also set to \"customers/1234/campaigns/-1\".",
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__AddBatchJobOperationsRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__UserInterestAttributeMetadata": {
      "description": "Metadata associated with a User Interest attribute.",
      "properties": {
        "userInterestDescription": {
          "description": "English language text description of the user interest category (200 characters max).",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__UserInterestAttributeMetadata",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__UserListDateRuleItemInfo": {
      "description": "A rule item composed of a date operation.",
      "properties": {
        "operator": {
          "type": "string",
          "description": "Date comparison operator. This field is required and must be populated when creating new date rule item.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Equals.",
            "Not Equals.",
            "Before.",
            "After."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EQUALS",
            "NOT_EQUALS",
            "BEFORE",
            "AFTER"
          ]
        },
        "value": {
          "type": "string",
          "description": "String representing date value to be compared with the rule variable. Supported date format is YYYY-MM-DD. Times are reported in the customer's time zone."
        },
        "offsetInDays": {
          "description": "The relative date value of the right hand side denoted by number of days offset from now. The value field will override this field when both are present.",
          "format": "int64",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__UserListDateRuleItemInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__ListPlannableProductsResponse": {
      "description": "A response with all available products.",
      "properties": {
        "productMetadata": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__ProductMetadata"
          },
          "description": "The list of products available for planning and related targeting metadata.",
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__ListPlannableProductsResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_CampaignVideoCampaignSettings_VideoAdSequence": {
      "id": "GoogleAdsGoogleadsV24Resources_CampaignVideoCampaignSettings_VideoAdSequence",
      "type": "object",
      "description": "Container for video ads sequencing definition.",
      "properties": {
        "minimumDuration": {
          "description": "Users are eligible to repeat sequence after this period. Defaults to WEEK if not specified.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Users are eligible to restart a sequence once they have completed the sequence and at least 7 days have passed since sequence start.",
            "Users are eligible to restart a sequence once at least 30 days have passed since sequence start. Users are eligible to start the sequence again even if they haven't completed the sequence."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "WEEK",
            "MONTH"
          ],
          "type": "string"
        },
        "steps": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Resources_CampaignVideoCampaignSettings_VideoAdSequenceStep"
          },
          "description": "The list of sequence steps and data associated with them."
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_Recommendation_ImproveDemandGenAdStrengthRecommendation": {
      "description": "The improve Demand Gen ad strength recommendation.",
      "properties": {
        "ad": {
          "description": "Output only. The resource name of the ad that can be improved.",
          "readOnly": true,
          "type": "string"
        },
        "demandGenAssetActionItems": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Output only. A list of recommendations to improve the ad strength.",
          "readOnly": true
        },
        "adStrength": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PENDING",
            "NO_ADS",
            "POOR",
            "AVERAGE",
            "GOOD",
            "EXCELLENT"
          ],
          "description": "Output only. The current ad strength.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The ad strength is currently pending.",
            "No ads could be generated.",
            "Poor strength.",
            "Average strength.",
            "Good strength.",
            "Excellent strength."
          ]
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_Recommendation_ImproveDemandGenAdStrengthRecommendation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__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.",
      "properties": {
        "key": {
          "description": "The key of a particular frequency cap. There can be no more than one frequency cap with the same key.",
          "$ref": "GoogleAdsGoogleadsV24Common__FrequencyCapKey"
        },
        "cap": {
          "type": "integer",
          "description": "Maximum number of events allowed during the time range by this cap.",
          "format": "int32"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__FrequencyCapEntry",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__OfflineUserDataJobOperation": {
      "description": "Operation to be made for the AddOfflineUserDataJobOperationsRequest.",
      "properties": {
        "removeAll": {
          "description": "Remove all previously provided data. This is only supported for Customer Match.",
          "type": "boolean"
        },
        "create": {
          "description": "Add the provided data to the transaction. Data cannot be retrieved after being uploaded.",
          "$ref": "GoogleAdsGoogleadsV24Common__UserData"
        },
        "remove": {
          "description": "Remove the provided data from the transaction. Data cannot be retrieved after being uploaded.",
          "$ref": "GoogleAdsGoogleadsV24Common__UserData"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__OfflineUserDataJobOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__UpdateYouTubeVideoUploadResponse": {
      "id": "GoogleAdsGoogleadsV24Services__UpdateYouTubeVideoUploadResponse",
      "type": "object",
      "description": "Response message for YouTubeVideoUploadService.UpdateYouTubeVideoUpload.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "The resource name of the successfully updated YouTube video upload."
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__CustomAudienceMember": {
      "description": "A member of custom audience. A member can be a KEYWORD, URL, PLACE_CATEGORY or APP. It can only be created or removed but not changed.",
      "properties": {
        "url": {
          "type": "string",
          "description": "An HTTP URL, protocol-included — at most 2048 characters, which includes contents users have interests in."
        },
        "keyword": {
          "description": "A keyword or keyword phrase — at most 10 words and 80 characters. Languages with double-width characters such as Chinese, Japanese, or Korean, are allowed 40 characters, which describes the user's interests or actions.",
          "type": "string"
        },
        "placeCategory": {
          "description": "A place type described by a place category users visit.",
          "format": "int64",
          "type": "string"
        },
        "memberType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "KEYWORD",
            "URL",
            "PLACE_CATEGORY",
            "APP"
          ],
          "description": "The type of custom audience member, KEYWORD, URL, PLACE_CATEGORY or APP.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Users whose interests or actions are described by a keyword.",
            "Users who have interests related to the website's content.",
            "Users who visit place types described by a place category.",
            "Users who have installed a mobile app."
          ],
          "type": "string"
        },
        "app": {
          "type": "string",
          "description": "A package name of Android apps which users installed such as com.google.example."
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__CustomAudienceMember",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__HotelAssetSuggestion": {
      "description": "Message containing the asset suggestions for a hotel.",
      "properties": {
        "finalUrl": {
          "description": "Suggested final URL for an AssetGroup.",
          "type": "string"
        },
        "textAssets": {
          "type": "array",
          "description": "Text assets such as headline, description, etc.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__HotelTextAsset"
          }
        },
        "status": {
          "description": "The status of the hotel asset suggestion.",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The hotel asset suggestion was successfully retrieved.",
            "A hotel look up returns nothing.",
            "A Google Places ID is invalid and cannot be decoded."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SUCCESS",
            "HOTEL_NOT_FOUND",
            "INVALID_PLACE_ID"
          ],
          "type": "string"
        },
        "placeId": {
          "description": "Google Places ID of the hotel.",
          "type": "string"
        },
        "hotelName": {
          "description": "Hotel name in requested language.",
          "type": "string"
        },
        "imageAssets": {
          "description": "Image assets such as landscape/portrait/square, etc.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__HotelImageAsset"
          },
          "type": "array"
        },
        "callToAction": {
          "type": "string",
          "description": "Call to action type.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The call to action type is learn more.",
            "The call to action type is get quote.",
            "The call to action type is apply now.",
            "The call to action type is sign up.",
            "The call to action type is contact us.",
            "The call to action type is subscribe.",
            "The call to action type is download.",
            "The call to action type is book now.",
            "The call to action type is shop now.",
            "The call to action type is buy now.",
            "The call to action type is donate now.",
            "The call to action type is order now.",
            "The call to action type is play now.",
            "The call to action type is see more.",
            "The call to action type is start now.",
            "The call to action type is visit site.",
            "The call to action type is watch now."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "LEARN_MORE",
            "GET_QUOTE",
            "APPLY_NOW",
            "SIGN_UP",
            "CONTACT_US",
            "SUBSCRIBE",
            "DOWNLOAD",
            "BOOK_NOW",
            "SHOP_NOW",
            "BUY_NOW",
            "DONATE_NOW",
            "ORDER_NOW",
            "PLAY_NOW",
            "SEE_MORE",
            "START_NOW",
            "VISIT_SITE",
            "WATCH_NOW"
          ]
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__HotelAssetSuggestion",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__SmartCampaignEndedDetails": {
      "description": "Details related to Smart campaigns that have ended.",
      "properties": {
        "endDateTime": {
          "type": "string",
          "description": "The timestamp of when the campaign ended. The timestamp is in the customer’s timezone and in “yyyy-MM-dd HH:mm:ss” format."
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__SmartCampaignEndedDetails",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__CustomerLabelOperation": {
      "description": "A single operation (create, remove) on a customer-label relationship.",
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new customer-label relationship.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CustomerLabel"
        },
        "remove": {
          "description": "Remove operation: A resource name for the customer-label relationship being removed, in this format: `customers/{customer_id}/customerLabels/{label_id}`",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__CustomerLabelOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateCustomerUserAccessInvitationResponse": {
      "id": "GoogleAdsGoogleadsV24Services__MutateCustomerUserAccessInvitationResponse",
      "type": "object",
      "description": "Response message for access invitation mutate.",
      "properties": {
        "result": {
          "description": "Result for the mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomerUserAccessInvitationResult"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__CreateProductLinkInvitationRequest": {
      "id": "GoogleAdsGoogleadsV24Services__CreateProductLinkInvitationRequest",
      "type": "object",
      "description": "Request message for ProductLinkInvitationService.CreateProductLinkInvitation.",
      "properties": {
        "productLinkInvitation": {
          "description": "Required. The product link invitation to be created.",
          "$ref": "GoogleAdsGoogleadsV24Resources__ProductLinkInvitation"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateCustomerAssetSetResult": {
      "description": "The result for the customer asset set mutate.",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        },
        "customerAssetSet": {
          "description": "The mutated customer asset set with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV24Resources__CustomerAssetSet"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateCustomerAssetSetResult",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateAssetsResponse": {
      "id": "GoogleAdsGoogleadsV24Services__MutateAssetsResponse",
      "type": "object",
      "description": "Response message for an asset mutate.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "type": "array",
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateAssetResult"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__AdGroupAdAssetView": {
      "id": "GoogleAdsGoogleadsV24Resources__AdGroupAdAssetView",
      "type": "object",
      "description": "Represents a link between an AdGroupAd and an Asset. This view provides insights into the performance of assets within specific ads. AdGroupAdAssetView supports the following ad types: * App Ads * Demand Gen campaigns * Responsive Search Ads It does not support Responsive Display Ads.",
      "properties": {
        "asset": {
          "type": "string",
          "description": "Output only. The asset which is linked to the ad group ad.",
          "readOnly": true
        },
        "enabled": {
          "type": "boolean",
          "description": "Output only. The status between the asset and the latest version of the ad. If true, the asset is linked to the latest version of the ad. If false, it means the link once existed but has been removed and is no longer present in the latest version of the ad.",
          "readOnly": true
        },
        "fieldType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE",
            "DESCRIPTION",
            "MANDATORY_AD_TEXT",
            "MARKETING_IMAGE",
            "MEDIA_BUNDLE",
            "YOUTUBE_VIDEO",
            "BOOK_ON_GOOGLE",
            "LEAD_FORM",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "LONG_HEADLINE",
            "BUSINESS_NAME",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "VIDEO",
            "CALL_TO_ACTION_SELECTION",
            "AD_IMAGE",
            "BUSINESS_LOGO",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "TALL_PORTRAIT_MARKETING_IMAGE",
            "RELATED_YOUTUBE_VIDEOS",
            "LANDING_PAGE_PREVIEW",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION"
          ],
          "description": "Output only. Role that the asset takes in the ad.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is linked for use as a headline.",
            "The asset is linked for use as a description.",
            "The asset is linked for use as mandatory ad text.",
            "The asset is linked for use as a marketing image.",
            "The asset is linked for use as a media bundle.",
            "The asset is linked for use as a YouTube video.",
            "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
            "The asset is linked for use as a Lead Form extension.",
            "The asset is linked for use as a Promotion extension.",
            "The asset is linked for use as a Callout extension.",
            "The asset is linked for use as a Structured Snippet extension.",
            "The asset is linked for use as a Sitelink.",
            "The asset is linked for use as a Mobile App extension.",
            "The asset is linked for use as a Hotel Callout extension.",
            "The asset is linked for use as a Call extension.",
            "The asset is linked for use as a Price extension.",
            "The asset is linked for use as a long headline.",
            "The asset is linked for use as a business name.",
            "The asset is linked for use as a square marketing image.",
            "The asset is linked for use as a portrait marketing image.",
            "The asset is linked for use as a logo.",
            "The asset is linked for use as a landscape logo.",
            "The asset is linked for use as a non YouTube logo.",
            "The asset is linked for use to select a call-to-action.",
            "The asset is linked for use to select an ad image.",
            "The asset is linked for use as a business logo.",
            "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
            "The asset is linked for use as a Demand Gen carousel card.",
            "The asset is linked for use as a Business Message.",
            "The asset is linked for use as a tall portrait marketing image.",
            "The asset is linked for use as related YouTube videos.",
            "The asset is linked for use as a landing page preview image.",
            "The asset is linked for use as a long description.",
            "The asset is linked for use as a call-to-action."
          ]
        },
        "performanceLabel": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PENDING",
            "LEARNING",
            "LOW",
            "GOOD",
            "BEST",
            "NOT_APPLICABLE"
          ],
          "description": "Output only. Performance of an asset linkage.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "This asset does not yet have any performance informantion. This may be because it is still under review.",
            "The asset has started getting impressions but the stats are not statistically significant enough to get an asset performance label.",
            "Worst performing assets.",
            "Good performing assets.",
            "Best performing assets.",
            "Performance label cannot be assigned to this asset. This may be because it's not used by asset based creatives."
          ],
          "type": "string"
        },
        "policySummary": {
          "description": "Output only. Policy information for the ad group ad asset.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources__AdGroupAdAssetPolicySummary"
        },
        "pinnedField": {
          "type": "string",
          "description": "Output only. Pinned field.",
          "readOnly": true,
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The asset is used in headline 1.",
            "The asset is used in headline 2.",
            "The asset is used in headline 3.",
            "The asset is used in description 1.",
            "The asset is used in description 2.",
            "The asset was used in a headline. Use this only if there is only one headline in the ad. Otherwise, use the HEADLINE_1, HEADLINE_2 or HEADLINE_3 enums",
            "The asset was used as a headline in portrait image.",
            "The asset was used in a long headline (used in MultiAssetResponsiveAd).",
            "The asset was used in a description. Use this only if there is only one description in the ad. Otherwise, use the DESCRIPTION_1 or DESCRIPTION_@ enums",
            "The asset was used as description in portrait image.",
            "The asset was used as business name in portrait image.",
            "The asset was used as business name.",
            "The asset was used as a marketing image.",
            "The asset was used as a marketing image in portrait image.",
            "The asset was used as a square marketing image.",
            "The asset was used as a portrait marketing image.",
            "The asset was used as a logo.",
            "The asset was used as a landscape logo.",
            "The asset was used as a call-to-action.",
            "The asset was used as a YouTube video.",
            "This asset is used as a sitelink.",
            "This asset is used as a call.",
            "This asset is used as a mobile app.",
            "This asset is used as a callout.",
            "This asset is used as a structured snippet.",
            "This asset is used as a price.",
            "This asset is used as a promotion.",
            "This asset is used as an image.",
            "The asset is used as a lead form.",
            "The asset is used as a business logo.",
            "The asset is used as a description prefix.",
            "A headline asset used as a sitelink in position 1.",
            "A headline asset used as a sitelink in position 2.",
            "A description line asset used as a sitelink in position 1.",
            "A description line asset used as a sitelink in position 2."
          ],
          "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"
          ]
        },
        "adGroupAd": {
          "description": "Output only. The ad group ad to which the asset is linked.",
          "readOnly": true,
          "type": "string"
        },
        "source": {
          "type": "string",
          "description": "Output only. Source of the ad group ad asset.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset or asset link is provided by advertiser.",
            "The asset or asset link is generated by Google."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADVERTISER",
            "AUTOMATICALLY_CREATED"
          ]
        },
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the ad group ad asset view. Ad group ad asset view resource names have the form (Before V4): `customers/{customer_id}/adGroupAdAssets/{AdGroupAdAsset.ad_group_id}~{AdGroupAdAsset.ad.ad_id}~{AdGroupAdAsset.asset_id}~{AdGroupAdAsset.field_type}` Ad group ad asset view resource names have the form (Beginning from V4): `customers/{customer_id}/adGroupAdAssetViews/{AdGroupAdAsset.ad_group_id}~{AdGroupAdAsset.ad_id}~{AdGroupAdAsset.asset_id}~{AdGroupAdAsset.field_type}`",
          "readOnly": true
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__CustomerUserAccessInvitation": {
      "description": "Represent an invitation to a new user on this customer account.",
      "properties": {
        "creationDateTime": {
          "type": "string",
          "description": "Output only. Time invitation was created. This field is read-only. The format is \"YYYY-MM-DD HH:MM:SS\". Examples: \"2018-03-05 09:15:00\" or \"2018-02-01 14:34:30\"",
          "readOnly": true
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. Name of the resource. Resource names have the form: `customers/{customer_id}/customerUserAccessInvitations/{invitation_id}`"
        },
        "invitationStatus": {
          "type": "string",
          "description": "Output only. Invitation status of the user.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The initial state of an invitation, before being acted upon by anyone.",
            "Invitation process was terminated by the email recipient. No new user was created.",
            "Invitation URLs expired without being acted upon. No new user can be created. Invitations expire 20 days after creation."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PENDING",
            "DECLINED",
            "EXPIRED"
          ]
        },
        "emailAddress": {
          "description": "Immutable. Email address the invitation was sent to. This can differ from the email address of the account that accepts the invite.",
          "type": "string"
        },
        "invitationId": {
          "type": "string",
          "description": "Output only. The ID of the invitation. This field is read-only.",
          "readOnly": true,
          "format": "int64"
        },
        "accessRole": {
          "type": "string",
          "description": "Immutable. Access role of the user.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Owns its account and can control the addition of other users.",
            "Can modify campaigns, but can't affect other users.",
            "Can view campaigns and account changes, but cannot make edits.",
            "Role for \\\"email only\\\" access. Represents an email recipient rather than a true User entity."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADMIN",
            "STANDARD",
            "READ_ONLY",
            "EMAIL_ONLY"
          ]
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__CustomerUserAccessInvitation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateUserListCustomerTypeResult": {
      "description": "The result for the user list customer type mutate.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateUserListCustomerTypeResult",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__AddBatchJobOperationsResponse": {
      "id": "GoogleAdsGoogleadsV24Services__AddBatchJobOperationsResponse",
      "type": "object",
      "description": "Response message for BatchJobService.AddBatchJobOperations.",
      "properties": {
        "totalOperations": {
          "description": "The total number of operations added so far for this batch job.",
          "format": "int64",
          "type": "string"
        },
        "nextSequenceToken": {
          "description": "The sequence token to be used when calling AddBatchJobOperations again if more operations need to be added. The next AddBatchJobOperations request must set the sequence_token field to the value of this field.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__GenerateKeywordHistoricalMetricsRequest": {
      "id": "GoogleAdsGoogleadsV24Services__GenerateKeywordHistoricalMetricsRequest",
      "type": "object",
      "description": "Request message for KeywordPlanIdeaService.GenerateKeywordHistoricalMetrics.",
      "properties": {
        "keywords": {
          "items": {
            "type": "string"
          },
          "description": "A list of keywords to get historical metrics. Not all inputs will be returned as a result of near-exact deduplication. For example, if stats for \"car\" and \"cars\" are requested, only \"car\" will be returned. A maximum of 10,000 keywords can be used.",
          "type": "array"
        },
        "language": {
          "description": "The resource name of the language to target. Each keyword belongs to some set of languages; a keyword is included if language is one of its languages. If not set, all keywords will be included.",
          "type": "string"
        },
        "aggregateMetrics": {
          "description": "The aggregate fields to include in response.",
          "$ref": "GoogleAdsGoogleadsV24Common__KeywordPlanAggregateMetrics"
        },
        "includeAdultKeywords": {
          "description": "If true, adult keywords will be included in response. The default value is false.",
          "type": "boolean"
        },
        "geoTargetConstants": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The resource names of the location to target. Maximum is 10. An empty list MAY be used to specify all targeting geos."
        },
        "keywordPlanNetwork": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "GOOGLE_SEARCH",
            "GOOGLE_SEARCH_AND_PARTNERS"
          ],
          "description": "Targeting network. If not set, Google Search And Partners Network will be used.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Google Search.",
            "Google Search + Search partners."
          ],
          "type": "string"
        },
        "historicalMetricsOptions": {
          "description": "The options for historical metrics data.",
          "$ref": "GoogleAdsGoogleadsV24Common__HistoricalMetricsOptions"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__PlannableLocation": {
      "id": "GoogleAdsGoogleadsV24Services__PlannableLocation",
      "type": "object",
      "description": "A plannable location: country, metro region, province, etc.",
      "properties": {
        "locationType": {
          "description": "The location's type. Location types correspond to target_type returned by searching location type in GoogleAdsService.Search/SearchStream.",
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "The unique location name in English."
        },
        "countryCode": {
          "type": "string",
          "description": "The ISO-3166-1 alpha-2 country code that is associated with the location."
        },
        "id": {
          "description": "The location identifier.",
          "type": "string"
        },
        "parentCountryId": {
          "type": "string",
          "description": "The parent country (not present if location is a country). If present, will always be a GeoTargetConstant ID. Additional information such as country name is provided by ReachPlanService.ListPlannableLocations or GoogleAdsService.Search/SearchStream.",
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_ConversionValueRule_ValueRuleItineraryTravelStartDay": {
      "description": "The days of the week on which an itinerary's travel can start.",
      "properties": {
        "saturday": {
          "type": "boolean",
          "description": "The travel can start on Saturday."
        },
        "tuesday": {
          "type": "boolean",
          "description": "The travel can start on Tuesday."
        },
        "wednesday": {
          "type": "boolean",
          "description": "The travel can start on Wednesday."
        },
        "friday": {
          "type": "boolean",
          "description": "The travel can start on Friday."
        },
        "monday": {
          "type": "boolean",
          "description": "The travel can start on Monday."
        },
        "thursday": {
          "description": "The travel can start on Thursday.",
          "type": "boolean"
        },
        "sunday": {
          "description": "The travel can start on Sunday.",
          "type": "boolean"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_ConversionValueRule_ValueRuleItineraryTravelStartDay",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateKeywordPlanAdGroupKeywordsRequest": {
      "id": "GoogleAdsGoogleadsV24Services__MutateKeywordPlanAdGroupKeywordsRequest",
      "type": "object",
      "description": "Request message for KeywordPlanAdGroupKeywordService.MutateKeywordPlanAdGroupKeywords.",
      "properties": {
        "operations": {
          "description": "Required. The list of operations to perform on individual Keyword Plan ad group keywords.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__KeywordPlanAdGroupKeywordOperation"
          },
          "type": "array"
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__RetailFilter": {
      "description": "Represents a Retail Filter.",
      "properties": {
        "expression": {
          "description": "An expression node. At this time, this can only be an OR node.",
          "$ref": "GoogleAdsGoogleadsV24Common__RetailFilterExpression"
        },
        "tag": {
          "description": "A tag node.",
          "$ref": "GoogleAdsGoogleadsV24Common__RetailTag"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__RetailFilter",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__CustomerAssetSet": {
      "description": "CustomerAssetSet is the linkage between a customer and an asset set. Adding a CustomerAssetSet links an asset set with a customer.",
      "properties": {
        "assetSet": {
          "type": "string",
          "description": "Immutable. The asset set which is linked to the customer."
        },
        "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"
        },
        "customer": {
          "description": "Immutable. The customer to which this asset set is linked.",
          "type": "string"
        },
        "status": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "description": "Output only. The status of the customer asset set asset. Read-only.",
          "readOnly": true,
          "enumDescriptions": [
            "The status has not been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The linkage between asset set and its container is enabled.",
            "The linkage between asset set and its container is removed."
          ],
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__CustomerAssetSet",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_Campaign_AudienceSetting": {
      "id": "GoogleAdsGoogleadsV24Resources_Campaign_AudienceSetting",
      "type": "object",
      "description": "Settings for the audience targeting.",
      "properties": {
        "useAudienceGrouped": {
          "type": "boolean",
          "description": "Immutable. If true, this campaign uses an Audience resource for audience targeting. If false, this campaign may use audience segment criteria instead."
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_AccessibleBiddingStrategy_TargetCpa": {
      "id": "GoogleAdsGoogleadsV24Resources_AccessibleBiddingStrategy_TargetCpa",
      "type": "object",
      "description": "An automated bid strategy that sets bids to help get as many conversions as possible at the target cost-per-acquisition (CPA) you set.",
      "properties": {
        "targetCpaMicros": {
          "type": "string",
          "description": "Output only. Average CPA target. This target should be greater than or equal to minimum billable unit based on the currency for the account.",
          "readOnly": true,
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__AssetGroupProductGroupView": {
      "description": "An asset group product group view.",
      "properties": {
        "assetGroup": {
          "type": "string",
          "description": "Output only. The asset group associated with the listing group filter.",
          "readOnly": true
        },
        "assetGroupListingGroupFilter": {
          "description": "Output only. The resource name of the asset group listing group filter.",
          "readOnly": true,
          "type": "string"
        },
        "resourceName": {
          "description": "Output only. The resource name of the asset group product group view. Asset group product group view resource names have the form: `customers/{customer_id}/assetGroupProductGroupViews/{asset_group_id}~{listing_group_filter_id}`",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__AssetGroupProductGroupView",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__FinalUrlExpansionAssetView": {
      "description": "FinalUrlExpansionAssetView Resource.",
      "properties": {
        "finalUrl": {
          "type": "string",
          "description": "Output only. Final URL of the FinalUrlExpansionAsset.",
          "readOnly": true
        },
        "campaign": {
          "type": "string",
          "description": "Output only. Campaign in which the asset served.",
          "readOnly": true
        },
        "status": {
          "description": "Output only. Status of the FinalUrlExpansionAsset.",
          "readOnly": true,
          "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"
          ],
          "type": "string"
        },
        "resourceName": {
          "description": "Output only. The resource name of the FinalUrlExpansionAsset.",
          "readOnly": true,
          "type": "string"
        },
        "fieldType": {
          "type": "string",
          "description": "Output only. The field type of the asset.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is linked for use as a headline.",
            "The asset is linked for use as a description.",
            "The asset is linked for use as mandatory ad text.",
            "The asset is linked for use as a marketing image.",
            "The asset is linked for use as a media bundle.",
            "The asset is linked for use as a YouTube video.",
            "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
            "The asset is linked for use as a Lead Form extension.",
            "The asset is linked for use as a Promotion extension.",
            "The asset is linked for use as a Callout extension.",
            "The asset is linked for use as a Structured Snippet extension.",
            "The asset is linked for use as a Sitelink.",
            "The asset is linked for use as a Mobile App extension.",
            "The asset is linked for use as a Hotel Callout extension.",
            "The asset is linked for use as a Call extension.",
            "The asset is linked for use as a Price extension.",
            "The asset is linked for use as a long headline.",
            "The asset is linked for use as a business name.",
            "The asset is linked for use as a square marketing image.",
            "The asset is linked for use as a portrait marketing image.",
            "The asset is linked for use as a logo.",
            "The asset is linked for use as a landscape logo.",
            "The asset is linked for use as a non YouTube logo.",
            "The asset is linked for use to select a call-to-action.",
            "The asset is linked for use to select an ad image.",
            "The asset is linked for use as a business logo.",
            "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
            "The asset is linked for use as a Demand Gen carousel card.",
            "The asset is linked for use as a Business Message.",
            "The asset is linked for use as a tall portrait marketing image.",
            "The asset is linked for use as related YouTube videos.",
            "The asset is linked for use as a landing page preview image.",
            "The asset is linked for use as a long description.",
            "The asset is linked for use as a call-to-action."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE",
            "DESCRIPTION",
            "MANDATORY_AD_TEXT",
            "MARKETING_IMAGE",
            "MEDIA_BUNDLE",
            "YOUTUBE_VIDEO",
            "BOOK_ON_GOOGLE",
            "LEAD_FORM",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "LONG_HEADLINE",
            "BUSINESS_NAME",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "VIDEO",
            "CALL_TO_ACTION_SELECTION",
            "AD_IMAGE",
            "BUSINESS_LOGO",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "TALL_PORTRAIT_MARKETING_IMAGE",
            "RELATED_YOUTUBE_VIDEOS",
            "LANDING_PAGE_PREVIEW",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION"
          ]
        },
        "asset": {
          "description": "Output only. The ID of the asset.",
          "readOnly": true,
          "type": "string"
        },
        "assetGroup": {
          "description": "Output only. Asset Group in which FinalUrlExpansionAsset served.",
          "readOnly": true,
          "type": "string"
        },
        "adGroup": {
          "description": "Output only. Ad Group in which FinalUrlExpansionAsset served.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__FinalUrlExpansionAssetView",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__AudienceCompositionAttribute": {
      "id": "GoogleAdsGoogleadsV24Services__AudienceCompositionAttribute",
      "type": "object",
      "description": "An audience attribute with metadata and metrics.",
      "properties": {
        "attributeMetadata": {
          "description": "The attribute with its metadata.",
          "$ref": "GoogleAdsGoogleadsV24Common__AudienceInsightsAttributeMetadata"
        },
        "metrics": {
          "description": "Share and index metrics for the attribute.",
          "$ref": "GoogleAdsGoogleadsV24Services__AudienceCompositionMetrics"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__ConversionAdjustmentResult": {
      "id": "GoogleAdsGoogleadsV24Services__ConversionAdjustmentResult",
      "type": "object",
      "description": "Information identifying a successfully processed ConversionAdjustment.",
      "properties": {
        "adjustmentDateTime": {
          "type": "string",
          "description": "The date time at which the adjustment occurred. The format is \"yyyy-mm-dd hh:mm:ss+|-hh:mm\", for example, \"2019-01-01 12:32:45-08:00\"."
        },
        "conversionAction": {
          "description": "Resource name of the conversion action associated with this conversion adjustment.",
          "type": "string"
        },
        "gclidDateTimePair": {
          "description": "The gclid and conversion date time of the conversion.",
          "$ref": "GoogleAdsGoogleadsV24Services__GclidDateTimePair"
        },
        "adjustmentType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "RETRACTION",
            "RESTATEMENT",
            "ENHANCEMENT"
          ],
          "description": "The adjustment type.",
          "enumDescriptions": [
            "Not specified.",
            "Represents value unknown in this version.",
            "Negates a conversion so that its total value and count are both zero.",
            "Changes the value of a conversion.",
            "Supplements an existing conversion with provided user identifiers and user agent, which can be used by Google to enhance the conversion count."
          ],
          "type": "string"
        },
        "orderId": {
          "type": "string",
          "description": "The order ID of the conversion to be adjusted."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateCustomerAssetSetsRequest": {
      "id": "GoogleAdsGoogleadsV24Services__MutateCustomerAssetSetsRequest",
      "type": "object",
      "description": "Request message for CustomerAssetSetService.MutateCustomerAssetSets.",
      "properties": {
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__CustomerAssetSetOperation"
          },
          "description": "Required. The list of operations to perform on individual customer asset sets."
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "responseContentType": {
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__GenerateKeywordForecastMetricsRequest": {
      "id": "GoogleAdsGoogleadsV24Services__GenerateKeywordForecastMetricsRequest",
      "type": "object",
      "description": "Request message for KeywordPlanIdeaService.GenerateKeywordForecastMetrics.",
      "properties": {
        "currencyCode": {
          "type": "string",
          "description": "The currency used for exchange rate conversion. By default, the account currency of the customer is used. Set this field only if the currency is different from the account currency. The list of valid currency codes can be found at https://developers.google.com/google-ads/api/data/codes-formats#currency-codes."
        },
        "forecastPeriod": {
          "description": "The date range for the forecast. The start date must be in the future and end date must be within 1 year from today. The reference timezone used is the one of the Google Ads account belonging to the customer. If not set, a default date range from next Sunday to the following Saturday will be used.",
          "$ref": "GoogleAdsGoogleadsV24Common__DateRange"
        },
        "campaign": {
          "description": "Required. The campaign used in the forecast.",
          "$ref": "GoogleAdsGoogleadsV24Services__CampaignToForecast"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__FinalAppUrl": {
      "description": "A URL for deep linking into an app for the given operating system.",
      "properties": {
        "osType": {
          "description": "The operating system targeted by this URL. Required.",
          "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"
          ],
          "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": "GoogleAdsGoogleadsV24Common__FinalAppUrl",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__Segments": {
      "id": "GoogleAdsGoogleadsV24Common__Segments",
      "type": "object",
      "description": "Segment only fields.",
      "properties": {
        "productCategoryLevel4": {
          "type": "string",
          "description": "Category (level 4) of the product."
        },
        "adGroup": {
          "type": "string",
          "description": "Resource name of the ad group."
        },
        "geoTargetProvince": {
          "type": "string",
          "description": "Resource name of the geo target constant that represents a province."
        },
        "externalActivityId": {
          "type": "string",
          "description": "Advertiser supplied activity ID."
        },
        "verticalAdsVertical": {
          "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.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Hotels travel vertical.",
            "Vacation rentals travel vertical.",
            "Rental cars travel vertical.",
            "Events travel vertical.",
            "Things to do travel vertical.",
            "Flights travel vertical."
          ],
          "type": "string"
        },
        "conversionOrAdjustmentLagBucket": {
          "description": "An enum value representing the number of days between the impression and the conversion or between the impression and adjustments to the conversion.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Conversion lag bucket from 0 to 1 day. 0 day is included, 1 day is not.",
            "Conversion lag bucket from 1 to 2 days. 1 day is included, 2 days is not.",
            "Conversion lag bucket from 2 to 3 days. 2 days is included, 3 days is not.",
            "Conversion lag bucket from 3 to 4 days. 3 days is included, 4 days is not.",
            "Conversion lag bucket from 4 to 5 days. 4 days is included, 5 days is not.",
            "Conversion lag bucket from 5 to 6 days. 5 days is included, 6 days is not.",
            "Conversion lag bucket from 6 to 7 days. 6 days is included, 7 days is not.",
            "Conversion lag bucket from 7 to 8 days. 7 days is included, 8 days is not.",
            "Conversion lag bucket from 8 to 9 days. 8 days is included, 9 days is not.",
            "Conversion lag bucket from 9 to 10 days. 9 days is included, 10 days is not.",
            "Conversion lag bucket from 10 to 11 days. 10 days is included, 11 days is not.",
            "Conversion lag bucket from 11 to 12 days. 11 days is included, 12 days is not.",
            "Conversion lag bucket from 12 to 13 days. 12 days is included, 13 days is not.",
            "Conversion lag bucket from 13 to 14 days. 13 days is included, 14 days is not.",
            "Conversion lag bucket from 14 to 21 days. 14 days is included, 21 days is not.",
            "Conversion lag bucket from 21 to 30 days. 21 days is included, 30 days is not.",
            "Conversion lag bucket from 30 to 45 days. 30 days is included, 45 days is not.",
            "Conversion lag bucket from 45 to 60 days. 45 days is included, 60 days is not.",
            "Conversion lag bucket from 60 to 90 days. 60 days is included, 90 days is not.",
            "Conversion adjustment lag bucket from 0 to 1 day. 0 day is included, 1 day is not.",
            "Conversion adjustment lag bucket from 1 to 2 days. 1 day is included, 2 days is not.",
            "Conversion adjustment lag bucket from 2 to 3 days. 2 days is included, 3 days is not.",
            "Conversion adjustment lag bucket from 3 to 4 days. 3 days is included, 4 days is not.",
            "Conversion adjustment lag bucket from 4 to 5 days. 4 days is included, 5 days is not.",
            "Conversion adjustment lag bucket from 5 to 6 days. 5 days is included, 6 days is not.",
            "Conversion adjustment lag bucket from 6 to 7 days. 6 days is included, 7 days is not.",
            "Conversion adjustment lag bucket from 7 to 8 days. 7 days is included, 8 days is not.",
            "Conversion adjustment lag bucket from 8 to 9 days. 8 days is included, 9 days is not.",
            "Conversion adjustment lag bucket from 9 to 10 days. 9 days is included, 10 days is not.",
            "Conversion adjustment lag bucket from 10 to 11 days. 10 days is included, 11 days is not.",
            "Conversion adjustment lag bucket from 11 to 12 days. 11 days is included, 12 days is not.",
            "Conversion adjustment lag bucket from 12 to 13 days. 12 days is included, 13 days is not.",
            "Conversion adjustment lag bucket from 13 to 14 days. 13 days is included, 14 days is not.",
            "Conversion adjustment lag bucket from 14 to 21 days. 14 days is included, 21 days is not.",
            "Conversion adjustment lag bucket from 21 to 30 days. 21 days is included, 30 days is not.",
            "Conversion adjustment lag bucket from 30 to 45 days. 30 days is included, 45 days is not.",
            "Conversion adjustment lag bucket from 45 to 60 days. 45 days is included, 60 days is not.",
            "Conversion adjustment lag bucket from 60 to 90 days. 60 days is included, 90 days is not.",
            "Conversion adjustment lag bucket from 90 to 145 days. 90 days is included, 145 days is not.",
            "Conversion lag bucket UNKNOWN. This is for dates before conversion lag bucket was available in Google Ads.",
            "Conversion adjustment lag bucket UNKNOWN. This is for dates before conversion adjustment lag bucket was available in Google Ads."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CONVERSION_LESS_THAN_ONE_DAY",
            "CONVERSION_ONE_TO_TWO_DAYS",
            "CONVERSION_TWO_TO_THREE_DAYS",
            "CONVERSION_THREE_TO_FOUR_DAYS",
            "CONVERSION_FOUR_TO_FIVE_DAYS",
            "CONVERSION_FIVE_TO_SIX_DAYS",
            "CONVERSION_SIX_TO_SEVEN_DAYS",
            "CONVERSION_SEVEN_TO_EIGHT_DAYS",
            "CONVERSION_EIGHT_TO_NINE_DAYS",
            "CONVERSION_NINE_TO_TEN_DAYS",
            "CONVERSION_TEN_TO_ELEVEN_DAYS",
            "CONVERSION_ELEVEN_TO_TWELVE_DAYS",
            "CONVERSION_TWELVE_TO_THIRTEEN_DAYS",
            "CONVERSION_THIRTEEN_TO_FOURTEEN_DAYS",
            "CONVERSION_FOURTEEN_TO_TWENTY_ONE_DAYS",
            "CONVERSION_TWENTY_ONE_TO_THIRTY_DAYS",
            "CONVERSION_THIRTY_TO_FORTY_FIVE_DAYS",
            "CONVERSION_FORTY_FIVE_TO_SIXTY_DAYS",
            "CONVERSION_SIXTY_TO_NINETY_DAYS",
            "ADJUSTMENT_LESS_THAN_ONE_DAY",
            "ADJUSTMENT_ONE_TO_TWO_DAYS",
            "ADJUSTMENT_TWO_TO_THREE_DAYS",
            "ADJUSTMENT_THREE_TO_FOUR_DAYS",
            "ADJUSTMENT_FOUR_TO_FIVE_DAYS",
            "ADJUSTMENT_FIVE_TO_SIX_DAYS",
            "ADJUSTMENT_SIX_TO_SEVEN_DAYS",
            "ADJUSTMENT_SEVEN_TO_EIGHT_DAYS",
            "ADJUSTMENT_EIGHT_TO_NINE_DAYS",
            "ADJUSTMENT_NINE_TO_TEN_DAYS",
            "ADJUSTMENT_TEN_TO_ELEVEN_DAYS",
            "ADJUSTMENT_ELEVEN_TO_TWELVE_DAYS",
            "ADJUSTMENT_TWELVE_TO_THIRTEEN_DAYS",
            "ADJUSTMENT_THIRTEEN_TO_FOURTEEN_DAYS",
            "ADJUSTMENT_FOURTEEN_TO_TWENTY_ONE_DAYS",
            "ADJUSTMENT_TWENTY_ONE_TO_THIRTY_DAYS",
            "ADJUSTMENT_THIRTY_TO_FORTY_FIVE_DAYS",
            "ADJUSTMENT_FORTY_FIVE_TO_SIXTY_DAYS",
            "ADJUSTMENT_SIXTY_TO_NINETY_DAYS",
            "ADJUSTMENT_NINETY_TO_ONE_HUNDRED_AND_FORTY_FIVE_DAYS",
            "CONVERSION_UNKNOWN",
            "ADJUSTMENT_UNKNOWN"
          ],
          "type": "string"
        },
        "productBrand": {
          "type": "string",
          "description": "Brand of the product."
        },
        "campaign": {
          "description": "Resource name of the campaign.",
          "type": "string"
        },
        "conversionAdjustment": {
          "description": "This segments your conversion columns by the original conversion and conversion value versus the delta if conversions were adjusted. False row has the data as originally stated; While true row has the delta between data now and the data as originally stated. Summing the two together results post-adjustment data.",
          "type": "boolean"
        },
        "productSoldBrand": {
          "type": "string",
          "description": "Brand of the product sold."
        },
        "geoTargetCountry": {
          "type": "string",
          "description": "Resource name of the geo target constant that represents a country."
        },
        "assetGroup": {
          "type": "string",
          "description": "Resource name of the asset group."
        },
        "hotelClass": {
          "type": "integer",
          "description": "Hotel class.",
          "format": "int32"
        },
        "verticalAdsListingRegion": {
          "description": "The region where the vertical ads listing is located.",
          "type": "string"
        },
        "productTypeL3": {
          "type": "string",
          "description": "Type (level 3) of the product."
        },
        "adjustedAgeRange": {
          "type": "string",
          "description": "Adjusted age range. This is the age range of the user after applying modeling to get more accurate age and gender information. Currently, both adjusted_age_range and adjusted_gender need to be selected together to get valid reach stats. These segmentations are only available for allowlisted customers.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Between 18 and 24 years old.",
            "Between 25 and 34 years old.",
            "Between 35 and 44 years old.",
            "Between 45 and 54 years old.",
            "Between 55 and 64 years old.",
            "65 years old and beyond.",
            "Undetermined age range."
          ],
          "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"
          ]
        },
        "conversionActionCategory": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DEFAULT",
            "PAGE_VIEW",
            "PURCHASE",
            "SIGNUP",
            "DOWNLOAD",
            "ADD_TO_CART",
            "BEGIN_CHECKOUT",
            "SUBSCRIBE_PAID",
            "PHONE_CALL_LEAD",
            "IMPORTED_LEAD",
            "SUBMIT_LEAD_FORM",
            "BOOK_APPOINTMENT",
            "REQUEST_QUOTE",
            "GET_DIRECTIONS",
            "OUTBOUND_CLICK",
            "CONTACT",
            "ENGAGEMENT",
            "STORE_VISIT",
            "STORE_SALE",
            "QUALIFIED_LEAD",
            "CONVERTED_LEAD",
            "YOUTUBE_FOLLOW_ON_VIEWS"
          ],
          "description": "Conversion action category.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Default category.",
            "User visiting a page.",
            "Purchase, sales, or \"order placed\" event.",
            "Signup user action.",
            "Software download action (as for an app).",
            "The addition of items to a shopping cart or bag on an advertiser site.",
            "When someone enters the checkout flow on an advertiser site.",
            "The start of a paid subscription for a product or service.",
            "A call to indicate interest in an advertiser's offering.",
            "A lead conversion imported from an external source into Google Ads.",
            "A submission of a form on an advertiser site indicating business interest.",
            "A booking of an appointment with an advertiser's business.",
            "A quote or price estimate request.",
            "A search for an advertiser's business location with intention to visit.",
            "A click to an advertiser's partner's site.",
            "A call, SMS, email, chat or other type of contact to an advertiser.",
            "A website engagement event such as long site time or a Google Analytics (GA) Smart Goal. Intended to be used for GA, Firebase, GA Gold goal imports.",
            "A visit to a physical store location.",
            "A sale occurring in a physical store.",
            "A lead conversion imported from an external source into Google Ads, that has been further qualified by the advertiser (marketing/sales team). In the lead-to-sale journey, advertisers get leads, then act on them by reaching out to the consumer. If the consumer is interested and may end up buying their product, the advertiser marks such leads as \"qualified leads\".",
            "A lead conversion imported from an external source into Google Ads, that has further completed a chosen stage as defined by the lead gen advertiser.",
            "User watches an ad from a channel and later watches either the same video or a video from the same channel as the ad."
          ]
        },
        "productSoldCategoryLevel1": {
          "description": "Category (level 1) of the product sold.",
          "type": "string"
        },
        "week": {
          "type": "string",
          "description": "Week as defined as Monday through Sunday, and represented by the date of Monday. Formatted as yyyy-MM-dd."
        },
        "searchTerm": {
          "type": "string",
          "description": "A search term."
        },
        "productSoldCategoryLevel3": {
          "type": "string",
          "description": "Category (level 3) of the product sold."
        },
        "skAdNetworkFineConversionValue": {
          "description": "iOS Store Kit Ad Network conversion value. Null value means this segment is not applicable, for example, non-iOS campaign.",
          "format": "int64",
          "type": "string"
        },
        "productSoldTypeL4": {
          "type": "string",
          "description": "Type (level 4) of the product sold."
        },
        "verticalAdsListingCountry": {
          "type": "string",
          "description": "The country where the vertical ads listing is located."
        },
        "conversionAction": {
          "type": "string",
          "description": "Resource name of the conversion action."
        },
        "searchTermMatchType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BROAD",
            "EXACT",
            "PHRASE",
            "NEAR_EXACT",
            "NEAR_PHRASE",
            "AI_MAX",
            "PERFORMANCE_MAX"
          ],
          "description": "Match type of the keyword that triggered the ad. This segment is for use with keyword_view. For other resources, use match_type. While match_type is filtered to Broad, Exact, Phrase and Ai Max, search_term_match_type includes variants like Near Exact and Near Phrase.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Broad match.",
            "Exact match.",
            "Phrase match.",
            "Exact match (close variant).",
            "Phrase match (close variant).",
            "Match type for AI Max Search.",
            "Match type for Performance Max campaigns."
          ],
          "type": "string"
        },
        "verticalAdsPartnerAccount": {
          "type": "string",
          "description": "A specific partner account within a Partner Center (for example, Hotel Center) that supplies inventory feed data for Vertical Ads.",
          "format": "int64"
        },
        "adjustedGender": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MALE",
            "FEMALE",
            "UNDETERMINED"
          ],
          "description": "Adjusted gender. This is the gender of the user after applying modeling to get more accurate age and gender information. Currently, both adjusted_age_range and adjusted_gender need to be selected together to get valid reach stats. These segmentations are only available for allowlisted customers.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Male.",
            "Female.",
            "Undetermined gender."
          ],
          "type": "string"
        },
        "geoTargetPostalCode": {
          "description": "Resource name of the geo target constant that represents a postal code.",
          "type": "string"
        },
        "auctionInsightDomain": {
          "type": "string",
          "description": "Domain (visible URL) of a participant in the Auction Insights report."
        },
        "productSoldCustomAttribute0": {
          "description": "Custom attribute 0 of the product sold.",
          "type": "string"
        },
        "hotelRateType": {
          "description": "Hotel rate type.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Rate type information is unavailable.",
            "Rates available to everyone.",
            "A membership program rate is available and satisfies basic requirements like having a public rate available. UI treatment will strikethrough the public rate and indicate that a discount is available to the user. For more on Qualified Rates, visit https://developers.google.com/hotels/hotel-ads/dev-guide/qualified-rates",
            "Rates available to users that satisfy some eligibility criteria, for example, all signed-in users, 20% of mobile users, all mobile users in Canada, etc."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "UNAVAILABLE",
            "PUBLIC_RATE",
            "QUALIFIED_RATE",
            "PRIVATE_RATE"
          ],
          "type": "string"
        },
        "productSoldItemId": {
          "type": "string",
          "description": "Item ID of the product sold."
        },
        "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"
        },
        "geoTargetCity": {
          "description": "Resource name of the geo target constant that represents a city.",
          "type": "string"
        },
        "productTypeL2": {
          "type": "string",
          "description": "Type (level 2) of the product."
        },
        "activityCity": {
          "type": "string",
          "description": "The city where the travel activity is available."
        },
        "skAdNetworkSourceType": {
          "type": "string",
          "description": "The source type where the ad that drove the iOS Store Kit Ad Network install was shown. Null value means this segment is not applicable, for example, non-iOS campaign, or neither source domain nor source app were present in any postbacks sent by Apple.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "The source app ID or source domain was not present in the postback or we do not have this data for other reasons.",
            "The ad was shown on a webpage.",
            "The ad was shown on an app."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "UNAVAILABLE",
            "WEBSITE",
            "MOBILE_APPLICATION"
          ]
        },
        "webpage": {
          "type": "string",
          "description": "Resource name of the ad group criterion that represents webpage criterion."
        },
        "skAdNetworkRedistributedFineConversionValue": {
          "description": "iOS Store Kit Ad Network redistributed fine conversion value. Google uses modeling on observed conversion values(obtained from Apple) to calculate conversions from SKAN postbacks where NULLs are returned. This column represents the sum of the modeled conversion values and the observed conversion values. See https://support.google.com/google-ads/answer/14892597 to lean more.",
          "format": "int64",
          "type": "string"
        },
        "geoTargetState": {
          "description": "Resource name of the geo target constant that represents a state.",
          "type": "string"
        },
        "hotelDateSelectionType": {
          "type": "string",
          "description": "Hotel date selection type.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Dates selected by default.",
            "Dates selected by the user."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DEFAULT_SELECTION",
            "USER_SELECTED"
          ]
        },
        "adNetworkType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SEARCH",
            "SEARCH_PARTNERS",
            "CONTENT",
            "MIXED",
            "YOUTUBE",
            "GOOGLE_TV",
            "GOOGLE_OWNED_CHANNELS",
            "GMAIL",
            "DISCOVER",
            "MAPS"
          ],
          "description": "Ad network type.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Google search.",
            "Search partners.",
            "Display Network.",
            "Cross-network.",
            "YouTube",
            "Google TV",
            "This network is used for Google Owned channels such as Discover feed, Gmail, YouTube. Starting with V20, Demand Gen Stats will be attributed to more granular network types such as GMAIL, DISCOVER, MAPS, YOUTUBE; this value will only be used for historical data.",
            "Gmail",
            "Discover Feed",
            "Maps"
          ]
        },
        "productFeedLabel": {
          "type": "string",
          "description": "Feed label of the product."
        },
        "recommendationType": {
          "description": "Recommendation type.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Provides optimized budget recommendations for campaigns.",
            "Keyword recommendation.",
            "Recommendation to add a new text ad.",
            "Recommendation to update a campaign to use a Target CPA bidding strategy.",
            "Recommendation to update a campaign to use the Maximize Conversions bidding strategy.",
            "Recommendation to enable Enhanced Cost Per Click for a campaign.",
            "Recommendation to start showing your campaign's ads on Google Search Partners Websites.",
            "Recommendation to update a campaign to use a Maximize Clicks bidding strategy.",
            "Recommendation to start using the \"Optimize\" ad rotation setting for the given ad group.",
            "Recommendation to change an existing keyword from one match type to a broader match type.",
            "Recommendation to move unused budget from one budget to a constrained budget.",
            "Budget recommendation for campaigns that are expected to become budget-constrained in the future (as opposed to the CAMPAIGN_BUDGET recommendation, which applies to campaigns that are currently budget-constrained).",
            "Recommendation to update a campaign to use a Target ROAS bidding strategy.",
            "Recommendation to add a new responsive search ad.",
            "Budget recommendation for campaigns whose ROI is predicted to increase with a budget adjustment.",
            "Recommendation to add broad match versions of keywords for fully automated conversion-based bidding campaigns.",
            "Recommendation to add new responsive search ad assets.",
            "Recommendation to upgrade a Smart Shopping campaign to a Performance Max campaign.",
            "Recommendation to improve strength of responsive search ad.",
            "Recommendation to update a campaign to use Display Expansion.",
            "Recommendation to upgrade a Local campaign to a Performance Max campaign.",
            "Recommendation to raise target CPA when it is too low and there are very few or no conversions. It is applied asynchronously and can take minutes depending on the number of ad groups there are in the related campaign.",
            "Recommendation to raise the budget in advance of a seasonal event that is forecasted to increase traffic, and change bidding strategy from maximize conversion value to target ROAS.",
            "Recommendation to add callout assets to campaign or customer level.",
            "Recommendation to add sitelink assets to campaign or customer level.",
            "Recommendation to add call assets to campaign or customer level.",
            "Recommendation to add the age group attribute to offers that are demoted because of a missing age group.",
            "Recommendation to add a color to offers that are demoted because of a missing color.",
            "Recommendation to add a gender to offers that are demoted because of a missing gender.",
            "Recommendation to add a GTIN (Global Trade Item Number) to offers that are demoted because of a missing GTIN.",
            "Recommendation to add more identifiers to offers that are demoted because of missing identifiers.",
            "Recommendation to add the size to offers that are demoted because of a missing size.",
            "Recommendation informing a customer about a campaign that cannot serve because no products are being targeted.",
            "The shopping recommendation informing a customer about campaign with a high percentage of disapproved products.",
            "Recommendation to create a catch-all campaign that targets all offers.",
            "Recommendation to fix Merchant Center account suspension issues.",
            "Recommendation to fix Merchant Center account suspension warning issues.",
            "Recommendation to migrate offers targeted by Regular Shopping Campaigns to existing Performance Max campaigns.",
            "Recommendation to enable dynamic image extensions on the account, allowing Google to find the best images from ad landing pages and complement text ads.",
            "Recommendation to raise Target CPA based on Google predictions modeled from past conversions. It is applied asynchronously and can take minutes depending on the number of ad groups there are in the related campaign.",
            "Recommendation to lower Target ROAS.",
            "Recommendation to opt into Performance Max campaigns.",
            "Recommendation to improve the asset group strength of a Performance Max campaign to an \"Excellent\" rating.",
            "Recommendation to migrate Dynamic Search Ads to Performance Max campaigns.",
            "Recommendation to set a target CPA for campaigns that do not have one specified, in advance of a seasonal event that is forecasted to increase traffic.",
            "Recommendation to set a target CPA for campaigns that do not have one specified.",
            "Recommendation to set a target ROAS for campaigns that do not have one specified.",
            "Recommendation to update a campaign to use the Maximize Conversion Value bidding strategy.",
            "Recommendation to deploy Google Tag on more pages.",
            "Recommendation to turn on Final URL expansion for your Performance Max campaigns.",
            "Recommendation to update a customer list that hasn't been updated in the last 90 days.",
            "Recommendation to create a custom audience.",
            "Recommendation to add lead form assets to campaign or customer level.",
            "Recommendation to improve the strength of ads in Demand Gen campaigns."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CAMPAIGN_BUDGET",
            "KEYWORD",
            "TEXT_AD",
            "TARGET_CPA_OPT_IN",
            "MAXIMIZE_CONVERSIONS_OPT_IN",
            "ENHANCED_CPC_OPT_IN",
            "SEARCH_PARTNERS_OPT_IN",
            "MAXIMIZE_CLICKS_OPT_IN",
            "OPTIMIZE_AD_ROTATION",
            "KEYWORD_MATCH_TYPE",
            "MOVE_UNUSED_BUDGET",
            "FORECASTING_CAMPAIGN_BUDGET",
            "TARGET_ROAS_OPT_IN",
            "RESPONSIVE_SEARCH_AD",
            "MARGINAL_ROI_CAMPAIGN_BUDGET",
            "USE_BROAD_MATCH_KEYWORD",
            "RESPONSIVE_SEARCH_AD_ASSET",
            "UPGRADE_SMART_SHOPPING_CAMPAIGN_TO_PERFORMANCE_MAX",
            "RESPONSIVE_SEARCH_AD_IMPROVE_AD_STRENGTH",
            "DISPLAY_EXPANSION_OPT_IN",
            "UPGRADE_LOCAL_CAMPAIGN_TO_PERFORMANCE_MAX",
            "RAISE_TARGET_CPA_BID_TOO_LOW",
            "FORECASTING_SET_TARGET_ROAS",
            "CALLOUT_ASSET",
            "SITELINK_ASSET",
            "CALL_ASSET",
            "SHOPPING_ADD_AGE_GROUP",
            "SHOPPING_ADD_COLOR",
            "SHOPPING_ADD_GENDER",
            "SHOPPING_ADD_GTIN",
            "SHOPPING_ADD_MORE_IDENTIFIERS",
            "SHOPPING_ADD_SIZE",
            "SHOPPING_ADD_PRODUCTS_TO_CAMPAIGN",
            "SHOPPING_FIX_DISAPPROVED_PRODUCTS",
            "SHOPPING_TARGET_ALL_OFFERS",
            "SHOPPING_FIX_SUSPENDED_MERCHANT_CENTER_ACCOUNT",
            "SHOPPING_FIX_MERCHANT_CENTER_ACCOUNT_SUSPENSION_WARNING",
            "SHOPPING_MIGRATE_REGULAR_SHOPPING_CAMPAIGN_OFFERS_TO_PERFORMANCE_MAX",
            "DYNAMIC_IMAGE_EXTENSION_OPT_IN",
            "RAISE_TARGET_CPA",
            "LOWER_TARGET_ROAS",
            "PERFORMANCE_MAX_OPT_IN",
            "IMPROVE_PERFORMANCE_MAX_AD_STRENGTH",
            "MIGRATE_DYNAMIC_SEARCH_ADS_CAMPAIGN_TO_PERFORMANCE_MAX",
            "FORECASTING_SET_TARGET_CPA",
            "SET_TARGET_CPA",
            "SET_TARGET_ROAS",
            "MAXIMIZE_CONVERSION_VALUE_OPT_IN",
            "IMPROVE_GOOGLE_TAG_COVERAGE",
            "PERFORMANCE_MAX_FINAL_URL_OPT_IN",
            "REFRESH_CUSTOMER_MATCH_LIST",
            "CUSTOM_AUDIENCE_OPT_IN",
            "LEAD_FORM_ASSET",
            "IMPROVE_DEMAND_GEN_AD_STRENGTH"
          ],
          "type": "string"
        },
        "travelDestinationCountry": {
          "description": "The country the user is searching for at query time.",
          "type": "string"
        },
        "skAdNetworkSourceApp": {
          "description": "App where the ad that drove the iOS Store Kit Ad Network install was shown. Null value means this segment is not applicable, for example, non-iOS campaign, or was not present in any postbacks sent by Apple.",
          "$ref": "GoogleAdsGoogleadsV24Common__SkAdNetworkSourceApp"
        },
        "device": {
          "description": "Device to which metrics apply.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Mobile devices with full browsers.",
            "Tablets with full browsers.",
            "Computers.",
            "Smart TVs and game consoles.",
            "Other device types."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MOBILE",
            "TABLET",
            "DESKTOP",
            "CONNECTED_TV",
            "OTHER"
          ],
          "type": "string"
        },
        "skAdNetworkPostbackSequenceIndex": {
          "type": "string",
          "description": "iOS Store Kit Ad Network postback sequence index.",
          "format": "int64"
        },
        "adFormatType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "OTHER",
            "UNSEGMENTED",
            "INSTREAM_SKIPPABLE",
            "INSTREAM_NON_SKIPPABLE",
            "INFEED",
            "BUMPER",
            "OUTSTREAM",
            "MASTHEAD",
            "AUDIO",
            "SHORTS",
            "PAUSE",
            "VERTICAL_ADS_PROMOTION",
            "VERTICAL_ADS_BOOKING_LINK",
            "TEXT"
          ],
          "description": "Ad Format type.",
          "enumDescriptions": [
            "No value has been specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Value assigned to formats (such as experimental formats) which don't support format segmentation in Video and Demand Gen campaigns. Note that these formats may change categories in the future, for example if an experimental format is exposed or a new format is added. We strongly recommend to not rely on this field for long term decisions.",
            "Value assigned for Video TrueView for Action campaigns statistics. Note that statistics with this value may change categories in the future, for example if format segmentation support is added for new campaign types. We strongly recommend to not rely on this field for long term decisions.",
            "Skippable in-stream ads.",
            "Non-skippable in-stream ads.",
            "In-feed YouTube or image ads served on feed surfaces (e.g. Discover Feed, YouTube Home, etc.).",
            "Short (\u003c7 secs) in-stream non-skippable YouTube ads.",
            "Outstream ads.",
            "Masthead ads.",
            "Audio ads.",
            "Vertical full-screen video or image ads served on YouTube Shorts or BrandConnect ads served as organic YouTube Shorts.",
            "Image ads served when a user pauses an organic YouTube video on a TV screen. These ads are displayed directly next to the static video frame on the pause screen itself. Note that this does not include Demand Gen image ads served on the ad panel below or on top of a paused organic video. Those are reported under INFEED.",
            "An ad format that promotes a specific entity within a vertical, for example, a hotel ad in the Travel vertical on Search.",
            "An ad format for a booking link call-to-action within a vertical ad, for example a 'Book Now' link for a hotel ad.",
            "A standard text ad format. This is currently only used for ads on the Search network."
          ],
          "type": "string"
        },
        "productTypeL1": {
          "type": "string",
          "description": "Type (level 1) of the product."
        },
        "productCustomAttribute1": {
          "type": "string",
          "description": "Custom attribute 1 of the product."
        },
        "hotelCheckInDate": {
          "type": "string",
          "description": "Hotel check-in date. Formatted as yyyy-MM-dd."
        },
        "productSoldTitle": {
          "description": "Title of the product sold.",
          "type": "string"
        },
        "travelDestinationRegion": {
          "type": "string",
          "description": "The region the user is searching for at query time."
        },
        "conversionValueRulePrimaryDimension": {
          "type": "string",
          "description": "Primary dimension of applied conversion value rules. NO_RULE_APPLIED shows the total recorded value of conversions that do not have a value rule applied. ORIGINAL shows the original value of conversions to which a value rule has been applied. GEO_LOCATION, DEVICE, AUDIENCE, ITINERARY show the net adjustment after value rules were applied.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "For no-value-rule-applied conversions after value rule is enabled.",
            "Below are for value-rule-applied conversions: The original stats.",
            "When a new or returning customer condition is satisfied.",
            "When a query-time Geo location condition is satisfied.",
            "When a query-time browsing device condition is satisfied.",
            "When a query-time audience condition is satisfied.",
            "When multiple rules are applied.",
            "When a query-time itinerary condition is satisfied."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NO_RULE_APPLIED",
            "ORIGINAL",
            "NEW_VS_RETURNING_USER",
            "GEO_LOCATION",
            "DEVICE",
            "AUDIENCE",
            "MULTIPLE",
            "ITINERARY"
          ]
        },
        "verticalAdsEventParticipantDisplayNames": {
          "type": "string",
          "description": "The display names of participants in an event listing, like performers, speakers, or teams."
        },
        "geoTargetRegion": {
          "description": "Resource name of the geo target constant that represents a region.",
          "type": "string"
        },
        "hotelCenterId": {
          "type": "string",
          "description": "Hotel center ID.",
          "format": "int64"
        },
        "monthOfYear": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "JANUARY",
            "FEBRUARY",
            "MARCH",
            "APRIL",
            "MAY",
            "JUNE",
            "JULY",
            "AUGUST",
            "SEPTEMBER",
            "OCTOBER",
            "NOVEMBER",
            "DECEMBER"
          ],
          "description": "Month of the year, for example, January.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "January.",
            "February.",
            "March.",
            "April.",
            "May.",
            "June.",
            "July.",
            "August.",
            "September.",
            "October.",
            "November.",
            "December."
          ]
        },
        "productStoreId": {
          "type": "string",
          "description": "Store ID of the product."
        },
        "productTypeL5": {
          "description": "Type (level 5) of the product.",
          "type": "string"
        },
        "landingPageSource": {
          "type": "string",
          "description": "The source of a landing page in the landing page report.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The landing page was explicitly provided by the advertiser.",
            "The landing page was selected automatically. This could happen when the advertiser enables AI Max or other features that automatically select landing pages and Google selects the best landing page for the query."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADVERTISER",
            "AUTOMATIC"
          ]
        },
        "hotelCity": {
          "description": "Hotel city.",
          "type": "string"
        },
        "geoTargetMostSpecificLocation": {
          "type": "string",
          "description": "Resource name of the geo target constant that represents the most specific location."
        },
        "productLanguage": {
          "description": "Resource name of the language constant for the language of the product.",
          "type": "string"
        },
        "skAdNetworkAttributionCredit": {
          "description": "iOS Store Kit Ad Network attribution credit",
          "enumDescriptions": [
            "Default value. This value is equivalent to null.",
            "The value is unknown in this API version. The true enum value cannot be returned in this API version or is not supported yet.",
            "The value was not present in the postback or we do not have this data for other reasons.",
            "Google was the ad network that won ad attribution.",
            "Google qualified for attribution, but didn't win."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "UNAVAILABLE",
            "WON",
            "CONTRIBUTED"
          ],
          "type": "string"
        },
        "productSoldCustomAttribute3": {
          "description": "Custom attribute 3 of the product sold.",
          "type": "string"
        },
        "productCategoryLevel1": {
          "type": "string",
          "description": "Category (level 1) of the product."
        },
        "searchEngineResultsPageType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADS_ONLY",
            "ORGANIC_ONLY",
            "ADS_AND_ORGANIC"
          ],
          "description": "Type of the search engine results page.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Only ads were contained in the search engine results page.",
            "Only organic results were contained in the search engine results page.",
            "Both ads and organic results were contained in the search engine results page."
          ]
        },
        "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"
        },
        "hotelPriceBucket": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "LOWEST_UNIQUE",
            "LOWEST_TIED",
            "NOT_LOWEST",
            "ONLY_PARTNER_SHOWN"
          ],
          "description": "Hotel price bucket.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Uniquely lowest price. Partner has the lowest price, and no other partners are within a small variance of that price.",
            "Tied for lowest price. Partner is within a small variance of the lowest price.",
            "Not lowest price. Partner is not within a small variance of the lowest price.",
            "Partner was the only one shown."
          ],
          "type": "string"
        },
        "travelDestinationCity": {
          "type": "string",
          "description": "The city the user is searching for at query time."
        },
        "productCustomAttribute2": {
          "type": "string",
          "description": "Custom attribute 2 of the product."
        },
        "dayOfWeek": {
          "description": "Day of the week, for example, MONDAY.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Monday.",
            "Tuesday.",
            "Wednesday.",
            "Thursday.",
            "Friday.",
            "Saturday.",
            "Sunday."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MONDAY",
            "TUESDAY",
            "WEDNESDAY",
            "THURSDAY",
            "FRIDAY",
            "SATURDAY",
            "SUNDAY"
          ],
          "type": "string"
        },
        "productAggregatorId": {
          "type": "string",
          "description": "Aggregator ID of the product.",
          "format": "int64"
        },
        "adUsingVideo": {
          "description": "Indicates whether an ad is using a video asset. This segment is only available for PMax campaigns and will not return data when any other campaign type is selected.",
          "type": "boolean"
        },
        "geoTargetCanton": {
          "type": "string",
          "description": "Resource name of the geo target constant that represents a canton."
        },
        "hotelCountry": {
          "type": "string",
          "description": "Hotel country."
        },
        "year": {
          "description": "Year, formatted as yyyy.",
          "format": "int32",
          "type": "integer"
        },
        "geoTargetMetro": {
          "type": "string",
          "description": "Resource name of the geo target constant that represents a metro."
        },
        "searchTermTargetingStatus": {
          "type": "string",
          "description": "Indicates whether the search term is currently one of your targeted or excluded keywords.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Search term is added to targeted keywords.",
            "Search term matches a negative keyword.",
            "Search term has been both added and excluded.",
            "Search term is neither targeted nor excluded."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADDED",
            "EXCLUDED",
            "ADDED_EXCLUDED",
            "NONE"
          ]
        },
        "productTypeL4": {
          "description": "Type (level 4) of the product.",
          "type": "string"
        },
        "clickType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "APP_DEEPLINK",
            "BREADCRUMBS",
            "BROADBAND_PLAN",
            "CALL_TRACKING",
            "CALLS",
            "CLICK_ON_ENGAGEMENT_AD",
            "GET_DIRECTIONS",
            "LOCATION_EXPANSION",
            "LOCATION_FORMAT_CALL",
            "LOCATION_FORMAT_DIRECTIONS",
            "LOCATION_FORMAT_IMAGE",
            "LOCATION_FORMAT_LANDING_PAGE",
            "LOCATION_FORMAT_MAP",
            "LOCATION_FORMAT_STORE_INFO",
            "LOCATION_FORMAT_TEXT",
            "MOBILE_CALL_TRACKING",
            "OFFER_PRINTS",
            "OTHER",
            "PRODUCT_EXTENSION_CLICKS",
            "PRODUCT_LISTING_AD_CLICKS",
            "SITELINKS",
            "STORE_LOCATOR",
            "URL_CLICKS",
            "VIDEO_APP_STORE_CLICKS",
            "VIDEO_CALL_TO_ACTION_CLICKS",
            "VIDEO_CARD_ACTION_HEADLINE_CLICKS",
            "VIDEO_END_CAP_CLICKS",
            "VIDEO_WEBSITE_CLICKS",
            "VISUAL_SITELINKS",
            "WIRELESS_PLAN",
            "PRODUCT_LISTING_AD_LOCAL",
            "PRODUCT_LISTING_AD_MULTICHANNEL_LOCAL",
            "PRODUCT_LISTING_AD_MULTICHANNEL_ONLINE",
            "PRODUCT_LISTING_ADS_COUPON",
            "PRODUCT_LISTING_AD_TRANSACTABLE",
            "PRODUCT_AD_APP_DEEPLINK",
            "SHOWCASE_AD_CATEGORY_LINK",
            "SHOWCASE_AD_LOCAL_STOREFRONT_LINK",
            "SHOWCASE_AD_ONLINE_PRODUCT_LINK",
            "SHOWCASE_AD_LOCAL_PRODUCT_LINK",
            "PROMOTION_EXTENSION",
            "SWIPEABLE_GALLERY_AD_HEADLINE",
            "SWIPEABLE_GALLERY_AD_SWIPES",
            "SWIPEABLE_GALLERY_AD_SEE_MORE",
            "SWIPEABLE_GALLERY_AD_SITELINK_ONE",
            "SWIPEABLE_GALLERY_AD_SITELINK_TWO",
            "SWIPEABLE_GALLERY_AD_SITELINK_THREE",
            "SWIPEABLE_GALLERY_AD_SITELINK_FOUR",
            "SWIPEABLE_GALLERY_AD_SITELINK_FIVE",
            "HOTEL_PRICE",
            "PRICE_EXTENSION",
            "HOTEL_BOOK_ON_GOOGLE_ROOM_SELECTION",
            "SHOPPING_COMPARISON_LISTING",
            "CROSS_NETWORK",
            "AD_IMAGE",
            "TRAVEL_ASSETS",
            "VEHICLE_ASSETS",
            "PRODUCT_ASSETS",
            "VIDEO_CHANNEL_CLICK",
            "VIDEO_RELATED_VIDEOS_CLICK",
            "CLICK_TO_MESSAGE_THIRD_PARTY_CLICK",
            "CLICK_TO_MESSAGE_LANDING_PAGE_CLICK"
          ],
          "description": "Click type.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "App engagement ad deep link.",
            "Breadcrumbs.",
            "Broadband Plan.",
            "Manually dialed phone calls.",
            "Phone calls.",
            "Click on engagement ad.",
            "Driving direction.",
            "Get location details.",
            "Call.",
            "Directions.",
            "Image(s).",
            "Go to landing page.",
            "Map.",
            "Go to store info.",
            "Text.",
            "Mobile phone calls.",
            "Print offer.",
            "Other.",
            "Product plusbox offer.",
            "Shopping - Product - Online.",
            "Sitelink.",
            "Show nearby locations.",
            "Headline.",
            "App store.",
            "Call-to-Action overlay.",
            "Cards.",
            "End cap.",
            "Website.",
            "Visual Sitelinks.",
            "Wireless Plan.",
            "Shopping - Product - Local.",
            "Shopping - Product - MultiChannel Local.",
            "Shopping - Product - MultiChannel Online.",
            "Shopping - Product - Coupon.",
            "Shopping - Product - Sell on Google.",
            "Shopping - Product - App engagement ad deep link.",
            "Shopping - Showcase - Category.",
            "Shopping - Showcase - Local storefront.",
            "Shopping - Showcase - Online product.",
            "Shopping - Showcase - Local product.",
            "Promotion Extension.",
            "Ad Headline.",
            "Swipes.",
            "See More.",
            "Sitelink 1.",
            "Sitelink 2.",
            "Sitelink 3.",
            "Sitelink 4.",
            "Sitelink 5.",
            "Hotel price.",
            "Price Extension.",
            "Book on Google hotel room selection.",
            "Shopping - Comparison Listing.",
            "Cross-network. From Performance Max and Discovery Campaigns.",
            "AD Images.",
            "Travel Feed Assets.",
            "Vehicle Feed Assets.",
            "Product Feed Assets.",
            "Click on channel icon that navigates the user to the corresponding YouTube channel.",
            "Click on a related video that navigates the user to the video watch page.",
            "Click on message button that navigates the user to a third-party messaging app. If the app is not installed, the ad will not show on Android, and the button will redirect to the app install page on iOS.",
            "Click on non-button surface of message ad that navigates the user to the Google-hosted landing page."
          ],
          "type": "string"
        },
        "productSoldCustomAttribute4": {
          "type": "string",
          "description": "Custom attribute 4 of the product sold."
        },
        "matchType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BROAD",
            "EXACT",
            "PHRASE",
            "AI_MAX"
          ],
          "description": "The match type of the keyword that triggered the ad. This segment is for use with keyword_view. For other resources, use search_term_match_type. While match_type is filtered to Broad, Exact, Phrase and Ai Max, search_term_match_type includes variants like Near Exact, Near Phrase.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Broad match.",
            "Exact match.",
            "Phrase match.",
            "Match type for AI Max Search."
          ],
          "type": "string"
        },
        "externalConversionSource": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "WEBPAGE",
            "ANALYTICS",
            "UPLOAD",
            "AD_CALL_METRICS",
            "WEBSITE_CALL_METRICS",
            "STORE_VISITS",
            "ANDROID_IN_APP",
            "IOS_IN_APP",
            "IOS_FIRST_OPEN",
            "APP_UNSPECIFIED",
            "ANDROID_FIRST_OPEN",
            "UPLOAD_CALLS",
            "FIREBASE",
            "CLICK_TO_CALL",
            "SALESFORCE",
            "STORE_SALES_CRM",
            "STORE_SALES_PAYMENT_NETWORK",
            "GOOGLE_PLAY",
            "THIRD_PARTY_APP_ANALYTICS",
            "GOOGLE_ATTRIBUTION",
            "STORE_SALES_DIRECT_UPLOAD",
            "STORE_SALES",
            "SEARCH_ADS_360",
            "GOOGLE_HOSTED",
            "FLOODLIGHT",
            "ANALYTICS_SEARCH_ADS_360",
            "FIREBASE_SEARCH_ADS_360",
            "DISPLAY_AND_VIDEO_360_FLOODLIGHT"
          ],
          "description": "External conversion source.",
          "enumDescriptions": [
            "Not specified.",
            "Represents value unknown in this version.",
            "Conversion that occurs when a user navigates to a particular webpage after viewing an ad; Displayed in Google Ads UI as 'Website'.",
            "Conversion that comes from linked Google Analytics goal or transaction; Displayed in Google Ads UI as 'Analytics'.",
            "Website conversion that is uploaded through ConversionUploadService; Displayed in Google Ads UI as 'Import from clicks'.",
            "Conversion that occurs when a user clicks on a call extension directly on an ad; Displayed in Google Ads UI as 'Calls from ads'.",
            "Conversion that occurs when a user calls a dynamically-generated phone number (by installed javascript) from an advertiser's website after clicking on an ad; Displayed in Google Ads UI as 'Calls from website'.",
            "Conversion that occurs when a user visits an advertiser's retail store after clicking on a Google ad; Displayed in Google Ads UI as 'Store visits'.",
            "Conversion that occurs when a user takes an in-app action such as a purchase in an Android app; Displayed in Google Ads UI as 'Android in-app action'.",
            "Conversion that occurs when a user takes an in-app action such as a purchase in an iOS app; Displayed in Google Ads UI as 'iOS in-app action'.",
            "Conversion that occurs when a user opens an iOS app for the first time; Displayed in Google Ads UI as 'iOS app install (first open)'.",
            "Legacy app conversions that do not have an AppPlatform provided; Displayed in Google Ads UI as 'Mobile app'.",
            "Conversion that occurs when a user opens an Android app for the first time; Displayed in Google Ads UI as 'Android app install (first open)'.",
            "Call conversion that is uploaded through ConversionUploadService; Displayed in Google Ads UI as 'Import from calls'.",
            "Conversion that comes from a linked Firebase event; Displayed in Google Ads UI as 'Firebase'.",
            "Conversion that occurs when a user clicks on a mobile phone number; Displayed in Google Ads UI as 'Phone number clicks'.",
            "Conversion that comes from Salesforce; Displayed in Google Ads UI as 'Salesforce.com'.",
            "Conversion that comes from in-store purchases recorded by CRM; Displayed in Google Ads UI as 'Store sales (data partner)'.",
            "Conversion that comes from in-store purchases from payment network; Displayed in Google Ads UI as 'Store sales (payment network)'.",
            "Codeless Google Play conversion; Displayed in Google Ads UI as 'Google Play'.",
            "Conversion that comes from a linked third-party app analytics event; Displayed in Google Ads UI as 'Third-party app analytics'.",
            "Conversion that is controlled by Google Attribution.",
            "Store Sales conversion based on first-party or third-party merchant data uploads. Displayed in Google Ads UI as 'Store sales (direct upload)'.",
            "Store Sales conversion based on first-party or third-party merchant data uploads and/or from in-store purchases using cards from payment networks. Displayed in Google Ads UI as 'Store sales'.",
            "Conversions imported from Search Ads 360 Floodlight data.",
            "Conversions that track local actions from Google's products and services after interacting with an ad.",
            "Conversions reported by Floodlight tags.",
            "Conversions that come from Google Analytics specifically for Search Ads 360. Displayed in Google Ads UI as Analytics (SA360).",
            "Conversion that comes from a linked Firebase event for Search Ads 360.",
            "Conversion that is reported by Floodlight for DV360."
          ]
        },
        "keyword": {
          "description": "Keyword criterion.",
          "$ref": "GoogleAdsGoogleadsV24Common__Keyword"
        },
        "productMerchantId": {
          "type": "string",
          "description": "Merchant ID of the product.",
          "format": "int64"
        },
        "activityCountry": {
          "type": "string",
          "description": "The country where the travel activity is available."
        },
        "searchTermMatchSource": {
          "type": "string",
          "description": "Specifies the source for how the search term was matched, which reveals the type of ad campaign responsible. Use this to distinguish between automated campaigns (like AI Max, Dynamic Search Ads) and keyword-based campaigns (Standard).",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The match is from a user-provided keyword.",
            "The match is from the keywordless expansion portion of AI Max.",
            "The match is from the broad match expansion portion of AI Max.",
            "The match is from a Dynamic Search Ad.",
            "The match is from the search term matching functionality in PMax.",
            "The match is from a vertical ads data feed (e.g. Travel Ads entity targeting)."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADVERTISER_PROVIDED_KEYWORD",
            "AI_MAX_KEYWORDLESS",
            "AI_MAX_BROAD_MATCH",
            "DYNAMIC_SEARCH_ADS",
            "PERFORMANCE_MAX",
            "VERTICAL_ADS_DATA_FEED"
          ]
        },
        "productSoldCategoryLevel2": {
          "type": "string",
          "description": "Category (level 2) of the product sold."
        },
        "productSoldCustomAttribute2": {
          "type": "string",
          "description": "Custom attribute 2 of the product sold."
        },
        "verticalAdsListingCity": {
          "description": "The city where the vertical ads listing is located.",
          "type": "string"
        },
        "productSoldTypeL1": {
          "type": "string",
          "description": "Type (level 1) of the product sold."
        },
        "productSoldCategoryLevel5": {
          "type": "string",
          "description": "Category (level 5) of the product sold."
        },
        "productCategoryLevel2": {
          "description": "Category (level 2) of the product.",
          "type": "string"
        },
        "hotelCheckInDayOfWeek": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MONDAY",
            "TUESDAY",
            "WEDNESDAY",
            "THURSDAY",
            "FRIDAY",
            "SATURDAY",
            "SUNDAY"
          ],
          "description": "Hotel check-in day of week.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Monday.",
            "Tuesday.",
            "Wednesday.",
            "Thursday.",
            "Friday.",
            "Saturday.",
            "Sunday."
          ]
        },
        "geoTargetCounty": {
          "type": "string",
          "description": "Resource name of the geo target constant that represents a county."
        },
        "month": {
          "type": "string",
          "description": "Month as represented by the date of the first day of a month. Formatted as yyyy-MM-dd."
        },
        "budgetCampaignAssociationStatus": {
          "description": "Budget campaign association status.",
          "$ref": "GoogleAdsGoogleadsV24Common__BudgetCampaignAssociationStatus"
        },
        "productCondition": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NEW",
            "REFURBISHED",
            "USED"
          ],
          "description": "Condition of the product.",
          "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."
          ],
          "type": "string"
        },
        "hotelLengthOfStay": {
          "type": "integer",
          "description": "Hotel length of stay.",
          "format": "int32"
        },
        "slot": {
          "type": "string",
          "description": "Position of the ad.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Google search: Side.",
            "Google search: Top.",
            "Google search: Other.",
            "Google Display Network.",
            "Search partners: Top.",
            "Search partners: Other.",
            "Cross-network."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SEARCH_SIDE",
            "SEARCH_TOP",
            "SEARCH_OTHER",
            "CONTENT",
            "SEARCH_PARTNER_TOP",
            "SEARCH_PARTNER_OTHER",
            "MIXED"
          ]
        },
        "hotelBookingWindowDays": {
          "type": "string",
          "description": "Hotel booking window in days.",
          "format": "int64"
        },
        "interactionOnThisExtension": {
          "description": "Only used with feed item metrics. Indicates whether the interaction metrics occurred on the feed item itself or a different extension or ad unit.",
          "type": "boolean"
        },
        "skAdNetworkCoarseConversionValue": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "UNAVAILABLE",
            "LOW",
            "MEDIUM",
            "HIGH",
            "NONE"
          ],
          "description": "iOS Store Kit Ad Network coarse conversion value.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "The value was not present in the postback or we do not have this data for other reasons.",
            "A low coarse conversion value.",
            "A medium coarse conversion value.",
            "A high coarse conversion value.",
            "A coarse conversion value was not configured."
          ],
          "type": "string"
        },
        "productCategoryLevel3": {
          "description": "Category (level 3) of the product.",
          "type": "string"
        },
        "productSoldCategoryLevel4": {
          "type": "string",
          "description": "Category (level 4) of the product sold."
        },
        "skAdNetworkUserType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "UNAVAILABLE",
            "NEW_INSTALLER",
            "REINSTALLER"
          ],
          "description": "iOS Store Kit Ad Network user type.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "The value was not present in the postback or we do not have this data for other reasons.",
            "The user installed the app for the first time.",
            "The user has previously installed the app."
          ]
        },
        "geoTargetDistrict": {
          "description": "Resource name of the geo target constant that represents a district.",
          "type": "string"
        },
        "geoTargetAirport": {
          "type": "string",
          "description": "Resource name of the geo target constant that represents an airport."
        },
        "adDestinationType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NOT_APPLICABLE",
            "WEBSITE",
            "APP_DEEP_LINK",
            "APP_STORE",
            "PHONE_CALL",
            "MAP_DIRECTIONS",
            "LOCATION_LISTING",
            "MESSAGE",
            "LEAD_FORM",
            "YOUTUBE",
            "UNMODELED_FOR_CONVERSIONS"
          ],
          "description": "Ad Destination type.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Ads that don't intend to drive users off from ads to other destinations",
            "Website",
            "App Deep Link",
            "iOS App Store or Play Store",
            "Call Dialer",
            "Map App",
            "Location Dedicated Page",
            "Text Message",
            "Lead Generation Form",
            "YouTube",
            "Ad Destination for Conversions with keys unknown"
          ]
        },
        "verticalAdsListing": {
          "type": "string",
          "description": "The listing associated with a listing impression, click or conversion."
        },
        "skAdNetworkAdEventType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "UNAVAILABLE",
            "INTERACTION",
            "VIEW"
          ],
          "description": "iOS Store Kit Ad Network ad event type.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "The value was not present in the postback or we do not have this data for other reasons.",
            "The user interacted with the ad.",
            "The user viewed the ad."
          ],
          "type": "string"
        },
        "skAdNetworkVersion": {
          "description": "The version of the SKAdNetwork API used.",
          "type": "string"
        },
        "verticalAdsHotelClass": {
          "description": "The class of the hotel. Generally in the range of 1 to 5 stars, but fully customizable in the hotel feed.",
          "format": "int64",
          "type": "string"
        },
        "searchSubcategory": {
          "description": "A search term subcategory. An empty string denotes the catch-all subcategory for search terms that didn't fit into another subcategory.",
          "type": "string"
        },
        "activityRating": {
          "description": "Activity rating.",
          "format": "int64",
          "type": "string"
        },
        "productCustomAttribute4": {
          "description": "Custom attribute 4 of the product.",
          "type": "string"
        },
        "newVersusReturningCustomers": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NEW",
            "RETURNING",
            "NEW_AND_HIGH_LTV"
          ],
          "description": "This is for segmenting conversions by whether the user is a new customer or a returning customer. This segmentation is typically used to measure the impact of customer acquisition goal.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Converting user is new to the advertiser.",
            "Converting user is returning to the advertiser. Definition of returning differs among conversion types, such as a second store visit versus a second online purchase.",
            "Converting user is new to the advertiser and has high lifetime value."
          ],
          "type": "string"
        },
        "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": "GoogleAdsGoogleadsV24Common__AssetInteractionTarget"
        },
        "productSoldCustomAttribute1": {
          "description": "Custom attribute 1 of the product sold.",
          "type": "string"
        },
        "productSoldTypeL5": {
          "description": "Type (level 5) of the product sold.",
          "type": "string"
        },
        "skAdNetworkSourceDomain": {
          "type": "string",
          "description": "Website where the ad that drove the iOS Store Kit Ad Network install was shown. Null value means this segment is not applicable, for example, non-iOS campaign, or was not present in any postbacks sent by Apple."
        },
        "hour": {
          "description": "Hour of day as a number between 0 and 23, inclusive.",
          "format": "int32",
          "type": "integer"
        },
        "date": {
          "description": "Date to which metrics apply. yyyy-MM-dd format, for example, 2018-04-17.",
          "type": "string"
        },
        "productTitle": {
          "type": "string",
          "description": "Title of the product."
        },
        "activityAccountId": {
          "description": "Activity account ID.",
          "format": "int64",
          "type": "string"
        },
        "productChannelExclusivity": {
          "type": "string",
          "description": "Channel exclusivity of the product.",
          "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"
          ]
        },
        "productCustomAttribute3": {
          "type": "string",
          "description": "Custom attribute 3 of the product."
        },
        "conversionActionName": {
          "type": "string",
          "description": "Conversion action name."
        },
        "productChannel": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ONLINE",
            "LOCAL"
          ],
          "description": "Channel of the product.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The item is sold online.",
            "The item is sold in local stores."
          ]
        },
        "productCustomAttribute0": {
          "description": "Custom attribute 0 of the product.",
          "type": "string"
        },
        "activityState": {
          "type": "string",
          "description": "The state where the travel activity is available."
        },
        "adSubNetworkType": {
          "description": "Ad sub network type. Currently only available for ads running as part of DemandGen campaigns on YouTube and has to always be selected together with ad_network_type.",
          "enumDescriptions": [
            "Not specified.",
            "Unknown.",
            "The whole network without any sub network type segmentation.",
            "Ads served in-stream of YouTube organic videos.",
            "Ads served on YouTube feed surfaces, such as YouTube Home or Watch Next.",
            "Ads served on the YouTube Shorts feed."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "UNSEGMENTED",
            "YOUTUBE_INSTREAM",
            "YOUTUBE_INFEED",
            "YOUTUBE_SHORTS"
          ],
          "type": "string"
        },
        "hotelState": {
          "description": "Hotel state.",
          "type": "string"
        },
        "adUsingProductData": {
          "type": "boolean",
          "description": "Indicates whether an ad is using product data from a Google Merchant Center feed. This segment is only available for PMax campaigns and will not return data when any other campaign type is selected."
        },
        "conversionAttributionEventType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "IMPRESSION",
            "INTERACTION",
            "ENGAGED_VIEW"
          ],
          "description": "Conversion attribution event type.",
          "enumDescriptions": [
            "Not specified.",
            "Represents value unknown in this version.",
            "The conversion is attributed to an impression.",
            "The conversion is attributed to an interaction.",
            "The conversion is attributed to a 10s engaged view."
          ]
        },
        "productSoldTypeL3": {
          "description": "Type (level 3) of the product sold.",
          "type": "string"
        },
        "partnerHotelId": {
          "description": "Partner hotel ID.",
          "type": "string"
        },
        "productCategoryLevel5": {
          "description": "Category (level 5) of the product.",
          "type": "string"
        },
        "productCountry": {
          "type": "string",
          "description": "Resource name of the geo target constant for the country of sale of the product."
        },
        "productItemId": {
          "type": "string",
          "description": "Item ID of the product."
        },
        "hotelRateRuleId": {
          "type": "string",
          "description": "Hotel rate rule ID."
        },
        "productSoldCondition": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NEW",
            "REFURBISHED",
            "USED"
          ],
          "description": "Condition of the product sold.",
          "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."
          ]
        },
        "conversionLagBucket": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "LESS_THAN_ONE_DAY",
            "ONE_TO_TWO_DAYS",
            "TWO_TO_THREE_DAYS",
            "THREE_TO_FOUR_DAYS",
            "FOUR_TO_FIVE_DAYS",
            "FIVE_TO_SIX_DAYS",
            "SIX_TO_SEVEN_DAYS",
            "SEVEN_TO_EIGHT_DAYS",
            "EIGHT_TO_NINE_DAYS",
            "NINE_TO_TEN_DAYS",
            "TEN_TO_ELEVEN_DAYS",
            "ELEVEN_TO_TWELVE_DAYS",
            "TWELVE_TO_THIRTEEN_DAYS",
            "THIRTEEN_TO_FOURTEEN_DAYS",
            "FOURTEEN_TO_TWENTY_ONE_DAYS",
            "TWENTY_ONE_TO_THIRTY_DAYS",
            "THIRTY_TO_FORTY_FIVE_DAYS",
            "FORTY_FIVE_TO_SIXTY_DAYS",
            "SIXTY_TO_NINETY_DAYS"
          ],
          "description": "An enum value representing the number of days between the impression and the conversion.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Conversion lag bucket from 0 to 1 day. 0 day is included, 1 day is not.",
            "Conversion lag bucket from 1 to 2 days. 1 day is included, 2 days is not.",
            "Conversion lag bucket from 2 to 3 days. 2 days is included, 3 days is not.",
            "Conversion lag bucket from 3 to 4 days. 3 days is included, 4 days is not.",
            "Conversion lag bucket from 4 to 5 days. 4 days is included, 5 days is not.",
            "Conversion lag bucket from 5 to 6 days. 5 days is included, 6 days is not.",
            "Conversion lag bucket from 6 to 7 days. 6 days is included, 7 days is not.",
            "Conversion lag bucket from 7 to 8 days. 7 days is included, 8 days is not.",
            "Conversion lag bucket from 8 to 9 days. 8 days is included, 9 days is not.",
            "Conversion lag bucket from 9 to 10 days. 9 days is included, 10 days is not.",
            "Conversion lag bucket from 10 to 11 days. 10 days is included, 11 days is not.",
            "Conversion lag bucket from 11 to 12 days. 11 days is included, 12 days is not.",
            "Conversion lag bucket from 12 to 13 days. 12 days is included, 13 days is not.",
            "Conversion lag bucket from 13 to 14 days. 13 days is included, 14 days is not.",
            "Conversion lag bucket from 14 to 21 days. 14 days is included, 21 days is not.",
            "Conversion lag bucket from 21 to 30 days. 21 days is included, 30 days is not.",
            "Conversion lag bucket from 30 to 45 days. 30 days is included, 45 days is not.",
            "Conversion lag bucket from 45 to 60 days. 45 days is included, 60 days is not.",
            "Conversion lag bucket from 60 to 90 days. 60 days is included, 90 days is not."
          ]
        },
        "productSoldTypeL2": {
          "description": "Type (level 2) of the product sold.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__AudienceInsightsAttributeMetadata": {
      "id": "GoogleAdsGoogleadsV24Common__AudienceInsightsAttributeMetadata",
      "type": "object",
      "description": "An audience attribute, with metadata about it, returned in response to a search.",
      "properties": {
        "displayInfo": {
          "type": "string",
          "description": "A string that supplements the display_name to identify the attribute. If the dimension is TOPIC, this is a brief description of the Knowledge Graph entity, such as \"American singer-songwriter\". If the dimension is CATEGORY, this is the complete path to the category in The Product & Service taxonomy, for example \"/Apparel/Clothing/Outerwear\"."
        },
        "userInterestAttributeMetadata": {
          "description": "Special metadata for a User Interest.",
          "$ref": "GoogleAdsGoogleadsV24Common__UserInterestAttributeMetadata"
        },
        "potentialYoutubeReach": {
          "type": "string",
          "description": "An estimate of the number of reachable YouTube users matching this attribute in the requested location, or zero if that information is not available for this attribute. This field is not populated in every response.",
          "format": "int64"
        },
        "youtubeChannelMetadata": {
          "description": "Special metadata for a YouTube channel.",
          "$ref": "GoogleAdsGoogleadsV24Common__YouTubeChannelAttributeMetadata"
        },
        "viewerShare": {
          "type": "number",
          "description": "The share of viewers within this attribute, between and including 0 and 1. This field is not populated in every response.",
          "format": "double"
        },
        "attribute": {
          "description": "The attribute itself.",
          "$ref": "GoogleAdsGoogleadsV24Common__AudienceInsightsAttribute"
        },
        "knowledgeGraphAttributeMetadata": {
          "description": "Special metadata for a Knowledge Graph Entity.",
          "$ref": "GoogleAdsGoogleadsV24Common__KnowledgeGraphAttributeMetadata"
        },
        "lineupAttributeMetadata": {
          "description": "Special metadata for a YouTube Lineup.",
          "$ref": "GoogleAdsGoogleadsV24Common__LineupAttributeMetadata"
        },
        "subscriberShare": {
          "type": "number",
          "description": "The share of subscribers within this attribute, between and including 0 and 1. This field is not populated in every response.",
          "format": "double"
        },
        "locationAttributeMetadata": {
          "description": "Special metadata for a Location.",
          "$ref": "GoogleAdsGoogleadsV24Common__LocationAttributeMetadata"
        },
        "youtubeVideoMetadata": {
          "description": "Special metadata for a YouTube video.",
          "$ref": "GoogleAdsGoogleadsV24Common__YouTubeVideoAttributeMetadata"
        },
        "dimension": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CATEGORY",
            "KNOWLEDGE_GRAPH",
            "GEO_TARGET_COUNTRY",
            "SUB_COUNTRY_LOCATION",
            "YOUTUBE_CHANNEL",
            "AFFINITY_USER_INTEREST",
            "IN_MARKET_USER_INTEREST",
            "PARENTAL_STATUS",
            "INCOME_RANGE",
            "AGE_RANGE",
            "GENDER",
            "YOUTUBE_VIDEO",
            "DEVICE",
            "YOUTUBE_LINEUP",
            "USER_LIST",
            "LIFE_EVENT_USER_INTEREST"
          ],
          "description": "The type of the attribute.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "A Product & Service category.",
            "A Knowledge Graph entity.",
            "A country, represented by a geo target.",
            "A geographic location within a country.",
            "A YouTube channel.",
            "An Affinity UserInterest.",
            "An In-Market UserInterest.",
            "A Parental Status value (parent, or not a parent).",
            "A household income percentile range.",
            "An age range.",
            "A gender.",
            "A YouTube video.",
            "A device type, such as Mobile, Desktop, Tablet, and Connected TV.",
            "A YouTube Lineup.",
            "A User List.",
            "A Life Event UserInterest."
          ]
        },
        "displayName": {
          "type": "string",
          "description": "The human-readable name of the attribute."
        },
        "userListAttributeMetadata": {
          "description": "Special metadata for a User List.",
          "$ref": "GoogleAdsGoogleadsV24Common__UserListAttributeMetadata"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateAssetSetsRequest": {
      "id": "GoogleAdsGoogleadsV24Services__MutateAssetSetsRequest",
      "type": "object",
      "description": "Request message for AssetSetService.MutateAssetSets.",
      "properties": {
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "operations": {
          "description": "Required. The list of operations to perform on individual asset sets.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__AssetSetOperation"
          },
          "type": "array"
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "responseContentType": {
          "type": "string",
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__PerStoreView": {
      "description": "A per store view. This view provides per store impression reach and local action conversion stats for advertisers.",
      "properties": {
        "city": {
          "type": "string",
          "description": "Output only. The city where the store is located.",
          "readOnly": true
        },
        "address1": {
          "type": "string",
          "description": "Output only. First line of the store's address.",
          "readOnly": true
        },
        "province": {
          "description": "Output only. The province or state of the store's address.",
          "readOnly": true,
          "type": "string"
        },
        "resourceName": {
          "description": "Output only. The resource name of the per store view. Per Store view resource names have the form: `customers/{customer_id}/perStoreViews/{place_id}`",
          "readOnly": true,
          "type": "string"
        },
        "address2": {
          "type": "string",
          "description": "Output only. Second line of the store's address.",
          "readOnly": true
        },
        "phoneNumber": {
          "description": "Output only. The phone number of the store.",
          "readOnly": true,
          "type": "string"
        },
        "countryCode": {
          "description": "Output only. The two-letter country code for the store's location (e.g., \"US\").",
          "readOnly": true,
          "type": "string"
        },
        "businessName": {
          "type": "string",
          "description": "Output only. The name of the business.",
          "readOnly": true
        },
        "postalCode": {
          "description": "Output only. The postal code of the store's address.",
          "readOnly": true,
          "type": "string"
        },
        "placeId": {
          "type": "string",
          "description": "Output only. The place ID of the per store view.",
          "readOnly": true
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__PerStoreView",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__AdditionalApplicationInfo": {
      "id": "GoogleAdsGoogleadsV24Common__AdditionalApplicationInfo",
      "type": "object",
      "description": "Additional information about the application/tool issuing the request. This field is only used by ContentCreatorInsightsService, AudienceInsightsService, and ReachPlanService APIs.",
      "properties": {
        "applicationId": {
          "type": "string",
          "description": "The unique identifier of the agency proprietary application. This identifier is generated by Google. Reach out to your Google representative to request an application_id for each new application being integrated."
        },
        "applicationInstance": {
          "type": "string",
          "description": "The instance type of the application sending the request.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "The instance is for development and testing purposes.",
            "The instance is for production purposes."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DEVELOPMENT_AND_TESTING",
            "PRODUCTION"
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__BiddingStrategyOperation": {
      "description": "A single operation (create, update, remove) on a bidding strategy.",
      "properties": {
        "update": {
          "description": "Update operation: The bidding strategy is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV24Resources__BiddingStrategy"
        },
        "remove": {
          "description": "Remove operation: A resource name for the removed bidding strategy is expected, in this format: `customers/{customer_id}/biddingStrategies/{bidding_strategy_id}`",
          "type": "string"
        },
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask",
          "type": "string"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new bidding strategy.",
          "$ref": "GoogleAdsGoogleadsV24Resources__BiddingStrategy"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__BiddingStrategyOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_Recommendation_MaximizeConversionsOptInRecommendation": {
      "id": "GoogleAdsGoogleadsV24Resources_Recommendation_MaximizeConversionsOptInRecommendation",
      "type": "object",
      "description": "The Maximize Conversions Opt-In recommendation.",
      "properties": {
        "recommendedBudgetAmountMicros": {
          "type": "string",
          "description": "Output only. The recommended new budget amount.",
          "readOnly": true,
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_ConversionValueRule_ValueRuleItineraryTravelLength": {
      "description": "Range for the itinerary length in number of nights.",
      "properties": {
        "minNights": {
          "type": "integer",
          "description": "Minimum number of nights between the start date and the end date.",
          "format": "int32"
        },
        "maxNights": {
          "description": "Maximum number of days between the start date and the end date.",
          "format": "int32",
          "type": "integer"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_ConversionValueRule_ValueRuleItineraryTravelLength",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_Campaign_TrackingSetting": {
      "id": "GoogleAdsGoogleadsV24Resources_Campaign_TrackingSetting",
      "type": "object",
      "description": "Campaign-level settings for tracking information.",
      "properties": {
        "trackingUrl": {
          "type": "string",
          "description": "Output only. The url used for dynamic tracking.",
          "readOnly": true
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateCampaignDraftsRequest": {
      "id": "GoogleAdsGoogleadsV24Services__MutateCampaignDraftsRequest",
      "type": "object",
      "description": "Request message for CampaignDraftService.MutateCampaignDrafts.",
      "properties": {
        "operations": {
          "description": "Required. The list of operations to perform on individual campaign drafts.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__CampaignDraftOperation"
          },
          "type": "array"
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "responseContentType": {
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "type": "string"
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__GenerateConversionRatesResponse": {
      "id": "GoogleAdsGoogleadsV24Services__GenerateConversionRatesResponse",
      "type": "object",
      "description": "Response message for ReachPlanService.GenerateConversionRates, containing conversion rate suggestions for supported plannable products.",
      "properties": {
        "conversionRateSuggestions": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__ConversionRateSuggestion"
          },
          "description": "A list containing conversion rate suggestions. Each repeated element will have an associated product code. Multiple suggestions may share the same product code."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__EndExperimentRequest": {
      "id": "GoogleAdsGoogleadsV24Services__EndExperimentRequest",
      "type": "object",
      "description": "Request message for ExperimentService.EndExperiment.",
      "properties": {
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services_MetricAttributes_Attribute": {
      "description": "The attribute of the metric in key value pair format.",
      "properties": {
        "key": {
          "description": "The key of the attribute.",
          "type": "string"
        },
        "value": {
          "type": "string",
          "description": "The value of the attribute."
        }
      },
      "id": "GoogleAdsGoogleadsV24Services_MetricAttributes_Attribute",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__CampaignThirdPartyReachIntegrationPartner": {
      "id": "GoogleAdsGoogleadsV24Common__CampaignThirdPartyReachIntegrationPartner",
      "type": "object",
      "description": "Container for third party reach integration data for Campaign.",
      "properties": {
        "reachIntegrationPartner": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NIELSEN",
            "COMSCORE",
            "KANTAR_MILLWARD_BROWN",
            "VIDEO_RESEARCH",
            "GEMIUS",
            "MEDIA_SCOPE",
            "AUDIENCE_PROJECT",
            "VIDEO_AMP",
            "ISPOT_TV"
          ],
          "description": "Allowed third party integration partners for reach verification.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Nielsen.",
            "Comscore.",
            "Kantar.",
            "Video Research.",
            "Gemius.",
            "MediaScope.",
            "AudienceProject",
            "VideoAmp",
            "iSpot.tv"
          ]
        },
        "reachIntegrationPartnerData": {
          "description": "Third party partner data for YouTube Reach verification. This is optional metadata for partners to join or attach data to Ads campaigns.",
          "$ref": "GoogleAdsGoogleadsV24Common__ThirdPartyIntegrationPartnerData"
        },
        "shareCost": {
          "description": "If true, then cost data will be shared with this vendor.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateKeywordPlanAdGroupsResponse": {
      "description": "Response message for a Keyword Plan ad group mutate.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateKeywordPlanAdGroupResult"
          },
          "description": "All results for the mutate. The order of the results is determined by the order of the keywords in the original request."
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateKeywordPlanAdGroupsResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__SiteSeed": {
      "id": "GoogleAdsGoogleadsV24Services__SiteSeed",
      "type": "object",
      "description": "Site Seed",
      "properties": {
        "site": {
          "description": "The domain name of the site. If the customer requesting the ideas doesn't own the site provided only public information is returned.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__UploadClickConversionsResponse": {
      "description": "Response message for ConversionUploadService.UploadClickConversions.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to conversion failures in the partial failure mode. Returned when all errors occur inside the conversions. If any errors occur outside the conversions (for example, auth errors), we return an RPC level error. See [Best practices for partial failures](/google-ads/api/docs/best-practices/partial-failures).",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__ClickConversionResult"
          },
          "description": "Returned for successfully processed conversions. Proto will be empty for rows that received an error. Results are not returned when `validate_only` is `true`.",
          "type": "array"
        },
        "jobId": {
          "type": "string",
          "description": "Job ID for the upload batch.",
          "format": "int64"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__UploadClickConversionsResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__AssetGroupOperation": {
      "id": "GoogleAdsGoogleadsV24Services__AssetGroupOperation",
      "type": "object",
      "description": "A single operation (create, remove) on an asset group.",
      "properties": {
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask",
          "type": "string"
        },
        "update": {
          "description": "Update operation: The asset group is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AssetGroup"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed asset group is expected, in this format: `customers/{customer_id}/assetGroups/{asset_group_id}`"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new asset group",
          "$ref": "GoogleAdsGoogleadsV24Resources__AssetGroup"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__DimensionOverlapResult": {
      "id": "GoogleAdsGoogleadsV24Services__DimensionOverlapResult",
      "type": "object",
      "description": "A list of audience attributes of a single dimension, including their overlap with a primary attribute, returned as part of a GenerateAudienceOverlapInsightsResponse.",
      "properties": {
        "dimension": {
          "description": "The dimension of all the attributes in this section.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "A Product & Service category.",
            "A Knowledge Graph entity.",
            "A country, represented by a geo target.",
            "A geographic location within a country.",
            "A YouTube channel.",
            "An Affinity UserInterest.",
            "An In-Market UserInterest.",
            "A Parental Status value (parent, or not a parent).",
            "A household income percentile range.",
            "An age range.",
            "A gender.",
            "A YouTube video.",
            "A device type, such as Mobile, Desktop, Tablet, and Connected TV.",
            "A YouTube Lineup.",
            "A User List.",
            "A Life Event UserInterest."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CATEGORY",
            "KNOWLEDGE_GRAPH",
            "GEO_TARGET_COUNTRY",
            "SUB_COUNTRY_LOCATION",
            "YOUTUBE_CHANNEL",
            "AFFINITY_USER_INTEREST",
            "IN_MARKET_USER_INTEREST",
            "PARENTAL_STATUS",
            "INCOME_RANGE",
            "AGE_RANGE",
            "GENDER",
            "YOUTUBE_VIDEO",
            "DEVICE",
            "YOUTUBE_LINEUP",
            "USER_LIST",
            "LIFE_EVENT_USER_INTEREST"
          ],
          "type": "string"
        },
        "items": {
          "description": "The attributes and their overlap with the primary attribute.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__AudienceOverlapItem"
          },
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__FinalUrlImageGenerationInput": {
      "id": "GoogleAdsGoogleadsV24Services__FinalUrlImageGenerationInput",
      "type": "object",
      "description": "Input for guiding image asset generation with a final url.",
      "properties": {
        "finalUrl": {
          "type": "string",
          "description": "Required. A final url to guide the image generation process. Required."
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__BudgetSimulationPointList": {
      "id": "GoogleAdsGoogleadsV24Common__BudgetSimulationPointList",
      "type": "object",
      "description": "A container for simulation points for simulations of type BUDGET.",
      "properties": {
        "points": {
          "description": "Projected metrics for a series of budget amounts.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__BudgetSimulationPoint"
          },
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__LandingPageView": {
      "description": "A landing page view with metrics aggregated at the unexpanded final URL level.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the landing page view. Landing page view resource names have the form: `customers/{customer_id}/landingPageViews/{unexpanded_final_url_fingerprint}`",
          "readOnly": true
        },
        "unexpandedFinalUrl": {
          "description": "Output only. The advertiser-specified final URL.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__LandingPageView",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__HistoricalMetricsOptions": {
      "description": "Historical metrics options.",
      "properties": {
        "yearMonthRange": {
          "description": "The year month range for historical metrics. If not specified, metrics for the past 12 months are returned. Search metrics are available for the past 4 years. If the search volume is not available for the entire year_month_range provided, the subset of the year month range for which search volume is available are returned.",
          "$ref": "GoogleAdsGoogleadsV24Common__YearMonthRange"
        },
        "includeAverageCpc": {
          "description": "Indicates whether to include average cost per click value. Average CPC is provided only for legacy support.",
          "type": "boolean"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__HistoricalMetricsOptions",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__VerticalAdsItemGroupRuleListInfo": {
      "id": "GoogleAdsGoogleadsV24Common__VerticalAdsItemGroupRuleListInfo",
      "type": "object",
      "description": "A criterion for targeting a shared set of rules for item groups in Vertical Ads (e.g., for hotel ads).",
      "properties": {
        "sharedSet": {
          "type": "string",
          "description": "The shared set resource name of the vertical ads item group rule list."
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__UserListRuleItemInfo": {
      "description": "An atomic rule item.",
      "properties": {
        "name": {
          "description": "Rule variable name. It should match the corresponding key name fired by the pixel. A name must begin with US-ascii letters or underscore or UTF8 code that is greater than 127 and consist of US-ascii letters or digits or underscore or UTF8 code that is greater than 127. For websites, there are two built-in variable URL (name = 'url__') and referrer URL (name = 'ref_url__'). This field must be populated when creating a new rule item.",
          "type": "string"
        },
        "stringRuleItem": {
          "description": "An atomic rule item composed of a string operation.",
          "$ref": "GoogleAdsGoogleadsV24Common__UserListStringRuleItemInfo"
        },
        "numberRuleItem": {
          "description": "An atomic rule item composed of a number operation.",
          "$ref": "GoogleAdsGoogleadsV24Common__UserListNumberRuleItemInfo"
        },
        "dateRuleItem": {
          "description": "An atomic rule item composed of a date operation.",
          "$ref": "GoogleAdsGoogleadsV24Common__UserListDateRuleItemInfo"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__UserListRuleItemInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__CartData": {
      "id": "GoogleAdsGoogleadsV24Services__CartData",
      "type": "object",
      "description": "Contains additional information about cart data.",
      "properties": {
        "feedLanguageCode": {
          "description": "The language code associated with the feed where the items are uploaded.",
          "type": "string"
        },
        "merchantId": {
          "type": "string",
          "description": "The Merchant Center ID where the items are uploaded.",
          "format": "int64"
        },
        "localTransactionCost": {
          "type": "number",
          "description": "Sum of all transaction level discounts, such as free shipping and coupon discounts for the whole cart. The currency code is the same as that in the `ClickConversion` message.",
          "format": "double"
        },
        "feedCountryCode": {
          "type": "string",
          "description": "The country code associated with the feed where the items are uploaded."
        },
        "items": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services_CartData_Item"
          },
          "description": "Data of the items purchased.",
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__ConfigureCustomerLifecycleGoalsResult": {
      "id": "GoogleAdsGoogleadsV24Services__ConfigureCustomerLifecycleGoalsResult",
      "type": "object",
      "description": "The result for the customer lifecycle goal configuration.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for the successful operation."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__AssetGroupSignalOperation": {
      "description": "A single operation (create, remove) on an asset group signal.",
      "properties": {
        "exemptPolicyViolationKeys": {
          "type": "array",
          "description": "Optional. The list of policy violation keys that should not cause a PolicyViolationError to be reported. Not all policy violations are exemptable, refer to the is_exemptible field in the returned PolicyViolationError. Resources violating these polices will be saved, but will not be eligible to serve. They may begin serving at a later time due to a change in policies, re-review of the resource, or a change in advertiser certificates.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__PolicyViolationKey"
          }
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new asset group signal.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AssetGroupSignal"
        },
        "remove": {
          "description": "Remove operation: A resource name for the removed asset group signal is expected, in this format: `customers/{customer_id}/assetGroupSignals/{asset_group_id}~{criterion_id}`",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__AssetGroupSignalOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__TargetCpmTargetFrequencyGoal": {
      "id": "GoogleAdsGoogleadsV24Common__TargetCpmTargetFrequencyGoal",
      "type": "object",
      "description": "Target Frequency bidding goal details.",
      "properties": {
        "targetCount": {
          "type": "string",
          "description": "Target Frequency count representing how many times you want to reach a single user.",
          "format": "int64"
        },
        "timeUnit": {
          "type": "string",
          "description": "Time window expressing the period over which you want to reach the specified target_count.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Optimize bidding to reach Target Frequency in a week.",
            "Optimize bidding to reach Target Frequency in a month."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "WEEKLY",
            "MONTHLY"
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_ConversionAction_FirebaseSettings": {
      "description": "Settings related to a Firebase conversion action.",
      "properties": {
        "eventName": {
          "type": "string",
          "description": "Output only. The event name of a Firebase conversion.",
          "readOnly": true
        },
        "propertyId": {
          "type": "string",
          "description": "Output only. The GA property ID of the conversion.",
          "readOnly": true,
          "format": "int64"
        },
        "propertyName": {
          "description": "Output only. The GA property name of the conversion.",
          "readOnly": true,
          "type": "string"
        },
        "projectId": {
          "type": "string",
          "description": "Output only. The Firebase project ID of the conversion.",
          "readOnly": true
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_ConversionAction_FirebaseSettings",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_Recommendation_MaximizeConversionValueOptInRecommendation": {
      "description": "Recommendation to opt into Maximize Conversion Value bidding strategy.",
      "properties": {},
      "id": "GoogleAdsGoogleadsV24Resources_Recommendation_MaximizeConversionValueOptInRecommendation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__AccessibleBiddingStrategy": {
      "id": "GoogleAdsGoogleadsV24Resources__AccessibleBiddingStrategy",
      "type": "object",
      "description": "Represents a view of BiddingStrategies owned by and shared with the customer. In contrast to BiddingStrategy, this resource includes strategies owned by managers of the customer and shared with this customer - in addition to strategies owned by this customer. This resource does not provide metrics and only exposes a limited subset of the BiddingStrategy attributes.",
      "properties": {
        "targetImpressionShare": {
          "description": "Output only. A bidding strategy that automatically optimizes towards a chosen percentage of impressions.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_AccessibleBiddingStrategy_TargetImpressionShare"
        },
        "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": "GoogleAdsGoogleadsV24Resources_AccessibleBiddingStrategy_MaximizeConversionValue"
        },
        "maximizeConversions": {
          "description": "Output only. An automated bidding strategy to help get the most conversions for your campaigns while spending your budget.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_AccessibleBiddingStrategy_MaximizeConversions"
        },
        "ownerCustomerId": {
          "description": "Output only. The ID of the Customer which owns the bidding strategy.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "type": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "COMMISSION",
            "ENHANCED_CPC",
            "FIXED_CPM",
            "FIXED_SHARE_OF_VOICE",
            "INVALID",
            "MANUAL_CPA",
            "MANUAL_CPC",
            "MANUAL_CPM",
            "MANUAL_CPV",
            "MAXIMIZE_CONVERSIONS",
            "MAXIMIZE_CONVERSION_VALUE",
            "PAGE_ONE_PROMOTED",
            "PERCENT_CPC",
            "TARGET_CPA",
            "TARGET_CPC",
            "TARGET_CPM",
            "TARGET_CPV",
            "TARGET_IMPRESSION_SHARE",
            "TARGET_OUTRANK_SHARE",
            "TARGET_ROAS",
            "TARGET_SPEND"
          ],
          "description": "Output only. The type of the bidding strategy.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Commission is an automatic bidding strategy in which the advertiser pays a certain portion of the conversion value.",
            "Enhanced CPC is a bidding strategy that raises bids for clicks that seem more likely to lead to a conversion and lowers them for clicks where they seem less likely.",
            "Fixed CPM is a manual bidding strategy with a fixed CPM.",
            "Fixed share of voice is a manual bidding strategy for YouTube Sponsorships that bills either on CPM or a fixed cost per day.",
            "Used for return value only. Indicates that a campaign does not have a bidding strategy. This prevents the campaign from serving. For example, a campaign may be attached to a manager bidding strategy and the serving account is subsequently unlinked from the manager account. In this case the campaign will automatically be detached from the now inaccessible manager bidding strategy and transition to the INVALID bidding strategy type.",
            "Manual bidding strategy that allows advertiser to set the bid per advertiser-specified action.",
            "Manual click based bidding where user pays per click.",
            "Manual impression based bidding where user pays per thousand impressions.",
            "A bidding strategy that pays a configurable amount per video view.",
            "A bidding strategy that automatically maximizes number of conversions given a daily budget.",
            "An automated bidding strategy that automatically sets bids to maximize revenue while spending your budget.",
            "Page-One Promoted bidding scheme, which sets max cpc bids to target impressions on page one or page one promoted slots on google.com. This enum value is deprecated.",
            "Percent Cpc is bidding strategy where bids are a fraction of the advertised price for some good or service.",
            "Target CPA is an automated bid strategy that sets bids to help get as many conversions as possible at the target cost-per-acquisition (CPA) you set.",
            "Target CPC is an automated bid strategy that sets bids to help get as many clicks as possible at the target cost-per-click (CPC) you set.",
            "Target CPM is an automated bid strategy that sets bids to help get as many impressions as possible at the target cost per one thousand impressions (CPM) you set.",
            "Target CPV is an automated bidding strategy that sets bids to optimize performance given the average target cost per view.",
            "An automated bidding strategy that sets bids so that a certain percentage of search ads are shown at the top of the first page (or other targeted location).",
            "Target Outrank Share is an automated bidding strategy that sets bids based on the target fraction of auctions where the advertiser should outrank a specific competitor. This enum value is deprecated.",
            "Target ROAS is an automated bidding strategy that helps you maximize revenue while averaging a specific target Return On Average Spend (ROAS).",
            "Target Spend is an automated bid strategy that sets your bids to help get as many clicks as possible within your budget."
          ]
        },
        "name": {
          "type": "string",
          "description": "Output only. The name of the bidding strategy.",
          "readOnly": true
        },
        "id": {
          "type": "string",
          "description": "Output only. The ID of the bidding strategy.",
          "readOnly": true,
          "format": "int64"
        },
        "ownerDescriptiveName": {
          "description": "Output only. descriptive_name of the Customer which owns the bidding strategy.",
          "readOnly": true,
          "type": "string"
        },
        "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"
        },
        "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": "GoogleAdsGoogleadsV24Resources_AccessibleBiddingStrategy_TargetRoas"
        },
        "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": "GoogleAdsGoogleadsV24Resources_AccessibleBiddingStrategy_TargetSpend"
        },
        "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": "GoogleAdsGoogleadsV24Resources_AccessibleBiddingStrategy_TargetCpa"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__ContentCriterionView": {
      "description": "A content criterion view.",
      "properties": {
        "resourceName": {
          "description": "Output only. The resource name of the content criterion view. Content criterion view resource names have the form: `customers/{customer_id}/contentCriterionViews/{ad_group_id}~{criterion_id}`",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__ContentCriterionView",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__WebpageSampleInfo": {
      "id": "GoogleAdsGoogleadsV24Common__WebpageSampleInfo",
      "type": "object",
      "description": "List of sample urls that match the website target",
      "properties": {
        "sampleUrls": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Webpage sample urls"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__AssetSetAsset": {
      "id": "GoogleAdsGoogleadsV24Resources__AssetSetAsset",
      "type": "object",
      "description": "AssetSetAsset is the link between an asset and an asset set. Adding an AssetSetAsset links an asset with an asset set.",
      "properties": {
        "status": {
          "description": "Output only. The status of the asset set asset. Read-only.",
          "readOnly": true,
          "enumDescriptions": [
            "The status has not been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The asset set asset is enabled.",
            "The asset set asset is removed."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "type": "string"
        },
        "resourceName": {
          "type": "string",
          "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}`"
        },
        "assetSet": {
          "type": "string",
          "description": "Immutable. The asset set which this asset set asset is linking to."
        },
        "asset": {
          "type": "string",
          "description": "Immutable. The asset which this asset set asset is linking to."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MaximizeConversionsBiddingStrategy": {
      "id": "GoogleAdsGoogleadsV24Services__MaximizeConversionsBiddingStrategy",
      "type": "object",
      "description": "Maximize Conversions Bidding Strategy.",
      "properties": {
        "dailyTargetSpendMicros": {
          "description": "Required. The daily target spend in micros to be used for estimation. This value must be greater than zero.",
          "format": "int64",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__TargetCpv": {
      "description": "Target CPV (cost per view) bidding strategy. An automated bidding strategy that sets bids to optimize performance given the target CPV you set.",
      "properties": {},
      "id": "GoogleAdsGoogleadsV24Common__TargetCpv",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__ExpandedLandingPageView": {
      "id": "GoogleAdsGoogleadsV24Resources__ExpandedLandingPageView",
      "type": "object",
      "description": "A landing page view with metrics aggregated at the expanded final URL level.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the expanded landing page view. Expanded landing page view resource names have the form: `customers/{customer_id}/expandedLandingPageViews/{expanded_final_url_fingerprint}`",
          "readOnly": true
        },
        "expandedFinalUrl": {
          "type": "string",
          "description": "Output only. The final URL that clicks are directed to.",
          "readOnly": true
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__ParentalStatusView": {
      "id": "GoogleAdsGoogleadsV24Resources__ParentalStatusView",
      "type": "object",
      "description": "A parental status view.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the parental status view. Parental Status view resource names have the form: `customers/{customer_id}/parentalStatusViews/{ad_group_id}~{criterion_id}`",
          "readOnly": true
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__TargetingSetting": {
      "description": "Settings for the targeting-related features, at the campaign and ad group levels. For more details about the targeting setting, visit https://support.google.com/google-ads/answer/7365594",
      "properties": {
        "targetRestrictions": {
          "description": "The per-targeting-dimension setting to restrict the reach of your campaign or ad group.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__TargetRestriction"
          },
          "type": "array"
        },
        "targetRestrictionOperations": {
          "type": "array",
          "description": "The list of operations changing the target restrictions. Adding a target restriction with a targeting dimension that already exists causes the existing target restriction to be replaced with the new value.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__TargetRestrictionOperation"
          }
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__TargetingSetting",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__AdOperation": {
      "description": "A single update operation on an ad.",
      "properties": {
        "policyValidationParameter": {
          "description": "Configuration for how policies are validated.",
          "$ref": "GoogleAdsGoogleadsV24Common__PolicyValidationParameter"
        },
        "update": {
          "description": "Update operation: The ad is expected to have a valid resource name in this format: `customers/{customer_id}/ads/{ad_id}`",
          "$ref": "GoogleAdsGoogleadsV24Resources__Ad"
        },
        "updateMask": {
          "type": "string",
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__AdOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__ManualCpa": {
      "description": "Manual bidding strategy that allows advertiser to set the bid per advertiser-specified action.",
      "properties": {},
      "id": "GoogleAdsGoogleadsV24Common__ManualCpa",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__ConversionActionOperation": {
      "id": "GoogleAdsGoogleadsV24Services__ConversionActionOperation",
      "type": "object",
      "description": "A single operation (create, update, remove) on a conversion action.",
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new conversion action.",
          "$ref": "GoogleAdsGoogleadsV24Resources__ConversionAction"
        },
        "update": {
          "description": "Update operation: The conversion action is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV24Resources__ConversionAction"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed conversion action is expected, in this format: `customers/{customer_id}/conversionActions/{conversion_action_id}`"
        },
        "updateMask": {
          "type": "string",
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__BrandInfo": {
      "id": "GoogleAdsGoogleadsV24Common__BrandInfo",
      "type": "object",
      "description": "Represents a Brand Criterion used for targeting based on commercial knowledge graph.",
      "properties": {
        "entityId": {
          "description": "The Commercial KG MID for the brand.",
          "type": "string"
        },
        "status": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "DEPRECATED",
            "UNVERIFIED",
            "APPROVED",
            "CANCELLED",
            "REJECTED"
          ],
          "description": "Output only. The status of a brand.",
          "readOnly": true,
          "enumDescriptions": [
            "No value has been specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Brand is verified and globally available for selection",
            "Brand was globally available in past but is no longer a valid brand (based on business criteria)",
            "Brand is unverified and customer scoped, but can be selected by customer (only who requested for same) for targeting",
            "Was a customer-scoped (unverified) brand, which got approved by business and added to the global list. Its assigned CKG MID should be used instead of this",
            "Was a customer-scoped (unverified) brand, but the request was canceled by customer and this brand id is no longer valid",
            "Was a customer-scoped (unverified) brand, but the request was rejected by internal business team and this brand id is no longer valid"
          ],
          "type": "string"
        },
        "rejectionReason": {
          "type": "string",
          "description": "Output only. The rejection reason when a brand status is REJECTED.",
          "readOnly": true,
          "enumDescriptions": [
            "No value has been specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Brand is already present in the commercial brand set.",
            "Brand is already present in the commercial brand set, but is a variant.",
            "Brand information is not correct (eg: URL and name don't match).",
            "Not a valid brand as per Google policy."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EXISTING_BRAND",
            "EXISTING_BRAND_VARIANT",
            "INCORRECT_INFORMATION",
            "NOT_A_BRAND"
          ]
        },
        "displayName": {
          "type": "string",
          "description": "Output only. A text representation of a brand.",
          "readOnly": true
        },
        "primaryUrl": {
          "type": "string",
          "description": "Output only. The primary url of a brand.",
          "readOnly": true
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__HotelCalloutAsset": {
      "description": "An asset representing a hotel callout.",
      "properties": {
        "languageCode": {
          "type": "string",
          "description": "Required. The language of the hotel callout. Represented as BCP 47 language tag."
        },
        "text": {
          "type": "string",
          "description": "Required. The text of the hotel callout asset. The length of this string should be between 1 and 25, inclusive."
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__HotelCalloutAsset",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__CustomerConversionGoalOperation": {
      "description": "A single operation (update) on a customer conversion goal.",
      "properties": {
        "update": {
          "description": "Update operation: The customer conversion goal is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CustomerConversionGoal"
        },
        "updateMask": {
          "type": "string",
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__CustomerConversionGoalOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_ListingGroupFilterDimension_ProductChannel": {
      "description": "Locality of a product offer.",
      "properties": {
        "channel": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ONLINE",
            "LOCAL"
          ],
          "description": "Value of the locality.",
          "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."
          ],
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_ListingGroupFilterDimension_ProductChannel",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__AdImageAsset": {
      "description": "An image asset used inside an ad.",
      "properties": {
        "asset": {
          "description": "The Asset resource name of this image.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__AdImageAsset",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_ConversionValueRule_ValueRuleItineraryAdvanceBookingWindow": {
      "id": "GoogleAdsGoogleadsV24Resources_ConversionValueRule_ValueRuleItineraryAdvanceBookingWindow",
      "type": "object",
      "description": "Range for the number of days between the date of the booking and the start of the itinerary.",
      "properties": {
        "minDays": {
          "description": "Minimum number of days between the date of the booking the start date.",
          "format": "int32",
          "type": "integer"
        },
        "maxDays": {
          "type": "integer",
          "description": "Maximum number of days between the date of the booking the start date.",
          "format": "int32"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__ListingDimensionPath": {
      "description": "The path of dimensions defining a listing group.",
      "properties": {
        "dimensions": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__ListingDimensionInfo"
          },
          "description": "The complete path of dimensions through the listing group hierarchy, from the root (excluding the root itself) to this listing group.",
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__ListingDimensionPath",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__Campaign": {
      "id": "GoogleAdsGoogleadsV24Resources__Campaign",
      "type": "object",
      "description": "A campaign.",
      "properties": {
        "labels": {
          "description": "Output only. The resource names of labels attached to this campaign.",
          "readOnly": true,
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "realTimeBiddingSetting": {
          "description": "Settings for Real-Time Bidding, a feature only available for campaigns targeting the Ad Exchange network.",
          "$ref": "GoogleAdsGoogleadsV24Common__RealTimeBiddingSetting"
        },
        "viewThroughConversionOptimizationEnabled": {
          "type": "boolean",
          "description": "Whether VTC (View-through Conversion) optimization is enabled for this campaign. Only allowed for certain Demand Gen and App Campaigns."
        },
        "targetCpc": {
          "description": "An automated bidding strategy that sets bids to help get as many clicks as possible at the target cost-per-click (CPC) you set.",
          "$ref": "GoogleAdsGoogleadsV24Common__TargetCpc"
        },
        "excludedParentAssetFieldTypes": {
          "items": {
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "The asset is linked for use as a headline.",
              "The asset is linked for use as a description.",
              "The asset is linked for use as mandatory ad text.",
              "The asset is linked for use as a marketing image.",
              "The asset is linked for use as a media bundle.",
              "The asset is linked for use as a YouTube video.",
              "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
              "The asset is linked for use as a Lead Form extension.",
              "The asset is linked for use as a Promotion extension.",
              "The asset is linked for use as a Callout extension.",
              "The asset is linked for use as a Structured Snippet extension.",
              "The asset is linked for use as a Sitelink.",
              "The asset is linked for use as a Mobile App extension.",
              "The asset is linked for use as a Hotel Callout extension.",
              "The asset is linked for use as a Call extension.",
              "The asset is linked for use as a Price extension.",
              "The asset is linked for use as a long headline.",
              "The asset is linked for use as a business name.",
              "The asset is linked for use as a square marketing image.",
              "The asset is linked for use as a portrait marketing image.",
              "The asset is linked for use as a logo.",
              "The asset is linked for use as a landscape logo.",
              "The asset is linked for use as a non YouTube logo.",
              "The asset is linked for use to select a call-to-action.",
              "The asset is linked for use to select an ad image.",
              "The asset is linked for use as a business logo.",
              "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
              "The asset is linked for use as a Demand Gen carousel card.",
              "The asset is linked for use as a Business Message.",
              "The asset is linked for use as a tall portrait marketing image.",
              "The asset is linked for use as related YouTube videos.",
              "The asset is linked for use as a landing page preview image.",
              "The asset is linked for use as a long description.",
              "The asset is linked for use as a call-to-action."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "HEADLINE",
              "DESCRIPTION",
              "MANDATORY_AD_TEXT",
              "MARKETING_IMAGE",
              "MEDIA_BUNDLE",
              "YOUTUBE_VIDEO",
              "BOOK_ON_GOOGLE",
              "LEAD_FORM",
              "PROMOTION",
              "CALLOUT",
              "STRUCTURED_SNIPPET",
              "SITELINK",
              "MOBILE_APP",
              "HOTEL_CALLOUT",
              "CALL",
              "PRICE",
              "LONG_HEADLINE",
              "BUSINESS_NAME",
              "SQUARE_MARKETING_IMAGE",
              "PORTRAIT_MARKETING_IMAGE",
              "LOGO",
              "LANDSCAPE_LOGO",
              "VIDEO",
              "CALL_TO_ACTION_SELECTION",
              "AD_IMAGE",
              "BUSINESS_LOGO",
              "HOTEL_PROPERTY",
              "DEMAND_GEN_CAROUSEL_CARD",
              "BUSINESS_MESSAGE",
              "TALL_PORTRAIT_MARKETING_IMAGE",
              "RELATED_YOUTUBE_VIDEOS",
              "LANDING_PAGE_PREVIEW",
              "LONG_DESCRIPTION",
              "CALL_TO_ACTION"
            ],
            "type": "string"
          },
          "description": "The asset field types that should be excluded from this campaign. Asset links with these field types will not be inherited by this campaign from the upper level.",
          "type": "array"
        },
        "fixedCpm": {
          "description": "A manual bidding strategy with a fixed CPM.",
          "$ref": "GoogleAdsGoogleadsV24Common__FixedCpm"
        },
        "biddingStrategy": {
          "description": "The resource name of the portfolio bidding strategy used by the campaign.",
          "type": "string"
        },
        "endDateTime": {
          "type": "string",
          "description": "The last day and time of the campaign in serving customer's timezone in \"yyyy-MM-dd HH:mm:ss\" format. Set the time component to 23:59:59 for daily granularity, time granularity is only supported for some campaign types. On create, defaults to running indefinitely. To set an existing campaign to run indefinitely, clear this field."
        },
        "startDateTime": {
          "type": "string",
          "description": "The date and time when campaign started in serving. The timestamp is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss\" format. Set the time component to 00:00:00 for daily granularity, time granularity is only supported for some campaign types."
        },
        "experimentType": {
          "type": "string",
          "description": "Output only. The type of campaign: normal, draft, or experiment.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "This is a regular campaign.",
            "This is a draft version of a campaign. It has some modifications from a base campaign, but it does not serve or accrue metrics.",
            "This is an experiment version of a campaign. It has some modifications from a base campaign, and a percentage of traffic is being diverted from the BASE campaign to this experiment campaign."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BASE",
            "DRAFT",
            "EXPERIMENT"
          ]
        },
        "campaignBudget": {
          "description": "The resource name of the campaign budget of the campaign.",
          "type": "string"
        },
        "demandGenCampaignSettings": {
          "description": "Settings for Demand Gen campaign.",
          "$ref": "GoogleAdsGoogleadsV24Resources_Campaign_DemandGenCampaignSettings"
        },
        "targetCpm": {
          "description": "A bidding strategy that automatically optimizes cost per thousand impressions.",
          "$ref": "GoogleAdsGoogleadsV24Common__TargetCpm"
        },
        "commission": {
          "description": "Commission is an automatic bidding strategy in which the advertiser pays a certain portion of the conversion value.",
          "$ref": "GoogleAdsGoogleadsV24Common__Commission"
        },
        "thirdPartyIntegrationPartners": {
          "description": "Third-Party integration partners.",
          "$ref": "GoogleAdsGoogleadsV24Common__CampaignThirdPartyIntegrationPartners"
        },
        "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": "GoogleAdsGoogleadsV24Common__TargetCpa"
        },
        "urlCustomParameters": {
          "description": "The list of mappings used to substitute custom parameter tags in a `tracking_url_template`, `final_urls`, or `mobile_final_urls`.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__CustomParameter"
          },
          "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": "GoogleAdsGoogleadsV24Common__ManualCpa"
        },
        "campaignGroup": {
          "type": "string",
          "description": "The resource name of the campaign group that this campaign belongs to."
        },
        "trackingSetting": {
          "description": "Output only. Campaign-level settings for tracking information.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Campaign_TrackingSetting"
        },
        "id": {
          "type": "string",
          "description": "Output only. The ID of the campaign.",
          "readOnly": true,
          "format": "int64"
        },
        "advertisingChannelType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SEARCH",
            "DISPLAY",
            "SHOPPING",
            "HOTEL",
            "VIDEO",
            "MULTI_CHANNEL",
            "LOCAL",
            "SMART",
            "PERFORMANCE_MAX",
            "LOCAL_SERVICES",
            "TRAVEL",
            "DEMAND_GEN"
          ],
          "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.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Search Network. Includes display bundled, and Search+ campaigns.",
            "Google Display Network only.",
            "Shopping campaigns serve on the shopping property and on google.com search results.",
            "Hotel Ads campaigns.",
            "Video campaigns.",
            "App Campaigns, and App Campaigns for Engagement, that run across multiple channels.",
            "Local ads campaigns.",
            "Smart campaigns.",
            "Performance Max campaigns.",
            "Local services campaigns.",
            "Travel campaigns.",
            "Demand Gen campaigns."
          ],
          "type": "string"
        },
        "advertisingChannelSubType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SEARCH_MOBILE_APP",
            "DISPLAY_MOBILE_APP",
            "SEARCH_EXPRESS",
            "DISPLAY_EXPRESS",
            "SHOPPING_SMART_ADS",
            "DISPLAY_GMAIL_AD",
            "DISPLAY_SMART_CAMPAIGN",
            "VIDEO_ACTION",
            "VIDEO_NON_SKIPPABLE",
            "APP_CAMPAIGN",
            "APP_CAMPAIGN_FOR_ENGAGEMENT",
            "LOCAL_CAMPAIGN",
            "SHOPPING_COMPARISON_LISTING_ADS",
            "SMART_CAMPAIGN",
            "VIDEO_SEQUENCE",
            "APP_CAMPAIGN_FOR_PRE_REGISTRATION",
            "VIDEO_REACH_TARGET_FREQUENCY",
            "TRAVEL_ACTIVITIES",
            "YOUTUBE_AUDIO"
          ],
          "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.",
          "enumDescriptions": [
            "Not specified.",
            "Used as a return value only. Represents value unknown in this version.",
            "Mobile app campaigns for Search.",
            "Mobile app campaigns for Display.",
            "AdWords express campaigns for search.",
            "AdWords Express campaigns for display.",
            "Smart Shopping campaigns.",
            "Gmail Ad campaigns.",
            "Smart display campaigns. New campaigns of this sub type cannot be created.",
            "Video TrueView for Action campaigns.",
            "Video campaigns with non-skippable video ads.",
            "App Campaign that lets you easily promote your Android or iOS app across Google's top properties including Search, Play, YouTube, and the Google Display Network.",
            "App Campaign for engagement, focused on driving re-engagement with the app across several of Google's top properties including Search, YouTube, and the Google Display Network.",
            "Campaigns specialized for local advertising.",
            "Shopping Comparison Listing campaigns.",
            "Standard Smart campaigns.",
            "Video campaigns with sequence video ads.",
            "App Campaign for pre registration, specialized for advertising mobile app pre-registration, that targets multiple advertising channels across Google Play, YouTube and Display Network. See https://support.google.com/google-ads/answer/9441344 to learn more.",
            "Video reach campaign with Target Frequency bidding strategy.",
            "Travel Activities campaigns.",
            "YouTube Audio campaigns."
          ]
        },
        "localCampaignSetting": {
          "description": "The setting for local campaign.",
          "$ref": "GoogleAdsGoogleadsV24Resources_Campaign_LocalCampaignSetting"
        },
        "finalUrlSuffix": {
          "type": "string",
          "description": "Suffix used to append query parameters to landing pages that are served with parallel tracking."
        },
        "primaryStatus": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ELIGIBLE",
            "PAUSED",
            "REMOVED",
            "ENDED",
            "PENDING",
            "MISCONFIGURED",
            "LIMITED",
            "LEARNING",
            "NOT_ELIGIBLE"
          ],
          "description": "Output only. The primary status of the campaign. Provides insight into why a campaign is not serving or not serving optimally. Modification to the campaign and its related entities might take a while to be reflected in this status.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The campaign is eligible to serve.",
            "The user-specified campaign status is paused.",
            "The user-specified campaign status is removed.",
            "The user-specified time for this campaign to end has passed.",
            "The campaign may serve in the future.",
            "The campaign or its associated entities have incorrect user-specified settings.",
            "The campaign or its associated entities are limited by user-specified settings.",
            "The automated bidding system is adjusting to user-specified changes to the campaign or associated entities.",
            "The campaign is not eligible to serve."
          ],
          "type": "string"
        },
        "audienceSetting": {
          "description": "Immutable. Setting for audience related features.",
          "$ref": "GoogleAdsGoogleadsV24Resources_Campaign_AudienceSetting"
        },
        "optimizationScore": {
          "type": "number",
          "description": "Output only. Optimization score of the campaign. Optimization score is an estimate of how well a campaign is set to perform. It ranges from 0% (0.0) to 100% (1.0), with 100% indicating that the campaign is performing at full potential. This field is null for unscored campaigns. See \"About optimization score\" at https://support.google.com/google-ads/answer/9061546. This field is read-only.",
          "readOnly": true,
          "format": "double"
        },
        "feedTypes": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "PAGE_FEED",
              "DYNAMIC_EDUCATION",
              "MERCHANT_CENTER_FEED",
              "DYNAMIC_REAL_ESTATE",
              "DYNAMIC_CUSTOM",
              "DYNAMIC_HOTELS_AND_RENTALS",
              "DYNAMIC_FLIGHTS",
              "DYNAMIC_TRAVEL",
              "DYNAMIC_LOCAL",
              "DYNAMIC_JOBS",
              "LOCATION_SYNC",
              "BUSINESS_PROFILE_DYNAMIC_LOCATION_GROUP",
              "CHAIN_DYNAMIC_LOCATION_GROUP",
              "STATIC_LOCATION_GROUP",
              "HOTEL_PROPERTY",
              "TRAVEL_FEED"
            ],
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "Page asset set.",
              "Dynamic education asset set.",
              "Google Merchant Center asset set.",
              "Dynamic real estate asset set.",
              "Dynamic custom asset set.",
              "Dynamic hotels and rentals asset set.",
              "Dynamic flights asset set.",
              "Dynamic travel asset set.",
              "Dynamic local asset set.",
              "Dynamic jobs asset set.",
              "Location sync level asset set.",
              "Business Profile location group asset set.",
              "Chain location group asset set which can be used for both owned locations and affiliate locations.",
              "Static location group asset set which can be used for both owned locations and affiliate locations.",
              "Hotel Property asset set which is used to link a hotel property feed to Performance Max for travel goals campaigns.",
              "Travel Feed asset set type. Can represent either a Hotel feed or a Things to Do (activities) feed."
            ]
          },
          "description": "Output only. Types of feeds that are attached directly to this campaign.",
          "readOnly": true
        },
        "targetImpressionShare": {
          "description": "Target Impression Share bidding strategy. An automated bidding strategy that sets bids to achieve a chosen percentage of impressions.",
          "$ref": "GoogleAdsGoogleadsV24Common__TargetImpressionShare"
        },
        "networkSettings": {
          "description": "The network settings for the campaign.",
          "$ref": "GoogleAdsGoogleadsV24Resources_Campaign_NetworkSettings"
        },
        "geoTargetTypeSetting": {
          "description": "The setting for ads geotargeting.",
          "$ref": "GoogleAdsGoogleadsV24Resources_Campaign_GeoTargetTypeSetting"
        },
        "appCampaignSetting": {
          "description": "The setting related to App Campaign.",
          "$ref": "GoogleAdsGoogleadsV24Resources_Campaign_AppCampaignSetting"
        },
        "vanityPharma": {
          "description": "Describes how unbranded pharma ads will be displayed.",
          "$ref": "GoogleAdsGoogleadsV24Resources_Campaign_VanityPharma"
        },
        "travelCampaignSettings": {
          "description": "Settings for Travel campaign.",
          "$ref": "GoogleAdsGoogleadsV24Resources_Campaign_TravelCampaignSettings"
        },
        "baseCampaign": {
          "type": "string",
          "description": "Output only. The resource name of the base campaign of a draft or experiment campaign. For base campaigns, this is equal to `resource_name`. This field is read-only.",
          "readOnly": true
        },
        "videoCampaignSettings": {
          "description": "Settings for Video campaign.",
          "$ref": "GoogleAdsGoogleadsV24Resources_Campaign_VideoCampaignSettings"
        },
        "adServingOptimizationStatus": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "OPTIMIZE",
            "CONVERSION_OPTIMIZE",
            "ROTATE",
            "ROTATE_INDEFINITELY",
            "UNAVAILABLE"
          ],
          "description": "The ad serving optimization status of the campaign.",
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "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."
          ]
        },
        "brandGuidelinesEnabled": {
          "type": "boolean",
          "description": "Immutable. Whether Brand Guidelines are enabled for this Campaign. Only applicable to Performance Max campaigns. If enabled, business name and logo assets must be linked as CampaignAssets instead of AssetGroupAssets. Writable only at campaign creation. Set to true to enable Brand Guidelines when creating a new Performance Max campaign. Immutable after creation. This field cannot be modified using standard update operations after the campaign has been created. For existing campaigns: To enable Brand Guidelines on a campaign after it has been created, use the CampaignService.EnablePMaxBrandGuidelines method, which is a separate operation. It is not possible to disable Brand Guidelines for an existing campaign. Incompatible with Travel Goals: This feature is not supported for Performance Max campaigns with Travel Goals. Attempting to set this field to true for a Travel Goals campaign will result in an error."
        },
        "listingType": {
          "type": "string",
          "description": "Immutable. Listing type of ads served for this campaign. Field is restricted for usage with Performance Max campaigns.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "This campaign serves vehicle ads."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "VEHICLES"
          ]
        },
        "maximizeConversionValue": {
          "description": "Standard Maximize Conversion Value bidding strategy that automatically sets bids to maximize revenue while spending your budget.",
          "$ref": "GoogleAdsGoogleadsV24Common__MaximizeConversionValue"
        },
        "aiMaxSetting": {
          "description": "Settings for AI Max in search campaigns.",
          "$ref": "GoogleAdsGoogleadsV24Resources_Campaign_AiMaxSetting"
        },
        "manualCpm": {
          "description": "Standard Manual CPM bidding strategy. Manual impression-based bidding where user pays per thousand impressions.",
          "$ref": "GoogleAdsGoogleadsV24Common__ManualCpm"
        },
        "brandGuidelines": {
          "description": "These settings control how your brand appears in automatically generated assets and formats within this campaign. Note: These settings can only be used for Performance Max campaigns that have Brand Guidelines enabled.",
          "$ref": "GoogleAdsGoogleadsV24Resources_Campaign_BrandGuidelines"
        },
        "hotelSetting": {
          "description": "The hotel setting for the campaign.",
          "$ref": "GoogleAdsGoogleadsV24Resources_Campaign_HotelSettingInfo"
        },
        "trackingUrlTemplate": {
          "description": "The URL template for constructing a tracking URL.",
          "type": "string"
        },
        "targetingSetting": {
          "description": "Setting for targeting related features.",
          "$ref": "GoogleAdsGoogleadsV24Common__TargetingSetting"
        },
        "targetCpv": {
          "description": "An automated bidding strategy that sets bids to optimize performance given the target CPV you set.",
          "$ref": "GoogleAdsGoogleadsV24Common__TargetCpv"
        },
        "hotelPropertyAssetSet": {
          "type": "string",
          "description": "Immutable. The resource name for a set of hotel properties for Performance Max for travel goals campaigns."
        },
        "percentCpc": {
          "description": "Standard Percent Cpc bidding strategy where bids are a fraction of the advertised price for some good or service.",
          "$ref": "GoogleAdsGoogleadsV24Common__PercentCpc"
        },
        "servingStatus": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SERVING",
            "NONE",
            "ENDED",
            "PENDING",
            "SUSPENDED"
          ],
          "description": "Output only. The ad serving status of the campaign.",
          "readOnly": true,
          "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."
          ]
        },
        "optimizationGoalSetting": {
          "description": "Optimization goal setting for this campaign, which includes a set of optimization goal types.",
          "$ref": "GoogleAdsGoogleadsV24Resources_Campaign_OptimizationGoalSetting"
        },
        "keywordMatchType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BROAD"
          ],
          "description": "Keyword match type of Campaign. Set to BROAD to set broad matching for all keywords in a campaign.",
          "enumDescriptions": [
            "No value has been specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Campaign level broad match."
          ]
        },
        "pmaxCampaignSettings": {
          "description": "Settings for Performance Max campaign.",
          "$ref": "GoogleAdsGoogleadsV24Resources_Campaign_PmaxCampaignSettings"
        },
        "resourceName": {
          "description": "Immutable. The resource name of the campaign. Campaign resource names have the form: `customers/{customer_id}/campaigns/{campaign_id}`",
          "type": "string"
        },
        "status": {
          "type": "string",
          "description": "The status of the campaign. When a new campaign is added, the status defaults to ENABLED.",
          "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"
          ]
        },
        "localServicesCampaignSettings": {
          "description": "The Local Services Campaign related settings.",
          "$ref": "GoogleAdsGoogleadsV24Resources_Campaign_LocalServicesCampaignSettings"
        },
        "shoppingSetting": {
          "description": "The setting for controlling Shopping campaigns.",
          "$ref": "GoogleAdsGoogleadsV24Resources_Campaign_ShoppingSetting"
        },
        "excludedParentAssetSetTypes": {
          "description": "The asset set types that should be excluded from this campaign. Asset set links with these types will not be inherited by this campaign from the upper level. Location group types (GMB_DYNAMIC_LOCATION_GROUP, CHAIN_DYNAMIC_LOCATION_GROUP, and STATIC_LOCATION_GROUP) are child types of LOCATION_SYNC. Therefore, if LOCATION_SYNC is set for this field, all location group asset sets are not allowed to be linked to this campaign, and all Location Extension (LE) and Affiliate Location Extensions (ALE) will not be served under this campaign. Only LOCATION_SYNC is currently supported.",
          "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"
            ]
          },
          "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"
        },
        "name": {
          "type": "string",
          "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."
        },
        "containsEuPoliticalAdvertising": {
          "description": "The advertiser should self-declare whether this campaign contains political advertising content targeted towards the European Union.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The campaign contains political advertising targeted towards the EU. The campaign will be restricted from serving ads in the EU.",
            "The campaign does not contain political advertising targeted towards the EU. No additional serving restrictions will apply."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CONTAINS_EU_POLITICAL_ADVERTISING",
            "DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING"
          ],
          "type": "string"
        },
        "paymentMode": {
          "type": "string",
          "description": "Payment mode for the campaign.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Pay per interaction.",
            "Pay per conversion value. This mode is only supported by campaigns with AdvertisingChannelType.HOTEL, BiddingStrategyType.COMMISSION, and BudgetType.STANDARD.",
            "Pay per conversion. This mode is only supported by campaigns with AdvertisingChannelType.DISPLAY (excluding AdvertisingChannelSubType.DISPLAY_GMAIL), BiddingStrategyType.TARGET_CPA, and BudgetType.FIXED_CPA. The customer must also be eligible for this mode. See Customer.eligibility_failure_reasons for details.",
            "Pay per guest stay value. This mode is only supported by campaigns with AdvertisingChannelType.HOTEL, BiddingStrategyType.COMMISSION, and BudgetType.STANDARD."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CLICKS",
            "CONVERSION_VALUE",
            "CONVERSIONS",
            "GUEST_STAY"
          ]
        },
        "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.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Commission is an automatic bidding strategy in which the advertiser pays a certain portion of the conversion value.",
            "Enhanced CPC is a bidding strategy that raises bids for clicks that seem more likely to lead to a conversion and lowers them for clicks where they seem less likely.",
            "Fixed CPM is a manual bidding strategy with a fixed CPM.",
            "Fixed share of voice is a manual bidding strategy for YouTube Sponsorships that bills either on CPM or a fixed cost per day.",
            "Used for return value only. Indicates that a campaign does not have a bidding strategy. This prevents the campaign from serving. For example, a campaign may be attached to a manager bidding strategy and the serving account is subsequently unlinked from the manager account. In this case the campaign will automatically be detached from the now inaccessible manager bidding strategy and transition to the INVALID bidding strategy type.",
            "Manual bidding strategy that allows advertiser to set the bid per advertiser-specified action.",
            "Manual click based bidding where user pays per click.",
            "Manual impression based bidding where user pays per thousand impressions.",
            "A bidding strategy that pays a configurable amount per video view.",
            "A bidding strategy that automatically maximizes number of conversions given a daily budget.",
            "An automated bidding strategy that automatically sets bids to maximize revenue while spending your budget.",
            "Page-One Promoted bidding scheme, which sets max cpc bids to target impressions on page one or page one promoted slots on google.com. This enum value is deprecated.",
            "Percent Cpc is bidding strategy where bids are a fraction of the advertised price for some good or service.",
            "Target CPA is an automated bid strategy that sets bids to help get as many conversions as possible at the target cost-per-acquisition (CPA) you set.",
            "Target CPC is an automated bid strategy that sets bids to help get as many clicks as possible at the target cost-per-click (CPC) you set.",
            "Target CPM is an automated bid strategy that sets bids to help get as many impressions as possible at the target cost per one thousand impressions (CPM) you set.",
            "Target CPV is an automated bidding strategy that sets bids to optimize performance given the average target cost per view.",
            "An automated bidding strategy that sets bids so that a certain percentage of search ads are shown at the top of the first page (or other targeted location).",
            "Target Outrank Share is an automated bidding strategy that sets bids based on the target fraction of auctions where the advertiser should outrank a specific competitor. This enum value is deprecated.",
            "Target ROAS is an automated bidding strategy that helps you maximize revenue while averaging a specific target Return On Average Spend (ROAS).",
            "Target Spend is an automated bid strategy that sets your bids to help get as many clicks as possible within your budget."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "COMMISSION",
            "ENHANCED_CPC",
            "FIXED_CPM",
            "FIXED_SHARE_OF_VOICE",
            "INVALID",
            "MANUAL_CPA",
            "MANUAL_CPC",
            "MANUAL_CPM",
            "MANUAL_CPV",
            "MAXIMIZE_CONVERSIONS",
            "MAXIMIZE_CONVERSION_VALUE",
            "PAGE_ONE_PROMOTED",
            "PERCENT_CPC",
            "TARGET_CPA",
            "TARGET_CPC",
            "TARGET_CPM",
            "TARGET_CPV",
            "TARGET_IMPRESSION_SHARE",
            "TARGET_OUTRANK_SHARE",
            "TARGET_ROAS",
            "TARGET_SPEND"
          ],
          "type": "string"
        },
        "frequencyCaps": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__FrequencyCapEntry"
          },
          "description": "A list that limits how often each user will see this campaign's ads.",
          "type": "array"
        },
        "biddingStrategySystemStatus": {
          "type": "string",
          "description": "Output only. The system status of the campaign's bidding strategy.",
          "readOnly": true,
          "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"
          ]
        },
        "targetRoas": {
          "description": "Standard Target ROAS bidding strategy that automatically maximizes revenue while averaging a specific target return on ad spend (ROAS).",
          "$ref": "GoogleAdsGoogleadsV24Common__TargetRoas"
        },
        "assetAutomationSettings": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Resources_Campaign_AssetAutomationSetting"
          },
          "description": "Contains the opt-in/out status of each AssetAutomationType. See documentation of each asset automation type enum for default opt in/out behavior.",
          "type": "array"
        },
        "textGuidelines": {
          "description": "Settings to control automatically generated text assets. Only available in Performance Max and Search campaigns (Brand Guidelines does not need to be enabled).",
          "$ref": "GoogleAdsGoogleadsV24Resources_Campaign_TextGuidelines"
        },
        "missingEuPoliticalAdvertisingDeclaration": {
          "type": "boolean",
          "description": "Output only. Indicates whether this campaign is missing a declaration about whether it contains political advertising targeted towards the EU and is ineligible for any exemptions. If this field is true, use the contains_eu_political_advertising field to add the required declaration. This field is read-only.",
          "readOnly": true
        },
        "dynamicSearchAdsSetting": {
          "description": "The setting for controlling Dynamic Search Ads (DSA).",
          "$ref": "GoogleAdsGoogleadsV24Resources_Campaign_DynamicSearchAdsSetting"
        },
        "maximizeConversions": {
          "description": "Standard Maximize Conversions bidding strategy that automatically maximizes number of conversions while spending your budget.",
          "$ref": "GoogleAdsGoogleadsV24Common__MaximizeConversions"
        },
        "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": "GoogleAdsGoogleadsV24Resources_Campaign_SelectiveOptimization"
        },
        "manualCpv": {
          "description": "A bidding strategy that pays a configurable amount per video view.",
          "$ref": "GoogleAdsGoogleadsV24Common__ManualCpv"
        },
        "manualCpc": {
          "description": "Standard Manual CPC bidding strategy. Manual click-based bidding where user pays per click.",
          "$ref": "GoogleAdsGoogleadsV24Common__ManualCpc"
        },
        "targetSpend": {
          "description": "Standard Target Spend bidding strategy that automatically sets your bids to help get as many clicks as possible within your budget.",
          "$ref": "GoogleAdsGoogleadsV24Common__TargetSpend"
        },
        "primaryStatusReasons": {
          "items": {
            "type": "string",
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "CAMPAIGN_REMOVED",
              "CAMPAIGN_PAUSED",
              "CAMPAIGN_PENDING",
              "CAMPAIGN_ENDED",
              "CAMPAIGN_DRAFT",
              "BIDDING_STRATEGY_MISCONFIGURED",
              "BIDDING_STRATEGY_LIMITED",
              "BIDDING_STRATEGY_LEARNING",
              "BIDDING_STRATEGY_CONSTRAINED",
              "BUDGET_CONSTRAINED",
              "BUDGET_MISCONFIGURED",
              "SEARCH_VOLUME_LIMITED",
              "AD_GROUPS_PAUSED",
              "NO_AD_GROUPS",
              "KEYWORDS_PAUSED",
              "NO_KEYWORDS",
              "AD_GROUP_ADS_PAUSED",
              "NO_AD_GROUP_ADS",
              "HAS_ADS_LIMITED_BY_POLICY",
              "HAS_ADS_DISAPPROVED",
              "MOST_ADS_UNDER_REVIEW",
              "MISSING_LEAD_FORM_EXTENSION",
              "MISSING_CALL_EXTENSION",
              "LEAD_FORM_EXTENSION_UNDER_REVIEW",
              "LEAD_FORM_EXTENSION_DISAPPROVED",
              "CALL_EXTENSION_UNDER_REVIEW",
              "CALL_EXTENSION_DISAPPROVED",
              "NO_MOBILE_APPLICATION_AD_GROUP_CRITERIA",
              "CAMPAIGN_GROUP_PAUSED",
              "CAMPAIGN_GROUP_ALL_GROUP_BUDGETS_ENDED",
              "APP_NOT_RELEASED",
              "APP_PARTIALLY_RELEASED",
              "HAS_ASSET_GROUPS_DISAPPROVED",
              "HAS_ASSET_GROUPS_LIMITED_BY_POLICY",
              "MOST_ASSET_GROUPS_UNDER_REVIEW",
              "NO_ASSET_GROUPS",
              "ASSET_GROUPS_PAUSED",
              "MISSING_LOCATION_TARGETING",
              "CAMPAIGN_NOT_BOOKED",
              "BOOKING_HOLD_EXPIRING",
              "BOOKING_HOLD_EXPIRED",
              "BOOKING_CANCELLED"
            ],
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "The user-specified campaign status is removed.",
              "The user-specified campaign status is paused.",
              "The user-specified time for this campaign to start is in the future.",
              "The user-specified time for this campaign to end has passed.",
              "The campaign is a draft.",
              "The bidding strategy has incorrect user-specified settings.",
              "The bidding strategy is limited by user-specified settings such as lack of data or similar.",
              "The automated bidding system is adjusting to user-specified changes to the bidding strategy.",
              "Campaign could capture more conversion value by adjusting CPA/ROAS targets.",
              "The budget is limiting the campaign's ability to serve.",
              "The budget has incorrect user-specified settings.",
              "Campaign is not targeting all relevant queries.",
              "The user-specified ad group statuses are all paused.",
              "No eligible ad groups exist in this campaign.",
              "The user-specified keyword statuses are all paused.",
              "No eligible keywords exist in this campaign.",
              "The user-specified ad group ad statuses are all paused.",
              "No eligible ad group ads exist in this campaign.",
              "At least one ad in this campaign is limited by policy.",
              "At least one ad in this campaign is disapproved.",
              "Most ads in this campaign are pending review.",
              "The campaign has a lead form goal, and the lead form extension is missing.",
              "The campaign has a call goal, and the call extension is missing.",
              "The lead form extension is under review.",
              "The lead extension is disapproved.",
              "The call extension is under review.",
              "The call extension is disapproved.",
              "No eligible mobile application ad group criteria exist in this campaign.",
              "The user-specified campaign group status is paused.",
              "The user-specified times of all group budgets associated with the parent campaign group has passed.",
              "The app associated with this ACi campaign is not released in the target countries of the campaign.",
              "The app associated with this ACi campaign is partially released in the target countries of the campaign.",
              "At least one asset group in this campaign is disapproved.",
              "At least one asset group in this campaign is limited by policy.",
              "Most asset groups in this campaign are pending review.",
              "No eligible asset groups exist in this campaign.",
              "All asset groups in this campaign are paused.",
              "The campaign has location restrictions but does not specify location targeting.",
              "The campaign is a campaign with the FIXED_CPM bidding strategy but is not booked. Contributes to CampaignPrimaryStatus.NOT_ELIGIBLE when the campaign is not paused, and CampaignPrimaryStatus.PAUSED when the campaign is paused.",
              "The campaign is a campaign with the FIXED_CPM bidding strategy for which inventory was held, with the hold expiring. The hold expiry time can be read from Campaign.booking_details.hold_expiration_date_time. Contributes to CampaignPrimaryStatus.PAUSED.",
              "The campaign is a campaign with the FIXED_CPM bidding strategy with the inventory hold expired. Contributes to CampaignPrimaryStatus.PAUSED.",
              "The campaign is a campaign with the FIXED_CPM bidding strategy that has been auto-cancelled. Contributes to CampaignPrimaryStatus.NOT_ELIGIBLE."
            ]
          },
          "description": "Output only. The primary status reasons of the campaign. Provides insight into why a campaign is not serving or not serving optimally. These reasons are aggregated to determine an overall CampaignPrimaryStatus.",
          "readOnly": true,
          "type": "array"
        },
        "performanceMaxUpgrade": {
          "description": "Output only. Information about campaigns being upgraded to Performance Max.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Campaign_PerformanceMaxUpgrade"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_Recommendation_TargetAdjustmentInfo": {
      "id": "GoogleAdsGoogleadsV24Resources_Recommendation_TargetAdjustmentInfo",
      "type": "object",
      "description": "Information of a target adjustment recommendation.",
      "properties": {
        "recommendedTargetMultiplier": {
          "description": "Output only. The factor by which we recommend the target to be adjusted by.",
          "readOnly": true,
          "format": "double",
          "type": "number"
        },
        "sharedSet": {
          "description": "Output only. The shared set resource name of the portfolio bidding strategy where the target is defined. Only populated if the recommendation is portfolio level.",
          "readOnly": true,
          "type": "string"
        },
        "currentAverageTargetMicros": {
          "type": "string",
          "description": "Output only. The current average target of the campaign or portfolio targeted by this recommendation.",
          "readOnly": true,
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__ConversionAdjustment": {
      "id": "GoogleAdsGoogleadsV24Services__ConversionAdjustment",
      "type": "object",
      "description": "A conversion adjustment.",
      "properties": {
        "restatementValue": {
          "description": "Information needed to restate the conversion's value. Required for restatements. Should not be supplied for retractions. An error will be returned if provided for a retraction. NOTE: If you want to upload a second restatement with a different adjusted value, it must have a new, more recent, adjustment occurrence time. Otherwise, it will be treated as a duplicate of the previous restatement and ignored.",
          "$ref": "GoogleAdsGoogleadsV24Services__RestatementValue"
        },
        "conversionAction": {
          "description": "Resource name of the conversion action associated with this conversion adjustment. Note: Although this resource name consists of a customer id and a conversion action id, validation will ignore the customer id and use the conversion action id as the sole identifier of the conversion action.",
          "type": "string"
        },
        "adjustmentDateTime": {
          "description": "The date time at which the adjustment occurred. Must be after the conversion_date_time. The timezone must be specified. The format is \"yyyy-mm-dd hh:mm:ss+|-hh:mm\", for example, \"2019-01-01 12:32:45-08:00\".",
          "type": "string"
        },
        "gclidDateTimePair": {
          "description": "For adjustments, uniquely identifies a conversion that was reported without an order ID specified. If the adjustment_type is ENHANCEMENT, this value is optional but may be set in addition to the order_id.",
          "$ref": "GoogleAdsGoogleadsV24Services__GclidDateTimePair"
        },
        "adjustmentType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "RETRACTION",
            "RESTATEMENT",
            "ENHANCEMENT"
          ],
          "description": "The adjustment type.",
          "enumDescriptions": [
            "Not specified.",
            "Represents value unknown in this version.",
            "Negates a conversion so that its total value and count are both zero.",
            "Changes the value of a conversion.",
            "Supplements an existing conversion with provided user identifiers and user agent, which can be used by Google to enhance the conversion count."
          ]
        },
        "userIdentifiers": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__UserIdentifier"
          },
          "description": "The user identifiers to enhance the original conversion. ConversionAdjustmentUploadService only accepts user identifiers in enhancements. The maximum number of user identifiers for each enhancement is 5."
        },
        "orderId": {
          "type": "string",
          "description": "The order ID of the conversion to be adjusted. If the conversion was reported with an order ID specified, that order ID must be used as the identifier here. The order ID is required for enhancements."
        },
        "userAgent": {
          "description": "The user agent to enhance the original conversion. This can be found in your user's HTTP request header when they convert on your web page. Example, \"Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X)\". User agent can only be specified in enhancements with user identifiers. This should match the user agent of the request that sent the original conversion so the conversion and its enhancement are either both attributed as same-device or both attributed as cross-device.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__LocalServicesSettings": {
      "description": "Settings for Local Services customer.",
      "properties": {
        "granularLicenseStatuses": {
          "type": "array",
          "description": "Output only. A read-only list of geo vertical level license statuses.",
          "readOnly": true,
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Resources__GranularLicenseStatus"
          }
        },
        "granularInsuranceStatuses": {
          "description": "Output only. A read-only list of geo vertical level insurance statuses.",
          "readOnly": true,
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Resources__GranularInsuranceStatus"
          },
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__LocalServicesSettings",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Errors__GoogleAdsFailure": {
      "id": "GoogleAdsGoogleadsV24Errors__GoogleAdsFailure",
      "type": "object",
      "description": "Describes how a GoogleAds API call failed. It's returned inside google.rpc.Status.details when a call fails.",
      "properties": {
        "errors": {
          "type": "array",
          "description": "The list of errors that occurred.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Errors__GoogleAdsError"
          }
        },
        "requestId": {
          "type": "string",
          "description": "The unique ID of the request that is used for debugging purposes."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__SuggestGeoTargetConstantsRequest": {
      "description": "Request message for GeoTargetConstantService.SuggestGeoTargetConstants.",
      "properties": {
        "countryCode": {
          "description": "Returned geo targets are restricted to this country code.",
          "type": "string"
        },
        "geoTargets": {
          "description": "The geo target constant resource names to filter by.",
          "$ref": "GoogleAdsGoogleadsV24Services_SuggestGeoTargetConstantsRequest_GeoTargets"
        },
        "locale": {
          "type": "string",
          "description": "If possible, returned geo targets are translated using this locale. If not, en is used by default. This is also used as a hint for returned geo targets."
        },
        "locationNames": {
          "description": "The location names to search by. At most 25 names can be set.",
          "$ref": "GoogleAdsGoogleadsV24Services_SuggestGeoTargetConstantsRequest_LocationNames"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__SuggestGeoTargetConstantsRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__CampaignThirdPartyViewabilityIntegrationPartner": {
      "id": "GoogleAdsGoogleadsV24Common__CampaignThirdPartyViewabilityIntegrationPartner",
      "type": "object",
      "description": "Container for third party viewability integration data for Campaign.",
      "properties": {
        "viewabilityIntegrationPartnerData": {
          "description": "Third party partner data for YouTube viewability verification. This is optional metadata for partners to join or attach data to Ads campaigns.",
          "$ref": "GoogleAdsGoogleadsV24Common__ThirdPartyIntegrationPartnerData"
        },
        "shareCost": {
          "type": "boolean",
          "description": "If true, then cost data will be shared with this vendor."
        },
        "viewabilityIntegrationPartner": {
          "description": "Allowed third party integration partners for YouTube viewability verification.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "DoubleVerify.",
            "Integral Ad Science."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DOUBLE_VERIFY",
            "INTEGRAL_AD_SCIENCE"
          ],
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__InsightsAudienceDescription": {
      "id": "GoogleAdsGoogleadsV24Services__InsightsAudienceDescription",
      "type": "object",
      "description": "A text description of the audience of interest for which insights are being requested in AudienceInsightsService.",
      "properties": {
        "marketingObjective": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AWARENESS",
            "CONSIDERATION",
            "RESEARCH"
          ],
          "description": "Optional. An optional marketing objective which will influence the type of suggestions produced.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "The objective is to increase awareness of a brand or product among relevant audiences.",
            "The objective is to encourage potential customers to consider your brand or products when they're researching or shopping for product.",
            "The objective is for research, to gain further insights into your audience."
          ],
          "type": "string"
        },
        "audienceDimensions": {
          "description": "Optional. An optional list of audience dimensions to return.",
          "$ref": "GoogleAdsGoogleadsV24Services__AudienceInsightsDimensions"
        },
        "countryLocations": {
          "type": "array",
          "description": "Required. The countries for the audience.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__LocationInfo"
          }
        },
        "audienceDescription": {
          "type": "string",
          "description": "Required. An English language text description of an audience to get suggestions for. Maximum length is 2000 characters. For example, \"Women in their 30s who love to travel\"."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__SuggestKeywordThemesRequest": {
      "description": "Request message for SmartCampaignSuggestService.SuggestKeywordThemes.",
      "properties": {
        "suggestionInfo": {
          "description": "Required. Information to get keyword theme suggestions. Required fields: * suggestion_info.final_url * suggestion_info.language_code * suggestion_info.geo_target Recommended fields: * suggestion_info.business_setting",
          "$ref": "GoogleAdsGoogleadsV24Services__SmartCampaignSuggestionInfo"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__SuggestKeywordThemesRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__PromoteExperimentMetadata": {
      "description": "The metadata of the promoted experiment.",
      "properties": {
        "experiment": {
          "description": "Required. The promoted experiment.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__PromoteExperimentMetadata",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__PriceOffering": {
      "description": "A single price offering within a PriceAsset.",
      "properties": {
        "finalUrl": {
          "type": "string",
          "description": "Required. The final URL after all cross domain redirects."
        },
        "description": {
          "type": "string",
          "description": "Required. The description of the price offering. The length of this string should be between 1 and 25, inclusive."
        },
        "header": {
          "type": "string",
          "description": "Required. The header of the price offering. The length of this string should be between 1 and 25, inclusive."
        },
        "unit": {
          "type": "string",
          "description": "The price unit of the price offering.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Per hour.",
            "Per day.",
            "Per week.",
            "Per month.",
            "Per year.",
            "Per night."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PER_HOUR",
            "PER_DAY",
            "PER_WEEK",
            "PER_MONTH",
            "PER_YEAR",
            "PER_NIGHT"
          ]
        },
        "finalMobileUrl": {
          "type": "string",
          "description": "The final mobile URL after all cross domain redirects."
        },
        "price": {
          "description": "Required. The price value of the price offering.",
          "$ref": "GoogleAdsGoogleadsV24Common__Money"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__PriceOffering",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__PlannedProductReachForecast": {
      "description": "The forecasted allocation and traffic metrics for a specific product at a point on the reach curve.",
      "properties": {
        "plannableProductCode": {
          "description": "Selected product for planning. The product codes returned are within the set of the ones returned by ListPlannableProducts when using the same location ID.",
          "type": "string"
        },
        "costMicros": {
          "type": "string",
          "description": "The cost in micros. This may differ from the product's input allocation if one or more planned products cannot fulfill the budget because of limited inventory.",
          "format": "int64"
        },
        "plannedProductForecast": {
          "description": "Forecasted traffic metrics for this product.",
          "$ref": "GoogleAdsGoogleadsV24Services__PlannedProductForecast"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__PlannedProductReachForecast",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__ConfigureCampaignLifecycleGoalsRequest": {
      "id": "GoogleAdsGoogleadsV24Services__ConfigureCampaignLifecycleGoalsRequest",
      "type": "object",
      "description": "Request message for CampaignLifecycleGoalService.ConfigureCampaignLifecycleGoals.",
      "properties": {
        "validateOnly": {
          "type": "boolean",
          "description": "Optional. If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "operation": {
          "description": "Required. The operation to perform campaign lifecycle goal update.",
          "$ref": "GoogleAdsGoogleadsV24Services__CampaignLifecycleGoalOperation"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__MaximizeConversions": {
      "id": "GoogleAdsGoogleadsV24Common__MaximizeConversions",
      "type": "object",
      "description": "An automated bidding strategy to help get the most conversions for your campaigns while spending your budget.",
      "properties": {
        "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.",
          "format": "int64",
          "type": "string"
        },
        "cpcBidFloorMicros": {
          "type": "string",
          "description": "Minimum bid limit that can be set by the bid strategy. The limit applies to all keywords managed by the strategy. Mutable for portfolio bidding strategies only.",
          "format": "int64"
        },
        "targetCpaMicros": {
          "type": "string",
          "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.",
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__CampaignGoalConfig": {
      "id": "GoogleAdsGoogleadsV24Resources__CampaignGoalConfig",
      "type": "object",
      "description": "A link between a campaign and a goal enabling campaign-specific optimization.",
      "properties": {
        "campaign": {
          "description": "Immutable. The resource name of the campaign for this link.",
          "type": "string"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the campaign goal config. campaign goal config resource names have the form: `customers/{customer_id}/campaignGoalConfigs/{campaign_id}~{goal_id}`"
        },
        "campaignRetentionSettings": {
          "description": "Retention goal campaign settings.",
          "$ref": "GoogleAdsGoogleadsV24Common_CampaignGoalSettings_CampaignRetentionGoalSettings"
        },
        "goal": {
          "type": "string",
          "description": "Immutable. The resource name of the goal this link is attached to."
        },
        "goalType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CUSTOMER_RETENTION"
          ],
          "description": "Output only. The goal type this link is attached to.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Retention goal, which allows advertisers to optimize campaigns to win back lapsed customers. (https://support.google.com/google-ads/answer/14792043?hl=en)"
          ],
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__AudienceSegmentDimension": {
      "id": "GoogleAdsGoogleadsV24Common__AudienceSegmentDimension",
      "type": "object",
      "description": "Dimension specifying users by their membership in other audience segments.",
      "properties": {
        "segments": {
          "description": "Included audience segments. Users are included if they belong to at least one segment.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AudienceSegment"
          },
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateCustomAudienceResult": {
      "description": "The result for the custom audience mutate.",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateCustomAudienceResult",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__GenerateImagesResponse": {
      "id": "GoogleAdsGoogleadsV24Services__GenerateImagesResponse",
      "type": "object",
      "description": "Response message for AssetGenerationService.GenerateImages",
      "properties": {
        "generatedImages": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__GeneratedImage"
          },
          "description": "Successfully generated images."
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_Recommendation_ShoppingTargetAllOffersRecommendation": {
      "id": "GoogleAdsGoogleadsV24Resources_Recommendation_ShoppingTargetAllOffersRecommendation",
      "type": "object",
      "description": "The shopping recommendation to create a catch-all campaign that targets all offers.",
      "properties": {
        "feedLabel": {
          "type": "string",
          "description": "Output only. The offer feed label.",
          "readOnly": true
        },
        "merchant": {
          "description": "Output only. The details of the Merchant Center account.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_MerchantInfo"
        },
        "untargetedOffersCount": {
          "description": "Output only. The number of untargeted offers.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Errors__ErrorCode": {
      "description": "The error reason represented by type and enum.",
      "properties": {
        "operatorError": {
          "description": "The reasons for the operator error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Operator not supported."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "OPERATOR_NOT_SUPPORTED"
          ],
          "type": "string"
        },
        "currencyError": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "VALUE_NOT_MULTIPLE_OF_BILLABLE_UNIT"
          ],
          "description": "The reasons for the currency errors.",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Bid must be a multiple of billable unit."
          ]
        },
        "requestError": {
          "type": "string",
          "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",
            "TOO_MANY_ACTION_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"
          ],
          "description": "An error caused by the request",
          "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.",
            "Received too many action operations 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."
          ]
        },
        "campaignCustomizerError": {
          "description": "The reasons for the campaign customizer error.",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN"
          ],
          "type": "string"
        },
        "adCustomizerError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "COUNTDOWN_INVALID_DATE_FORMAT",
            "COUNTDOWN_DATE_IN_PAST",
            "COUNTDOWN_INVALID_LOCALE",
            "COUNTDOWN_INVALID_START_DAYS_BEFORE",
            "UNKNOWN_USER_LIST"
          ],
          "description": "The reasons for the ad customizer error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Invalid date argument in countdown function.",
            "Countdown end date is in the past.",
            "Invalid locale string in countdown function.",
            "Days-before argument to countdown function is not positive.",
            "A user list referenced in an IF function does not exist."
          ],
          "type": "string"
        },
        "idError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NOT_FOUND"
          ],
          "description": "The reasons for the id error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "ID not found"
          ],
          "type": "string"
        },
        "merchantCenterError": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MERCHANT_ID_CANNOT_BE_ACCESSED",
            "CUSTOMER_NOT_ALLOWED_FOR_SHOPPING_PERFORMANCE_MAX"
          ],
          "description": "Container for enum describing possible merchant center errors.",
          "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."
          ]
        },
        "shoppingProductError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MISSING_CAMPAIGN_FILTER",
            "MISSING_AD_GROUP_FILTER",
            "UNSUPPORTED_DATE_SEGMENTATION"
          ],
          "description": "The reasons for error in querying shopping product.",
          "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."
          ],
          "type": "string"
        },
        "audienceError": {
          "description": "The reasons for the audience error",
          "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"
          ],
          "type": "string"
        },
        "adParameterError": {
          "description": "The reasons for the ad parameter error",
          "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"
          ],
          "type": "string"
        },
        "assetGroupAssetError": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DUPLICATE_RESOURCE",
            "EXPANDABLE_TAGS_NOT_ALLOWED_IN_DESCRIPTION",
            "AD_CUSTOMIZER_NOT_SUPPORTED",
            "HOTEL_PROPERTY_ASSET_NOT_LINKED_TO_CAMPAIGN"
          ],
          "description": "The reasons for the asset group asset error",
          "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."
          ]
        },
        "campaignGoalConfigError": {
          "type": "string",
          "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"
          ],
          "description": "The reasons for the campaign goal config error.",
          "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."
          ]
        },
        "experimentArmError": {
          "description": "The reasons for the experiment arm error",
          "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"
          ],
          "type": "string"
        },
        "automaticallyCreatedAssetRemovalError": {
          "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.",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The ad does not exist.",
            "Ad type is not supported. Only Responsive Search Ad type is supported.",
            "The asset does not exist.",
            "The asset field type does not match.",
            "Not an automatically created asset."
          ],
          "type": "string"
        },
        "accessInvitationError": {
          "type": "string",
          "description": "The reasons for the access invitation error",
          "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"
          ]
        },
        "feedItemValidationError": {
          "description": "The reasons for the feed item validation error",
          "enumDescriptions": [
            "No value has been specified.",
            "Used for return value only. Represents value unknown in this version.",
            "String is too short.",
            "String is too long.",
            "Value is not provided.",
            "Phone number format is invalid for region.",
            "String does not represent a phone number.",
            "Phone number format is not compatible with country code.",
            "Premium rate number is not allowed.",
            "Phone number type is not allowed.",
            "Specified value is outside of the valid range.",
            "Call tracking is not supported in the selected country.",
            "Customer is not on the allow-list for call tracking.",
            "Country code is invalid.",
            "The specified mobile app id is invalid.",
            "Some required field attributes are missing.",
            "Invalid email button type for email extension.",
            "Email address is invalid.",
            "The HTTPS URL in email extension is invalid.",
            "Delivery address is missing from email extension.",
            "FeedItem scheduling start date comes after end date.",
            "FeedItem scheduling start time is missing.",
            "FeedItem scheduling end time is missing.",
            "Cannot compute system attributes on a FeedItem that has no FeedItemId.",
            "Call extension vanity phone numbers are not supported.",
            "Invalid review text.",
            "Invalid format for numeric value in ad parameter.",
            "Invalid format for date value in ad parameter.",
            "Invalid format for price value in ad parameter.",
            "Unrecognized type given for value in ad parameter.",
            "Enhanced sitelinks must have both description lines specified.",
            "Review source is ineligible.",
            "Review text cannot contain hyphens or dashes.",
            "Review text cannot contain double quote characters.",
            "Review text cannot contain quote characters.",
            "Parameters are encoded in the wrong format.",
            "URL parameter name must contain only letters, numbers, underscores, and dashes.",
            "Cannot find address location.",
            "Review extension text has source name.",
            "Some phone numbers can be shorter than usual. Some of these short numbers are carrier-specific, and we disallow those in ad extensions because they will not be available to all users.",
            "Triggered when a request references a placeholder field id that does not exist.",
            "URL contains invalid ValueTrack tags or format.",
            "Provided list exceeds acceptable size.",
            "Certain combinations of attributes aren't allowed to be specified in the same feed item.",
            "An attribute has the same value repeatedly.",
            "Advertisers can link a conversion action with a phone number to indicate that sufficiently long calls forwarded to that phone number should be counted as conversions of the specified type. This is an error message indicating that the conversion action specified is invalid (for example, the conversion action does not exist within the appropriate Google Ads account, or it is a type of conversion not appropriate to phone call conversions).",
            "Tracking template requires final url to be set.",
            "An app id was provided that doesn't exist in the given app store.",
            "Invalid U2 final url.",
            "Invalid U2 tracking url.",
            "Final URL should start from App download URL.",
            "List provided is too short.",
            "User Action field has invalid value.",
            "Type field has invalid value.",
            "Change status for event is invalid.",
            "The header of a structured snippets extension is not one of the valid headers.",
            "Android app link is not formatted correctly",
            "Phone number incompatible with call tracking for country.",
            "The input is identical to a reserved keyword",
            "Each option label in the message extension must be unique.",
            "Each option prefill in the message extension must be unique.",
            "In message extensions, the number of optional labels and optional prefills must be the same.",
            "All currency codes in an ad extension must be the same.",
            "Headers in price extension are not unique.",
            "Header and description in an item are the same.",
            "Price extension has too few items.",
            "The given value is not supported.",
            "Invalid final mobile url.",
            "The given string value of Label contains invalid characters",
            "The given URL contains value track parameters.",
            "The given value is not supported in the selected language of an extension.",
            "The iOS app link is not formatted correctly.",
            "iOS app link or iOS app store id is missing.",
            "Promotion time is invalid.",
            "Both the percent off and money amount off fields are set.",
            "Both the promotion code and orders over amount fields are set.",
            "Too many decimal places are specified.",
            "Ad Customizers are present and not allowed.",
            "Language code is not valid.",
            "Language is not supported.",
            "IF Function is present and not allowed.",
            "Final url suffix is not valid.",
            "Final url suffix contains an invalid tag.",
            "Final url suffix is formatted incorrectly.",
            "Consent for call recording, which is required for the use of call extensions, was not provided by the advertiser. See https://support.google.com/google-ads/answer/7412639.",
            "Multiple message delivery options are set.",
            "No message delivery option is set.",
            "String value of conversion reporting state field is not valid.",
            "Image size is not right.",
            "Email delivery is not supported in the country specified in the country code field.",
            "Auto reply is not supported in the country specified in the country code field.",
            "Invalid value specified for latitude.",
            "Invalid value specified for longitude.",
            "Too many label fields provided.",
            "Invalid image url.",
            "Latitude value is missing.",
            "Longitude value is missing.",
            "Unable to find address.",
            "Cannot target provided address.",
            "The specified asset ID does not exist.",
            "The asset type cannot be set for the field.",
            "The image has unexpected size.",
            "The image aspect ratio is not allowed.",
            "The image file is too large.",
            "The image format is unsupported.",
            "Image violates constraints without more details.",
            "An error occurred when validating image."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "STRING_TOO_SHORT",
            "STRING_TOO_LONG",
            "VALUE_NOT_SPECIFIED",
            "INVALID_DOMESTIC_PHONE_NUMBER_FORMAT",
            "INVALID_PHONE_NUMBER",
            "PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY",
            "PREMIUM_RATE_NUMBER_NOT_ALLOWED",
            "DISALLOWED_NUMBER_TYPE",
            "VALUE_OUT_OF_RANGE",
            "CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY",
            "CUSTOMER_NOT_IN_ALLOWLIST_FOR_CALLTRACKING",
            "INVALID_COUNTRY_CODE",
            "INVALID_APP_ID",
            "MISSING_ATTRIBUTES_FOR_FIELDS",
            "INVALID_TYPE_ID",
            "INVALID_EMAIL_ADDRESS",
            "INVALID_HTTPS_URL",
            "MISSING_DELIVERY_ADDRESS",
            "START_DATE_AFTER_END_DATE",
            "MISSING_FEED_ITEM_START_TIME",
            "MISSING_FEED_ITEM_END_TIME",
            "MISSING_FEED_ITEM_ID",
            "VANITY_PHONE_NUMBER_NOT_ALLOWED",
            "INVALID_REVIEW_EXTENSION_SNIPPET",
            "INVALID_NUMBER_FORMAT",
            "INVALID_DATE_FORMAT",
            "INVALID_PRICE_FORMAT",
            "UNKNOWN_PLACEHOLDER_FIELD",
            "MISSING_ENHANCED_SITELINK_DESCRIPTION_LINE",
            "REVIEW_EXTENSION_SOURCE_INELIGIBLE",
            "HYPHENS_IN_REVIEW_EXTENSION_SNIPPET",
            "DOUBLE_QUOTES_IN_REVIEW_EXTENSION_SNIPPET",
            "QUOTES_IN_REVIEW_EXTENSION_SNIPPET",
            "INVALID_FORM_ENCODED_PARAMS",
            "INVALID_URL_PARAMETER_NAME",
            "NO_GEOCODING_RESULT",
            "SOURCE_NAME_IN_REVIEW_EXTENSION_TEXT",
            "CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED",
            "INVALID_PLACEHOLDER_FIELD_ID",
            "INVALID_URL_TAG",
            "LIST_TOO_LONG",
            "INVALID_ATTRIBUTES_COMBINATION",
            "DUPLICATE_VALUES",
            "INVALID_CALL_CONVERSION_ACTION_ID",
            "CANNOT_SET_WITHOUT_FINAL_URLS",
            "APP_ID_DOESNT_EXIST_IN_APP_STORE",
            "INVALID_FINAL_URL",
            "INVALID_TRACKING_URL",
            "INVALID_FINAL_URL_FOR_APP_DOWNLOAD_URL",
            "LIST_TOO_SHORT",
            "INVALID_USER_ACTION",
            "INVALID_TYPE_NAME",
            "INVALID_EVENT_CHANGE_STATUS",
            "INVALID_SNIPPETS_HEADER",
            "INVALID_ANDROID_APP_LINK",
            "NUMBER_TYPE_WITH_CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY",
            "RESERVED_KEYWORD_OTHER",
            "DUPLICATE_OPTION_LABELS",
            "DUPLICATE_OPTION_PREFILLS",
            "UNEQUAL_LIST_LENGTHS",
            "INCONSISTENT_CURRENCY_CODES",
            "PRICE_EXTENSION_HAS_DUPLICATED_HEADERS",
            "ITEM_HAS_DUPLICATED_HEADER_AND_DESCRIPTION",
            "PRICE_EXTENSION_HAS_TOO_FEW_ITEMS",
            "UNSUPPORTED_VALUE",
            "INVALID_FINAL_MOBILE_URL",
            "INVALID_KEYWORDLESS_AD_RULE_LABEL",
            "VALUE_TRACK_PARAMETER_NOT_SUPPORTED",
            "UNSUPPORTED_VALUE_IN_SELECTED_LANGUAGE",
            "INVALID_IOS_APP_LINK",
            "MISSING_IOS_APP_LINK_OR_IOS_APP_STORE_ID",
            "PROMOTION_INVALID_TIME",
            "PROMOTION_CANNOT_SET_PERCENT_OFF_AND_MONEY_AMOUNT_OFF",
            "PROMOTION_CANNOT_SET_PROMOTION_CODE_AND_ORDERS_OVER_AMOUNT",
            "TOO_MANY_DECIMAL_PLACES_SPECIFIED",
            "AD_CUSTOMIZERS_NOT_ALLOWED",
            "INVALID_LANGUAGE_CODE",
            "UNSUPPORTED_LANGUAGE",
            "IF_FUNCTION_NOT_ALLOWED",
            "INVALID_FINAL_URL_SUFFIX",
            "INVALID_TAG_IN_FINAL_URL_SUFFIX",
            "INVALID_FINAL_URL_SUFFIX_FORMAT",
            "CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED",
            "ONLY_ONE_DELIVERY_OPTION_IS_ALLOWED",
            "NO_DELIVERY_OPTION_IS_SET",
            "INVALID_CONVERSION_REPORTING_STATE",
            "IMAGE_SIZE_WRONG",
            "EMAIL_DELIVERY_NOT_AVAILABLE_IN_COUNTRY",
            "AUTO_REPLY_NOT_AVAILABLE_IN_COUNTRY",
            "INVALID_LATITUDE_VALUE",
            "INVALID_LONGITUDE_VALUE",
            "TOO_MANY_LABELS",
            "INVALID_IMAGE_URL",
            "MISSING_LATITUDE_VALUE",
            "MISSING_LONGITUDE_VALUE",
            "ADDRESS_NOT_FOUND",
            "ADDRESS_NOT_TARGETABLE",
            "INVALID_ASSET_ID",
            "INCOMPATIBLE_ASSET_TYPE",
            "IMAGE_ERROR_UNEXPECTED_SIZE",
            "IMAGE_ERROR_ASPECT_RATIO_NOT_ALLOWED",
            "IMAGE_ERROR_FILE_TOO_LARGE",
            "IMAGE_ERROR_FORMAT_NOT_ALLOWED",
            "IMAGE_ERROR_CONSTRAINTS_VIOLATED",
            "IMAGE_ERROR_SERVER_ERROR"
          ],
          "type": "string"
        },
        "languageCodeError": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "LANGUAGE_CODE_NOT_FOUND",
            "INVALID_LANGUAGE_CODE"
          ],
          "description": "The reasons for the language code error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The input language code is not recognized.",
            "The language code is not supported."
          ]
        },
        "contextError": {
          "description": "The reasons for the context error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The operation is not allowed for the given context.",
            "The operation is not allowed for removed resources."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "OPERATION_NOT_PERMITTED_FOR_CONTEXT",
            "OPERATION_NOT_PERMITTED_FOR_REMOVED_RESOURCE"
          ],
          "type": "string"
        },
        "quotaError": {
          "type": "string",
          "description": "An error with the amount of quota remaining.",
          "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"
          ]
        },
        "biddingError": {
          "description": "The reasons for the bidding errors",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Cannot transition to new bidding strategy.",
            "Cannot attach bidding strategy to campaign.",
            "Bidding strategy is not supported or cannot be used as anonymous.",
            "The type does not match the named strategy's type.",
            "The bid is invalid.",
            "Bidding strategy is not available for the account type.",
            "Campaign can not be created with given bidding strategy. It can be transitioned to the strategy, once eligible.",
            "Cannot target content network only as campaign uses Page One Promoted bidding strategy.",
            "Budget Optimizer and Target Spend bidding strategies are not supported for campaigns with AdSchedule targeting.",
            "Pay per conversion is not available to all the customer, only few customers on the allow-list can use this.",
            "Pay per conversion is not allowed with Target CPA.",
            "Cannot set bidding strategy to Manual CPM for search network only campaigns.",
            "The bidding strategy is not supported for use in drafts or experiments.",
            "Bidding strategy type does not support product type ad group criterion.",
            "Bid amount is too small.",
            "Bid amount is too big.",
            "Bid has too many fractional digit precision.",
            "Invalid domain name specified.",
            "The field is not compatible with the payment mode.",
            "Bidding strategy type is incompatible with shared budget.",
            "The attached bidding strategy and budget must be aligned with each other if alignment is specified on either entity.",
            "The attached bidding strategy and budget must be attached to the same campaigns to become aligned.",
            "The aligned bidding strategy and budget must be removed at the same time.",
            "cpc_bid_floor_micros is greater than cpc_bid_ceiling_micros.",
            "target_roas_tolerance_percent_millis must be integer."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BIDDING_STRATEGY_TRANSITION_NOT_ALLOWED",
            "CANNOT_ATTACH_BIDDING_STRATEGY_TO_CAMPAIGN",
            "INVALID_ANONYMOUS_BIDDING_STRATEGY_TYPE",
            "INVALID_BIDDING_STRATEGY_TYPE",
            "INVALID_BID",
            "BIDDING_STRATEGY_NOT_AVAILABLE_FOR_ACCOUNT_TYPE",
            "CANNOT_CREATE_CAMPAIGN_WITH_BIDDING_STRATEGY",
            "CANNOT_TARGET_CONTENT_NETWORK_ONLY_WITH_CAMPAIGN_LEVEL_POP_BIDDING_STRATEGY",
            "BIDDING_STRATEGY_NOT_SUPPORTED_WITH_AD_SCHEDULE",
            "PAY_PER_CONVERSION_NOT_AVAILABLE_FOR_CUSTOMER",
            "PAY_PER_CONVERSION_NOT_ALLOWED_WITH_TARGET_CPA",
            "BIDDING_STRATEGY_NOT_ALLOWED_FOR_SEARCH_ONLY_CAMPAIGNS",
            "BIDDING_STRATEGY_NOT_SUPPORTED_IN_DRAFTS_OR_EXPERIMENTS",
            "BIDDING_STRATEGY_TYPE_DOES_NOT_SUPPORT_PRODUCT_TYPE_ADGROUP_CRITERION",
            "BID_TOO_SMALL",
            "BID_TOO_BIG",
            "BID_TOO_MANY_FRACTIONAL_DIGITS",
            "INVALID_DOMAIN_NAME",
            "NOT_COMPATIBLE_WITH_PAYMENT_MODE",
            "BIDDING_STRATEGY_TYPE_INCOMPATIBLE_WITH_SHARED_BUDGET",
            "BIDDING_STRATEGY_AND_BUDGET_MUST_BE_ALIGNED",
            "BIDDING_STRATEGY_AND_BUDGET_MUST_BE_ATTACHED_TO_THE_SAME_CAMPAIGNS_TO_ALIGN",
            "BIDDING_STRATEGY_AND_BUDGET_MUST_BE_REMOVED_TOGETHER",
            "CPC_BID_FLOOR_MICROS_GREATER_THAN_CPC_BID_CEILING_MICROS",
            "TARGET_ROAS_TOLERANCE_PERCENT_MILLIS_MUST_BE_INTEGER"
          ],
          "type": "string"
        },
        "youtubeVideoRegistrationError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "VIDEO_NOT_FOUND",
            "VIDEO_NOT_ACCESSIBLE",
            "VIDEO_NOT_ELIGIBLE"
          ],
          "description": "The reasons for YouTube video registration errors.",
          "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)."
          ],
          "type": "string"
        },
        "actionError": {
          "type": "string",
          "description": "An error with a Tangle Action.",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The action is missing a required field.",
            "The action has invalid arguments in the request."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "REQUIRED_FIELD_MISSING",
            "INVALID_ARGUMENT"
          ]
        },
        "experimentError": {
          "type": "string",
          "description": "The reasons for the experiment error",
          "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"
          ]
        },
        "feedItemSetLinkError": {
          "description": "The reasons for the feed item set link error",
          "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"
          ],
          "type": "string"
        },
        "policyFindingError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "POLICY_FINDING",
            "POLICY_TOPIC_NOT_FOUND"
          ],
          "description": "The reasons for the policy finding error.",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The resource has been disapproved since the policy summary includes policy topics of type PROHIBITED.",
            "The given policy topic does not exist."
          ],
          "type": "string"
        },
        "invoiceError": {
          "description": "The reasons for the invoice error",
          "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"
          ],
          "type": "string"
        },
        "internalError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INTERNAL_ERROR",
            "ERROR_CODE_NOT_PUBLISHED",
            "TRANSIENT_ERROR",
            "DEADLINE_EXCEEDED"
          ],
          "description": "An unexpected server-side error.",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Google Ads API encountered unexpected internal error.",
            "The intended error code doesn't exist in specified API version. It will be released in a future API version.",
            "Google Ads API encountered an unexpected transient error. The user should retry their request in these cases.",
            "The request took longer than a deadline."
          ],
          "type": "string"
        },
        "labelError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CANNOT_APPLY_INACTIVE_LABEL",
            "CANNOT_APPLY_LABEL_TO_DISABLED_AD_GROUP_CRITERION",
            "CANNOT_APPLY_LABEL_TO_NEGATIVE_AD_GROUP_CRITERION",
            "EXCEEDED_LABEL_LIMIT_PER_TYPE",
            "INVALID_RESOURCE_FOR_MANAGER_LABEL",
            "DUPLICATE_NAME",
            "INVALID_LABEL_NAME",
            "CANNOT_ATTACH_LABEL_TO_DRAFT",
            "CANNOT_ATTACH_NON_MANAGER_LABEL_TO_CUSTOMER"
          ],
          "description": "The reason for the label error.",
          "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."
          ],
          "type": "string"
        },
        "managerLinkError": {
          "type": "string",
          "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"
          ],
          "description": "The reasons for the manager link error",
          "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."
          ]
        },
        "dataLinkError": {
          "type": "string",
          "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",
          "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."
          ]
        },
        "distinctError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DUPLICATE_ELEMENT",
            "DUPLICATE_TYPE"
          ],
          "description": "The reasons for the distinct error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Duplicate element.",
            "Duplicate type."
          ],
          "type": "string"
        },
        "newResourceCreationError": {
          "type": "string",
          "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",
          "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."
          ]
        },
        "customInterestError": {
          "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"
          ],
          "description": "The reasons for the custom interest error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Duplicate custom interest name ignoring case.",
            "In the remove custom interest member operation, both member ID and pair [type, parameter] are not present.",
            "The pair of [type, parameter] does not exist.",
            "The pair of [type, parameter] already exists.",
            "Unsupported custom interest member type.",
            "Cannot remove a custom interest while it's still being targeted.",
            "Cannot mutate custom interest type."
          ],
          "type": "string"
        },
        "clickViewError": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EXPECTED_FILTER_ON_A_SINGLE_DAY",
            "DATE_TOO_OLD"
          ],
          "description": "The reasons for the click view error",
          "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."
          ]
        },
        "timeZoneError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_TIME_ZONE"
          ],
          "description": "The reasons for the time zone error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Time zone is not valid."
          ],
          "type": "string"
        },
        "benchmarksError": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MAX_QUERY_COMPLEXITY_EXCEEDED"
          ],
          "description": "The reasons for the Benchmarks error.",
          "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."
          ]
        },
        "authenticationError": {
          "description": "Indicates failure to properly authenticate user.",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Authentication of the request failed.",
            "Client customer ID is not a number.",
            "No customer found for the provided customer ID.",
            "Client's Google account is deleted.",
            "Google account login token in the cookie is invalid.",
            "A problem occurred during Google account authentication.",
            "The user in the Google account login token does not match the user ID in the cookie.",
            "Login cookie is required for authentication.",
            "The Google account that generated the OAuth access token is not associated with a Google Ads account. Create a new account, or add the Google account to an existing Google Ads account.",
            "OAuth token in the header is not valid.",
            "OAuth token in the header has expired.",
            "OAuth token in the header has been disabled.",
            "OAuth token in the header has been revoked.",
            "OAuth token HTTP header is malformed.",
            "Login cookie is not valid.",
            "The email address provided is invalid or does not exist.",
            "User ID in the header is not a valid ID.",
            "An account administrator changed this account's authentication settings. To access this Google Ads account, enable 2-Step Verification in your Google account at https://www.google.com/landing/2step.",
            "An account administrator changed this account's authentication settings. To access this Google Ads account, enable Advanced Protection in your Google account at https://landing.google.com/advancedprotection.",
            "The Cloud organization associated with the project is not recognized.",
            "The Cloud organization associated with the project is not approved for prod access.",
            "The Cloud organization associated with the project is not associated with the developer token.",
            "The developer token is not valid."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AUTHENTICATION_ERROR",
            "CLIENT_CUSTOMER_ID_INVALID",
            "CUSTOMER_NOT_FOUND",
            "GOOGLE_ACCOUNT_DELETED",
            "GOOGLE_ACCOUNT_COOKIE_INVALID",
            "GOOGLE_ACCOUNT_AUTHENTICATION_FAILED",
            "GOOGLE_ACCOUNT_USER_AND_ADS_USER_MISMATCH",
            "LOGIN_COOKIE_REQUIRED",
            "NOT_ADS_USER",
            "OAUTH_TOKEN_INVALID",
            "OAUTH_TOKEN_EXPIRED",
            "OAUTH_TOKEN_DISABLED",
            "OAUTH_TOKEN_REVOKED",
            "OAUTH_TOKEN_HEADER_INVALID",
            "LOGIN_COOKIE_INVALID",
            "INVALID_EMAIL_ADDRESS",
            "USER_ID_INVALID",
            "TWO_STEP_VERIFICATION_NOT_ENROLLED",
            "ADVANCED_PROTECTION_NOT_ENROLLED",
            "ORGANIZATION_NOT_RECOGNIZED",
            "ORGANIZATION_NOT_APPROVED",
            "ORGANIZATION_NOT_ASSOCIATED_WITH_DEVELOPER_TOKEN",
            "DEVELOPER_TOKEN_INVALID"
          ],
          "type": "string"
        },
        "campaignDraftError": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DUPLICATE_DRAFT_NAME",
            "INVALID_STATUS_TRANSITION_FROM_REMOVED",
            "INVALID_STATUS_TRANSITION_FROM_PROMOTED",
            "INVALID_STATUS_TRANSITION_FROM_PROMOTE_FAILED",
            "CUSTOMER_CANNOT_CREATE_DRAFT",
            "CAMPAIGN_CANNOT_CREATE_DRAFT",
            "INVALID_DRAFT_CHANGE",
            "INVALID_STATUS_TRANSITION",
            "MAX_NUMBER_OF_DRAFTS_PER_CAMPAIGN_REACHED",
            "LIST_ERRORS_FOR_PROMOTED_DRAFT_ONLY"
          ],
          "description": "The reasons for the campaign draft error",
          "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."
          ]
        },
        "mutateError": {
          "description": "An error with a mutate",
          "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"
          ],
          "type": "string"
        },
        "adGroupFeedError": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE",
            "CANNOT_CREATE_FOR_REMOVED_FEED",
            "ADGROUP_FEED_ALREADY_EXISTS",
            "CANNOT_OPERATE_ON_REMOVED_ADGROUP_FEED",
            "INVALID_PLACEHOLDER_TYPE",
            "MISSING_FEEDMAPPING_FOR_PLACEHOLDER_TYPE",
            "NO_EXISTING_LOCATION_CUSTOMER_FEED"
          ],
          "description": "The reasons for the ad group feed error",
          "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."
          ]
        },
        "notAllowlistedError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CUSTOMER_NOT_ALLOWLISTED_FOR_THIS_FEATURE"
          ],
          "description": "The reasons for the not allowlisted error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Customer is not allowlisted for accessing this feature."
          ],
          "type": "string"
        },
        "finalUrlExpansionAssetViewError": {
          "type": "string",
          "description": "The reasons for the final url expansion asset view error",
          "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"
          ]
        },
        "keywordPlanCampaignKeywordError": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CAMPAIGN_KEYWORD_IS_POSITIVE"
          ],
          "description": "The reason for keyword plan campaign keyword error.",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Keyword plan campaign keyword is positive."
          ]
        },
        "conversionActionError": {
          "description": "The reasons for the conversion action error",
          "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"
          ],
          "type": "string"
        },
        "sharedSetError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CUSTOMER_CANNOT_CREATE_SHARED_SET_OF_THIS_TYPE",
            "DUPLICATE_NAME",
            "SHARED_SET_REMOVED",
            "SHARED_SET_IN_USE"
          ],
          "description": "The reasons for the shared set error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The customer cannot create this type of shared set.",
            "A shared set with this name already exists.",
            "Removed shared sets cannot be mutated.",
            "The shared set cannot be removed because it is in use."
          ],
          "type": "string"
        },
        "userListError": {
          "type": "string",
          "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",
            "DUPLICATE_LOOKALIKE",
            "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",
          "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.",
            "Cannot create a Lookalike UserList which is a duplicate of an existing Lookalike.",
            "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."
          ]
        },
        "assetError": {
          "type": "string",
          "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"
          ],
          "description": "The reasons for the asset error",
          "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."
          ]
        },
        "customerError": {
          "type": "string",
          "description": "The reasons for the customer error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Customer status is not allowed to be changed from DRAFT and CLOSED. Currency code and at least one of country code and time zone needs to be set when status is changed to ENABLED.",
            "CustomerService cannot get a customer that has not been fully set up.",
            "Customer creation is denied for policy violation.",
            "Manager account is ineligible to create new accounts."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "STATUS_CHANGE_DISALLOWED",
            "ACCOUNT_NOT_SET_UP",
            "CREATION_DENIED_FOR_POLICY_VIOLATION",
            "CREATION_DENIED_INELIGIBLE_MCC"
          ]
        },
        "feedMappingError": {
          "type": "string",
          "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"
          ],
          "description": "The reasons for the feed mapping error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The given placeholder field does not exist.",
            "The given criterion field does not exist.",
            "The given placeholder type does not exist.",
            "The given criterion type does not exist.",
            "A feed mapping must contain at least one attribute field mapping.",
            "The type of the feed attribute referenced in the attribute field mapping must match the type of the placeholder field.",
            "A feed mapping for a system generated feed cannot be operated on.",
            "Only one feed mapping for a placeholder type is allowed per feed or customer (depending on the placeholder type).",
            "Only one feed mapping for a criterion type is allowed per customer.",
            "Only one feed attribute mapping for a placeholder field is allowed (depending on the placeholder type).",
            "Only one feed attribute mapping for a criterion field is allowed (depending on the criterion type).",
            "This feed mapping may not contain any explicit attribute field mappings.",
            "Location placeholder feed mappings can only be created for Places feeds.",
            "Mappings for typed feeds cannot be modified.",
            "The given placeholder type can only be mapped to system generated feeds.",
            "The given placeholder type cannot be mapped to a system generated feed with the given type.",
            "The \"field\" oneof was not set in an AttributeFieldMapping.",
            "Feed is read only."
          ]
        },
        "adGroupCriterionError": {
          "type": "string",
          "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"
          ],
          "description": "Indicates failure to properly authenticate user.",
          "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."
          ]
        },
        "conversionValueRuleError": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_GEO_TARGET_CONSTANT",
            "CONFLICTING_INCLUDED_AND_EXCLUDED_GEO_TARGET",
            "CONFLICTING_CONDITIONS",
            "CANNOT_REMOVE_IF_INCLUDED_IN_VALUE_RULE_SET",
            "CONDITION_NOT_ALLOWED",
            "FIELD_MUST_BE_UNSET",
            "CANNOT_PAUSE_UNLESS_VALUE_RULE_SET_IS_PAUSED",
            "UNTARGETABLE_GEO_TARGET",
            "INVALID_AUDIENCE_USER_LIST",
            "INACCESSIBLE_USER_LIST",
            "INVALID_AUDIENCE_USER_INTEREST",
            "CANNOT_ADD_RULE_WITH_STATUS_REMOVED",
            "NO_DAY_OF_WEEK_SELECTED"
          ],
          "description": "The reasons for the conversion value rule error",
          "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."
          ]
        },
        "sharedCriterionError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CRITERION_TYPE_NOT_ALLOWED_FOR_SHARED_SET_TYPE"
          ],
          "description": "The reasons for the shared criterion error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The criterion is not appropriate for the shared set type."
          ],
          "type": "string"
        },
        "assetSetAssetError": {
          "type": "string",
          "description": "The reasons for the asset set asset error",
          "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"
          ]
        },
        "queryError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "QUERY_ERROR",
            "BAD_ENUM_CONSTANT",
            "BAD_ESCAPE_SEQUENCE",
            "BAD_FIELD_NAME",
            "BAD_LIMIT_VALUE",
            "BAD_NUMBER",
            "BAD_OPERATOR",
            "BAD_PARAMETER_NAME",
            "BAD_PARAMETER_VALUE",
            "BAD_RESOURCE_TYPE_IN_FROM_CLAUSE",
            "BAD_SYMBOL",
            "BAD_VALUE",
            "DATE_RANGE_TOO_WIDE",
            "DATE_RANGE_TOO_NARROW",
            "EXPECTED_AND",
            "EXPECTED_BY",
            "EXPECTED_DIMENSION_FIELD_IN_SELECT_CLAUSE",
            "EXPECTED_FILTERS_ON_DATE_RANGE",
            "EXPECTED_FROM",
            "EXPECTED_LIST",
            "EXPECTED_REFERENCED_FIELD_IN_SELECT_CLAUSE",
            "EXPECTED_SELECT",
            "EXPECTED_SINGLE_VALUE",
            "EXPECTED_VALUE_WITH_BETWEEN_OPERATOR",
            "INVALID_DATE_FORMAT",
            "MISALIGNED_DATE_FOR_FILTER",
            "INVALID_STRING_VALUE",
            "INVALID_VALUE_WITH_BETWEEN_OPERATOR",
            "INVALID_VALUE_WITH_DURING_OPERATOR",
            "INVALID_VALUE_WITH_LIKE_OPERATOR",
            "OPERATOR_FIELD_MISMATCH",
            "PROHIBITED_EMPTY_LIST_IN_CONDITION",
            "PROHIBITED_ENUM_CONSTANT",
            "PROHIBITED_FIELD_COMBINATION_IN_SELECT_CLAUSE",
            "PROHIBITED_FIELD_IN_ORDER_BY_CLAUSE",
            "PROHIBITED_FIELD_IN_SELECT_CLAUSE",
            "PROHIBITED_FIELD_IN_WHERE_CLAUSE",
            "PROHIBITED_RESOURCE_TYPE_IN_FROM_CLAUSE",
            "PROHIBITED_RESOURCE_TYPE_IN_SELECT_CLAUSE",
            "PROHIBITED_RESOURCE_TYPE_IN_WHERE_CLAUSE",
            "PROHIBITED_METRIC_IN_SELECT_OR_WHERE_CLAUSE",
            "PROHIBITED_SEGMENT_IN_SELECT_OR_WHERE_CLAUSE",
            "PROHIBITED_SEGMENT_WITH_METRIC_IN_SELECT_OR_WHERE_CLAUSE",
            "PROHIBITED_FIELD_OR_SEGMENT_WITH_METRIC",
            "LIMIT_VALUE_TOO_LOW",
            "PROHIBITED_NEWLINE_IN_STRING",
            "PROHIBITED_VALUE_COMBINATION_IN_LIST",
            "PROHIBITED_VALUE_COMBINATION_WITH_BETWEEN_OPERATOR",
            "STRING_NOT_TERMINATED",
            "TOO_MANY_SEGMENTS",
            "UNEXPECTED_END_OF_QUERY",
            "UNEXPECTED_FROM_CLAUSE",
            "UNRECOGNIZED_FIELD",
            "UNEXPECTED_INPUT",
            "REQUESTED_METRICS_FOR_MANAGER",
            "FILTER_HAS_TOO_MANY_VALUES",
            "REQUIRED_SEGMENT_FIELD_MISSING"
          ],
          "description": "An error with an AWQL query",
          "enumDescriptions": [
            "Name unspecified.",
            "The received error code is not known in this version.",
            "Returned if all other query error reasons are not applicable.",
            "A condition used in the query references an invalid enum constant.",
            "Query contains an invalid escape sequence.",
            "Field name is invalid.",
            "Limit value is invalid (for example, not a number)",
            "Encountered number can not be parsed.",
            "Invalid operator encountered.",
            "Parameter unknown or not supported.",
            "Parameter have invalid value.",
            "Invalid resource type was specified in the FROM clause.",
            "Non-ASCII symbol encountered outside of strings.",
            "Value is invalid.",
            "Date filters fail to restrict date to a range smaller than 31 days. Applicable if the query is segmented by date.",
            "Filters on date/week/month/quarter have a start date after end date.",
            "Expected AND between values with BETWEEN operator.",
            "Expecting ORDER BY to have BY.",
            "There was no dimension field selected.",
            "Missing filters on date related fields.",
            "Missing FROM clause.",
            "The operator used in the conditions requires the value to be a list.",
            "Fields used in WHERE or ORDER BY clauses are missing from the SELECT clause.",
            "SELECT is missing at the beginning of query.",
            "A list was passed as a value to a condition whose operator expects a single value.",
            "Missing one or both values with BETWEEN operator.",
            "Invalid date format. Expected 'YYYY-MM-DD'.",
            "Misaligned date value for the filter. The date should be the start of a week/month/quarter if the filtered field is segments.week/segments.month/segments.quarter.",
            "Value passed was not a string when it should have been. For example, it was a number or unquoted literal.",
            "A String value passed to the BETWEEN operator does not parse as a date.",
            "The value passed to the DURING operator is not a Date range literal",
            "An invalid value was passed to the LIKE operator.",
            "An operator was provided that is inapplicable to the field being filtered.",
            "A Condition was found with an empty list.",
            "A condition used in the query references an unsupported enum constant.",
            "Fields that are not allowed to be selected together were included in the SELECT clause.",
            "A field that is not orderable was included in the ORDER BY clause.",
            "A field that is not selectable was included in the SELECT clause.",
            "A field that is not filterable was included in the WHERE clause.",
            "Resource type specified in the FROM clause is not supported by this service.",
            "A field that comes from an incompatible resource was included in the SELECT clause.",
            "A field that comes from an incompatible resource was included in the WHERE clause.",
            "A metric incompatible with the main resource or other selected segmenting resources was included in the SELECT or WHERE clause.",
            "A segment incompatible with the main resource or other selected segmenting resources was included in the SELECT or WHERE clause.",
            "A segment in the SELECT clause is incompatible with a metric in the SELECT or WHERE clause.",
            "A metric may not be selected with one of the selected resource fields, or segmented by one of the selected segment fields.",
            "The value passed to the limit clause is too low.",
            "Query has a string containing a newline character.",
            "List contains values of different types.",
            "The values passed to the BETWEEN operator are not of the same type.",
            "Query contains unterminated string.",
            "Too many segments are specified in SELECT clause.",
            "Query is incomplete and cannot be parsed.",
            "FROM clause cannot be specified in this query.",
            "Query contains one or more unrecognized fields.",
            "Query has an unexpected extra part.",
            "Metrics cannot be requested for a manager account. To retrieve metrics, issue separate requests against each client account under the manager account.",
            "The number of values (right-hand-side operands) in a filter exceeds the limit.",
            "Required segment field is missing."
          ],
          "type": "string"
        },
        "accountBudgetProposalError": {
          "description": "The reasons for account budget proposal errors.",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The field mask must be empty for create/end/remove proposals.",
            "The field cannot be set because of the proposal type.",
            "The field is required because of the proposal type.",
            "Proposals that have been approved cannot be cancelled.",
            "Budgets that haven't been approved cannot be removed.",
            "Budgets that are currently running cannot be removed.",
            "Budgets that haven't been approved cannot be truncated.",
            "Only budgets that are currently running can be truncated.",
            "All budgets must have names.",
            "Expired budgets cannot be edited after a sufficient amount of time has passed.",
            "It is not permissible a propose a new budget that ends in the past.",
            "An expired budget cannot be extended to overlap with the running budget.",
            "A purchase order number is required.",
            "Budgets that have a pending update cannot be updated.",
            "Cannot propose more than one budget when the corresponding billing setup hasn't been approved.",
            "Cannot update the start time of a budget that has already started.",
            "Cannot update the spending limit of a budget with an amount lower than what has already been spent.",
            "Cannot propose a budget update without actually changing any fields.",
            "The end time must come after the start time.",
            "The budget's date range must fall within the date range of its billing setup.",
            "The user is not authorized to mutate budgets for the given billing setup.",
            "Mutates are not allowed for the given billing setup.",
            "Budget creation failed as it overlaps with a pending budget proposal or an approved budget.",
            "The control setting in user's payments profile doesn't allow budget creation through API. Log in to Google Ads to create budget.",
            "Master service agreement has not been signed yet for the Payments Profile.",
            "Budget mutates are not allowed because the given billing setup is canceled."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "FIELD_MASK_NOT_ALLOWED",
            "IMMUTABLE_FIELD",
            "REQUIRED_FIELD_MISSING",
            "CANNOT_CANCEL_APPROVED_PROPOSAL",
            "CANNOT_REMOVE_UNAPPROVED_BUDGET",
            "CANNOT_REMOVE_RUNNING_BUDGET",
            "CANNOT_END_UNAPPROVED_BUDGET",
            "CANNOT_END_INACTIVE_BUDGET",
            "BUDGET_NAME_REQUIRED",
            "CANNOT_UPDATE_OLD_BUDGET",
            "CANNOT_END_IN_PAST",
            "CANNOT_EXTEND_END_TIME",
            "PURCHASE_ORDER_NUMBER_REQUIRED",
            "PENDING_UPDATE_PROPOSAL_EXISTS",
            "MULTIPLE_BUDGETS_NOT_ALLOWED_FOR_UNAPPROVED_BILLING_SETUP",
            "CANNOT_UPDATE_START_TIME_FOR_STARTED_BUDGET",
            "SPENDING_LIMIT_LOWER_THAN_ACCRUED_COST_NOT_ALLOWED",
            "UPDATE_IS_NO_OP",
            "END_TIME_MUST_FOLLOW_START_TIME",
            "BUDGET_DATE_RANGE_INCOMPATIBLE_WITH_BILLING_SETUP",
            "NOT_AUTHORIZED",
            "INVALID_BILLING_SETUP",
            "OVERLAPS_EXISTING_BUDGET",
            "CANNOT_CREATE_BUDGET_THROUGH_API",
            "INVALID_MASTER_SERVICE_AGREEMENT",
            "CANCELED_BILLING_SETUP"
          ],
          "type": "string"
        },
        "batchJobError": {
          "description": "The reasons for the batch job error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The batch job cannot add more operations or run after it has started running.",
            "The operations for an AddBatchJobOperations request were empty.",
            "The sequence token for an AddBatchJobOperations request was invalid.",
            "Batch job results can only be retrieved once the job is finished.",
            "The page size for ListBatchJobResults was invalid.",
            "The batch job cannot be removed because it has started running.",
            "The batch job cannot be listed due to unexpected errors such as duplicate checkpoints.",
            "The request contains interdependent AssetGroup and AssetGroupAsset operations that are treated atomically as a single transaction, and one or more of the operations in that transaction failed, which caused the entire transaction, and therefore this mutate operation, to fail. The operations that caused the transaction to fail can be found in the consecutive AssetGroup or AssetGroupAsset results with the same asset group id. The mutate operation will be successful once the remaining errors in the transaction are fixed.",
            "The request contains interdependent AssetGroupListingGroupFilter operations that are treated atomically as a single transaction, and one or more of the operations in that transaction failed, which caused the entire transaction, and therefore this mutate operation, to fail. The operations that caused the transaction to fail can be found in the consecutive AssetGroupListingGroupFilter results with the same asset group id. The mutate operation will be successful once the remaining errors in the transaction are fixed.",
            "The AddBatchJobOperationsRequest is too large. Split the request into smaller requests. The maximum allowed request size is 10484504 bytes.",
            "This error indicates a failed transaction involving interdependent Campaign and CampaignAsset operations that are treated atomically as a single transaction. Because some operations within the transaction failed, the entire set of changes was rejected. Related error details are found in the results for the Campaign and CampaignAssets sharing the same Campaign ID. The transaction will succeed after all associated errors are resolved."
          ],
          "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"
          ],
          "type": "string"
        },
        "policyViolationError": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "POLICY_ERROR"
          ],
          "description": "The reasons for the policy violation error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "A policy was violated. See PolicyViolationDetails for more detail."
          ]
        },
        "goalError": {
          "type": "string",
          "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"
          ],
          "description": "The reasons for the goal error.",
          "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."
          ]
        },
        "dateError": {
          "type": "string",
          "description": "The reasons for the date error",
          "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"
          ]
        },
        "changeStatusError": {
          "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 status error",
          "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."
          ],
          "type": "string"
        },
        "functionError": {
          "type": "string",
          "description": "The reasons for the function error",
          "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"
          ]
        },
        "enumError": {
          "description": "The reason for enum error.",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The enum value is not permitted."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENUM_VALUE_NOT_PERMITTED"
          ],
          "type": "string"
        },
        "campaignFeedError": {
          "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"
          ],
          "description": "The reasons for the campaign feed error",
          "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."
          ],
          "type": "string"
        },
        "customConversionGoalError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_CONVERSION_ACTION",
            "CONVERSION_ACTION_NOT_ENABLED",
            "CANNOT_REMOVE_LINKED_CUSTOM_CONVERSION_GOAL",
            "CUSTOM_GOAL_DUPLICATE_NAME",
            "DUPLICATE_CONVERSION_ACTION_LIST",
            "NON_BIDDABLE_CONVERSION_ACTION_NOT_ELIGIBLE_FOR_CUSTOM_GOAL"
          ],
          "description": "The reasons for the custom conversion goal error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Cannot find a conversion action with the specified id.",
            "The conversion action is not enabled so it cannot be included in a custom conversion goal.",
            "The custom conversion goal cannot be removed because it's linked to a campaign.",
            "Custom goal with the same name already exists.",
            "Custom goal with the same conversion action list already exists.",
            "Conversion types that cannot be biddable should not be included in custom goal."
          ],
          "type": "string"
        },
        "headerError": {
          "description": "The reasons for the header error.",
          "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"
          ],
          "type": "string"
        },
        "feedError": {
          "description": "The reasons for the feed error",
          "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"
          ],
          "type": "string"
        },
        "videoReservationError": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NEW_QUOTE_REQUIRED",
            "CAMPAIGN_END_TIME_TOO_DISTANT",
            "BUDGET_TOO_SMALL",
            "CAMPAIGN_DURATION_TOO_SHORT",
            "CAMPAIGN_NOT_ENABLED",
            "NOT_ENOUGH_AVAILABLE_INVENTORY",
            "TARGETING_TOO_NARROW",
            "UNSUPPORTED_AD_GROUP_TYPE",
            "UNSUPPORTED_BID_MODIFIER",
            "CANNOT_CHANGE_PRICING_MODEL",
            "INCOMPATIBLE_TARGETING",
            "UNSUPPORTED_FEATURE",
            "MISSING_ELECTION_CERTIFICATE",
            "CAMPAIGN_ENDED",
            "UNSUPPORTED_BUDGET_PERIOD",
            "EXACTLY_ONE_ENABLED_ADGROUP_REQUIRED",
            "FREQUENCY_CAP_TOO_NARROW",
            "TARGETED_PACK_NEEDS_DEAL",
            "DEAL_CURRENCY_MISMATCH",
            "CANNOT_HOLD_CONTRACT",
            "CUSTOMER_NOT_ENABLED",
            "CUSTOMER_NOT_ALLOWED",
            "INVALID_ACCOUNT_TYPE",
            "ACCOUNT_IS_MANAGER",
            "SEASONAL_LINEUP_BOOKING_WINDOW_NOT_OPEN",
            "SEASONAL_LINEUP_END_DATE_OFF_SEASON",
            "SEASONAL_LINEUP_GEO_TARGETING_TOO_NARROW",
            "NO_MARKET_RATE_CARD_OR_BASE_RATE",
            "STALE_QUOTE",
            "LINEUP_NOT_ALLOWED",
            "UNSUPPORTED_BIDDING_STRATEGY",
            "UNSUPPORTED_POSITIVE_GEO_TARGET_TYPE",
            "VALIDATE_ONLY_REQUIRED",
            "TOO_MANY_CAMPAIGNS"
          ],
          "description": "The reasons for the video reservation error.",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The quote has expired.",
            "The campaign's end date has to be less than 120 days from now.",
            "The campaign budget is too small. To get a quote, increase the budget.",
            "The campaign must run for more than 24 hours.",
            "The campaign must be enabled before booking.",
            "There aren't enough impressions available for the campaigns settings and targeting. Broaden the targeting or lower the budget of the campaign to get a quote.",
            "There aren't enough impressions available for the campaign settings and targeting.",
            "The type of the enabled ad group of this campaign isn't supported.",
            "Bid modifiers other than 0% or -100% aren't supported.",
            "The type of placement was changed. YouTube Select lineups can only be paired with other YouTube Select lineups.",
            "More than one lineup was selected. Only one lineup per campaign can be targeted.",
            "Some options in this campaign aren't supported.",
            "The customer must be verified by Google to run election ads in the targeted country.",
            "This campaign has ended. Select a campaign that hasn't reached its end date.",
            "Daily budget isn't available for fixed CPM campaigns. To use fixed CPM, enter a campaign total budget.",
            "The campaign must have exactly one enabled ad group for reservation.",
            "The frequency cap is lower than the minimum allowed for an enabled campaign. Update the frequency cap to either a daily cap or a weekly cap with at least 3 impressions per week.",
            "The targeted country requires either a deal or a market rate.",
            "The account is set to a currency that doesn't match the currency of the rate card for the targeted video lineups.",
            "Quote holds are unavailable for this campaign configuration.",
            "The account is suspended. Contact support for more info.",
            "The customer doesn't have permission to request a quote. Contact the account owner for more info.",
            "This account type can't request quotes. Use a different account or contact support for more info.",
            "Google Account Managers can't request quotes for reservation campaigns.",
            "The booking window for this lineup is not open yet.",
            "The campaign end date is later than the allowable end date for this lineup. To continue booking, choose an earlier end date.",
            "There aren't enough impressions available for the campaign settings and targeting. Broaden the location targeting to get a quote.",
            "The market rate for the targeted product isn't available.",
            "The quote is stale, get a new quote and try again.",
            "Some of the targeted video lineups aren't available for reservation campaigns.",
            "This bidding strategy is not supported for reservation.",
            "The campaign settings contain a positive geo target type which is not allowed, for example Audio ads support PRESENCE only.",
            "Only validate_only requests are supported.",
            "Too many campaigns in request."
          ]
        },
        "recommendationSubscriptionError": {
          "type": "string",
          "description": "The reasons for the recommendation subscription error.",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN"
          ]
        },
        "conversionUploadError": {
          "description": "The reasons for the conversion upload error",
          "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"
          ],
          "type": "string"
        },
        "stringLengthError": {
          "description": "The reasons for the string length error",
          "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"
          ],
          "type": "string"
        },
        "conversionCustomVariableError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DUPLICATE_NAME",
            "DUPLICATE_TAG",
            "RESERVED_TAG"
          ],
          "description": "The reasons for the conversion custom variable error",
          "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."
          ],
          "type": "string"
        },
        "countryCodeError": {
          "description": "The reasons for the country code error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The country code is invalid."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_COUNTRY_CODE"
          ],
          "type": "string"
        },
        "videoCampaignError": {
          "description": "An error with a Video Campaign mutate.",
          "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"
          ],
          "type": "string"
        },
        "adxError": {
          "description": "The reasons for the adx error",
          "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"
          ],
          "type": "string"
        },
        "feedItemSetError": {
          "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",
          "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."
          ],
          "type": "string"
        },
        "conversionGoalCampaignConfigError": {
          "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",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Campaign is managed by Search Ads 360 but uses Unified Goal.",
            "The campaign is using a custom goal that does not belong to its Google Ads conversion customer (conversion tracking customer).",
            "The campaign is not allowed to use unified goals.",
            "The campaign is using campaign override goals but has no goals configured.",
            "STORE_SALE and STORE_VISIT conversion types cannot be both included in campaign level goal.",
            "Performance Max campaign is not allowed to use custom goal with store sales conversion type."
          ],
          "type": "string"
        },
        "offlineUserDataJobError": {
          "type": "string",
          "description": "The reasons for the offline user data job error.",
          "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"
          ]
        },
        "assetGroupError": {
          "description": "The reasons for the asset group error",
          "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"
          ],
          "type": "string"
        },
        "feedItemError": {
          "type": "string",
          "description": "The reasons for the feed item error",
          "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"
          ]
        },
        "listOperationError": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "REQUIRED_FIELD_MISSING",
            "DUPLICATE_VALUES"
          ],
          "description": "An error with a list operation.",
          "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."
          ]
        },
        "functionParsingError": {
          "type": "string",
          "description": "The reasons for the function parsing error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Unexpected end of function string.",
            "Could not find an expected character.",
            "Unexpected separator character.",
            "Unmatched left bracket or parenthesis.",
            "Unmatched right bracket or parenthesis.",
            "Functions are nested too deeply.",
            "Missing right-hand-side operand.",
            "Invalid operator/function name.",
            "Feed attribute operand's argument is not an integer.",
            "Missing function operands.",
            "Function had too many operands."
          ],
          "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"
          ]
        },
        "stringFormatError": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ILLEGAL_CHARS",
            "INVALID_FORMAT"
          ],
          "description": "The reasons for the string format error",
          "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."
          ]
        },
        "mediaBundleError": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BAD_REQUEST",
            "DOUBLECLICK_BUNDLE_NOT_ALLOWED",
            "EXTERNAL_URL_NOT_ALLOWED",
            "FILE_TOO_LARGE",
            "GOOGLE_WEB_DESIGNER_ZIP_FILE_NOT_PUBLISHED",
            "INVALID_INPUT",
            "INVALID_MEDIA_BUNDLE",
            "INVALID_MEDIA_BUNDLE_ENTRY",
            "INVALID_MIME_TYPE",
            "INVALID_PATH",
            "INVALID_URL_REFERENCE",
            "MEDIA_DATA_TOO_LARGE",
            "MISSING_PRIMARY_MEDIA_BUNDLE_ENTRY",
            "SERVER_ERROR",
            "STORAGE_ERROR",
            "SWIFFY_BUNDLE_NOT_ALLOWED",
            "TOO_MANY_FILES",
            "UNEXPECTED_SIZE",
            "UNSUPPORTED_GOOGLE_WEB_DESIGNER_ENVIRONMENT",
            "UNSUPPORTED_HTML5_FEATURE",
            "URL_IN_MEDIA_BUNDLE_NOT_SSL_COMPLIANT",
            "CUSTOM_EXIT_NOT_ALLOWED"
          ],
          "description": "The reasons for the media bundle error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "There was a problem with the request.",
            "HTML5 ads using DoubleClick Studio created ZIP files are not supported.",
            "Cannot reference URL external to the media bundle.",
            "Media bundle file is too large.",
            "ZIP file from Google Web Designer is not published.",
            "Input was invalid.",
            "There was a problem with the media bundle.",
            "There was a problem with one or more of the media bundle entries.",
            "The media bundle contains a file with an unknown mime type",
            "The media bundle contain an invalid asset path.",
            "HTML5 ad is trying to reference an asset not in .ZIP file",
            "Media data is too large.",
            "The media bundle contains no primary entry.",
            "There was an error on the server.",
            "The image could not be stored.",
            "Media bundle created with the Swiffy tool is not allowed.",
            "The media bundle contains too many files.",
            "The media bundle is not of legal dimensions.",
            "Google Web Designer not created for \"Google Ads\" environment.",
            "Unsupported HTML5 feature in HTML5 asset.",
            "URL in HTML5 entry is not ssl compliant.",
            "Custom exits not allowed in HTML5 entry."
          ]
        },
        "urlFieldError": {
          "description": "An error with a URL field mutate.",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The tracking url template is invalid.",
            "The tracking url template contains invalid tag.",
            "The tracking url template must contain at least one tag (for example, {lpurl}), This applies only to tracking url template associated with website ads or product ads.",
            "The tracking url template must start with a valid protocol (or lpurl tag).",
            "The tracking url template starts with an invalid protocol.",
            "The tracking url template contains illegal characters.",
            "The tracking url template must contain a host name (or lpurl tag).",
            "The tracking url template has an invalid or missing top level domain extension.",
            "The tracking url template contains nested occurrences of the same conditional tag (for example, {ifmobile:{ifmobile:x}}).",
            "The final url is invalid.",
            "The final url contains invalid tag.",
            "The final url contains nested occurrences of the same conditional tag (for example, {ifmobile:{ifmobile:x}}).",
            "The final url must start with a valid protocol.",
            "The final url starts with an invalid protocol.",
            "The final url contains illegal characters.",
            "The final url must contain a host name.",
            "The tracking url template has an invalid or missing top level domain extension.",
            "The final mobile url is invalid.",
            "The final mobile url contains invalid tag.",
            "The final mobile url contains nested occurrences of the same conditional tag (for example, {ifmobile:{ifmobile:x}}).",
            "The final mobile url must start with a valid protocol.",
            "The final mobile url starts with an invalid protocol.",
            "The final mobile url contains illegal characters.",
            "The final mobile url must contain a host name.",
            "The tracking url template has an invalid or missing top level domain extension.",
            "The final app url is invalid.",
            "The final app url contains invalid tag.",
            "The final app url contains nested occurrences of the same conditional tag (for example, {ifmobile:{ifmobile:x}}).",
            "More than one app url found for the same OS type.",
            "The OS type given for an app url is not valid.",
            "The protocol given for an app url is not valid. (For example, \"android-app://\")",
            "The package id (app id) given for an app url is not valid.",
            "The number of url custom parameters for an resource exceeds the maximum limit allowed.",
            "An invalid character appears in the parameter key.",
            "An invalid character appears in the parameter value.",
            "The url custom parameter value fails url tag validation.",
            "The custom parameter contains nested occurrences of the same conditional tag (for example, {ifmobile:{ifmobile:x}}).",
            "The protocol (http:// or https://) is missing.",
            "Unsupported protocol in URL. Only http and https are supported.",
            "The url is invalid.",
            "Destination Url is deprecated.",
            "The url contains invalid tag.",
            "The url must contain at least one tag (for example, {lpurl}).",
            "Duplicate url id.",
            "Invalid url id.",
            "The final url suffix cannot begin with '?' or '&' characters and must be a valid query string.",
            "The final url suffix cannot contain {lpurl} related or {ignore} tags.",
            "The top level domain is invalid, for example, not a public top level domain listed in publicsuffix.org.",
            "Malformed top level domain in URL.",
            "Malformed URL.",
            "No host found in URL.",
            "Custom parameter value cannot be null.",
            "Track parameter is not supported.",
            "The app store connected to the url is not supported."
          ],
          "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"
          ],
          "type": "string"
        },
        "adGroupCustomizerError": {
          "type": "string",
          "description": "The reasons for the ad group customizer error.",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN"
          ]
        },
        "conversionAdjustmentUploadError": {
          "type": "string",
          "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",
          "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`."
          ]
        },
        "authorizationError": {
          "description": "An error encountered when trying to authorize a user.",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "User doesn't have permission to access customer. Note: If you're accessing a client customer, the manager's customer ID must be set in the `login-customer-id` header. Learn more at https://developers.google.com/google-ads/api/docs/concepts/call-structure#cid",
            "The developer token is not on the allow-list.",
            "The developer token is not allowed with the project sent in the request.",
            "The Google Cloud project sent in the request does not have permission to access the api.",
            "Authorization of the client failed.",
            "The user does not have permission to perform this action (for example, ADD, UPDATE, REMOVE) on the resource or call a method.",
            "Signup not complete.",
            "The customer account can't be accessed because it is not yet enabled or has been deactivated.",
            "The developer must sign the terms of service. They can be found here: ads.google.com/aw/apicenter",
            "The developer token is only approved for use with test accounts. To access non-test accounts, apply for Basic or Standard access.",
            "The login customer specified does not have access to the account specified, so the request is invalid.",
            "The developer specified does not have access to the service.",
            "The customer (or login customer) isn't in Google Ads. It belongs to another ads system.",
            "The developer does not have access to the metrics queried.",
            "The Google Cloud project is not under the required organization.",
            "The user does not have permission to perform this action on the resource or method because the Google Ads account is suspended."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "USER_PERMISSION_DENIED",
            "DEVELOPER_TOKEN_NOT_ON_ALLOWLIST",
            "DEVELOPER_TOKEN_PROHIBITED",
            "PROJECT_DISABLED",
            "AUTHORIZATION_ERROR",
            "ACTION_NOT_PERMITTED",
            "INCOMPLETE_SIGNUP",
            "CUSTOMER_NOT_ENABLED",
            "MISSING_TOS",
            "DEVELOPER_TOKEN_NOT_APPROVED",
            "INVALID_LOGIN_CUSTOMER_ID_SERVING_CUSTOMER_ID_COMBINATION",
            "SERVICE_ACCESS_DENIED",
            "ACCESS_DENIED_FOR_ACCOUNT_TYPE",
            "METRIC_ACCESS_DENIED",
            "CLOUD_PROJECT_NOT_UNDER_ORGANIZATION",
            "ACTION_NOT_PERMITTED_FOR_SUSPENDED_ACCOUNT"
          ],
          "type": "string"
        },
        "collectionSizeError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "TOO_FEW",
            "TOO_MANY"
          ],
          "description": "The reasons for the collection size error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Too few.",
            "Too many."
          ],
          "type": "string"
        },
        "adError": {
          "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.",
          "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`."
          ],
          "type": "string"
        },
        "keywordPlanAdGroupError": {
          "description": "The reason for keyword plan ad group error.",
          "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"
          ],
          "type": "string"
        },
        "customerFeedError": {
          "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"
          ],
          "description": "The reasons for the customer feed error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "An active feed already exists for this customer and place holder type.",
            "The specified feed is removed.",
            "The CustomerFeed already exists. Update should be used to modify the existing CustomerFeed.",
            "Cannot update removed customer feed.",
            "Invalid placeholder type.",
            "Feed mapping for this placeholder type does not exist.",
            "Placeholder not allowed at the account level."
          ],
          "type": "string"
        },
        "adGroupError": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DUPLICATE_ADGROUP_NAME",
            "INVALID_ADGROUP_NAME",
            "ADVERTISER_NOT_ON_CONTENT_NETWORK",
            "BID_TOO_BIG",
            "BID_TYPE_AND_BIDDING_STRATEGY_MISMATCH",
            "MISSING_ADGROUP_NAME",
            "ADGROUP_LABEL_DOES_NOT_EXIST",
            "ADGROUP_LABEL_ALREADY_EXISTS",
            "INVALID_CONTENT_BID_CRITERION_TYPE_GROUP",
            "AD_GROUP_TYPE_NOT_VALID_FOR_ADVERTISING_CHANNEL_TYPE",
            "ADGROUP_TYPE_NOT_SUPPORTED_FOR_CAMPAIGN_SALES_COUNTRY",
            "CANNOT_ADD_ADGROUP_OF_TYPE_DSA_TO_CAMPAIGN_WITHOUT_DSA_SETTING",
            "PROMOTED_HOTEL_AD_GROUPS_NOT_AVAILABLE_FOR_CUSTOMER",
            "INVALID_EXCLUDED_PARENT_ASSET_FIELD_TYPE",
            "INVALID_EXCLUDED_PARENT_ASSET_SET_TYPE",
            "CANNOT_ADD_AD_GROUP_FOR_CAMPAIGN_TYPE",
            "INVALID_STATUS",
            "INVALID_STEP_ID_FOR_VIDEO_ADS_SEQUENCING",
            "INVALID_AD_GROUP_TYPE_FOR_VIDEO_ADS_SEQUENCING",
            "DUPLICATE_STEP_ID",
            "INVALID_VERTICAL_ADS_FORMAT_SETTING",
            "VERTICAL_ADS_FORMAT_SETTING_NOT_SUPPORTED_FOR_CAMPAIGNS_WITHOUT_AI_MAX",
            "VERTICAL_ADS_FORMAT_SETTING_NOT_SUPPORTED_FOR_CAMPAIGNS_WITHOUT_ENABLED_TRAVEL_FEED"
          ],
          "description": "An error with an Ad Group mutate.",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "AdGroup with the same name already exists for the campaign.",
            "AdGroup name is not valid.",
            "Advertiser is not allowed to target sites or set site bids that are not on the Google Search Network.",
            "Bid amount is too big.",
            "AdGroup bid does not match the campaign's bidding strategy.",
            "AdGroup name is required for Add.",
            "No link found between the ad group and the label.",
            "The label has already been attached to the ad group.",
            "The CriterionTypeGroup is not supported for the content bid dimension.",
            "The ad group type is not compatible with the campaign channel type.",
            "The ad group type is not supported in the country of sale of the campaign.",
            "Ad groups of AdGroupType.SEARCH_DYNAMIC_ADS can only be added to campaigns that have DynamicSearchAdsSetting attached.",
            "Promoted hotels ad groups are only available to customers on the allow-list.",
            "The field type cannot be excluded because an active ad group-asset link of this type exists.",
            "The asset set type is invalid for setting the excluded_parent_asset_set_types field.",
            "Cannot add ad groups for the campaign type.",
            "Invalid status for the ad group.",
            "For video ads sequencing, AdGroup `step_id` has to use a `step_id` defined in `campaign.video_campaign_settings.video_ad_sequence`.",
            "For video ads sequencing, AdGroup type has to use a type defined in `campaign.video_campaign_settings.video_ad_sequence`.",
            "Only one AdGroup is allowed for each step ID in video ads sequencing.",
            "At least one Vertical Ads format must be enabled for a campaign under Travel Ads in Search Campaigns.",
            "AI max setting must be enabled to enable Vertical Ads formats for a campaign under Travel Ads in Search Campaigns.",
            "An enabled travel feed must be linked to enable Vertical Ads formats for a campaign under Travel Ads in Search Campaigns."
          ]
        },
        "rangeError": {
          "type": "string",
          "description": "The reasons for the range error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Too low.",
            "Too high."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "TOO_LOW",
            "TOO_HIGH"
          ]
        },
        "feedItemTargetError": {
          "type": "string",
          "description": "The reasons for the feed item target error",
          "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"
          ]
        },
        "campaignBudgetError": {
          "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"
          ],
          "description": "An error with a Campaign Budget mutate.",
          "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."
          ],
          "type": "string"
        },
        "audienceInsightsError": {
          "description": "The reasons for the Audience Insights error",
          "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"
          ],
          "type": "string"
        },
        "adGroupAdError": {
          "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",
            "DURATION_TOO_SHORT"
          ],
          "description": "The reasons for the ad group ad error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "No link found between the adgroup ad and the label.",
            "The label has already been attached to the adgroup ad.",
            "The specified ad was not found in the adgroup",
            "Removed ads may not be modified",
            "An ad of this type is deprecated and cannot be created. Only deletions are permitted.",
            "Text ads are deprecated and cannot be created. Use expanded text ads instead.",
            "A required field was not specified or is an empty string.",
            "An ad may only be modified once per call",
            "AdGroupAds with the given ad type cannot be paused.",
            "AdGroupAds with the given ad type cannot be removed.",
            "An ad of this type is deprecated and cannot be updated. Only removals are permitted.",
            "Ad sharing is not allowed.",
            "The duration of the AdGroupAd is too short."
          ],
          "type": "string"
        },
        "assetGroupListingGroupFilterError": {
          "type": "string",
          "description": "The reasons for the asset group listing group filter error",
          "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.",
            "The shared set type is not supported for RetailFilterBundle."
          ],
          "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",
            "RETAIL_INVALID_SHARED_SET_TYPE"
          ]
        },
        "accountLinkError": {
          "description": "The reasons for the account link status change error",
          "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"
          ],
          "type": "string"
        },
        "nullError": {
          "description": "The reasons for the null error",
          "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"
          ],
          "type": "string"
        },
        "customAudienceError": {
          "type": "string",
          "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",
          "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."
          ]
        },
        "customerSkAdNetworkConversionValueSchemaError": {
          "description": "The reasons for the customer SK Ad network conversion value schema error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The customer link ID provided is invalid.",
            "The app ID provided is invalid.",
            "The conversion value schema provided is invalid.",
            "The customer link id provided could not be found.",
            "The SkAdNetwork event counter provided is invalid.",
            "The SkAdNetwork event name provided is invalid."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_LINK_ID",
            "INVALID_APP_ID",
            "INVALID_SCHEMA",
            "LINK_CODE_NOT_FOUND",
            "INVALID_EVENT_COUNTER",
            "INVALID_EVENT_NAME"
          ],
          "type": "string"
        },
        "keywordPlanAdGroupKeywordError": {
          "type": "string",
          "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"
          ],
          "description": "The reason for keyword plan ad group keyword error.",
          "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."
          ]
        },
        "regionCodeError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_REGION_CODE"
          ],
          "description": "The reasons for the region code error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Invalid region code."
          ],
          "type": "string"
        },
        "resourceCountLimitExceededError": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ACCOUNT_LIMIT",
            "CAMPAIGN_LIMIT",
            "ADGROUP_LIMIT",
            "AD_GROUP_AD_LIMIT",
            "AD_GROUP_CRITERION_LIMIT",
            "SHARED_SET_LIMIT",
            "MATCHING_FUNCTION_LIMIT",
            "RESPONSE_ROW_LIMIT_EXCEEDED",
            "RESOURCE_LIMIT"
          ],
          "description": "The reasons for the resource count limit exceeded error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Indicates that this request would exceed the number of allowed resources for the Google Ads account. The exact resource type and limit being checked can be inferred from accountLimitType.",
            "Indicates that this request would exceed the number of allowed resources in a Campaign. The exact resource type and limit being checked can be inferred from accountLimitType, and the numeric id of the Campaign involved is given by enclosingId.",
            "Indicates that this request would exceed the number of allowed resources in an ad group. The exact resource type and limit being checked can be inferred from accountLimitType, and the numeric id of the ad group involved is given by enclosingId.",
            "Indicates that this request would exceed the number of allowed resources in an ad group ad. The exact resource type and limit being checked can be inferred from accountLimitType, and the enclosingId contains the ad group id followed by the ad id, separated by a single comma (,).",
            "Indicates that this request would exceed the number of allowed resources in an ad group criterion. The exact resource type and limit being checked can be inferred from accountLimitType, and the enclosingId contains the ad group id followed by the criterion id, separated by a single comma (,).",
            "Indicates that this request would exceed the number of allowed resources in this shared set. The exact resource type and limit being checked can be inferred from accountLimitType, and the numeric id of the shared set involved is given by enclosingId.",
            "Exceeds a limit related to a matching function.",
            "The response for this request would exceed the maximum number of rows that can be returned.",
            "This request would exceed a limit on the number of allowed resources. The details of which type of limit was exceeded will eventually be returned in ErrorDetails."
          ]
        },
        "assetSetError": {
          "description": "The reasons for the asset set error",
          "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"
          ],
          "type": "string"
        },
        "sizeLimitError": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "REQUEST_SIZE_LIMIT_EXCEEDED",
            "RESPONSE_SIZE_LIMIT_EXCEEDED"
          ],
          "description": "The reasons for the size limit error",
          "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."
          ]
        },
        "reachPlanError": {
          "type": "string",
          "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",
          "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."
          ]
        },
        "changeEventError": {
          "type": "string",
          "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",
          "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."
          ]
        },
        "geoTargetConstantSuggestionError": {
          "type": "string",
          "description": "The reasons for the geo target constant suggestion error.",
          "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"
          ]
        },
        "adGroupCriterionCustomizerError": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CRITERION_IS_NOT_KEYWORD"
          ],
          "description": "The reasons for the ad group criterion customizer error.",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Only keyword type criterion is allowed to link customizer attribute."
          ]
        },
        "campaignSharedSetError": {
          "description": "The reasons for the campaign shared set error",
          "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"
          ],
          "type": "string"
        },
        "brandGuidelinesMigrationError": {
          "type": "string",
          "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.",
          "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."
          ]
        },
        "notEmptyError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EMPTY_LIST"
          ],
          "description": "The reasons for the not empty error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Empty list."
          ],
          "type": "string"
        },
        "assetGroupSignalError": {
          "description": "The reasons for the asset group hint error",
          "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"
          ],
          "type": "string"
        },
        "campaignExperimentError": {
          "description": "The reasons for the campaign experiment error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "An active campaign or experiment with this name already exists.",
            "Experiment cannot be updated from the current state to the requested target state. For example, an experiment can only graduate if its status is ENABLED.",
            "Cannot create an experiment from a campaign using an explicitly shared budget.",
            "Cannot create an experiment for a removed base campaign.",
            "Cannot create an experiment from a draft, which has a status other than proposed.",
            "This customer is not allowed to create an experiment.",
            "This campaign is not allowed to create an experiment.",
            "Trying to set an experiment duration which overlaps with another experiment.",
            "All non-removed experiments must start and end within their campaign's duration.",
            "The experiment cannot be modified because its status is in a terminal state, such as REMOVED."
          ],
          "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"
          ],
          "type": "string"
        },
        "customerClientLinkError": {
          "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",
            "MAX_CUSTOMER_LIMIT_REACHED",
            "ACCOUNT_CREATION_POLICY_VIOLATION"
          ],
          "description": "The reasons for the customer client link error",
          "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.",
            "You have reached the maximum limit of accounts that can be created for this account.",
            "This account cannot create new client accounts due to a Google Ads policy violation."
          ],
          "type": "string"
        },
        "contentCreatorInsightsError": {
          "type": "string",
          "description": "The reasons for the Content Creator Insights error.",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The dimension cannot be used in audience combinations."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DIMENSION_INCOMPATIBLE_WITH_AUDIENCE_COMBINATIONS"
          ]
        },
        "adSharingError": {
          "description": "The reasons for the ad sharing error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Error resulting in attempting to add an Ad to an AdGroup that already contains the Ad.",
            "Ad is not compatible with the AdGroup it is being shared with.",
            "Cannot add AdGroupAd on inactive Ad."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AD_GROUP_ALREADY_CONTAINS_AD",
            "INCOMPATIBLE_AD_UNDER_AD_GROUP",
            "CANNOT_SHARE_INACTIVE_AD"
          ],
          "type": "string"
        },
        "customerCustomizerError": {
          "type": "string",
          "description": "The reasons for the customer customizer error.",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN"
          ]
        },
        "assetSetLinkError": {
          "description": "The reasons for the asset set link error",
          "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"
          ],
          "type": "string"
        },
        "customerUserAccessError": {
          "type": "string",
          "description": "The reasons for the customer user access mutate error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "There is no user associated with the user id specified.",
            "Unable to remove the access between the user and customer.",
            "Unable to add or update the access role as specified.",
            "The user can't remove itself from an active serving customer if it's the last admin user and the customer doesn't have any owner manager",
            "Last admin user cannot be removed from a manager."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_USER_ID",
            "REMOVAL_DISALLOWED",
            "DISALLOWED_ACCESS_ROLE",
            "LAST_ADMIN_USER_OF_SERVING_CUSTOMER",
            "LAST_ADMIN_USER_OF_MANAGER"
          ]
        },
        "userListCustomerTypeError": {
          "description": "The reasons for a user list customer type error.",
          "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. Loyalty Tier X Members - Loyalty Tier Y Members",
            "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"
          ],
          "type": "string"
        },
        "identityVerificationError": {
          "description": "The reasons for an identity verification error.",
          "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"
          ],
          "type": "string"
        },
        "smartCampaignError": {
          "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",
          "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."
          ],
          "type": "string"
        },
        "fieldMaskError": {
          "type": "string",
          "description": "An error with a field mask",
          "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"
          ]
        },
        "customerLifecycleGoalError": {
          "type": "string",
          "description": "The reasons for the customer lifecycle goal error",
          "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"
          ]
        },
        "extensionSettingError": {
          "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",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "A platform restriction was provided without input extensions or existing extensions.",
            "The provided feed type does not correspond to the provided extensions.",
            "The provided feed type cannot be used.",
            "The provided feed type cannot be used at the customer level.",
            "Cannot change a feed item field on a CREATE operation.",
            "Cannot update an extension that is not already in this setting.",
            "There is no existing AdGroupExtensionSetting for this type.",
            "There is no existing CampaignExtensionSetting for this type.",
            "There is no existing CustomerExtensionSetting for this type.",
            "The AdGroupExtensionSetting already exists. UPDATE should be used to modify the existing AdGroupExtensionSetting.",
            "The CampaignExtensionSetting already exists. UPDATE should be used to modify the existing CampaignExtensionSetting.",
            "The CustomerExtensionSetting already exists. UPDATE should be used to modify the existing CustomerExtensionSetting.",
            "An active ad group feed already exists for this place holder type.",
            "An active campaign feed already exists for this place holder type.",
            "An active customer feed already exists for this place holder type.",
            "Value is not within the accepted range.",
            "Cannot simultaneously set specified field with final urls.",
            "Must set field with final urls.",
            "Phone number for a call extension is invalid.",
            "Phone number for a call extension is not supported for the given country code.",
            "A carrier specific number in short format is not allowed for call extensions.",
            "Premium rate numbers are not allowed for call extensions.",
            "Phone number type for a call extension is not allowed.",
            "Phone number for a call extension does not meet domestic format requirements.",
            "Vanity phone numbers (for example, those including letters) are not allowed for call extensions.",
            "Country code provided for a call extension is invalid.",
            "Call conversion type id provided for a call extension is invalid.",
            "For a call extension, the customer is not on the allow-list for call tracking.",
            "Call tracking is not supported for the given country for a call extension.",
            "App id provided for an app extension is invalid.",
            "Quotation marks present in the review text for a review extension.",
            "Hyphen character present in the review text for a review extension.",
            "A blocked review source name or url was provided for a review extension.",
            "Review source name should not be found in the review text.",
            "Field must be set.",
            "Inconsistent currency codes.",
            "Price extension cannot have duplicated headers.",
            "Price item cannot have duplicated header and description.",
            "Price extension has too few items",
            "Price extension has too many items",
            "The input value is not currently supported.",
            "Unknown or unsupported device preference.",
            "Invalid feed item schedule end time (for example, endHour = 24 and endMinute != 0).",
            "Date time zone does not match the account's time zone.",
            "Overlapping feed item schedule times (for example, 7-10AM and 8-11AM) are not allowed.",
            "Feed item schedule end time must be after start time.",
            "There are too many feed item schedules per day.",
            "Cannot edit the same extension feed item more than once in the same request.",
            "Invalid structured snippet header.",
            "Phone number with call tracking enabled is not supported for the specified country.",
            "The targeted adgroup must belong to the targeted campaign.",
            "The feed used by the ExtensionSetting is removed and cannot be operated on. Remove the ExtensionSetting to allow a new one to be created using an active feed.",
            "The ExtensionFeedItem type is required for this operation.",
            "The matching function that links the extension feed to the customer, campaign, or ad group is not compatible with the ExtensionSetting services.",
            "Start date must be before end date.",
            "Input price is not in a valid format.",
            "The promotion time is invalid.",
            "Cannot set both percent discount and money discount fields.",
            "Cannot set both promotion code and orders over amount fields.",
            "This field has too many decimal places specified.",
            "The language code is not valid.",
            "The language is not supported.",
            "Customer hasn't consented for call recording, which is required for adding/updating call extensions. See https://support.google.com/google-ads/answer/7412639.",
            "The UPDATE operation does not specify any fields other than the resource name in the update mask.",
            "The extension contains text which has been prohibited on policy grounds."
          ],
          "type": "string"
        },
        "campaignCriterionError": {
          "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",
          "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."
          ],
          "type": "string"
        },
        "productLinkError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_OPERATION",
            "CREATION_NOT_PERMITTED",
            "INVITATION_EXISTS",
            "LINK_EXISTS"
          ],
          "description": "The reasons for the product link error",
          "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."
          ],
          "type": "string"
        },
        "customerManagerLinkError": {
          "type": "string",
          "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",
          "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"
          ]
        },
        "biddingStrategyError": {
          "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"
          ],
          "description": "An error with a Bidding Strategy mutate.",
          "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."
          ],
          "type": "string"
        },
        "incentiveError": {
          "type": "string",
          "description": "The reasons for the incentive error",
          "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.",
            "The maximum number of coupons has been redeemed.",
            "This incentive cannot be applied because too much time has passed since the account's first ad impression."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_INCENTIVE_ID",
            "MAX_INCENTIVES_REDEEMED",
            "ACCOUNT_TOO_OLD"
          ]
        },
        "campaignConversionGoalError": {
          "description": "The reasons for the campaign conversion goal error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Campaign is managed by Search Ads 360 but uses Unified Goal.",
            "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"
          ],
          "type": "string"
        },
        "resourceAccessDeniedError": {
          "type": "string",
          "description": "The reasons for the resource access denied error",
          "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"
          ]
        },
        "databaseError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CONCURRENT_MODIFICATION",
            "DATA_CONSTRAINT_VIOLATION",
            "REQUEST_TOO_LARGE"
          ],
          "description": "The reasons for the database error.",
          "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."
          ],
          "type": "string"
        },
        "shareablePreviewError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "UNSUPPORTED_AD_TYPE",
            "TOO_MANY_RESOURCES_IN_REQUEST"
          ],
          "description": "The reasons for the shareable preview error.",
          "enumDescriptions": [
            "Enum unspecified.",
            "Used for return value only. Represents value unknown in this version.",
            "Unsupported ad type for the given preview type.",
            "The combined number of asset groups and ad group ads exceeds the maximum of 10."
          ],
          "type": "string"
        },
        "adGroupBidModifierError": {
          "description": "The reasons for the ad group bid modifier error",
          "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"
          ],
          "type": "string"
        },
        "criterionError": {
          "type": "string",
          "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",
            "CANNOT_TARGET_ONLY_UNDETERMINED",
            "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",
            "RETAIL_FILTER_EXPRESSION_DOES_NOT_EXIST",
            "RETAIL_FILTER_TAGS_REFERRING_TO_EXPRESSION"
          ],
          "description": "The reasons for the criterion error",
          "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.",
            "The combination of demographic criteria would result in only targeting the \"undetermined\" segment, which is prohibited.",
            "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.",
            "A RetailTag references a RetailFilterExpression name that does not exist.",
            "A RetailFilterExpression cannot be removed as it is still referenced by Tags."
          ]
        },
        "campaignError": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CANNOT_TARGET_CONTENT_NETWORK",
            "CANNOT_TARGET_SEARCH_NETWORK",
            "CANNOT_TARGET_SEARCH_NETWORK_WITHOUT_GOOGLE_SEARCH",
            "CANNOT_TARGET_GOOGLE_SEARCH_FOR_CPM_CAMPAIGN",
            "CAMPAIGN_MUST_TARGET_AT_LEAST_ONE_NETWORK",
            "CANNOT_TARGET_PARTNER_SEARCH_NETWORK",
            "CANNOT_TARGET_CONTENT_NETWORK_ONLY_WITH_CRITERIA_LEVEL_BIDDING_STRATEGY",
            "CAMPAIGN_DURATION_MUST_CONTAIN_ALL_RUNNABLE_TRIALS",
            "CANNOT_MODIFY_FOR_TRIAL_CAMPAIGN",
            "DUPLICATE_CAMPAIGN_NAME",
            "INCOMPATIBLE_CAMPAIGN_FIELD",
            "INVALID_CAMPAIGN_NAME",
            "INVALID_AD_SERVING_OPTIMIZATION_STATUS",
            "INVALID_TRACKING_URL",
            "CANNOT_SET_BOTH_TRACKING_URL_TEMPLATE_AND_TRACKING_SETTING",
            "MAX_IMPRESSIONS_NOT_IN_RANGE",
            "TIME_UNIT_NOT_SUPPORTED",
            "INVALID_OPERATION_IF_SERVING_STATUS_HAS_ENDED",
            "BUDGET_CANNOT_BE_SHARED",
            "CAMPAIGN_CANNOT_USE_SHARED_BUDGET",
            "CANNOT_CHANGE_BUDGET_ON_CAMPAIGN_WITH_TRIALS",
            "CAMPAIGN_LABEL_DOES_NOT_EXIST",
            "CAMPAIGN_LABEL_ALREADY_EXISTS",
            "MISSING_SHOPPING_SETTING",
            "INVALID_SHOPPING_SALES_COUNTRY",
            "ADVERTISING_CHANNEL_TYPE_NOT_AVAILABLE_FOR_ACCOUNT_TYPE",
            "INVALID_ADVERTISING_CHANNEL_SUB_TYPE",
            "AT_LEAST_ONE_CONVERSION_MUST_BE_SELECTED",
            "CANNOT_SET_AD_ROTATION_MODE",
            "CANNOT_MODIFY_START_DATE_IF_ALREADY_STARTED",
            "CANNOT_SET_DATE_TO_PAST",
            "MISSING_HOTEL_CUSTOMER_LINK",
            "INVALID_HOTEL_CUSTOMER_LINK",
            "MISSING_HOTEL_SETTING",
            "CANNOT_USE_SHARED_CAMPAIGN_BUDGET_WHILE_PART_OF_CAMPAIGN_GROUP",
            "APP_NOT_FOUND",
            "SHOPPING_ENABLE_LOCAL_NOT_SUPPORTED_FOR_CAMPAIGN_TYPE",
            "MERCHANT_NOT_ALLOWED_FOR_COMPARISON_LISTING_ADS",
            "INSUFFICIENT_APP_INSTALLS_COUNT",
            "SENSITIVE_CATEGORY_APP",
            "HEC_AGREEMENT_REQUIRED",
            "NOT_COMPATIBLE_WITH_VIEW_THROUGH_CONVERSION_OPTIMIZATION",
            "INVALID_EXCLUDED_PARENT_ASSET_FIELD_TYPE",
            "CANNOT_CREATE_APP_PRE_REGISTRATION_FOR_NON_ANDROID_APP",
            "APP_NOT_AVAILABLE_TO_CREATE_APP_PRE_REGISTRATION_CAMPAIGN",
            "INCOMPATIBLE_BUDGET_TYPE",
            "LOCAL_SERVICES_DUPLICATE_CATEGORY_BID",
            "LOCAL_SERVICES_INVALID_CATEGORY_BID",
            "LOCAL_SERVICES_MISSING_CATEGORY_BID",
            "INVALID_STATUS_CHANGE",
            "MISSING_TRAVEL_CUSTOMER_LINK",
            "INVALID_TRAVEL_CUSTOMER_LINK",
            "INVALID_EXCLUDED_PARENT_ASSET_SET_TYPE",
            "ASSET_SET_NOT_A_HOTEL_PROPERTY_ASSET_SET",
            "HOTEL_PROPERTY_ASSET_SET_ONLY_FOR_PERFORMANCE_MAX_FOR_TRAVEL_GOALS",
            "AVERAGE_DAILY_SPEND_TOO_HIGH",
            "CANNOT_ATTACH_TO_REMOVED_CAMPAIGN_GROUP",
            "CANNOT_ATTACH_TO_BIDDING_STRATEGY",
            "CANNOT_CHANGE_BUDGET_PERIOD",
            "NOT_ENOUGH_CONVERSIONS",
            "CANNOT_SET_MORE_THAN_ONE_CONVERSION_ACTION",
            "NOT_COMPATIBLE_WITH_BUDGET_TYPE",
            "NOT_COMPATIBLE_WITH_UPLOAD_CLICKS_CONVERSION",
            "APP_ID_MUST_MATCH_CONVERSION_ACTION_APP_ID",
            "CONVERSION_ACTION_WITH_DOWNLOAD_CATEGORY_NOT_ALLOWED",
            "CONVERSION_ACTION_WITH_DOWNLOAD_CATEGORY_REQUIRED",
            "CONVERSION_TRACKING_NOT_ENABLED",
            "NOT_COMPATIBLE_WITH_BIDDING_STRATEGY_TYPE",
            "NOT_COMPATIBLE_WITH_GOOGLE_ATTRIBUTION_CONVERSIONS",
            "CONVERSION_LAG_TOO_HIGH",
            "NOT_LINKED_ADVERTISING_PARTNER",
            "INVALID_NUMBER_OF_ADVERTISING_PARTNER_IDS",
            "CANNOT_TARGET_DISPLAY_NETWORK_WITHOUT_YOUTUBE",
            "CANNOT_LINK_TO_COMPARISON_SHOPPING_SERVICE_ACCOUNT",
            "CANNOT_TARGET_NETWORK_FOR_COMPARISON_SHOPPING_SERVICE_LINKED_ACCOUNTS",
            "CANNOT_MODIFY_TEXT_ASSET_AUTOMATION_WITH_ENABLED_TRIAL",
            "DYNAMIC_TEXT_ASSET_CANNOT_OPT_OUT_WITH_FINAL_URL_EXPANSION_OPT_IN",
            "CANNOT_SET_CAMPAIGN_KEYWORD_MATCH_TYPE",
            "CANNOT_DISABLE_BROAD_MATCH_WHEN_KEYWORD_CONVERSION_IN_PROCESS",
            "CANNOT_DISABLE_BROAD_MATCH_WHEN_TARGETING_BRANDS",
            "CANNOT_ENABLE_BROAD_MATCH_FOR_BASE_CAMPAIGN_WITH_PROMOTING_TRIAL",
            "CANNOT_ENABLE_BROAD_MATCH_FOR_PROMOTING_TRIAL_CAMPAIGN",
            "REQUIRED_BUSINESS_NAME_ASSET_NOT_LINKED",
            "REQUIRED_LOGO_ASSET_NOT_LINKED",
            "BRAND_TARGETING_OVERRIDES_NOT_SUPPORTED",
            "BRAND_GUIDELINES_NOT_ENABLED_FOR_CAMPAIGN",
            "BRAND_GUIDELINES_MAIN_AND_ACCENT_COLORS_REQUIRED",
            "BRAND_GUIDELINES_COLOR_INVALID_FORMAT",
            "BRAND_GUIDELINES_UNSUPPORTED_FONT_FAMILY",
            "BRAND_GUIDELINES_UNSUPPORTED_CHANNEL",
            "CANNOT_ENABLE_BRAND_GUIDELINES_FOR_TRAVEL_GOALS",
            "CUSTOMER_NOT_ALLOWLISTED_FOR_BRAND_GUIDELINES",
            "THIRD_PARTY_INTEGRATION_PARTNER_NOT_ALLOWED",
            "THIRD_PARTY_INTEGRATION_PARTNER_SHARE_COST_NOT_ALLOWED",
            "DUPLICATE_INTERACTION_TYPE",
            "INVALID_INTERACTION_TYPE",
            "VIDEO_SEQUENCE_ERROR_SEQUENCE_DEFINITION_REQUIRED",
            "AI_MAX_MUST_BE_ENABLED",
            "DURATION_TOO_LONG_FOR_TOTAL_BUDGET",
            "END_DATE_TIME_REQUIRED_FOR_TOTAL_BUDGET"
          ],
          "description": "An error with a Campaign mutate.",
          "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."
          ]
        },
        "settingError": {
          "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",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The campaign setting is not available for this Google Ads account.",
            "The setting is not compatible with the campaign.",
            "The supplied TargetingSetting contains an invalid CriterionTypeGroup. See CriterionTypeGroup documentation for CriterionTypeGroups allowed in Campaign or AdGroup TargetingSettings.",
            "TargetingSetting must not explicitly set any of the Demographic CriterionTypeGroups (AGE_RANGE, GENDER, PARENT, INCOME_RANGE) to false (it's okay to not set them at all, in which case the system will set them to true automatically).",
            "TargetingSetting cannot change any of the Demographic CriterionTypeGroups (AGE_RANGE, GENDER, PARENT, INCOME_RANGE) from true to false.",
            "At least one feed id should be present.",
            "The supplied DynamicSearchAdsSetting contains an invalid domain name.",
            "The supplied DynamicSearchAdsSetting contains a subdomain name.",
            "The supplied DynamicSearchAdsSetting contains an invalid language code.",
            "TargetingSettings in search campaigns should not have CriterionTypeGroup.PLACEMENT set to targetAll.",
            "The setting value is not compatible with the campaign type.",
            "Switching from observation setting to targeting setting is not allowed for Customer Match lists. See https://support.google.com/google-ads/answer/6299717."
          ],
          "type": "string"
        },
        "billingSetupError": {
          "type": "string",
          "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",
          "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."
          ]
        },
        "multiplierError": {
          "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",
          "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"
          ],
          "type": "string"
        },
        "recommendationError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BUDGET_AMOUNT_TOO_SMALL",
            "BUDGET_AMOUNT_TOO_LARGE",
            "INVALID_BUDGET_AMOUNT",
            "POLICY_ERROR",
            "INVALID_BID_AMOUNT",
            "ADGROUP_KEYWORD_LIMIT",
            "RECOMMENDATION_ALREADY_APPLIED",
            "RECOMMENDATION_INVALIDATED",
            "TOO_MANY_OPERATIONS",
            "NO_OPERATIONS",
            "DIFFERENT_TYPES_NOT_SUPPORTED",
            "DUPLICATE_RESOURCE_NAME",
            "RECOMMENDATION_ALREADY_DISMISSED",
            "INVALID_APPLY_REQUEST",
            "RECOMMENDATION_TYPE_APPLY_NOT_SUPPORTED",
            "INVALID_MULTIPLIER",
            "ADVERTISING_CHANNEL_TYPE_GENERATE_NOT_SUPPORTED",
            "RECOMMENDATION_TYPE_GENERATE_NOT_SUPPORTED",
            "RECOMMENDATION_TYPES_CANNOT_BE_EMPTY",
            "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_BIDDING_INFO",
            "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_BIDDING_STRATEGY_TYPE",
            "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_ASSET_GROUP_INFO",
            "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_ASSET_GROUP_INFO_WITH_FINAL_URL",
            "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_COUNTRY_CODES_FOR_SEARCH_CHANNEL",
            "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_INVALID_COUNTRY_CODE_FOR_SEARCH_CHANNEL",
            "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_LANGUAGE_CODES_FOR_SEARCH_CHANNEL",
            "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_EITHER_POSITIVE_OR_NEGATIVE_LOCATION_IDS_FOR_SEARCH_CHANNEL",
            "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_AD_GROUP_INFO_FOR_SEARCH_CHANNEL",
            "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_KEYWORDS_FOR_SEARCH_CHANNEL",
            "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_WITH_CHANNEL_TYPE_SEARCH_AND_BIDDING_STRATEGY_TYPE_TARGET_IMPRESSION_SHARE_REQUIRES_LOCATION",
            "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_WITH_CHANNEL_TYPE_SEARCH_AND_BIDDING_STRATEGY_TYPE_TARGET_IMPRESSION_SHARE_REQUIRES_TARGET_IMPRESSION_SHARE_MICROS",
            "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_TARGET_IMPRESSION_SHARE_MICROS_BETWEEN_1_AND_1000000",
            "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_WITH_CHANNEL_TYPE_SEARCH_AND_BIDDING_STRATEGY_TYPE_TARGET_IMPRESSION_SHARE_REQUIRES_TARGET_IMPRESSION_SHARE_INFO",
            "MERCHANT_CENTER_ACCOUNT_ID_NOT_SUPPORTED_ADVERTISING_CHANNEL_TYPE"
          ],
          "description": "The reasons for error in applying a recommendation",
          "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."
          ],
          "type": "string"
        },
        "fieldError": {
          "type": "string",
          "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"
          ],
          "description": "The reasons for the field error",
          "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."
          ]
        },
        "policyValidationParameterError": {
          "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",
          "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."
          ],
          "type": "string"
        },
        "feedAttributeReferenceError": {
          "description": "The reasons for the feed attribute reference error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "A feed referenced by ID has been removed.",
            "There is no enabled feed with the given name.",
            "There is no feed attribute in an enabled feed with the given name."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CANNOT_REFERENCE_REMOVED_FEED",
            "INVALID_FEED_NAME",
            "INVALID_FEED_ATTRIBUTE_NAME"
          ],
          "type": "string"
        },
        "imageError": {
          "type": "string",
          "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",
          "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."
          ]
        },
        "keywordPlanError": {
          "type": "string",
          "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"
          ],
          "description": "The reason for keyword plan error.",
          "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."
          ]
        },
        "mediaUploadError": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "FILE_TOO_BIG",
            "UNPARSEABLE_IMAGE",
            "ANIMATED_IMAGE_NOT_ALLOWED",
            "FORMAT_NOT_ALLOWED",
            "EXTERNAL_URL_NOT_ALLOWED",
            "INVALID_URL_REFERENCE",
            "MISSING_PRIMARY_MEDIA_BUNDLE_ENTRY",
            "ANIMATED_VISUAL_EFFECT",
            "ANIMATION_TOO_LONG",
            "ASPECT_RATIO_NOT_ALLOWED",
            "AUDIO_NOT_ALLOWED_IN_MEDIA_BUNDLE",
            "CMYK_JPEG_NOT_ALLOWED",
            "FLASH_NOT_ALLOWED",
            "FRAME_RATE_TOO_HIGH",
            "GOOGLE_WEB_DESIGNER_ZIP_FILE_NOT_PUBLISHED",
            "IMAGE_CONSTRAINTS_VIOLATED",
            "INVALID_MEDIA_BUNDLE",
            "INVALID_MEDIA_BUNDLE_ENTRY",
            "INVALID_MIME_TYPE",
            "INVALID_PATH",
            "LAYOUT_PROBLEM",
            "MALFORMED_URL",
            "MEDIA_BUNDLE_NOT_ALLOWED",
            "MEDIA_BUNDLE_NOT_COMPATIBLE_TO_PRODUCT_TYPE",
            "MEDIA_BUNDLE_REJECTED_BY_MULTIPLE_ASSET_SPECS",
            "TOO_MANY_FILES_IN_MEDIA_BUNDLE",
            "UNSUPPORTED_GOOGLE_WEB_DESIGNER_ENVIRONMENT",
            "UNSUPPORTED_HTML5_FEATURE",
            "URL_IN_MEDIA_BUNDLE_NOT_SSL_COMPLIANT",
            "VIDEO_FILE_NAME_TOO_LONG",
            "VIDEO_MULTIPLE_FILES_WITH_SAME_NAME",
            "VIDEO_NOT_ALLOWED_IN_MEDIA_BUNDLE",
            "CANNOT_UPLOAD_MEDIA_TYPE_THROUGH_API",
            "DIMENSIONS_NOT_ALLOWED"
          ],
          "description": "The reasons for media uploading errors.",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The uploaded file is too big.",
            "Image data is unparseable.",
            "Animated images are not allowed.",
            "The image or media bundle format is not allowed.",
            "Cannot reference URL external to the media bundle.",
            "HTML5 ad is trying to reference an asset not in .ZIP file.",
            "The media bundle contains no primary entry.",
            "Animation has disallowed visual effects.",
            "Animation longer than the allowed 30 second limit.",
            "The aspect ratio of the image does not match the expected aspect ratios provided in the asset spec.",
            "Audio files are not allowed in bundle.",
            "CMYK jpegs are not supported.",
            "Flash movies are not allowed.",
            "The frame rate of the video is higher than the allowed 5fps.",
            "ZIP file from Google Web Designer is not published.",
            "Image constraints are violated, but more details (like DIMENSIONS_NOT_ALLOWED or ASPECT_RATIO_NOT_ALLOWED) can not be provided. This happens when asset spec contains more than one constraint and criteria of different constraints are violated.",
            "Media bundle data is unrecognizable.",
            "There was a problem with one or more of the media bundle entries.",
            "The asset has an invalid mime type.",
            "The media bundle contains an invalid asset path.",
            "Image has layout problem.",
            "An asset had a URL reference that is malformed per RFC 1738 convention.",
            "The uploaded media bundle format is not allowed.",
            "The media bundle is not compatible with the asset spec product type. (For example, Gmail, dynamic remarketing, etc.)",
            "A bundle being uploaded that is incompatible with multiple assets for different reasons.",
            "The media bundle contains too many files.",
            "Google Web Designer not created for \"Google Ads\" environment.",
            "Unsupported HTML5 feature in HTML5 asset.",
            "URL in HTML5 entry is not SSL compliant.",
            "Video file name is longer than the 50 allowed characters.",
            "Multiple videos with same name in a bundle.",
            "Videos are not allowed in media bundle.",
            "This type of media cannot be uploaded through the Google Ads API.",
            "The dimensions of the image are not allowed."
          ]
        },
        "keywordPlanCampaignError": {
          "type": "string",
          "description": "The reason for keyword plan campaign error.",
          "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"
          ]
        },
        "mediaFileError": {
          "type": "string",
          "description": "The reasons for the media file error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Cannot create a standard icon type.",
            "May only select Standard Icons alone.",
            "Image contains both a media file ID and data.",
            "A media file with given type and reference ID already exists.",
            "A required field was not specified or is an empty string.",
            "A media file may only be modified once per call.",
            "Field is not supported for the media sub type.",
            "The media file ID is invalid.",
            "The media subtype is invalid.",
            "The media file type is invalid.",
            "The mimetype is invalid.",
            "The media reference ID is invalid.",
            "The YouTube video ID is invalid.",
            "Media file has failed transcoding",
            "Media file has not been transcoded.",
            "The media type does not match the actual media file's type.",
            "None of the fields have been specified.",
            "One of reference ID or media file ID must be specified.",
            "The string has too many characters.",
            "The specified type is not supported.",
            "YouTube is unavailable for requesting video data.",
            "The YouTube video has a non positive duration.",
            "The YouTube video ID is syntactically valid but the video was not found."
          ],
          "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"
          ]
        },
        "productLinkInvitationError": {
          "type": "string",
          "description": "The reasons for the product link invitation error",
          "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.",
            "The `allowed_domain` property for the advertising partner is invalid."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_STATUS",
            "PERMISSION_DENIED",
            "NO_INVITATION_REQUIRED",
            "CUSTOMER_NOT_PERMITTED_TO_CREATE_INVITATION",
            "INVALID_ADVERTISING_PARTNER_ALLOWED_DOMAIN"
          ]
        },
        "assetGenerationError": {
          "type": "string",
          "description": "The reasons for the GenAI asset generation error.",
          "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"
          ]
        },
        "keywordPlanIdeaError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "URL_CRAWL_ERROR",
            "INVALID_VALUE"
          ],
          "description": "The reason for keyword idea error.",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Error when crawling the input URL.",
            "The input has an invalid value."
          ],
          "type": "string"
        },
        "customizerAttributeError": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DUPLICATE_CUSTOMIZER_ATTRIBUTE_NAME"
          ],
          "description": "The reasons for the customizer attribute error.",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "CustomizerAttribute name matches that of another active CustomizerAttribute."
          ]
        },
        "dateRangeError": {
          "type": "string",
          "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",
          "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."
          ]
        },
        "paymentsAccountError": {
          "description": "The reasons for errors in payments accounts service",
          "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"
          ],
          "type": "string"
        },
        "currencyCodeError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "UNSUPPORTED"
          ],
          "description": "The reasons for the currency code error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The currency code is not supported."
          ],
          "type": "string"
        },
        "conversionValueRuleSetError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CONFLICTING_VALUE_RULE_CONDITIONS",
            "INVALID_VALUE_RULE",
            "DIMENSIONS_UPDATE_ONLY_ALLOW_APPEND",
            "CONDITION_TYPE_NOT_ALLOWED",
            "DUPLICATE_DIMENSIONS",
            "INVALID_CAMPAIGN_ID",
            "CANNOT_PAUSE_UNLESS_ALL_VALUE_RULES_ARE_PAUSED",
            "SHOULD_PAUSE_WHEN_ALL_VALUE_RULES_ARE_PAUSED",
            "VALUE_RULES_NOT_SUPPORTED_FOR_CAMPAIGN_TYPE",
            "INELIGIBLE_CONVERSION_ACTION_CATEGORIES",
            "DIMENSION_NO_CONDITION_USED_WITH_OTHER_DIMENSIONS",
            "DIMENSION_NO_CONDITION_NOT_ALLOWED",
            "UNSUPPORTED_CONVERSION_ACTION_CATEGORIES",
            "DIMENSION_NOT_SUPPORTED_FOR_CAMPAIGN_TYPE"
          ],
          "description": "The reasons for the conversion value rule set error",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Two value rules in this value rule set contain conflicting conditions.",
            "This value rule set includes a value rule that cannot be found, has been permanently removed or belongs to a different customer.",
            "An error that's thrown when a mutate operation is trying to replace/remove some existing elements in the dimensions field. In other words, ADD op is always fine and UPDATE op is fine if it's only appending new elements into dimensions list.",
            "An error that's thrown when a mutate is adding new value rule(s) into a value rule set and the added value rule(s) include conditions that are not specified in the dimensions of the value rule set.",
            "The dimensions field contains duplicate elements.",
            "This value rule set is attached to an invalid campaign id. Either a campaign with this campaign id doesn't exist or it belongs to a different customer.",
            "When a mutate request tries to pause a value rule set, the enabled value rules in this set must be paused in the same command, or this error will be thrown.",
            "When a mutate request tries to pause all the value rules in a value rule set, the value rule set must be paused, or this error will be thrown.",
            "This value rule set is attached to a campaign that does not support value rules. Currently, campaign level value rule sets can only be created on Search, or Display campaigns.",
            "To add a value rule set that applies on Store Visits/Store Sales conversion action categories, the customer must have valid Store Visits/ Store Sales conversion actions.",
            "If NO_CONDITION is used as a dimension of a value rule set, it must be the only dimension.",
            "Dimension NO_CONDITION can only be used by Store Visits/Store Sales value rule set.",
            "Value rule sets defined on the specified conversion action categories are not supported. The list of conversion action categories must be an empty list, only STORE_VISIT, or only STORE_SALE.",
            "Dimension ITINERARY can only be used on campaigns with an advertising channel type of PERFORMANCE_MAX or HOTEL."
          ],
          "type": "string"
        },
        "assetLinkError": {
          "type": "string",
          "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",
          "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."
          ]
        },
        "campaignLifecycleGoalError": {
          "description": "The reasons for the campaign lifecycle goal error",
          "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"
          ],
          "type": "string"
        },
        "extensionFeedItemError": {
          "description": "The reasons for the extension feed item error",
          "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"
          ],
          "type": "string"
        },
        "partialFailureError": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PARTIAL_FAILURE_MODE_REQUIRED"
          ],
          "description": "The reasons for the mutate job error",
          "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."
          ]
        },
        "thirdPartyAppAnalyticsLinkError": {
          "type": "string",
          "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",
          "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"
          ]
        },
        "searchTermInsightError": {
          "description": "The reasons for the Search term insight error",
          "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"
          ],
          "type": "string"
        },
        "operationAccessDeniedError": {
          "type": "string",
          "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",
          "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."
          ]
        },
        "userDataError": {
          "description": "The reasons for the user data error.",
          "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"
          ],
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Errors__ErrorCode",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_RaiseTargetCpaParameters": {
      "description": "Parameters to use when applying raise Target CPA recommendations.",
      "properties": {
        "targetCpaMultiplier": {
          "description": "Required. Target to set CPA multiplier to. This is a required field.",
          "format": "double",
          "type": "number"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_RaiseTargetCpaParameters",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__ClickConversionResult": {
      "id": "GoogleAdsGoogleadsV24Services__ClickConversionResult",
      "type": "object",
      "description": "Identifying information for a successfully processed `ClickConversion`.",
      "properties": {
        "gbraid": {
          "description": "The URL parameter for clicks associated with app conversions.",
          "type": "string"
        },
        "conversionAction": {
          "type": "string",
          "description": "Resource name of the conversion action associated with this conversion."
        },
        "userIdentifiers": {
          "description": "The user identifiers associated with this conversion. Only hashed_email and hashed_phone_number are supported for conversion uploads. The maximum number of user identifiers for each conversion is 5.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__UserIdentifier"
          },
          "type": "array"
        },
        "gclid": {
          "type": "string",
          "description": "The Google Click ID (gclid) associated with this conversion."
        },
        "wbraid": {
          "type": "string",
          "description": "The URL parameter for clicks associated with web conversions."
        },
        "conversionDateTime": {
          "description": "The date time at which the conversion occurred. The format is \"yyyy-mm-dd hh:mm:ss+|-hh:mm\", for example, \"2019-01-01 12:32:45-08:00\".",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__PlannedProduct": {
      "id": "GoogleAdsGoogleadsV24Services__PlannedProduct",
      "type": "object",
      "description": "A product being planned for reach.",
      "properties": {
        "plannableProductCode": {
          "description": "Required. Selected product for planning. The code associated with the ad product (for example: Trueview, Bumper). To list the available plannable product codes use ReachPlanService.ListPlannableProducts.",
          "type": "string"
        },
        "budgetMicros": {
          "description": "Required. Maximum budget allocation in micros for the selected product. The value is specified in the selected planning currency_code. For example: 1 000 000$ = 1 000 000 000 000 micros.",
          "format": "int64",
          "type": "string"
        },
        "advancedProductTargeting": {
          "description": "Targeting settings for the selected product. To list the available targeting for each product use ReachPlanService.ListPlannableProducts.",
          "$ref": "GoogleAdsGoogleadsV24Services__AdvancedProductTargeting"
        },
        "conversionRate": {
          "type": "number",
          "description": "Conversion rate as a decimal between 0 and 1, exclusive. For example: if 2% of ad interactions are expected to lead to conversions, conversion_rate should be 0.02. This field is required for DEMAND_GEN plannable products. It is not supported for other plannable products.",
          "format": "double"
        }
      }
    },
    "GoogleProtobuf__Empty": {
      "id": "GoogleProtobuf__Empty",
      "type": "object",
      "description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }",
      "properties": {}
    },
    "GoogleAdsGoogleadsV24Services__SmartCampaignNotEligibleDetails": {
      "id": "GoogleAdsGoogleadsV24Services__SmartCampaignNotEligibleDetails",
      "type": "object",
      "description": "Details related to Smart campaigns that are not eligible to serve.",
      "properties": {
        "notEligibleReason": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ACCOUNT_ISSUE",
            "BILLING_ISSUE",
            "BUSINESS_PROFILE_LOCATION_REMOVED",
            "ALL_ADS_DISAPPROVED"
          ],
          "description": "The reason why the Smart campaign is not eligible to serve.",
          "enumDescriptions": [
            "The status has not been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The campaign is not eligible to serve because of an issue with the account.",
            "The campaign is not eligible to serve because of a payment issue.",
            "The business profile location associated with the campaign has been removed.",
            "All system-generated ads have been disapproved. Consult the policy_summary field in the AdGroupAd resource for more details."
          ],
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__Video": {
      "description": "A video. If the video has any enhancements, the stats on all of them will be aggregated and displayed on this video resource. To get stats for a specific enhancement, use the VideoEnhancement resource instead.",
      "properties": {
        "durationMillis": {
          "type": "string",
          "description": "Output only. The duration of the video in milliseconds.",
          "readOnly": true,
          "format": "int64"
        },
        "title": {
          "type": "string",
          "description": "Output only. The title of the video.",
          "readOnly": true
        },
        "id": {
          "description": "Output only. The ID of the video.",
          "readOnly": true,
          "type": "string"
        },
        "resourceName": {
          "description": "Output only. The resource name of the video. Video resource names have the form: `customers/{customer_id}/videos/{video_id}`",
          "readOnly": true,
          "type": "string"
        },
        "channelId": {
          "description": "Output only. The owner channel id of the video.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__Video",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Errors_ErrorLocation_FieldPathElement": {
      "id": "GoogleAdsGoogleadsV24Errors_ErrorLocation_FieldPathElement",
      "type": "object",
      "description": "A part of a field path.",
      "properties": {
        "index": {
          "description": "If field_name is a repeated field, this is the element that failed",
          "format": "int32",
          "type": "integer"
        },
        "fieldName": {
          "type": "string",
          "description": "The name of a field or a oneof"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__PolicyViolationKey": {
      "id": "GoogleAdsGoogleadsV24Common__PolicyViolationKey",
      "type": "object",
      "description": "Key of the violation. The key is used for referring to a violation when filing an exemption request.",
      "properties": {
        "violatingText": {
          "type": "string",
          "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."
        },
        "policyName": {
          "type": "string",
          "description": "Unique ID of the violated policy."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__SearchTopics": {
      "id": "GoogleAdsGoogleadsV24Services__SearchTopics",
      "type": "object",
      "description": "A collection of content topics to return trend information for.",
      "properties": {
        "entities": {
          "type": "array",
          "description": "Required. A list of knowledge graph entities to retrieve trend information for. Supported entities are tagged with CONTENT_TRENDING_INSIGHTS. Use AudienceInsightsService.ListAudienceInsightsAttributes to get the list of supported entities.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AudienceInsightsEntity"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV24Errors__ResourceCountDetails": {
      "id": "GoogleAdsGoogleadsV24Errors__ResourceCountDetails",
      "type": "object",
      "description": "Error details returned when an resource count limit was exceeded.",
      "properties": {
        "existingCount": {
          "description": "The count of existing entities.",
          "format": "int32",
          "type": "integer"
        },
        "limitType": {
          "type": "string",
          "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"
          ],
          "description": "The resource limit type which was exceeded.",
          "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."
          ]
        },
        "enclosingId": {
          "description": "The ID of the resource whose limit was exceeded. External customer ID if the limit is for a customer.",
          "type": "string"
        },
        "enclosingResource": {
          "description": "The name of the resource (Customer, Campaign etc.) whose limit was exceeded.",
          "type": "string"
        },
        "limit": {
          "type": "integer",
          "description": "The limit which was exceeded.",
          "format": "int32"
        }
      }
    },
    "GoogleType__Money": {
      "id": "GoogleType__Money",
      "type": "object",
      "description": "Represents an amount of money with its currency type.",
      "properties": {
        "currencyCode": {
          "description": "The three-letter currency code defined in ISO 4217.",
          "type": "string"
        },
        "nanos": {
          "type": "integer",
          "description": "Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.",
          "format": "int32"
        },
        "units": {
          "description": "The whole units of the amount. For example if `currencyCode` is `\"USD\"`, then 1 unit is one US dollar.",
          "format": "int64",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__YouTubeVideoAttributeMetadata": {
      "description": "Metadata for a YouTube video attribute.",
      "properties": {
        "viewsCount": {
          "type": "string",
          "description": "The total number of views.",
          "format": "int64"
        },
        "thumbnailUrl": {
          "description": "The URL of the video thumbnail, prefixed by \"https://img.youtube.com/\".",
          "type": "string"
        },
        "videoUrl": {
          "description": "The URL of the video, prefixed by \"https://www.youtube.com/\".",
          "type": "string"
        },
        "videoProperties": {
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "The value is unknown in this version.",
              "Video is a live stream.",
              "Video is Shorts eligible."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "LIVE_STREAM",
              "SHORTS"
            ]
          },
          "description": "The properties of this video (such as shorts, live stream).",
          "type": "array"
        },
        "commentsCount": {
          "description": "The total number of comments.",
          "format": "int64",
          "type": "string"
        },
        "publishDate": {
          "description": "The date that the video was created. Formatted as \"yyyy-mm-dd\".",
          "type": "string"
        },
        "likesCount": {
          "type": "string",
          "description": "The total number of likes.",
          "format": "int64"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__YouTubeVideoAttributeMetadata",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__HotelCheckInDayInfo": {
      "description": "Criterion for day of the week the booking is for.",
      "properties": {
        "dayOfWeek": {
          "description": "The day of the week.",
          "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"
          ],
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__HotelCheckInDayInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__CustomerLifecycleOptimizationValueSettings": {
      "description": "Lifecycle goal optimization value settings.",
      "properties": {
        "additionalValue": {
          "type": "number",
          "description": "Value of the lifecycle goal. For example, for retention goals, value is the incremental conversion value for lapsed customers who are not of high value.",
          "format": "double"
        },
        "additionalHighLifetimeValue": {
          "type": "number",
          "description": "High lifetime value of the lifecycle goal. For example, for customer acquisition goals, high lifetime value is the incremental conversion value for lapsed customers who are of high value. High lifetime value should be greater than value, if set.",
          "format": "double"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__CustomerLifecycleOptimizationValueSettings",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services_CampaignToForecast_CampaignBiddingStrategy": {
      "id": "GoogleAdsGoogleadsV24Services_CampaignToForecast_CampaignBiddingStrategy",
      "type": "object",
      "description": "Supported bidding strategies for new campaign forecasts.",
      "properties": {
        "maximizeConversionsBiddingStrategy": {
          "description": "Use maximize conversions bidding strategy for forecasting.",
          "$ref": "GoogleAdsGoogleadsV24Services__MaximizeConversionsBiddingStrategy"
        },
        "maximizeClicksBiddingStrategy": {
          "description": "Use maximize clicks bidding strategy for forecasting.",
          "$ref": "GoogleAdsGoogleadsV24Services__MaximizeClicksBiddingStrategy"
        },
        "manualCpcBiddingStrategy": {
          "description": "Use manual CPC bidding strategy for forecasting.",
          "$ref": "GoogleAdsGoogleadsV24Services__ManualCpcBiddingStrategy"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__IncomeRangeView": {
      "description": "An income range view.",
      "properties": {
        "resourceName": {
          "description": "Output only. The resource name of the income range view. Income range view resource names have the form: `customers/{customer_id}/incomeRangeViews/{ad_group_id}~{criterion_id}`",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__IncomeRangeView",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateSharedCriteriaResponse": {
      "description": "Response message for a shared criterion mutate.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "type": "array",
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateSharedCriterionResult"
          }
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateSharedCriteriaResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__PromotionAsset": {
      "id": "GoogleAdsGoogleadsV24Common__PromotionAsset",
      "type": "object",
      "description": "A Promotion asset.",
      "properties": {
        "ordersOverAmount": {
          "description": "The amount the total order needs to be for the user to be eligible for the promotion.",
          "$ref": "GoogleAdsGoogleadsV24Common__Money"
        },
        "discountModifier": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "UP_TO"
          ],
          "description": "A modifier for qualification of the discount.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "'Up to'."
          ],
          "type": "string"
        },
        "redemptionEndDate": {
          "type": "string",
          "description": "Last date of when the promotion is eligible to be redeemed, in yyyy-MM-dd format."
        },
        "adScheduleTargets": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdScheduleInfo"
          },
          "description": "List of non-overlapping schedules specifying all time intervals for which the asset may serve. There can be a maximum of 6 schedules per day, 42 in total.",
          "type": "array"
        },
        "startDate": {
          "description": "Start date of when this asset is effective and can begin serving, in yyyy-MM-dd format.",
          "type": "string"
        },
        "termsAndConditionsText": {
          "type": "string",
          "description": "Terms and conditions of the promotion."
        },
        "moneyAmountOff": {
          "description": "Money amount off for discount in the promotion. Either this or percent_off is required.",
          "$ref": "GoogleAdsGoogleadsV24Common__Money"
        },
        "languageCode": {
          "description": "The language of the promotion. Represented as BCP 47 language tag.",
          "type": "string"
        },
        "promotionBarcodeInfo": {
          "description": "Barcode info used to generate promotion barcode for user to be eligible for the promotion.",
          "$ref": "GoogleAdsGoogleadsV24Common__PromotionBarcodeInfo"
        },
        "termsAndConditionsUri": {
          "description": "URI to the terms and conditions of the promotion.",
          "type": "string"
        },
        "percentOff": {
          "description": "Percentage off discount in the promotion. 1,000,000 = 100%. Either this or money_amount_off is required.",
          "format": "int64",
          "type": "string"
        },
        "occasion": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NEW_YEARS",
            "CHINESE_NEW_YEAR",
            "VALENTINES_DAY",
            "EASTER",
            "MOTHERS_DAY",
            "FATHERS_DAY",
            "LABOR_DAY",
            "BACK_TO_SCHOOL",
            "HALLOWEEN",
            "BLACK_FRIDAY",
            "CYBER_MONDAY",
            "CHRISTMAS",
            "BOXING_DAY",
            "INDEPENDENCE_DAY",
            "NATIONAL_DAY",
            "END_OF_SEASON",
            "WINTER_SALE",
            "SUMMER_SALE",
            "FALL_SALE",
            "SPRING_SALE",
            "RAMADAN",
            "EID_AL_FITR",
            "EID_AL_ADHA",
            "SINGLES_DAY",
            "WOMENS_DAY",
            "HOLI",
            "PARENTS_DAY",
            "ST_NICHOLAS_DAY",
            "CARNIVAL",
            "EPIPHANY",
            "ROSH_HASHANAH",
            "PASSOVER",
            "HANUKKAH",
            "DIWALI",
            "NAVRATRI",
            "SONGKRAN",
            "YEAR_END_GIFT"
          ],
          "description": "The occasion the promotion was intended for. If an occasion is set, the redemption window will need to fall within the date range associated with the occasion.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "New Year's.",
            "Chinese New Year.",
            "Valentine's Day.",
            "Easter.",
            "Mother's Day.",
            "Father's Day.",
            "Labor Day.",
            "Back To School.",
            "Halloween.",
            "Black Friday.",
            "Cyber Monday.",
            "Christmas.",
            "Boxing Day.",
            "Independence Day in any country.",
            "National Day in any country.",
            "End of any season.",
            "Winter Sale.",
            "Summer sale.",
            "Fall Sale.",
            "Spring Sale.",
            "Ramadan.",
            "Eid al-Fitr.",
            "Eid al-Adha.",
            "Singles Day.",
            "Women's Day.",
            "Holi.",
            "Parent's Day.",
            "St. Nicholas Day.",
            "Carnival.",
            "Epiphany, also known as Three Kings' Day.",
            "Rosh Hashanah.",
            "Passover.",
            "Hanukkah.",
            "Diwali.",
            "Navratri.",
            "Available in Thai: Songkran.",
            "Available in Japanese: Year-end Gift."
          ]
        },
        "redemptionStartDate": {
          "type": "string",
          "description": "Start date of when the promotion is eligible to be redeemed, in yyyy-MM-dd format."
        },
        "promotionTarget": {
          "type": "string",
          "description": "Required. A freeform description of what the promotion is targeting."
        },
        "endDate": {
          "type": "string",
          "description": "Last date of when this asset is effective and still serving, in yyyy-MM-dd format."
        },
        "promotionCode": {
          "type": "string",
          "description": "A code the user should use in order to be eligible for the promotion."
        },
        "promotionQrCodeInfo": {
          "description": "QR code info used to generate promotion QR code for user to be eligible for the promotion.",
          "$ref": "GoogleAdsGoogleadsV24Common__PromotionQrCodeInfo"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__GenerateAudienceCompositionInsightsRequest": {
      "id": "GoogleAdsGoogleadsV24Services__GenerateAudienceCompositionInsightsRequest",
      "type": "object",
      "description": "Request message for AudienceInsightsService.GenerateAudienceCompositionInsights.",
      "properties": {
        "baselineAudience": {
          "description": "The baseline audience to which the audience of interest is being compared.",
          "$ref": "GoogleAdsGoogleadsV24Services__InsightsAudience"
        },
        "dataMonth": {
          "type": "string",
          "description": "The one-month range of historical data to use for insights, in the format \"yyyy-mm\". If unset, insights will be returned for the last thirty days of data."
        },
        "dimensions": {
          "type": "array",
          "description": "Required. The audience dimensions for which composition insights should be returned. Supported dimensions are KNOWLEDGE_GRAPH, GEO_TARGET_COUNTRY, SUB_COUNTRY_LOCATION, YOUTUBE_CHANNEL, YOUTUBE_LINEUP, AFFINITY_USER_INTEREST, IN_MARKET_USER_INTEREST, LIFE_EVENT_USER_INTEREST, PARENTAL_STATUS, INCOME_RANGE, AGE_RANGE, and GENDER.",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "The value is unknown in this version.",
              "A Product & Service category.",
              "A Knowledge Graph entity.",
              "A country, represented by a geo target.",
              "A geographic location within a country.",
              "A YouTube channel.",
              "An Affinity UserInterest.",
              "An In-Market UserInterest.",
              "A Parental Status value (parent, or not a parent).",
              "A household income percentile range.",
              "An age range.",
              "A gender.",
              "A YouTube video.",
              "A device type, such as Mobile, Desktop, Tablet, and Connected TV.",
              "A YouTube Lineup.",
              "A User List.",
              "A Life Event UserInterest."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "CATEGORY",
              "KNOWLEDGE_GRAPH",
              "GEO_TARGET_COUNTRY",
              "SUB_COUNTRY_LOCATION",
              "YOUTUBE_CHANNEL",
              "AFFINITY_USER_INTEREST",
              "IN_MARKET_USER_INTEREST",
              "PARENTAL_STATUS",
              "INCOME_RANGE",
              "AGE_RANGE",
              "GENDER",
              "YOUTUBE_VIDEO",
              "DEVICE",
              "YOUTUBE_LINEUP",
              "USER_LIST",
              "LIFE_EVENT_USER_INTEREST"
            ]
          }
        },
        "audience": {
          "description": "Required. The audience of interest for which insights are being requested.",
          "$ref": "GoogleAdsGoogleadsV24Services__InsightsAudience"
        },
        "customerInsightsGroup": {
          "description": "The name of the customer being planned for. This is a user-defined value.",
          "type": "string"
        },
        "insightsApplicationInfo": {
          "description": "Optional. Additional information on the application issuing the request.",
          "$ref": "GoogleAdsGoogleadsV24Common__AdditionalApplicationInfo"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__Label": {
      "description": "A label.",
      "properties": {
        "id": {
          "type": "string",
          "description": "Output only. ID of the label. Read only.",
          "readOnly": true,
          "format": "int64"
        },
        "status": {
          "type": "string",
          "description": "Output only. Status of the label. Read only.",
          "readOnly": true,
          "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"
          ]
        },
        "textLabel": {
          "description": "A type of label displaying text on a colored background.",
          "$ref": "GoogleAdsGoogleadsV24Common__TextLabel"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. Name of the resource. Label resource names have the form: `customers/{customer_id}/labels/{label_id}`"
        },
        "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"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__Label",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__AddOfflineUserDataJobOperationsResponse": {
      "description": "Response message for OfflineUserDataJobService.AddOfflineUserDataJobOperations.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "warning": {
          "description": "Non blocking errors that pertain to operation failures in the warnings mode. Returned only when enable_warnings = true.",
          "$ref": "GoogleRpc__Status"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__AddOfflineUserDataJobOperationsResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__RemarketingSetting": {
      "description": "Remarketing setting for a customer.",
      "properties": {
        "googleGlobalSiteTag": {
          "description": "Output only. The Google tag.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__RemarketingSetting",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__PlannableUserList": {
      "id": "GoogleAdsGoogleadsV24Services__PlannableUserList",
      "type": "object",
      "description": "A plannable user list.",
      "properties": {
        "userListInfo": {
          "description": "The user list ID.",
          "$ref": "GoogleAdsGoogleadsV24Common__UserListInfo"
        },
        "plannableStatus": {
          "type": "string",
          "description": "The plannable status of the user list.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The user list is plannable.",
            "The user list is not plannable."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PLANNABLE",
            "UNPLANNABLE"
          ]
        },
        "userListType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "REMARKETING",
            "LOGICAL",
            "EXTERNAL_REMARKETING",
            "RULE_BASED",
            "SIMILAR",
            "CRM_BASED",
            "LOOKALIKE"
          ],
          "description": "The user list type.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "UserList represented as a collection of conversion types.",
            "UserList represented as a combination of other user lists/interests.",
            "UserList created in the Google Ad Manager platform.",
            "UserList associated with a rule.",
            "UserList with users similar to users of another UserList.",
            "UserList of first-party CRM data provided by advertiser in the form of emails or other formats.",
            "LookalikeUserlist, composed of users similar to those of a configurable seed (set of UserLists)"
          ],
          "type": "string"
        },
        "plannableUserListMetadata": {
          "description": "The relevant metadata for this user list.",
          "$ref": "GoogleAdsGoogleadsV24Services__PlannableUserListMetadata"
        },
        "displayName": {
          "type": "string",
          "description": "The name of the user list."
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__DynamicFlightsAsset": {
      "id": "GoogleAdsGoogleadsV24Common__DynamicFlightsAsset",
      "type": "object",
      "description": "A dynamic flights asset.",
      "properties": {
        "destinationName": {
          "description": "Destination name, for example, Paris.",
          "type": "string"
        },
        "flightPrice": {
          "description": "Flight price which can be number followed by the alphabetic currency code, ISO 4217 standard. Use '.' as the decimal mark, for example, 100.00 USD.",
          "type": "string"
        },
        "destinationId": {
          "description": "Required. Destination ID which can be any sequence of letters and digits, and must be unique and match the values of remarketing tag. Required.",
          "type": "string"
        },
        "originId": {
          "type": "string",
          "description": "Origin ID which can be any sequence of letters and digits. The ID sequence (destination ID + origin ID) must be unique."
        },
        "flightSalePrice": {
          "type": "string",
          "description": "Flight sale price which can be number followed by the alphabetic currency code, ISO 4217 standard. Use '.' as the decimal mark, for example, 80.00 USD. Must be less than the 'flight_price' field."
        },
        "originName": {
          "description": "Origin name, for example, London.",
          "type": "string"
        },
        "formattedSalePrice": {
          "description": "Formatted sale price which can be any characters. If set, this attribute will be used instead of 'sale price', for example, On sale for $80.00.",
          "type": "string"
        },
        "androidAppLink": {
          "type": "string",
          "description": "Android deep link, for example, android-app://com.example.android/http/example.com/gizmos?1234."
        },
        "formattedPrice": {
          "description": "Formatted price which can be any characters. If set, this attribute will be used instead of 'price', for example, Starting at $100.00.",
          "type": "string"
        },
        "customMapping": {
          "type": "string",
          "description": "A custom field which can be multiple key to values mapping separated by delimiters (\",\", \"|\" and \":\"), in the forms of \": , , ... , | : , ... , | ... | : , ... ,\" for example, wifi: most | aircraft: 320, 77W | flights: 42 | legroom: 32\"."
        },
        "imageUrl": {
          "description": "Image URL, for example, http://www.example.com/image.png. The image will not be uploaded as image asset.",
          "type": "string"
        },
        "iosAppStoreId": {
          "description": "iOS app store ID. This is used to check if the user has the app installed on their device before deep linking. If this field is set, then the ios_app_link field must also be present.",
          "format": "int64",
          "type": "string"
        },
        "iosAppLink": {
          "description": "iOS deep link, for example, exampleApp://content/page.",
          "type": "string"
        },
        "flightDescription": {
          "type": "string",
          "description": "Required. Flight description, for example, Book your ticket. Required."
        },
        "similarDestinationIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Similar destination IDs, for example, PAR,LON."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateAdsResponse": {
      "id": "GoogleAdsGoogleadsV24Services__MutateAdsResponse",
      "type": "object",
      "description": "Response message for an ad mutate.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateAdResult"
          },
          "description": "All results for the mutate."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__SearchAudience": {
      "id": "GoogleAdsGoogleadsV24Services__SearchAudience",
      "type": "object",
      "description": "A collection of audience attributes that describe an audience of viewers. This is used to search for topics trending for the defined audience.",
      "properties": {
        "audienceCombinations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__InsightsAudienceAttributeGroup"
          },
          "description": "Optional. A list of audience attribute groups consisting of one or more Knowledge Graph entities, Product & Service Categories and user interests that describes an audience. The groups have a logical AND-of-ORs structure: 1. Attributes within each InsightsAudienceAttributeGroup are combined with OR. 2. The groups themselves are combined together with AND. For example, an audience (Interest A OR Interest B) AND (Entity C) is represented using two groups. The first group contains the two interests and the second group contains the entity. This field cannot be set if any Knowledge Graph entities, Product & Service Categories, or user interests are specified in audience_attributes."
        },
        "audienceAttributes": {
          "description": "Required. Audience attributes that describe an audience of viewers. This is used to search for topics trending for the defined audience. Attributes age_range, gender, user_interest, entity, category, parental_status, and income_range are supported. Attributes user_interest, entity, and category can only be set in audience_attributes when audience_combinations is unused.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AudienceInsightsAttribute"
          },
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__ListInvoicesResponse": {
      "id": "GoogleAdsGoogleadsV24Services__ListInvoicesResponse",
      "type": "object",
      "description": "Response message for InvoiceService.ListInvoices.",
      "properties": {
        "invoices": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Resources__Invoice"
          },
          "description": "The list of invoices that match the billing setup and time period.",
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_CampaignVideoCampaignSettings_VideoAdInventoryControl": {
      "id": "GoogleAdsGoogleadsV24Resources_CampaignVideoCampaignSettings_VideoAdInventoryControl",
      "type": "object",
      "description": "For campaigns using video responsive ads inventory controls determine on which inventories the ads can be shown. This only applies for campaigns with the bidding strategies TARGET_CPM and FIXED_CPM.",
      "properties": {
        "allowInStream": {
          "type": "boolean",
          "description": "Determine if video responsive ads can be used for in-stream video ads."
        },
        "allowInFeed": {
          "type": "boolean",
          "description": "Determine if video responsive ads can be used for in-feed video ads."
        },
        "allowNonSkippableInStream": {
          "description": "Determine if video responsive ads can be used for non-skippable in-stream ads. This is only available for campaigns that allow mixing of non-skippable with other formats (Video reach campaign with Target Frequency bidding strategy goal).",
          "type": "boolean"
        },
        "allowShorts": {
          "type": "boolean",
          "description": "Determine if video responsive ads can be used as shorts format."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__ConversionGoalCampaignConfigOperation": {
      "description": "A single operation (update) on a conversion goal campaign config.",
      "properties": {
        "updateMask": {
          "type": "string",
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask"
        },
        "update": {
          "description": "Update operation: The conversion goal campaign config is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV24Resources__ConversionGoalCampaignConfig"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__ConversionGoalCampaignConfigOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__Experiment": {
      "description": "A Google ads experiment for users to experiment changes on multiple campaigns, compare the performance, and apply the effective changes.",
      "properties": {
        "resourceName": {
          "description": "Immutable. The resource name of the experiment. Experiment resource names have the form: `customers/{customer_id}/experiments/{experiment_id}`",
          "type": "string"
        },
        "status": {
          "type": "string",
          "description": "The Advertiser-chosen status of this experiment.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "The experiment is enabled.",
            "The experiment has been removed.",
            "The experiment has been halted. This status can be set from ENABLED status through API.",
            "The experiment will be promoted out of experimental status.",
            "Initial status of the experiment.",
            "The experiment's campaigns are pending materialization. This status can be set from SETUP status through API.",
            "The experiment has been graduated."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED",
            "HALTED",
            "PROMOTED",
            "SETUP",
            "INITIATED",
            "GRADUATED"
          ]
        },
        "endDate": {
          "description": "Date when the experiment ends. By default, the experiment ends on the campaign's end date. If this field is set, then the experiment ends at the end of the specified date in the customer's time zone. Format: YYYY-MM-DD Example: 2019-04-18",
          "type": "string"
        },
        "goals": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__MetricGoal"
          },
          "description": "The goals of this experiment.",
          "type": "array"
        },
        "syncEnabled": {
          "description": "Immutable. Set to true if changes to base campaigns should be synced to the trial campaigns. Any changes made directly to trial campaigns will be preserved. This field can only be set when the experiment is being created.",
          "type": "boolean"
        },
        "suffix": {
          "type": "string",
          "description": "For system managed experiments, the advertiser must provide a suffix during construction, in the setup stage before moving to initiated. The suffix will be appended to the in-design and experiment campaign names so that the name is base campaign name + suffix."
        },
        "experimentId": {
          "type": "string",
          "description": "Output only. The ID of the experiment. Read only.",
          "readOnly": true,
          "format": "int64"
        },
        "description": {
          "type": "string",
          "description": "The description of the experiment. It must have a minimum length of 1 and maximum length of 2048."
        },
        "promoteStatus": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NOT_STARTED",
            "IN_PROGRESS",
            "COMPLETED",
            "FAILED",
            "COMPLETED_WITH_WARNING"
          ],
          "description": "Output only. The status of the experiment promotion process.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Action has not started.",
            "Action is in progress.",
            "Action has completed successfully.",
            "Action has failed.",
            "Action has completed successfully with warnings."
          ],
          "type": "string"
        },
        "longRunningOperation": {
          "type": "string",
          "description": "Output only. The resource name of the long-running operation that can be used to poll for completion of experiment schedule or promote. The most recent long running operation is returned.",
          "readOnly": true
        },
        "name": {
          "description": "Required. The name of the experiment. It must have a minimum length of 1 and maximum length of 1024. It must be unique under a customer.",
          "type": "string"
        },
        "startDate": {
          "type": "string",
          "description": "Date when the experiment starts. By default, the experiment starts now or on the campaign's start date, whichever is later. If this field is set, then the experiment starts at the beginning of the specified date in the customer's time zone. Format: YYYY-MM-DD Example: 2019-03-14"
        },
        "type": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DISPLAY_AND_VIDEO_360",
            "AD_VARIATION",
            "YOUTUBE_CUSTOM",
            "DISPLAY_CUSTOM",
            "SEARCH_CUSTOM",
            "DISPLAY_AUTOMATED_BIDDING_STRATEGY",
            "SEARCH_AUTOMATED_BIDDING_STRATEGY",
            "SHOPPING_AUTOMATED_BIDDING_STRATEGY",
            "SMART_MATCHING",
            "HOTEL_CUSTOM"
          ],
          "description": "Required. The product/feature that uses this experiment.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "This is a DISPLAY_AND_VIDEO_360 experiment.",
            "This is an ad variation experiment.",
            "A custom experiment consisting of Video campaigns.",
            "A custom experiment consisting of display campaigns.",
            "A custom experiment consisting of search campaigns.",
            "An experiment that compares bidding strategies for display campaigns.",
            "An experiment that compares bidding strategies for search campaigns.\"",
            "An experiment that compares bidding strategies for shopping campaigns.",
            "DEPRECATED. A smart matching experiment with search campaigns.",
            "A custom experiment consisting of hotel campaigns."
          ],
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__Experiment",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateBillingSetupResult": {
      "description": "Result for a single billing setup mutate.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateBillingSetupResult",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__CustomerCustomizer": {
      "description": "A customizer value for the associated CustomizerAttribute at the Customer level.",
      "properties": {
        "status": {
          "description": "Output only. The status of the customer customizer attribute.",
          "readOnly": true,
          "enumDescriptions": [
            "The status has not been specified.",
            "The received value is not known in this version.",
            "The customizer value is enabled.",
            "The customizer value is removed."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "type": "string"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the customer customizer. Customer customizer resource names have the form: `customers/{customer_id}/customerCustomizers/{customizer_attribute_id}`"
        },
        "customizerAttribute": {
          "description": "Required. Immutable. The customizer attribute which is linked to the customer.",
          "type": "string"
        },
        "value": {
          "description": "Required. The value to associate with the customizer attribute at this level. The value must be of the type specified for the CustomizerAttribute.",
          "$ref": "GoogleAdsGoogleadsV24Common__CustomizerValue"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__CustomerCustomizer",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__RemoveProductLinkResponse": {
      "id": "GoogleAdsGoogleadsV24Services__RemoveProductLinkResponse",
      "type": "object",
      "description": "Response message for product link removal.",
      "properties": {
        "resourceName": {
          "description": "Result for the remove request.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateAudiencesRequest": {
      "id": "GoogleAdsGoogleadsV24Services__MutateAudiencesRequest",
      "type": "object",
      "description": "Request message for AudienceService.MutateAudiences.",
      "properties": {
        "operations": {
          "type": "array",
          "description": "Required. The list of operations to perform on individual audiences.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__AudienceOperation"
          }
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "responseContentType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ]
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__UserData": {
      "description": "User data holding user identifiers and attributes.",
      "properties": {
        "userIdentifiers": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__UserIdentifier"
          },
          "description": "User identification info. Required.",
          "type": "array"
        },
        "transactionAttribute": {
          "description": "Additional transactions/attributes associated with the user. Required when updating store sales data.",
          "$ref": "GoogleAdsGoogleadsV24Common__TransactionAttribute"
        },
        "userAttribute": {
          "description": "Additional attributes associated with the user. Required when updating customer match attributes. These have an expiration of 540 days.",
          "$ref": "GoogleAdsGoogleadsV24Common__UserAttribute"
        },
        "consent": {
          "description": "The consent setting for the user. If set, will override the job level consent for this user.",
          "$ref": "GoogleAdsGoogleadsV24Common__Consent"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__UserData",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateConversionActionsRequest": {
      "description": "Request message for ConversionActionService.MutateConversionActions.",
      "properties": {
        "operations": {
          "type": "array",
          "description": "Required. The list of operations to perform on individual conversion actions.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__ConversionActionOperation"
          }
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "responseContentType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ]
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateConversionActionsRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__CustomerNegativeCriterionOperation": {
      "id": "GoogleAdsGoogleadsV24Services__CustomerNegativeCriterionOperation",
      "type": "object",
      "description": "A single operation (create or remove) on a customer level negative criterion.",
      "properties": {
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed criterion is expected, in this format: `customers/{customer_id}/customerNegativeCriteria/{criterion_id}`"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new criterion.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CustomerNegativeCriterion"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__ImageAsset": {
      "id": "GoogleAdsGoogleadsV24Common__ImageAsset",
      "type": "object",
      "description": "An Image asset.",
      "properties": {
        "fullSize": {
          "description": "Metadata for this image at its original size.",
          "$ref": "GoogleAdsGoogleadsV24Common__ImageDimension"
        },
        "mimeType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "IMAGE_JPEG",
            "IMAGE_GIF",
            "IMAGE_PNG",
            "FLASH",
            "TEXT_HTML",
            "PDF",
            "MSWORD",
            "MSEXCEL",
            "RTF",
            "AUDIO_WAV",
            "AUDIO_MP3",
            "HTML5_AD_ZIP"
          ],
          "description": "MIME type of the image asset.",
          "enumDescriptions": [
            "The mime type has not been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "MIME type of image/jpeg.",
            "MIME type of image/gif.",
            "MIME type of image/png.",
            "MIME type of application/x-shockwave-flash.",
            "MIME type of text/html.",
            "MIME type of application/pdf.",
            "MIME type of application/msword.",
            "MIME type of application/vnd.ms-excel.",
            "MIME type of application/rtf.",
            "MIME type of audio/wav.",
            "MIME type of audio/mp3.",
            "MIME type of application/x-html5-ad-zip."
          ]
        },
        "data": {
          "type": "string",
          "description": "The raw bytes data of an image. This field is mutate only.",
          "format": "byte"
        },
        "fileSize": {
          "type": "string",
          "description": "File size of the image asset in bytes.",
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__DynamicSearchAdsSearchTermView": {
      "description": "A dynamic search ads search term view.",
      "properties": {
        "landingPage": {
          "type": "string",
          "description": "Output only. The dynamically selected landing page URL of the impression. This field is read-only.",
          "readOnly": true
        },
        "resourceName": {
          "type": "string",
          "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
        },
        "searchTerm": {
          "description": "Output only. Search term This field is read-only.",
          "readOnly": true,
          "type": "string"
        },
        "hasNegativeKeyword": {
          "description": "Output only. True if query matches a negative keyword. This field is read-only.",
          "readOnly": true,
          "type": "boolean"
        },
        "headline": {
          "description": "Output only. The dynamically generated headline of the Dynamic Search Ad. This field is read-only.",
          "readOnly": true,
          "type": "string"
        },
        "hasMatchingKeyword": {
          "description": "Output only. True if query is added to targeted keywords. This field is read-only.",
          "readOnly": true,
          "type": "boolean"
        },
        "hasNegativeUrl": {
          "description": "Output only. True if query matches a negative url. This field is read-only.",
          "readOnly": true,
          "type": "boolean"
        },
        "pageUrl": {
          "type": "string",
          "description": "Output only. The URL of page feed item served for the impression. This field is read-only.",
          "readOnly": true
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__DynamicSearchAdsSearchTermView",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__AdGroupAssetSetOperation": {
      "id": "GoogleAdsGoogleadsV24Services__AdGroupAssetSetOperation",
      "type": "object",
      "description": "A single operation (create, remove) on an ad group asset set.",
      "properties": {
        "remove": {
          "description": "Remove operation: A resource name for the removed ad group asset set is expected, in this format: `customers/{customer_id}/adGroupAssetSets/{ad_group_id}~{asset_set_id}`",
          "type": "string"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new ad group asset set.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AdGroupAssetSet"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__ProductBrandInfo": {
      "description": "Brand of the product.",
      "properties": {
        "value": {
          "description": "String value of the product brand.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__ProductBrandInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__SuggestKeywordThemesResponse": {
      "id": "GoogleAdsGoogleadsV24Services__SuggestKeywordThemesResponse",
      "type": "object",
      "description": "Response message for SmartCampaignSuggestService.SuggestKeywordThemes.",
      "properties": {
        "keywordThemes": {
          "type": "array",
          "description": "Smart campaign keyword theme suggestions.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services_SuggestKeywordThemesResponse_KeywordTheme"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__UploadUserDataResponse": {
      "description": "Response message for UserDataService.UploadUserData Uploads made through this service will not be visible under the 'Segment members' section for the Customer Match List in the Google Ads UI.",
      "properties": {
        "uploadDateTime": {
          "description": "The date time at which the request was received by API, formatted as \"yyyy-mm-dd hh:mm:ss+|-hh:mm\", for example, \"2019-01-01 12:32:45-08:00\".",
          "type": "string"
        },
        "receivedOperationsCount": {
          "type": "integer",
          "description": "Number of upload data operations received by API.",
          "format": "int32"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__UploadUserDataResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common_PolicyTopicConstraint_CountryConstraintList": {
      "description": "A list of countries where a resource's serving is constrained.",
      "properties": {
        "totalTargetedCountries": {
          "type": "integer",
          "description": "Total number of countries targeted by the resource.",
          "format": "int32"
        },
        "countries": {
          "type": "array",
          "description": "Countries in which serving is restricted.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common_PolicyTopicConstraint_CountryConstraint"
          }
        }
      },
      "id": "GoogleAdsGoogleadsV24Common_PolicyTopicConstraint_CountryConstraintList",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__CurrencyConstant": {
      "id": "GoogleAdsGoogleadsV24Resources__CurrencyConstant",
      "type": "object",
      "description": "A currency constant.",
      "properties": {
        "symbol": {
          "type": "string",
          "description": "Output only. Standard symbol for describing this currency, for example, '$' for US Dollars.",
          "readOnly": true
        },
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the currency constant. Currency constant resource names have the form: `currencyConstants/{code}`",
          "readOnly": true
        },
        "code": {
          "description": "Output only. ISO 4217 three-letter currency code, for example, \"USD\"",
          "readOnly": true,
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "Output only. Full English name of the currency.",
          "readOnly": true
        },
        "billableUnitMicros": {
          "description": "Output only. The billable unit for this currency. Billed amounts should be multiples of this value.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_ShoppingProduct_ProductIssue": {
      "description": "An issue affecting whether a product can show in ads.",
      "properties": {
        "errorCode": {
          "description": "Output only. The error code that identifies the issue.",
          "readOnly": true,
          "type": "string"
        },
        "attributeName": {
          "type": "string",
          "description": "Output only. The name of the product's attribute, if any, that triggered the issue.",
          "readOnly": true
        },
        "adsSeverity": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "WARNING",
            "ERROR"
          ],
          "description": "Output only. The severity of the issue in Google Ads.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The issue limits the performance of the product in ads.",
            "The issue prevents the product from showing in ads."
          ],
          "type": "string"
        },
        "affectedRegions": {
          "description": "Output only. List of upper-case two-letter ISO 3166-1 codes of the regions affected by the issue. If empty, all regions are affected.",
          "readOnly": true,
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "detail": {
          "description": "Output only. The detailed description of the issue in English.",
          "readOnly": true,
          "type": "string"
        },
        "documentation": {
          "type": "string",
          "description": "Output only. The URL of the Help Center article for the issue.",
          "readOnly": true
        },
        "description": {
          "type": "string",
          "description": "Output only. The short description of the issue in English.",
          "readOnly": true
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_ShoppingProduct_ProductIssue",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__SuggestSmartCampaignBudgetOptionsResponse": {
      "id": "GoogleAdsGoogleadsV24Services__SuggestSmartCampaignBudgetOptionsResponse",
      "type": "object",
      "description": "Response message for SmartCampaignSuggestService.SuggestSmartCampaignBudgetOptions. Depending on whether the system could suggest the options, either all of the options or none of them might be returned.",
      "properties": {
        "high": {
          "description": "Optional. The highest budget option.",
          "$ref": "GoogleAdsGoogleadsV24Services_SuggestSmartCampaignBudgetOptionsResponse_BudgetOption"
        },
        "low": {
          "description": "Optional. The lowest budget option.",
          "$ref": "GoogleAdsGoogleadsV24Services_SuggestSmartCampaignBudgetOptionsResponse_BudgetOption"
        },
        "recommended": {
          "description": "Optional. The recommended budget option.",
          "$ref": "GoogleAdsGoogleadsV24Services_SuggestSmartCampaignBudgetOptionsResponse_BudgetOption"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateSharedSetsResponse": {
      "description": "Response message for a shared set mutate.",
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateSharedSetResult"
          },
          "description": "All results for the mutate."
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateSharedSetsResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateCustomerClientLinkResult": {
      "id": "GoogleAdsGoogleadsV24Services__MutateCustomerClientLinkResult",
      "type": "object",
      "description": "The result for a single customer client link mutate.",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__OfflineConversionUploadConversionActionSummary": {
      "id": "GoogleAdsGoogleadsV24Resources__OfflineConversionUploadConversionActionSummary",
      "type": "object",
      "description": "Offline conversion upload summary at conversion action level.",
      "properties": {
        "dailySummaries": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Resources__OfflineConversionSummary"
          },
          "description": "Output only. Summary of history stats by last N days.",
          "readOnly": true,
          "type": "array"
        },
        "client": {
          "description": "Output only. Client type of the upload event.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Google Ads API.",
            "Google Ads web client, which could include multiple sources like Ads UI, SFTP, etc.",
            "Connection platform."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "GOOGLE_ADS_API",
            "GOOGLE_ADS_WEB_CLIENT",
            "ADS_DATA_CONNECTOR"
          ],
          "type": "string"
        },
        "alerts": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Resources__OfflineConversionAlert"
          },
          "description": "Output only. Details for each error code. Alerts are generated from most recent calendar day with upload stats.",
          "readOnly": true
        },
        "totalEventCount": {
          "description": "Output only. Total count of uploaded events.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "jobSummaries": {
          "description": "Output only. Summary of history stats by last N jobs.",
          "readOnly": true,
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Resources__OfflineConversionSummary"
          },
          "type": "array"
        },
        "resourceName": {
          "description": "Output only. The resource name of the offline conversion upload summary at conversion action level. Offline conversion upload conversion action summary resource names have the form: `customers/{customer_id}/offlineConversionUploadConversionActionSummaries/{conversion_action_id}~{client}`",
          "readOnly": true,
          "type": "string"
        },
        "pendingEventCount": {
          "description": "Output only. Total count of pending uploaded events.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "status": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EXCELLENT",
            "GOOD",
            "NEEDS_ATTENTION",
            "NO_RECENT_UPLOAD"
          ],
          "description": "Output only. Overall status for offline conversion upload conversion action summary. Status is generated from most recent calendar day with upload stats.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Your offline data ingestion setup is active and optimal for downstream processing.",
            "Your offline ingestion setup is active, but there are further improvements you could make. See alerts.",
            "Your offline ingestion setup is active, but there are errors that require your attention. See alerts.",
            "Your offline ingestion setup has not received data in the last 28 days, there may be something wrong."
          ],
          "type": "string"
        },
        "successfulEventCount": {
          "type": "string",
          "description": "Output only. Total count of successful uploaded events.",
          "readOnly": true,
          "format": "int64"
        },
        "conversionActionId": {
          "type": "string",
          "description": "Output only. Conversion action id.",
          "readOnly": true,
          "format": "int64"
        },
        "lastUploadDateTime": {
          "type": "string",
          "description": "Output only. Date for the latest upload batch. The format is \"yyyy-mm-dd hh:mm:ss\", and it's in the time zone of the Google Ads account.",
          "readOnly": true
        },
        "conversionActionName": {
          "description": "Output only. The name of the conversion action.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__ExtendedDemographicInfo": {
      "description": "Represents an extended demographic criterion.",
      "properties": {
        "extendedDemographicId": {
          "description": "Taxonomy id of the extended demographic group.",
          "format": "int64",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__ExtendedDemographicInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__ProductChannelExclusivityInfo": {
      "id": "GoogleAdsGoogleadsV24Common__ProductChannelExclusivityInfo",
      "type": "object",
      "description": "Availability of a product offer.",
      "properties": {
        "channelExclusivity": {
          "description": "Value of the availability.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The item is sold through one channel only, either local stores or online as indicated by its ProductChannel.",
            "The item is matched to its online or local stores counterpart, indicating it is available for purchase in both ShoppingProductChannels."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SINGLE_CHANNEL",
            "MULTI_CHANNEL"
          ],
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_AccessibleBiddingStrategy_TargetRoas": {
      "id": "GoogleAdsGoogleadsV24Resources_AccessibleBiddingStrategy_TargetRoas",
      "type": "object",
      "description": "An automated bidding strategy that helps you maximize revenue while averaging a specific target return on ad spend (ROAS).",
      "properties": {
        "targetRoas": {
          "type": "number",
          "description": "Output only. The chosen revenue (based on conversion data) per unit of spend.",
          "readOnly": true,
          "format": "double"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateAdGroupAssetResult": {
      "id": "GoogleAdsGoogleadsV24Services__MutateAdGroupAssetResult",
      "type": "object",
      "description": "The result for the ad group asset mutate.",
      "properties": {
        "adGroupAsset": {
          "description": "The mutated ad group asset with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV24Resources__AdGroupAsset"
        },
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateBiddingDataExclusionsRequest": {
      "description": "Request message for BiddingDataExclusionService.MutateBiddingDataExclusions.",
      "properties": {
        "operations": {
          "type": "array",
          "description": "Required. The list of operations to perform on individual data exclusions.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__BiddingDataExclusionOperation"
          }
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "responseContentType": {
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "type": "string"
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateBiddingDataExclusionsRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services_Incentive_Requirement": {
      "description": "Requirement for an incentive.",
      "properties": {
        "spend": {
          "description": "Optional. Spend requirement for an incentive.",
          "$ref": "GoogleAdsGoogleadsV24Services_IncentiveRequirement_Spend"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services_Incentive_Requirement",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__UserListRuleInfo": {
      "description": "A client defined rule based on custom parameters sent by web sites or uploaded by the advertiser.",
      "properties": {
        "ruleType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AND_OF_ORS",
            "OR_OF_ANDS"
          ],
          "description": "Rule type is used to determine how to group rule items. The default is OR of ANDs (disjunctive normal form). That is, rule items will be ANDed together within rule item groups and the groups themselves will be ORed together. OR of ANDs is the only supported type for FlexibleRuleUserList.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Conjunctive normal form.",
            "Disjunctive normal form."
          ],
          "type": "string"
        },
        "ruleItemGroups": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__UserListRuleItemGroupInfo"
          },
          "description": "List of rule item groups that defines this rule. Rule item groups are grouped together based on rule_type.",
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__UserListRuleInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__CampaignLabelOperation": {
      "id": "GoogleAdsGoogleadsV24Services__CampaignLabelOperation",
      "type": "object",
      "description": "A single operation (create, remove) on a campaign-label relationship.",
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new campaign-label relationship.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CampaignLabel"
        },
        "remove": {
          "description": "Remove operation: A resource name for the campaign-label relationship being removed, in this format: `customers/{customer_id}/campaignLabels/{campaign_id}~{label_id}`",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__CampaignLabel": {
      "description": "Represents a relationship between a campaign and a label.",
      "properties": {
        "resourceName": {
          "description": "Immutable. Name of the resource. Campaign label resource names have the form: `customers/{customer_id}/campaignLabels/{campaign_id}~{label_id}`",
          "type": "string"
        },
        "campaign": {
          "description": "Immutable. The campaign to which the label is attached.",
          "type": "string"
        },
        "label": {
          "type": "string",
          "description": "Immutable. The label assigned to the campaign."
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__CampaignLabel",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__RemoveYouTubeVideoUploadResponse": {
      "description": "Response message for YouTubeVideoUploadService.RemoveYouTubeVideoUpload.",
      "properties": {
        "resourceNames": {
          "items": {
            "type": "string"
          },
          "description": "The resource names of the successfully removed YouTube video uploads.",
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__RemoveYouTubeVideoUploadResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__AssetLinkPrimaryStatusDetails": {
      "description": "Provides the detail of a PrimaryStatus. Each asset link has a PrimaryStatus value (e.g. NOT_ELIGIBLE, meaning not serving), and list of corroborating PrimaryStatusReasons (e.g. [ASSET_DISAPPROVED]). Each reason may have some additional details annotated with it. For instance, when the reason is ASSET_DISAPPROVED, the details field will contain additional information about the offline evaluation errors which led to the asset being disapproved.",
      "properties": {
        "reason": {
          "type": "string",
          "description": "Provides the reason of this PrimaryStatus.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is paused for its linked rollup level. Contributes to a PrimaryStatus of PAUSED.",
            "The asset is removed for its linked rollup level. Contributes to a PrimaryStatus of REMOVED.",
            "The asset has been marked as disapproved. Contributes to a PrimaryStatus of NOT_ELIGIBLE",
            "The asset has not completed policy review. Contributes to a PrimaryStatus of PENDING.",
            "The asset is approved with policies applied. Contributes to a PrimaryStatus of LIMITED."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ASSET_LINK_PAUSED",
            "ASSET_LINK_REMOVED",
            "ASSET_DISAPPROVED",
            "ASSET_UNDER_REVIEW",
            "ASSET_APPROVED_LABELED"
          ]
        },
        "status": {
          "description": "Provides the PrimaryStatus of this status detail.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is eligible to serve.",
            "The user-specified asset link status is paused.",
            "The user-specified asset link status is removed.",
            "The asset may serve in the future.",
            "The asset is serving in a partial capacity.",
            "The asset is not eligible to serve."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ELIGIBLE",
            "PAUSED",
            "REMOVED",
            "PENDING",
            "LIMITED",
            "NOT_ELIGIBLE"
          ],
          "type": "string"
        },
        "assetDisapproved": {
          "description": "Provides the details for AssetLinkPrimaryStatusReason.ASSET_DISAPPROVED",
          "$ref": "GoogleAdsGoogleadsV24Common__AssetDisapproved"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__AssetLinkPrimaryStatusDetails",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__UserInterestInfo": {
      "description": "Represents a particular interest-based topic to be targeted.",
      "properties": {
        "userInterestCategory": {
          "type": "string",
          "description": "The UserInterest resource name."
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__UserInterestInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__UserDataOperation": {
      "id": "GoogleAdsGoogleadsV24Services__UserDataOperation",
      "type": "object",
      "description": "Operation to be made for the UploadUserDataRequest.",
      "properties": {
        "create": {
          "description": "The list of user data to be appended to the user list.",
          "$ref": "GoogleAdsGoogleadsV24Common__UserData"
        },
        "remove": {
          "description": "The list of user data to be removed from the user list.",
          "$ref": "GoogleAdsGoogleadsV24Common__UserData"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services_CartData_Item": {
      "id": "GoogleAdsGoogleadsV24Services_CartData_Item",
      "type": "object",
      "description": "Contains data of the items purchased.",
      "properties": {
        "productId": {
          "description": "The shopping id of the item. Must be equal to the Merchant Center product identifier.",
          "type": "string"
        },
        "quantity": {
          "description": "Number of items sold.",
          "format": "int32",
          "type": "integer"
        },
        "unitPrice": {
          "description": "Unit price excluding tax, shipping, and any transaction level discounts. The currency code is the same as that in the `ClickConversion` message.",
          "format": "double",
          "type": "number"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__HotelClassInfo": {
      "description": "Class of the hotel as a number of stars 1 to 5.",
      "properties": {
        "value": {
          "type": "string",
          "description": "Long value of the hotel class.",
          "format": "int64"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__HotelClassInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_Invoice_InvalidActivitySummary": {
      "id": "GoogleAdsGoogleadsV24Resources_Invoice_InvalidActivitySummary",
      "type": "object",
      "description": "Details about the invalid activity for the invoice that contain additional details about invoice against which corrections are made.",
      "properties": {
        "originalYearOfService": {
          "description": "Output only. Original year of service related to this invalid activity credit.",
          "readOnly": true,
          "type": "string"
        },
        "originalMonthOfService": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "JANUARY",
            "FEBRUARY",
            "MARCH",
            "APRIL",
            "MAY",
            "JUNE",
            "JULY",
            "AUGUST",
            "SEPTEMBER",
            "OCTOBER",
            "NOVEMBER",
            "DECEMBER"
          ],
          "description": "Output only. Original month of service related to this invalid activity credit.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "January.",
            "February.",
            "March.",
            "April.",
            "May.",
            "June.",
            "July.",
            "August.",
            "September.",
            "October.",
            "November.",
            "December."
          ]
        },
        "originalInvoiceId": {
          "type": "string",
          "description": "Output only. Original invoice number related to this invalid activity credit.",
          "readOnly": true
        },
        "originalPurchaseOrderNumber": {
          "type": "string",
          "description": "Output only. Original purchase order number related to this invalid activity credit.",
          "readOnly": true
        },
        "originalAccountBudgetName": {
          "description": "Output only. Original account budget name related to this invalid activity credit.",
          "readOnly": true,
          "type": "string"
        },
        "amountMicros": {
          "description": "Output only. Invalid activity amount in micros.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__AdGroupCriterion": {
      "description": "An ad group criterion. The ad_group_criterion report only returns criteria that were explicitly added to the ad group.",
      "properties": {
        "effectiveCpvBidSource": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CAMPAIGN_BIDDING_STRATEGY",
            "AD_GROUP",
            "AD_GROUP_CRITERION"
          ],
          "description": "Output only. Source of the effective CPV bid.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Effective bid or target is inherited from campaign bidding strategy.",
            "The bid or target is defined on the ad group.",
            "The bid or target is defined on the ad group criterion."
          ]
        },
        "effectiveCpcBidMicros": {
          "type": "string",
          "description": "Output only. The effective CPC (cost-per-click) bid.",
          "readOnly": true,
          "format": "int64"
        },
        "location": {
          "description": "Immutable. Location.",
          "$ref": "GoogleAdsGoogleadsV24Common__LocationInfo"
        },
        "bidModifier": {
          "type": "number",
          "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.",
          "format": "double"
        },
        "primaryStatus": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ELIGIBLE",
            "PAUSED",
            "REMOVED",
            "PENDING",
            "NOT_ELIGIBLE"
          ],
          "description": "Output only. The primary status for the ad group criterion.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The ad group criterion is eligible to serve.",
            "The ad group criterion is paused.",
            "The ad group criterion is removed.",
            "The ad group criterion is pending.",
            "The ad group criterion is not eligible to serve."
          ]
        },
        "keyword": {
          "description": "Immutable. Keyword.",
          "$ref": "GoogleAdsGoogleadsV24Common__KeywordInfo"
        },
        "youtubeChannel": {
          "description": "Immutable. YouTube Channel.",
          "$ref": "GoogleAdsGoogleadsV24Common__YouTubeChannelInfo"
        },
        "cpvBidMicros": {
          "type": "string",
          "description": "The CPV (cost-per-view) bid.",
          "format": "int64"
        },
        "language": {
          "description": "Immutable. Language.",
          "$ref": "GoogleAdsGoogleadsV24Common__LanguageInfo"
        },
        "cpcBidMicros": {
          "type": "string",
          "description": "The CPC (cost-per-click) bid.",
          "format": "int64"
        },
        "urlCustomParameters": {
          "type": "array",
          "description": "The list of mappings used to substitute custom parameter tags in a `tracking_url_template`, `final_urls`, or `mobile_final_urls`.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__CustomParameter"
          }
        },
        "finalUrlSuffix": {
          "description": "URL template for appending params to final URL.",
          "type": "string"
        },
        "finalUrls": {
          "description": "The list of possible final URLs after all cross-domain redirects for the ad.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "mobileAppCategory": {
          "description": "Immutable. Mobile app category.",
          "$ref": "GoogleAdsGoogleadsV24Common__MobileAppCategoryInfo"
        },
        "brandList": {
          "description": "Immutable. Brand list criterion.",
          "$ref": "GoogleAdsGoogleadsV24Common__BrandListInfo"
        },
        "cpmBidMicros": {
          "type": "string",
          "description": "The CPM (cost-per-thousand viewable impressions) bid.",
          "format": "int64"
        },
        "effectiveCpmBidMicros": {
          "type": "string",
          "description": "Output only. The effective CPM (cost-per-thousand viewable impressions) bid.",
          "readOnly": true,
          "format": "int64"
        },
        "positionEstimates": {
          "description": "Output only. Estimates for criterion bids at various positions.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_AdGroupCriterion_PositionEstimates"
        },
        "placement": {
          "description": "Immutable. Placement.",
          "$ref": "GoogleAdsGoogleadsV24Common__PlacementInfo"
        },
        "systemServingStatus": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ELIGIBLE",
            "RARELY_SERVED"
          ],
          "description": "Output only. Serving status of the criterion.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Eligible.",
            "Low search volume."
          ]
        },
        "videoLineup": {
          "description": "Immutable. Video lineup criterion.",
          "$ref": "GoogleAdsGoogleadsV24Common__VideoLineupInfo"
        },
        "approvalStatus": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "APPROVED",
            "DISAPPROVED",
            "PENDING_REVIEW",
            "UNDER_REVIEW"
          ],
          "description": "Output only. Approval status of the criterion.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Approved.",
            "Disapproved.",
            "Pending Review.",
            "Under review."
          ],
          "type": "string"
        },
        "gender": {
          "description": "Immutable. Gender.",
          "$ref": "GoogleAdsGoogleadsV24Common__GenderInfo"
        },
        "incomeRange": {
          "description": "Immutable. Income range.",
          "$ref": "GoogleAdsGoogleadsV24Common__IncomeRangeInfo"
        },
        "effectiveCpcBidSource": {
          "description": "Output only. Source of the effective CPC bid.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Effective bid or target is inherited from campaign bidding strategy.",
            "The bid or target is defined on the ad group.",
            "The bid or target is defined on the ad group criterion."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CAMPAIGN_BIDDING_STRATEGY",
            "AD_GROUP",
            "AD_GROUP_CRITERION"
          ],
          "type": "string"
        },
        "appPaymentModel": {
          "description": "Immutable. App Payment Model.",
          "$ref": "GoogleAdsGoogleadsV24Common__AppPaymentModelInfo"
        },
        "combinedAudience": {
          "description": "Immutable. Combined Audience.",
          "$ref": "GoogleAdsGoogleadsV24Common__CombinedAudienceInfo"
        },
        "adGroup": {
          "description": "Immutable. The ad group to which the criterion belongs.",
          "type": "string"
        },
        "youtubeVideo": {
          "description": "Immutable. YouTube Video.",
          "$ref": "GoogleAdsGoogleadsV24Common__YouTubeVideoInfo"
        },
        "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"
        },
        "lifeEvent": {
          "description": "Immutable. Life event campaign criterion.",
          "$ref": "GoogleAdsGoogleadsV24Common__LifeEventInfo"
        },
        "parentalStatus": {
          "description": "Immutable. Parental status.",
          "$ref": "GoogleAdsGoogleadsV24Common__ParentalStatusInfo"
        },
        "userInterest": {
          "description": "Immutable. User Interest.",
          "$ref": "GoogleAdsGoogleadsV24Common__UserInterestInfo"
        },
        "qualityInfo": {
          "description": "Output only. Information regarding the quality of the criterion.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_AdGroupCriterion_QualityInfo"
        },
        "displayName": {
          "description": "Output only. The display name of the criterion. This field is ignored for mutates.",
          "readOnly": true,
          "type": "string"
        },
        "type": {
          "description": "Output only. The type of the criterion.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Keyword, for example, 'mars cruise'.",
            "Placement, also known as Website, for example, 'www.flowers4sale.com'",
            "Mobile application categories to target.",
            "Mobile applications to target.",
            "Devices to target.",
            "Locations to target.",
            "Listing groups to target.",
            "Ad Schedule.",
            "Age range.",
            "Gender.",
            "Income Range.",
            "Parental status.",
            "YouTube Video.",
            "YouTube Channel.",
            "User list.",
            "Proximity.",
            "A topic target on the display network (for example, \"Pets & Animals\").",
            "Listing scope to target.",
            "Language.",
            "IpBlock.",
            "Content Label for category exclusion.",
            "Carrier.",
            "A category the user is interested in.",
            "Webpage criterion for dynamic search ads.",
            "Operating system version.",
            "App payment model.",
            "Mobile device.",
            "Custom affinity.",
            "Custom intent.",
            "Location group.",
            "Custom audience",
            "Combined audience",
            "Smart Campaign keyword theme",
            "Audience",
            "Negative Keyword List",
            "Local Services Ads Service ID.",
            "Search Theme.",
            "Brand",
            "Brand List",
            "Life Event",
            "Webpage List",
            "Video lineup",
            "Placement List",
            "A list of rules for item groups in Vertical Ads.",
            "A rule for an item group in Vertical Ads.",
            "Retail Filter Bundle for linking a retail filter shared set to an ad group.",
            "Retail Filter for defining individual tag rules or expressions within a shared set."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "KEYWORD",
            "PLACEMENT",
            "MOBILE_APP_CATEGORY",
            "MOBILE_APPLICATION",
            "DEVICE",
            "LOCATION",
            "LISTING_GROUP",
            "AD_SCHEDULE",
            "AGE_RANGE",
            "GENDER",
            "INCOME_RANGE",
            "PARENTAL_STATUS",
            "YOUTUBE_VIDEO",
            "YOUTUBE_CHANNEL",
            "USER_LIST",
            "PROXIMITY",
            "TOPIC",
            "LISTING_SCOPE",
            "LANGUAGE",
            "IP_BLOCK",
            "CONTENT_LABEL",
            "CARRIER",
            "USER_INTEREST",
            "WEBPAGE",
            "OPERATING_SYSTEM_VERSION",
            "APP_PAYMENT_MODEL",
            "MOBILE_DEVICE",
            "CUSTOM_AFFINITY",
            "CUSTOM_INTENT",
            "LOCATION_GROUP",
            "CUSTOM_AUDIENCE",
            "COMBINED_AUDIENCE",
            "KEYWORD_THEME",
            "AUDIENCE",
            "NEGATIVE_KEYWORD_LIST",
            "LOCAL_SERVICE_ID",
            "SEARCH_THEME",
            "BRAND",
            "BRAND_LIST",
            "LIFE_EVENT",
            "WEBPAGE_LIST",
            "VIDEO_LINEUP",
            "PLACEMENT_LIST",
            "VERTICAL_ADS_ITEM_GROUP_RULE_LIST",
            "VERTICAL_ADS_ITEM_GROUP_RULE",
            "RETAIL_FILTER_BUNDLE",
            "RETAIL_FILTER"
          ],
          "type": "string"
        },
        "labels": {
          "items": {
            "type": "string"
          },
          "description": "Output only. The resource names of labels attached to this ad group criterion.",
          "readOnly": true,
          "type": "array"
        },
        "percentCpcBidMicros": {
          "type": "string",
          "description": "The CPC bid amount, expressed as a fraction of the advertised price for some good or service. The valid range for the fraction is [0,1) and the value stored here is 1,000,000 * [fraction].",
          "format": "int64"
        },
        "customAudience": {
          "description": "Immutable. Custom Audience.",
          "$ref": "GoogleAdsGoogleadsV24Common__CustomAudienceInfo"
        },
        "verticalAdsItemGroupRuleList": {
          "description": "Immutable. Vertical ads item group rule list criterion.",
          "$ref": "GoogleAdsGoogleadsV24Common__VerticalAdsItemGroupRuleListInfo"
        },
        "primaryStatusReasons": {
          "description": "Output only. The primary status reasons for the ad group criterion.",
          "readOnly": true,
          "items": {
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "CAMPAIGN_PENDING",
              "CAMPAIGN_CRITERION_NEGATIVE",
              "CAMPAIGN_PAUSED",
              "CAMPAIGN_REMOVED",
              "CAMPAIGN_ENDED",
              "AD_GROUP_PAUSED",
              "AD_GROUP_REMOVED",
              "AD_GROUP_CRITERION_DISAPPROVED",
              "AD_GROUP_CRITERION_RARELY_SERVED",
              "AD_GROUP_CRITERION_LOW_QUALITY",
              "AD_GROUP_CRITERION_UNDER_REVIEW",
              "AD_GROUP_CRITERION_PENDING_REVIEW",
              "AD_GROUP_CRITERION_BELOW_FIRST_PAGE_BID",
              "AD_GROUP_CRITERION_NEGATIVE",
              "AD_GROUP_CRITERION_RESTRICTED",
              "AD_GROUP_CRITERION_PAUSED",
              "AD_GROUP_CRITERION_PAUSED_DUE_TO_LOW_ACTIVITY",
              "AD_GROUP_CRITERION_REMOVED"
            ],
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents unknown value in this version.",
              "The user-specified time for this campaign to start is in the future. Contributes to AdGroupCriterionPrimaryStatus.PENDING.",
              "The ad group criterion is overridden by negative campaign criterion. Contributes to AdGroupCriterionPrimaryStatus.NOT_ELIGIBLE.",
              "The user-specified campaign status is paused. Contributes to AdGroupCriterionPrimaryStatus.PAUSED.",
              "The user-specified campaign status is removed. Contributes to AdGroupCriterionPrimaryStatus.REMOVED.",
              "The user-specified time for this campaign to end has passed. Contributes to AdGroupCriterionPrimaryStatus.ENDED.",
              "The user-specified ad group status is paused. Contributes to AdGroupCriterionPrimaryStatus.PAUSED.",
              "The user-specified ad group status is removed. Contributes to AdGroupCriterionPrimaryStatus.REMOVED.",
              "The ad group criterion is disapproved by the ads approval system. Contributes to AdGroupCriterionPrimaryStatus.NOT_ELIGIBLE.",
              "The ad group criterion is rarely served. Contributes to AdGroupCriterionPrimaryStatus.NOT_ELIGIBLE.",
              "The ad group criterion has a low quality score. Contributes to AdGroupCriterionPrimaryStatus.LIMITED.",
              "The ad group criterion is under review. Contributes to AdGroupCriterionPrimaryStatus.PENDING.",
              "The ad group criterion is pending review. Contributes to AdGroupCriterionPrimaryStatus.NOT_ELIGIBLE.",
              "The ad group criterion's bid is below the value necessary to serve on the first page. Contributes to AdGroupCriterionPrimaryStatus.LIMITED.",
              "The ad group criterion is negative. Contributes to AdGroupCriterionPrimaryStatus.NOT_ELIGIBLE.",
              "The ad group criterion is restricted. Contributes to AdGroupCriterionPrimaryStatus.NOT_ELIGIBLE.",
              "The user-specified ad group criterion status is paused. Contributes to AdGroupCriterionPrimaryStatus.PAUSED.",
              "The ad group criterion has been paused due to prolonged low activity in serving. Contributes to AdGroupCriterionPrimaryStatus.PAUSED.",
              "The user-specified ad group criterion status is removed. Contributes to AdGroupCriterionPrimaryStatus.REMOVED."
            ],
            "type": "string"
          },
          "type": "array"
        },
        "retailFilterBundle": {
          "description": "Immutable. Retail Filter Bundle.",
          "$ref": "GoogleAdsGoogleadsV24Common__RetailFilterBundle"
        },
        "userList": {
          "description": "Immutable. User List.",
          "$ref": "GoogleAdsGoogleadsV24Common__UserListInfo"
        },
        "effectivePercentCpcBidSource": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CAMPAIGN_BIDDING_STRATEGY",
            "AD_GROUP",
            "AD_GROUP_CRITERION"
          ],
          "description": "Output only. Source of the effective Percent CPC bid.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Effective bid or target is inherited from campaign bidding strategy.",
            "The bid or target is defined on the ad group.",
            "The bid or target is defined on the ad group criterion."
          ],
          "type": "string"
        },
        "customIntent": {
          "description": "Immutable. Custom Intent.",
          "$ref": "GoogleAdsGoogleadsV24Common__CustomIntentInfo"
        },
        "criterionId": {
          "description": "Output only. The ID of the criterion. This field is ignored for mutates.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "effectiveCpmBidSource": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CAMPAIGN_BIDDING_STRATEGY",
            "AD_GROUP",
            "AD_GROUP_CRITERION"
          ],
          "description": "Output only. Source of the effective CPM bid.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Effective bid or target is inherited from campaign bidding strategy.",
            "The bid or target is defined on the ad group.",
            "The bid or target is defined on the ad group criterion."
          ]
        },
        "mobileApplication": {
          "description": "Immutable. Mobile application.",
          "$ref": "GoogleAdsGoogleadsV24Common__MobileApplicationInfo"
        },
        "audience": {
          "description": "Immutable. Audience.",
          "$ref": "GoogleAdsGoogleadsV24Common__AudienceInfo"
        },
        "finalMobileUrls": {
          "description": "The list of possible final mobile URLs after all cross-domain redirects.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "listingGroup": {
          "description": "Immutable. Listing group.",
          "$ref": "GoogleAdsGoogleadsV24Common__ListingGroupInfo"
        },
        "effectivePercentCpcBidMicros": {
          "type": "string",
          "description": "Output only. The effective Percent CPC bid amount.",
          "readOnly": true,
          "format": "int64"
        },
        "resourceName": {
          "type": "string",
          "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}`"
        },
        "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.",
          "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"
          ],
          "type": "string"
        },
        "webpage": {
          "description": "Immutable. Webpage",
          "$ref": "GoogleAdsGoogleadsV24Common__WebpageInfo"
        },
        "ageRange": {
          "description": "Immutable. Age range.",
          "$ref": "GoogleAdsGoogleadsV24Common__AgeRangeInfo"
        },
        "topic": {
          "description": "Immutable. Topic.",
          "$ref": "GoogleAdsGoogleadsV24Common__TopicInfo"
        },
        "customAffinity": {
          "description": "Immutable. Custom Affinity.",
          "$ref": "GoogleAdsGoogleadsV24Common__CustomAffinityInfo"
        },
        "trackingUrlTemplate": {
          "type": "string",
          "description": "The URL template for constructing a tracking URL."
        },
        "extendedDemographic": {
          "description": "Immutable. Extended demographic criterion.",
          "$ref": "GoogleAdsGoogleadsV24Common__ExtendedDemographicInfo"
        },
        "effectiveCpvBidMicros": {
          "type": "string",
          "description": "Output only. The effective CPV (cost-per-view) bid.",
          "readOnly": true,
          "format": "int64"
        },
        "disapprovalReasons": {
          "items": {
            "type": "string"
          },
          "description": "Output only. List of disapproval reasons of the criterion. The different reasons for disapproving a criterion can be found here: https://support.google.com/adspolicy/answer/6008942 This field is read-only.",
          "readOnly": true,
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__AdGroupCriterion",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__WebhookDelivery": {
      "id": "GoogleAdsGoogleadsV24Common__WebhookDelivery",
      "type": "object",
      "description": "Google notifies the advertiser of leads by making HTTP calls to an endpoint they specify. The requests contain JSON matching a schema that Google publishes as part of form ads documentation.",
      "properties": {
        "advertiserWebhookUrl": {
          "type": "string",
          "description": "Webhook url specified by advertiser to send the lead."
        },
        "googleSecret": {
          "type": "string",
          "description": "Anti-spoofing secret set by the advertiser as part of the webhook payload."
        },
        "payloadSchemaVersion": {
          "type": "string",
          "description": "The schema version that this delivery instance will use.",
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateCampaignBidModifiersRequest": {
      "id": "GoogleAdsGoogleadsV24Services__MutateCampaignBidModifiersRequest",
      "type": "object",
      "description": "Request message for CampaignBidModifierService.MutateCampaignBidModifiers.",
      "properties": {
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "operations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__CampaignBidModifierOperation"
          },
          "description": "Required. The list of operations to perform on individual campaign bid modifiers.",
          "type": "array"
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "responseContentType": {
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__AudienceInfo": {
      "id": "GoogleAdsGoogleadsV24Common__AudienceInfo",
      "type": "object",
      "description": "An audience criterion.",
      "properties": {
        "audience": {
          "description": "The Audience resource name.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__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.",
      "properties": {
        "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"
        },
        "type": {
          "type": "string",
          "description": "Describes the negative or positive effect this policy will have on serving.",
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The resource will not be served.",
            "The resource will not be served under some circumstances.",
            "The resource cannot serve at all because of the current targeting criteria.",
            "May be of interest, but does not limit how the resource is served.",
            "Could increase coverage beyond normal.",
            "Constrained for all targeted countries, but may serve in other countries through area of interest."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PROHIBITED",
            "LIMITED",
            "FULLY_LIMITED",
            "DESCRIPTIVE",
            "BROADENING",
            "AREA_OF_INTEREST_ONLY"
          ]
        },
        "evidences": {
          "type": "array",
          "description": "Additional information that explains policy finding (for example, the brand name for a trademark finding).",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__PolicyTopicEvidence"
          }
        },
        "constraints": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__PolicyTopicConstraint"
          },
          "description": "Indicates how serving of this resource may be affected (for example, not serving in a country).",
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__PolicyTopicEntry",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateAdGroupCriteriaResponse": {
      "id": "GoogleAdsGoogleadsV24Services__MutateAdGroupCriteriaResponse",
      "type": "object",
      "description": "Response message for an ad group criterion mutate.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateAdGroupCriterionResult"
          },
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__MobileApplicationInfo": {
      "description": "A mobile application criterion.",
      "properties": {
        "appId": {
          "type": "string",
          "description": "A string that uniquely identifies a mobile application to Google Ads API. The format of this string is \"{platform}-{platform_native_id}\", where platform is \"1\" for iOS apps and \"2\" for Android apps, and where platform_native_id is the mobile application identifier native to the corresponding platform. For iOS, this native identifier is the 9 digit string that appears at the end of an App Store URL (for example, \"476943146\" for \"Flood-It! 2\" whose App Store link is \"http://itunes.apple.com/us/app/flood-it!-2/id476943146\"). For Android, this native identifier is the application's package name (for example, \"com.labpixies.colordrips\" for \"Color Drips\" given Google Play link \"https://play.google.com/store/apps/details?id=com.labpixies.colordrips\"). A well formed app id for Google Ads API would thus be \"1-476943146\" for iOS and \"2-com.labpixies.colordrips\" for Android. This field is required and must be set in CREATE operations."
        },
        "name": {
          "description": "Name of this mobile application.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__MobileApplicationInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__CreateAccountLinkResponse": {
      "id": "GoogleAdsGoogleadsV24Services__CreateAccountLinkResponse",
      "type": "object",
      "description": "Response message for AccountLinkService.CreateAccountLink.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations. Resource name of the account link."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__GenerateCreatorInsightsResponse": {
      "description": "Response message for ContentCreatorInsightsService.GenerateCreatorInsights.",
      "properties": {
        "creatorInsights": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__YouTubeCreatorInsights"
          },
          "description": "A collection of YouTube Creators, each containing a collection of YouTube Channels maintained by the YouTube Creator.",
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__GenerateCreatorInsightsResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__ScheduleExperimentRequest": {
      "description": "Request message for ExperimentService.ScheduleExperiment.",
      "properties": {
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__ScheduleExperimentRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateCustomInterestsResponse": {
      "description": "Response message for custom interest mutate.",
      "properties": {
        "results": {
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomInterestResult"
          },
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateCustomInterestsResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__CustomerClientLinkOperation": {
      "description": "A single operation (create, update) on a CustomerClientLink.",
      "properties": {
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask",
          "type": "string"
        },
        "update": {
          "description": "Update operation: The link is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CustomerClientLink"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new link.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CustomerClientLink"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__CustomerClientLinkOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__ExclusionSegment": {
      "id": "GoogleAdsGoogleadsV24Common__ExclusionSegment",
      "type": "object",
      "description": "An audience segment to be excluded from an audience.",
      "properties": {
        "userList": {
          "description": "User list segment to be excluded.",
          "$ref": "GoogleAdsGoogleadsV24Common__UserListSegment"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateGoogleAdsResponse": {
      "description": "Response message for GoogleAdsService.Mutate.",
      "properties": {
        "mutateOperationResponses": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateOperationResponse"
          },
          "description": "All responses for the mutate.",
          "type": "array"
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateGoogleAdsResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_ConversionValueRule_ValueRuleDeviceCondition": {
      "id": "GoogleAdsGoogleadsV24Resources_ConversionValueRule_ValueRuleDeviceCondition",
      "type": "object",
      "description": "Condition on Device dimension.",
      "properties": {
        "deviceTypes": {
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "Mobile device.",
              "Desktop device.",
              "Tablet device."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "MOBILE",
              "DESKTOP",
              "TABLET"
            ]
          },
          "description": "Value for device type condition."
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__AssetFieldTypeView": {
      "id": "GoogleAdsGoogleadsV24Resources__AssetFieldTypeView",
      "type": "object",
      "description": "An asset field type view. This view reports non-overcounted metrics for each asset field type when the asset is used as extension.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the asset field type view. Asset field type view resource names have the form: `customers/{customer_id}/assetFieldTypeViews/{field_type}`",
          "readOnly": true
        },
        "fieldType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE",
            "DESCRIPTION",
            "MANDATORY_AD_TEXT",
            "MARKETING_IMAGE",
            "MEDIA_BUNDLE",
            "YOUTUBE_VIDEO",
            "BOOK_ON_GOOGLE",
            "LEAD_FORM",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "LONG_HEADLINE",
            "BUSINESS_NAME",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "VIDEO",
            "CALL_TO_ACTION_SELECTION",
            "AD_IMAGE",
            "BUSINESS_LOGO",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "TALL_PORTRAIT_MARKETING_IMAGE",
            "RELATED_YOUTUBE_VIDEOS",
            "LANDING_PAGE_PREVIEW",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION"
          ],
          "description": "Output only. The asset field type of the asset field type view.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is linked for use as a headline.",
            "The asset is linked for use as a description.",
            "The asset is linked for use as mandatory ad text.",
            "The asset is linked for use as a marketing image.",
            "The asset is linked for use as a media bundle.",
            "The asset is linked for use as a YouTube video.",
            "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
            "The asset is linked for use as a Lead Form extension.",
            "The asset is linked for use as a Promotion extension.",
            "The asset is linked for use as a Callout extension.",
            "The asset is linked for use as a Structured Snippet extension.",
            "The asset is linked for use as a Sitelink.",
            "The asset is linked for use as a Mobile App extension.",
            "The asset is linked for use as a Hotel Callout extension.",
            "The asset is linked for use as a Call extension.",
            "The asset is linked for use as a Price extension.",
            "The asset is linked for use as a long headline.",
            "The asset is linked for use as a business name.",
            "The asset is linked for use as a square marketing image.",
            "The asset is linked for use as a portrait marketing image.",
            "The asset is linked for use as a logo.",
            "The asset is linked for use as a landscape logo.",
            "The asset is linked for use as a non YouTube logo.",
            "The asset is linked for use to select a call-to-action.",
            "The asset is linked for use to select an ad image.",
            "The asset is linked for use as a business logo.",
            "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
            "The asset is linked for use as a Demand Gen carousel card.",
            "The asset is linked for use as a Business Message.",
            "The asset is linked for use as a tall portrait marketing image.",
            "The asset is linked for use as related YouTube videos.",
            "The asset is linked for use as a landing page preview image.",
            "The asset is linked for use as a long description.",
            "The asset is linked for use as a call-to-action."
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__TargetCpc": {
      "id": "GoogleAdsGoogleadsV24Common__TargetCpc",
      "type": "object",
      "description": "An automated bidding strategy that sets bids to help get as many clicks as possible at the target cost-per-click (CPC) you set.",
      "properties": {
        "targetCpcMicros": {
          "type": "string",
          "description": "Average CPC target. This target should be greater than or equal to minimum billable unit based on the currency for the account.",
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__SearchGoogleAdsResponse": {
      "id": "GoogleAdsGoogleadsV24Services__SearchGoogleAdsResponse",
      "type": "object",
      "description": "Response message for GoogleAdsService.Search.",
      "properties": {
        "fieldMask": {
          "type": "string",
          "description": "FieldMask that represents what fields were requested by the user.",
          "format": "google-fieldmask"
        },
        "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": "GoogleAdsGoogleadsV24Services__GoogleAdsRow"
        },
        "metricAttributes": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MetricAttributes"
          },
          "description": "The metric attributes of the metrics in the results."
        },
        "totalResultsCount": {
          "type": "string",
          "description": "Total number of results that match the query ignoring the LIMIT clause.",
          "format": "int64"
        },
        "results": {
          "type": "array",
          "description": "The list of rows that matched the query.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__GoogleAdsRow"
          }
        },
        "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"
        },
        "queryResourceConsumption": {
          "type": "string",
          "description": "The amount of resources consumed to serve the query.",
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__TargetCpaSimulationPointList": {
      "id": "GoogleAdsGoogleadsV24Common__TargetCpaSimulationPointList",
      "type": "object",
      "description": "A container for simulation points for simulations of type TARGET_CPA.",
      "properties": {
        "points": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__TargetCpaSimulationPoint"
          },
          "description": "Projected metrics for a series of target CPA amounts.",
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__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.",
      "properties": {
        "audience": {
          "description": "Immutable. The audience signal to be used by the performance max campaign.",
          "$ref": "GoogleAdsGoogleadsV24Common__AudienceInfo"
        },
        "searchTheme": {
          "description": "Immutable. The search_theme signal to be used by the performance max campaign. Mutate errors of search_theme criterion includes AssetGroupSignalError.UNSPECIFIED AssetGroupSignalError.UNKNOWN AssetGroupSignalError.TOO_MANY_WORDS AssetGroupSignalError.SEARCH_THEME_POLICY_VIOLATION FieldError.REQUIRED StringFormatError.ILLEGAL_CHARS StringLengthError.TOO_LONG ResourceCountLimitExceededError.RESOURCE_LIMIT",
          "$ref": "GoogleAdsGoogleadsV24Common__SearchThemeInfo"
        },
        "resourceName": {
          "type": "string",
          "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}`"
        },
        "approvalStatus": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "APPROVED",
            "LIMITED",
            "DISAPPROVED",
            "UNDER_REVIEW"
          ],
          "description": "Output only. Approval status is the output value for search theme signal after Google ads policy review. When using Audience signal, this field is not used and will be absent.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Search Theme is eligible to show ads.",
            "Low search volume; Below first page bid estimate.",
            "Search Theme is inactive and isn't showing ads. A disapproved Search Theme usually means there's an issue with one or more of our advertising policies.",
            "Search Theme is under review. It won’t be able to trigger ads until it's been reviewed."
          ]
        },
        "assetGroup": {
          "description": "Immutable. The asset group which this asset group signal belongs to.",
          "type": "string"
        },
        "disapprovalReasons": {
          "description": "Output only. Computed for SearchTheme signals. When using Audience signal, this field is not used and will be absent.",
          "readOnly": true,
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__AssetGroupSignal",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__ManualCpc": {
      "id": "GoogleAdsGoogleadsV24Common__ManualCpc",
      "type": "object",
      "description": "Manual click-based bidding where user pays per click.",
      "properties": {
        "enhancedCpcEnabled": {
          "type": "boolean",
          "description": "Whether bids are to be enhanced based on conversion optimizer data."
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__LocalServicesLeadConversation": {
      "id": "GoogleAdsGoogleadsV24Resources__LocalServicesLeadConversation",
      "type": "object",
      "description": "Data from Local Services Lead Conversation. Contains details of Lead Conversation which is generated when user calls, messages or books service from advertiser. These are appended to a Lead. More info: https://ads.google.com/local-services-ads",
      "properties": {
        "participantType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADVERTISER",
            "CONSUMER"
          ],
          "description": "Output only. Type of participant in the lead conversation, ADVERTISER or CONSUMER.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Local Services Ads Provider participant.",
            "Local Services Ads Consumer participant."
          ]
        },
        "lead": {
          "type": "string",
          "description": "Output only. Resource name of Lead associated to the Lead Conversation.",
          "readOnly": true
        },
        "resourceName": {
          "description": "Output only. The resource name of the local services lead conversation data. Local Services Lead Conversation resource name have the form `customers/{customer_id}/localServicesLeadConversation/{local_services_lead_conversation_id}`",
          "readOnly": true,
          "type": "string"
        },
        "conversationChannel": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EMAIL",
            "MESSAGE",
            "PHONE_CALL",
            "SMS",
            "BOOKING",
            "WHATSAPP",
            "ADS_API"
          ],
          "description": "Output only. Type of GLS lead conversation, EMAIL, MESSAGE, PHONE_CALL, SMS, etc.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Email lead conversation.",
            "Message lead conversation.",
            "Phone call lead conversation.",
            "SMS lead conversation.",
            "Booking lead conversation.",
            "WhatsApp lead conversation.",
            "Lead conversation created through Google Ads API."
          ]
        },
        "eventDateTime": {
          "description": "Output only. The date time at which lead conversation was created by Local Services Ads. The format is \"YYYY-MM-DD HH:MM:SS\" in the Google Ads account's timezone. Examples: \"2018-03-05 09:15:00\" or \"2018-02-01 14:34:30\"",
          "readOnly": true,
          "type": "string"
        },
        "messageDetails": {
          "description": "Output only. Details of message conversation in case of EMAIL, MESSAGE or SMS.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources__MessageDetails"
        },
        "id": {
          "description": "Output only. ID of this Lead Conversation.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "phoneCallDetails": {
          "description": "Output only. Details of phone call conversation in case of PHONE_CALL.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources__PhoneCallDetails"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__KeywordPlanCampaignOperation": {
      "id": "GoogleAdsGoogleadsV24Services__KeywordPlanCampaignOperation",
      "type": "object",
      "description": "A single operation (create, update, remove) on a Keyword Plan campaign.",
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new Keyword Plan campaign.",
          "$ref": "GoogleAdsGoogleadsV24Resources__KeywordPlanCampaign"
        },
        "updateMask": {
          "type": "string",
          "description": "The FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask"
        },
        "update": {
          "description": "Update operation: The Keyword Plan campaign is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV24Resources__KeywordPlanCampaign"
        },
        "remove": {
          "description": "Remove operation: A resource name for the removed Keyword Plan campaign is expected, in this format: `customers/{customer_id}/keywordPlanCampaigns/{keywordPlan_campaign_id}`",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__BenchmarksSource": {
      "description": "The source used to generate benchmarks metrics for. The ID of the source can be obtained from BenchmarksService.ListBenchmarksSources.",
      "properties": {
        "industryVerticalId": {
          "description": "The ID of the Industry Vertical.",
          "format": "int64",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__BenchmarksSource",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__UpdateProductLinkInvitationRequest": {
      "description": "Request message for ProductLinkInvitationService.UpdateProductLinkInvitation.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Required. Resource name of the product link invitation."
        },
        "productLinkInvitationStatus": {
          "type": "string",
          "description": "Required. The product link invitation to be created.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The invitation is accepted.",
            "An invitation has been sent to the other account. A user on the other account may now accept the invitation by setting the status to ACCEPTED.",
            "This invitation has been sent by a user on the other account. It may be accepted by a user on this account by setting the status to ACCEPTED.",
            "The invitation is revoked by the user who sent the invitation.",
            "The invitation has been rejected by the invitee.",
            "The invitation has timed out before being accepted by the invitee."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ACCEPTED",
            "REQUESTED",
            "PENDING_APPROVAL",
            "REVOKED",
            "REJECTED",
            "EXPIRED"
          ]
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__UpdateProductLinkInvitationRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__RecommendationSubscription": {
      "id": "GoogleAdsGoogleadsV24Resources__RecommendationSubscription",
      "type": "object",
      "description": "Recommendation Subscription resource",
      "properties": {
        "type": {
          "type": "string",
          "description": "Required. Immutable. The type of recommendation subscribed to.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Provides optimized budget recommendations for campaigns.",
            "Keyword recommendation.",
            "Recommendation to add a new text ad.",
            "Recommendation to update a campaign to use a Target CPA bidding strategy.",
            "Recommendation to update a campaign to use the Maximize Conversions bidding strategy.",
            "Recommendation to enable Enhanced Cost Per Click for a campaign.",
            "Recommendation to start showing your campaign's ads on Google Search Partners Websites.",
            "Recommendation to update a campaign to use a Maximize Clicks bidding strategy.",
            "Recommendation to start using the \"Optimize\" ad rotation setting for the given ad group.",
            "Recommendation to change an existing keyword from one match type to a broader match type.",
            "Recommendation to move unused budget from one budget to a constrained budget.",
            "Budget recommendation for campaigns that are expected to become budget-constrained in the future (as opposed to the CAMPAIGN_BUDGET recommendation, which applies to campaigns that are currently budget-constrained).",
            "Recommendation to update a campaign to use a Target ROAS bidding strategy.",
            "Recommendation to add a new responsive search ad.",
            "Budget recommendation for campaigns whose ROI is predicted to increase with a budget adjustment.",
            "Recommendation to add broad match versions of keywords for fully automated conversion-based bidding campaigns.",
            "Recommendation to add new responsive search ad assets.",
            "Recommendation to upgrade a Smart Shopping campaign to a Performance Max campaign.",
            "Recommendation to improve strength of responsive search ad.",
            "Recommendation to update a campaign to use Display Expansion.",
            "Recommendation to upgrade a Local campaign to a Performance Max campaign.",
            "Recommendation to raise target CPA when it is too low and there are very few or no conversions. It is applied asynchronously and can take minutes depending on the number of ad groups there are in the related campaign.",
            "Recommendation to raise the budget in advance of a seasonal event that is forecasted to increase traffic, and change bidding strategy from maximize conversion value to target ROAS.",
            "Recommendation to add callout assets to campaign or customer level.",
            "Recommendation to add sitelink assets to campaign or customer level.",
            "Recommendation to add call assets to campaign or customer level.",
            "Recommendation to add the age group attribute to offers that are demoted because of a missing age group.",
            "Recommendation to add a color to offers that are demoted because of a missing color.",
            "Recommendation to add a gender to offers that are demoted because of a missing gender.",
            "Recommendation to add a GTIN (Global Trade Item Number) to offers that are demoted because of a missing GTIN.",
            "Recommendation to add more identifiers to offers that are demoted because of missing identifiers.",
            "Recommendation to add the size to offers that are demoted because of a missing size.",
            "Recommendation informing a customer about a campaign that cannot serve because no products are being targeted.",
            "The shopping recommendation informing a customer about campaign with a high percentage of disapproved products.",
            "Recommendation to create a catch-all campaign that targets all offers.",
            "Recommendation to fix Merchant Center account suspension issues.",
            "Recommendation to fix Merchant Center account suspension warning issues.",
            "Recommendation to migrate offers targeted by Regular Shopping Campaigns to existing Performance Max campaigns.",
            "Recommendation to enable dynamic image extensions on the account, allowing Google to find the best images from ad landing pages and complement text ads.",
            "Recommendation to raise Target CPA based on Google predictions modeled from past conversions. It is applied asynchronously and can take minutes depending on the number of ad groups there are in the related campaign.",
            "Recommendation to lower Target ROAS.",
            "Recommendation to opt into Performance Max campaigns.",
            "Recommendation to improve the asset group strength of a Performance Max campaign to an \"Excellent\" rating.",
            "Recommendation to migrate Dynamic Search Ads to Performance Max campaigns.",
            "Recommendation to set a target CPA for campaigns that do not have one specified, in advance of a seasonal event that is forecasted to increase traffic.",
            "Recommendation to set a target CPA for campaigns that do not have one specified.",
            "Recommendation to set a target ROAS for campaigns that do not have one specified.",
            "Recommendation to update a campaign to use the Maximize Conversion Value bidding strategy.",
            "Recommendation to deploy Google Tag on more pages.",
            "Recommendation to turn on Final URL expansion for your Performance Max campaigns.",
            "Recommendation to update a customer list that hasn't been updated in the last 90 days.",
            "Recommendation to create a custom audience.",
            "Recommendation to add lead form assets to campaign or customer level.",
            "Recommendation to improve the strength of ads in Demand Gen campaigns."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CAMPAIGN_BUDGET",
            "KEYWORD",
            "TEXT_AD",
            "TARGET_CPA_OPT_IN",
            "MAXIMIZE_CONVERSIONS_OPT_IN",
            "ENHANCED_CPC_OPT_IN",
            "SEARCH_PARTNERS_OPT_IN",
            "MAXIMIZE_CLICKS_OPT_IN",
            "OPTIMIZE_AD_ROTATION",
            "KEYWORD_MATCH_TYPE",
            "MOVE_UNUSED_BUDGET",
            "FORECASTING_CAMPAIGN_BUDGET",
            "TARGET_ROAS_OPT_IN",
            "RESPONSIVE_SEARCH_AD",
            "MARGINAL_ROI_CAMPAIGN_BUDGET",
            "USE_BROAD_MATCH_KEYWORD",
            "RESPONSIVE_SEARCH_AD_ASSET",
            "UPGRADE_SMART_SHOPPING_CAMPAIGN_TO_PERFORMANCE_MAX",
            "RESPONSIVE_SEARCH_AD_IMPROVE_AD_STRENGTH",
            "DISPLAY_EXPANSION_OPT_IN",
            "UPGRADE_LOCAL_CAMPAIGN_TO_PERFORMANCE_MAX",
            "RAISE_TARGET_CPA_BID_TOO_LOW",
            "FORECASTING_SET_TARGET_ROAS",
            "CALLOUT_ASSET",
            "SITELINK_ASSET",
            "CALL_ASSET",
            "SHOPPING_ADD_AGE_GROUP",
            "SHOPPING_ADD_COLOR",
            "SHOPPING_ADD_GENDER",
            "SHOPPING_ADD_GTIN",
            "SHOPPING_ADD_MORE_IDENTIFIERS",
            "SHOPPING_ADD_SIZE",
            "SHOPPING_ADD_PRODUCTS_TO_CAMPAIGN",
            "SHOPPING_FIX_DISAPPROVED_PRODUCTS",
            "SHOPPING_TARGET_ALL_OFFERS",
            "SHOPPING_FIX_SUSPENDED_MERCHANT_CENTER_ACCOUNT",
            "SHOPPING_FIX_MERCHANT_CENTER_ACCOUNT_SUSPENSION_WARNING",
            "SHOPPING_MIGRATE_REGULAR_SHOPPING_CAMPAIGN_OFFERS_TO_PERFORMANCE_MAX",
            "DYNAMIC_IMAGE_EXTENSION_OPT_IN",
            "RAISE_TARGET_CPA",
            "LOWER_TARGET_ROAS",
            "PERFORMANCE_MAX_OPT_IN",
            "IMPROVE_PERFORMANCE_MAX_AD_STRENGTH",
            "MIGRATE_DYNAMIC_SEARCH_ADS_CAMPAIGN_TO_PERFORMANCE_MAX",
            "FORECASTING_SET_TARGET_CPA",
            "SET_TARGET_CPA",
            "SET_TARGET_ROAS",
            "MAXIMIZE_CONVERSION_VALUE_OPT_IN",
            "IMPROVE_GOOGLE_TAG_COVERAGE",
            "PERFORMANCE_MAX_FINAL_URL_OPT_IN",
            "REFRESH_CUSTOMER_MATCH_LIST",
            "CUSTOM_AUDIENCE_OPT_IN",
            "LEAD_FORM_ASSET",
            "IMPROVE_DEMAND_GEN_AD_STRENGTH"
          ]
        },
        "modifyDateTime": {
          "type": "string",
          "description": "Output only. Contains the time in microseconds, when the Recommendation Subscription was last updated. The datetime is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss.ssssss\" format.",
          "readOnly": true
        },
        "createDateTime": {
          "type": "string",
          "description": "Output only. Time in seconds when the subscription was first created. The datetime is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss\" format.",
          "readOnly": true
        },
        "status": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "PAUSED"
          ],
          "description": "Required. Status of the subscription, either enabled or paused.",
          "enumDescriptions": [
            "Not specified.",
            "Output-only. Represents a format not yet defined in this enum.",
            "A subscription in the enabled state will automatically apply any recommendations of that type.",
            "Recommendations of the relevant type will not be automatically applied. Subscriptions cannot be deleted. Once created, they can only move between enabled and paused states."
          ],
          "type": "string"
        },
        "resourceName": {
          "description": "Immutable. The resource name of the recommendation subscription. `customers/{customer_id}/recommendationSubscriptions/{recommendation_type}`",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__PercentCpc": {
      "description": "A bidding strategy where bids are a fraction of the advertised price for some good or service.",
      "properties": {
        "cpcBidCeilingMicros": {
          "type": "string",
          "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.",
          "format": "int64"
        },
        "enhancedCpcEnabled": {
          "type": "boolean",
          "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."
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__PercentCpc",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_CustomerSkAdNetworkConversionValueSchema_SkAdNetworkConversionValueSchema": {
      "id": "GoogleAdsGoogleadsV24Resources_CustomerSkAdNetworkConversionValueSchema_SkAdNetworkConversionValueSchema",
      "type": "object",
      "description": "The CustomerLink specific SkAdNetworkConversionValueSchema.",
      "properties": {
        "appId": {
          "type": "string",
          "description": "Required. Output only. Apple App Store app ID.",
          "readOnly": true
        },
        "fineGrainedConversionValueMappings": {
          "description": "Output only. Fine grained conversion value mappings. For SkAdNetwork versions \u003e= 4.0 that support multiple conversion windows, fine grained conversion value mappings are only applicable to the first postback.",
          "readOnly": true,
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_FineGrainedConversionValueMappings"
          },
          "type": "array"
        },
        "postbackMappings": {
          "type": "array",
          "description": "Output only. Per-postback conversion value mappings for postbacks in multiple conversion windows. Only applicable for SkAdNetwork versions \u003e= 4.0.",
          "readOnly": true,
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_PostbackMapping"
          }
        },
        "measurementWindowHours": {
          "type": "integer",
          "description": "Output only. A time window (measured in hours) post-install, after which the App Attribution Partner or advertiser stops calling [updateConversionValue] (https://developer.apple.com/documentation/storekit/skadnetwork/3566697-updateconversionvalue).",
          "readOnly": true,
          "format": "int32"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__Metrics": {
      "id": "GoogleAdsGoogleadsV24Services__Metrics",
      "type": "object",
      "description": "All metrics returned against a criteria.",
      "properties": {
        "averageRateMetrics": {
          "description": "Average rate metrics calculated by dividing one metric by another.",
          "$ref": "GoogleAdsGoogleadsV24Services__RateMetrics"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__CallConversion": {
      "id": "GoogleAdsGoogleadsV24Services__CallConversion",
      "type": "object",
      "description": "A call conversion.",
      "properties": {
        "callStartDateTime": {
          "type": "string",
          "description": "The date time at which the call occurred. The timezone must be specified. The format is \"yyyy-mm-dd hh:mm:ss+|-hh:mm\", for example, \"2019-01-01 12:32:45-08:00\"."
        },
        "conversionDateTime": {
          "type": "string",
          "description": "The date time at which the conversion occurred. Must be after the call time. The timezone must be specified. The format is \"yyyy-mm-dd hh:mm:ss+|-hh:mm\", for example, \"2019-01-01 12:32:45-08:00\"."
        },
        "customVariables": {
          "description": "The custom variables associated with this conversion.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__CustomVariable"
          },
          "type": "array"
        },
        "callerId": {
          "type": "string",
          "description": "The caller id from which this call was placed. Caller id is expected to be in E.164 format with preceding '+' sign, for example, \"+16502531234\"."
        },
        "consent": {
          "description": "The consent setting for the event.",
          "$ref": "GoogleAdsGoogleadsV24Common__Consent"
        },
        "currencyCode": {
          "description": "Currency associated with the conversion value. This is the ISO 4217 3-character currency code. For example: USD, EUR.",
          "type": "string"
        },
        "conversionAction": {
          "description": "Resource name of the conversion action associated with this conversion. Note: Although this resource name consists of a customer id and a conversion action id, validation will ignore the customer id and use the conversion action id as the sole identifier of the conversion action.",
          "type": "string"
        },
        "conversionValue": {
          "type": "number",
          "description": "The value of the conversion for the advertiser.",
          "format": "double"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__AssetSetOperation": {
      "description": "A single operation (create, remove) on an asset set.",
      "properties": {
        "update": {
          "description": "Update operation: The asset set is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AssetSet"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed asset set is expected, in this format: `customers/{customer_id}/assetSets/{asset_set_id}`"
        },
        "updateMask": {
          "type": "string",
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new asset set",
          "$ref": "GoogleAdsGoogleadsV24Resources__AssetSet"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__AssetSetOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_AssetSet_MerchantCenterFeed": {
      "description": "Merchant ID and Feed Label from Google Merchant Center.",
      "properties": {
        "merchantId": {
          "type": "string",
          "description": "Required. Merchant ID from Google Merchant Center",
          "format": "int64"
        },
        "feedLabel": {
          "description": "Optional. Feed Label from Google Merchant Center.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_AssetSet_MerchantCenterFeed",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__FlexibleRuleUserListInfo": {
      "description": "Flexible rule representation of visitors with one or multiple actions. The flexible user list is defined by two lists of operands – inclusive_operands and exclusive_operands; each operand represents a set of users based on actions they took in a given timeframe. These lists of operands are combined with the AND_NOT operator, so that users represented by the inclusive operands are included in the user list, minus the users represented by the exclusive operands.",
      "properties": {
        "inclusiveOperands": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__FlexibleRuleOperandInfo"
          },
          "description": "Rules representing users that should be included in the user list. These are located on the left side of the AND_NOT operator, and joined together by either AND/OR as specified by the inclusive_rule_operator."
        },
        "inclusiveRuleOperator": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AND",
            "OR"
          ],
          "description": "Operator that defines how the inclusive operands are combined.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "A AND B.",
            "A OR B."
          ],
          "type": "string"
        },
        "exclusiveOperands": {
          "type": "array",
          "description": "Rules representing users that should be excluded from the user list. These are located on the right side of the AND_NOT operator, and joined together by OR.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__FlexibleRuleOperandInfo"
          }
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__FlexibleRuleUserListInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__MatchedLocationInterestView": {
      "description": "A view that reports metrics for locations where users showed interest, and which matched the advertiser's location interest targeting (defined as geo targets at the AdGroup level). The data is aggregated at the country level by default. This view is currently only available for AI Max campaigns.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the matched location interest view. Matched location interest view resource names have the form: `customers/{customer_id}/matchedLocationInterestViews/{country_criterion_id}`",
          "readOnly": true
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__MatchedLocationInterestView",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__ConversationOrError": {
      "id": "GoogleAdsGoogleadsV24Services__ConversationOrError",
      "type": "object",
      "description": "Result of the append conversation operation.",
      "properties": {
        "localServicesLeadConversation": {
          "description": "The resource name of the appended local services lead conversation.",
          "type": "string"
        },
        "partialFailureError": {
          "description": "Failure status when the request could not be processed.",
          "$ref": "GoogleRpc__Status"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__BookCampaignsRequest": {
      "description": "Request message for ReservationService.BookCampaigns.",
      "properties": {
        "operation": {
          "description": "The operation to book the campaigns.",
          "$ref": "GoogleAdsGoogleadsV24Actions__BookCampaignsOperation"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__BookCampaignsRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_AccessibleBiddingStrategy_TargetSpend": {
      "id": "GoogleAdsGoogleadsV24Resources_AccessibleBiddingStrategy_TargetSpend",
      "type": "object",
      "description": "An automated bid strategy that sets your bids to help get as many clicks as possible within your budget.",
      "properties": {
        "targetSpendMicros": {
          "deprecated": 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.",
          "readOnly": true,
          "format": "int64"
        },
        "cpcBidCeilingMicros": {
          "type": "string",
          "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,
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__QualifyingQuestion": {
      "id": "GoogleAdsGoogleadsV24Resources__QualifyingQuestion",
      "type": "object",
      "description": "Qualifying Questions for Lead Form.",
      "properties": {
        "resourceName": {
          "description": "Output only. The resource name of the qualifying question. 'qualifyingQuestions/{qualifyingQuestionId}'",
          "readOnly": true,
          "type": "string"
        },
        "locale": {
          "type": "string",
          "description": "Output only. The locale of the qualifying question.",
          "readOnly": true
        },
        "text": {
          "description": "Output only. The qualifying question.",
          "readOnly": true,
          "type": "string"
        },
        "qualifyingQuestionId": {
          "type": "string",
          "description": "Output only. The id of the qualifying question.",
          "readOnly": true,
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__GenerateTextResponse": {
      "id": "GoogleAdsGoogleadsV24Services__GenerateTextResponse",
      "type": "object",
      "description": "Response message for AssetGenerationService.GenerateText",
      "properties": {
        "generatedText": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__GeneratedText"
          },
          "description": "List of text that was generated and the field type to use it as.",
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_AccessibleBiddingStrategy_MaximizeConversionValue": {
      "description": "An automated bidding strategy to help get the most conversion value for your campaigns while spending your budget.",
      "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,
          "format": "double",
          "type": "number"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_AccessibleBiddingStrategy_MaximizeConversionValue",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__GenerateKeywordHistoricalMetricsResult": {
      "id": "GoogleAdsGoogleadsV24Services__GenerateKeywordHistoricalMetricsResult",
      "type": "object",
      "description": "The result of generating keyword historical metrics.",
      "properties": {
        "closeVariants": {
          "type": "array",
          "description": "The list of close variants from the requested keywords whose stats are combined into this GenerateKeywordHistoricalMetricsResult.",
          "items": {
            "type": "string"
          }
        },
        "text": {
          "description": "The text of the query associated with one or more keywords. Note that we de-dupe your keywords list, eliminating close variants before returning the keywords as text. For example, if your request originally contained the keywords \"car\" and \"cars\", the returned search query will only contain \"cars\". The list of de-duped queries will be included in close_variants field.",
          "type": "string"
        },
        "keywordMetrics": {
          "description": "The historical metrics for text and its close variants",
          "$ref": "GoogleAdsGoogleadsV24Common__KeywordPlanHistoricalMetrics"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__ShoppingSmartAdInfo": {
      "description": "A Smart Shopping ad.",
      "properties": {},
      "id": "GoogleAdsGoogleadsV24Common__ShoppingSmartAdInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__SharedCriterionOperation": {
      "id": "GoogleAdsGoogleadsV24Services__SharedCriterionOperation",
      "type": "object",
      "description": "A single operation (create, remove) on an shared criterion.",
      "properties": {
        "remove": {
          "description": "Remove operation: A resource name for the removed shared criterion is expected, in this format: `customers/{customer_id}/sharedCriteria/{shared_set_id}~{criterion_id}`",
          "type": "string"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new shared criterion.",
          "$ref": "GoogleAdsGoogleadsV24Resources__SharedCriterion"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__SearchSettings": {
      "description": "Indicates search settings in request parameter.",
      "properties": {
        "returnTotalResultsCount": {
          "type": "boolean",
          "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."
        },
        "omitResults": {
          "description": "If true, results will be excluded from the response. Otherwise, results will be returned. Default is false.",
          "type": "boolean"
        },
        "returnSummaryRow": {
          "description": "If true, summary row will be included in the response and sent in a response by itself after all other query results are returned. Default is false.",
          "type": "boolean"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__SearchSettings",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_Recommendation_ShoppingMerchantCenterAccountSuspensionRecommendation": {
      "description": "The shopping recommendation to fix Merchant Center account suspension issues.",
      "properties": {
        "merchant": {
          "description": "Output only. The details of the Merchant Center account.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_MerchantInfo"
        },
        "feedLabel": {
          "description": "Output only. The feed label of the campaign for which the suspension happened.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_Recommendation_ShoppingMerchantCenterAccountSuspensionRecommendation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__CyoIncentives": {
      "description": "An incentive offer in the Choose-Your-Own Incentive feature where a user can select from a set of incentives with different money amounts.",
      "properties": {
        "mediumOffer": {
          "description": "Required. The CYO incentive with medium target and award amounts.",
          "$ref": "GoogleAdsGoogleadsV24Services__Incentive"
        },
        "lowOffer": {
          "description": "Required. The CYO incentive with low target and award amounts.",
          "$ref": "GoogleAdsGoogleadsV24Services__Incentive"
        },
        "highOffer": {
          "description": "Required. The CYO incentive with high target and award amounts.",
          "$ref": "GoogleAdsGoogleadsV24Services__Incentive"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__CyoIncentives",
      "type": "object"
    },
    "GoogleLongrunning__CancelOperationRequest": {
      "description": "The request message for Operations.CancelOperation.",
      "properties": {},
      "id": "GoogleLongrunning__CancelOperationRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__EnableOperation": {
      "id": "GoogleAdsGoogleadsV24Services__EnableOperation",
      "type": "object",
      "description": "A single enable operation of a campaign.",
      "properties": {
        "mainColor": {
          "type": "string",
          "description": "Optional. Hex code representation of the main brand color, for example #00ff00. main_color is required when accent color is specified."
        },
        "brandAssets": {
          "description": "Optional. The brand assets linked to the campaign. This field is required when the value of auto_populate_brand_assets is false.",
          "$ref": "GoogleAdsGoogleadsV24Services__BrandCampaignAssets"
        },
        "accentColor": {
          "description": "Optional. Hex code representation of the accent brand color, for example #00ff00. accent_color is required when main_color is specified.",
          "type": "string"
        },
        "fontFamily": {
          "type": "string",
          "description": "Optional. The font family is specified as a string, and must be one of the following: \"Open Sans\", \"Roboto\", \"Roboto Slab\", \"Montserrat\", \"Poppins\", \"Lato\", \"Oswald\", or \"Playfair Display\"."
        },
        "campaign": {
          "description": "Required. The resource name of the campaign to enable.",
          "type": "string"
        },
        "autoPopulateBrandAssets": {
          "type": "boolean",
          "description": "Required. The switch to automatically populate top-performing brand assets. This field is required. If true, top-performing brand assets will be automatically populated. If false, the brand_assets field is required."
        },
        "finalUriDomain": {
          "type": "string",
          "description": "Optional. The domain of the final uri."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__SmartCampaignRemovedDetails": {
      "id": "GoogleAdsGoogleadsV24Services__SmartCampaignRemovedDetails",
      "type": "object",
      "description": "Details related to removed Smart campaigns.",
      "properties": {
        "removedDateTime": {
          "description": "The timestamp of when the campaign was removed. The timestamp is in the customer’s timezone and in “yyyy-MM-dd HH:mm:ss” format.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__GetSmartCampaignStatusResponse": {
      "description": "Response message for SmartCampaignSettingService.GetSmartCampaignStatus.",
      "properties": {
        "notEligibleDetails": {
          "description": "Details related to Smart campaigns that are ineligible to serve.",
          "$ref": "GoogleAdsGoogleadsV24Services__SmartCampaignNotEligibleDetails"
        },
        "smartCampaignStatus": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PAUSED",
            "NOT_ELIGIBLE",
            "PENDING",
            "ELIGIBLE",
            "REMOVED",
            "ENDED"
          ],
          "description": "The status of this Smart campaign.",
          "enumDescriptions": [
            "The status has not been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The campaign was paused.",
            "The campaign is not eligible to serve and has issues that may require intervention.",
            "The campaign is pending the approval of at least one ad.",
            "The campaign is eligible to serve.",
            "The campaign has been removed.",
            "The campaign has ended."
          ],
          "type": "string"
        },
        "pausedDetails": {
          "description": "Details related to paused Smart campaigns.",
          "$ref": "GoogleAdsGoogleadsV24Services__SmartCampaignPausedDetails"
        },
        "removedDetails": {
          "description": "Details related to removed Smart campaigns.",
          "$ref": "GoogleAdsGoogleadsV24Services__SmartCampaignRemovedDetails"
        },
        "eligibleDetails": {
          "description": "Details related to Smart campaigns that are eligible to serve.",
          "$ref": "GoogleAdsGoogleadsV24Services__SmartCampaignEligibleDetails"
        },
        "endedDetails": {
          "description": "Details related to Smart campaigns that have ended.",
          "$ref": "GoogleAdsGoogleadsV24Services__SmartCampaignEndedDetails"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__GetSmartCampaignStatusResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateConversionCustomVariablesRequest": {
      "description": "Request message for ConversionCustomVariableService.MutateConversionCustomVariables.",
      "properties": {
        "operations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__ConversionCustomVariableOperation"
          },
          "description": "Required. The list of operations to perform on individual conversion custom variables.",
          "type": "array"
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "responseContentType": {
          "type": "string",
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ]
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateConversionCustomVariablesRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__PaymentsAccount": {
      "id": "GoogleAdsGoogleadsV24Resources__PaymentsAccount",
      "type": "object",
      "description": "A payments account, which can be used to set up billing for an Ads customer.",
      "properties": {
        "paymentsAccountId": {
          "description": "Output only. A 16 digit ID used to identify a payments account.",
          "readOnly": true,
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "Output only. The name of the payments account.",
          "readOnly": true
        },
        "secondaryPaymentsProfileId": {
          "description": "Output only. A secondary payments profile ID present in uncommon situations, for example, when a sequential liability agreement has been arranged.",
          "readOnly": true,
          "type": "string"
        },
        "paymentsProfileId": {
          "type": "string",
          "description": "Output only. A 12 digit ID used to identify the payments profile associated with the payments account.",
          "readOnly": true
        },
        "payingManagerCustomer": {
          "description": "Output only. Paying manager of this payment account.",
          "readOnly": true,
          "type": "string"
        },
        "resourceName": {
          "description": "Output only. The resource name of the payments account. PaymentsAccount resource names have the form: `customers/{customer_id}/paymentsAccounts/{payments_account_id}`",
          "readOnly": true,
          "type": "string"
        },
        "currencyCode": {
          "type": "string",
          "description": "Output only. The currency code of the payments account. A subset of the currency codes derived from the ISO 4217 standard is supported.",
          "readOnly": true
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__ExperimentArm": {
      "description": "A Google ads experiment for users to experiment changes on multiple campaigns, compare the performance, and apply the effective changes.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the experiment arm. Experiment arm resource names have the form: `customers/{customer_id}/experimentArms/{TrialArm.trial_id}~{TrialArm.trial_arm_id}`"
        },
        "trafficSplit": {
          "type": "string",
          "description": "Traffic split of the trial arm. The value should be between 1 and 100 and must total 100 between the two trial arms.",
          "format": "int64"
        },
        "campaigns": {
          "items": {
            "type": "string"
          },
          "description": "List of campaigns in the trial arm. The max length is one.",
          "type": "array"
        },
        "name": {
          "description": "Required. The name of the experiment arm. It must have a minimum length of 1 and maximum length of 1024. It must be unique under an experiment.",
          "type": "string"
        },
        "inDesignCampaigns": {
          "type": "array",
          "description": "Output only. The in design campaigns in the treatment experiment arm.",
          "readOnly": true,
          "items": {
            "type": "string"
          }
        },
        "experiment": {
          "description": "Immutable. The experiment to which the ExperimentArm belongs.",
          "type": "string"
        },
        "control": {
          "description": "Whether this arm is a control arm. A control arm is the arm against which the other arms are compared.",
          "type": "boolean"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__ExperimentArm",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services_GenerateRecommendationsRequest_TargetImpressionShareInfo": {
      "id": "GoogleAdsGoogleadsV24Services_GenerateRecommendationsRequest_TargetImpressionShareInfo",
      "type": "object",
      "description": "Current Target Impression Share information of the campaign.",
      "properties": {
        "location": {
          "description": "Required. The targeted location on the search results page. This is required for campaigns where the AdvertisingChannelType is SEARCH and the bidding strategy type is TARGET_IMPRESSION_SHARE.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Any location on the web page.",
            "Top box of ads.",
            "Top slot in the top box of ads."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ANYWHERE_ON_PAGE",
            "TOP_OF_PAGE",
            "ABSOLUTE_TOP_OF_PAGE"
          ],
          "type": "string"
        },
        "targetImpressionShareMicros": {
          "description": "Required. The chosen fraction of targeted impression share in micros. For example, 1% equals 10,000. It must be a value between 1 and 1,000,000. This is required for campaigns with an AdvertisingChannelType of SEARCH and a bidding strategy type of TARGET_IMPRESSION_SHARE.",
          "format": "int64",
          "type": "string"
        },
        "maxCpcBidCeiling": {
          "description": "Optional. Ceiling of max CPC bids in micros set by automated bidders. This is optional for campaigns with an AdvertisingChannelType of SEARCH and a bidding strategy type of TARGET_IMPRESSION_SHARE.",
          "format": "int64",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_ForecastingSetTargetRoasParameters": {
      "id": "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_ForecastingSetTargetRoasParameters",
      "type": "object",
      "description": "Parameters to use when applying a forecasting set target roas recommendation.",
      "properties": {
        "targetRoas": {
          "type": "number",
          "description": "New target ROAS (revenue per unit of spend) to set for a campaign resource. The value is between 0.01 and 1000.0, inclusive.",
          "format": "double"
        },
        "campaignBudgetAmountMicros": {
          "type": "string",
          "description": "New campaign budget amount to set for a campaign resource.",
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateCustomerNegativeCriteriaResult": {
      "id": "GoogleAdsGoogleadsV24Services__MutateCustomerNegativeCriteriaResult",
      "type": "object",
      "description": "The result for the criterion mutate.",
      "properties": {
        "customerNegativeCriterion": {
          "description": "The mutated criterion with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV24Resources__CustomerNegativeCriterion"
        },
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__AdGroupAdAssetAutomationSetting": {
      "description": "Asset automation setting for an AdGroupAd.",
      "properties": {
        "assetAutomationStatus": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "OPTED_IN",
            "OPTED_OUT"
          ],
          "description": "The opt-in/out status for the specified asset automation type.",
          "enumDescriptions": [
            "Not specified.",
            "Used as a return value only. Represents value unknown in this version.",
            "Opted-in will enable generating and serving an asset automation type.",
            "Opted-out will stop generating and serving an asset automation type."
          ]
        },
        "assetAutomationType": {
          "type": "string",
          "description": "The asset automation type that this setting configures.",
          "enumDescriptions": [
            "Not specified.",
            "Used as a return value only. Represents value unknown in this version.",
            "Text asset automation includes headlines and descriptions. By default, advertisers are opted-in for Performance Max and opted-out for Search.",
            "Converts horizontal video assets to vertical orientation using content-aware technology. By default, advertisers are opted in for DemandGenVideoResponsiveAd.",
            "Shortens video assets to better capture user attention using content-aware technology. By default, advertisers are opted in for DemandGenVideoResponsiveAd.",
            "Generates a preview of the landing page shown in the engagement panel. By using this feature, you confirm that you own all legal rights to the images on the landing page used by this account (or you have permission to share the images with Google). You hereby instruct Google to publish these images on your behalf for advertising or other commercial purposes.",
            "Generates video enhancements (vertical and shorter videos) for PMax campaigns. Opted in by default.",
            "Generates image enhancements (AutoCrop and AutoEnhance). Opted in by default for pmax.",
            "Generates image extraction. It defaults to account level Dynamic Image Extension control value.",
            "Adds design elements and embeds text assets into image assets to create images with different aspect ratios. By default, advertisers are opted in for DemandGenMultiAssetAd.",
            "Controls automation for text assets related to Final URL expansion. This includes automatically creating dynamic landing pages from the final URL and generating text assets from the content of those landing pages. This setting is turned OFF by default for Search campaigns, but it is turned ON by default for Performance Max campaigns.",
            "Generates videos using other Assets as input, such as images and text. By default, advertisers are opted in for DemandGenMultiAssetAd."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "TEXT_ASSET_AUTOMATION",
            "GENERATE_VERTICAL_YOUTUBE_VIDEOS",
            "GENERATE_SHORTER_YOUTUBE_VIDEOS",
            "GENERATE_LANDING_PAGE_PREVIEW",
            "GENERATE_ENHANCED_YOUTUBE_VIDEOS",
            "GENERATE_IMAGE_ENHANCEMENT",
            "GENERATE_IMAGE_EXTRACTION",
            "GENERATE_DESIGN_VERSIONS_FOR_IMAGES",
            "FINAL_URL_EXPANSION_TEXT_ASSET_AUTOMATION",
            "GENERATE_VIDEOS_FROM_OTHER_ASSETS"
          ]
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__AdGroupAdAssetAutomationSetting",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__IncomeRangeInfo": {
      "id": "GoogleAdsGoogleadsV24Common__IncomeRangeInfo",
      "type": "object",
      "description": "An income range criterion.",
      "properties": {
        "type": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INCOME_RANGE_0_50",
            "INCOME_RANGE_50_60",
            "INCOME_RANGE_60_70",
            "INCOME_RANGE_70_80",
            "INCOME_RANGE_80_90",
            "INCOME_RANGE_90_UP",
            "INCOME_RANGE_UNDETERMINED"
          ],
          "description": "Type of the income range.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "0%-50%.",
            "50% to 60%.",
            "60% to 70%.",
            "70% to 80%.",
            "80% to 90%.",
            "Greater than 90%.",
            "Undetermined income range."
          ],
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateAssetGroupAssetsResponse": {
      "id": "GoogleAdsGoogleadsV24Services__MutateAssetGroupAssetsResponse",
      "type": "object",
      "description": "Response message for an asset group asset mutate.",
      "properties": {
        "results": {
          "type": "array",
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateAssetGroupAssetResult"
          }
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__CustomerThirdPartyIntegrationPartners": {
      "id": "GoogleAdsGoogleadsV24Common__CustomerThirdPartyIntegrationPartners",
      "type": "object",
      "description": "Container for Customer level third party integration partners.",
      "properties": {
        "brandLiftIntegrationPartners": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__CustomerThirdPartyBrandLiftIntegrationPartner"
          },
          "description": "Allowed third party integration partners for Brand Lift verification."
        },
        "brandSafetyIntegrationPartners": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__CustomerThirdPartyBrandSafetyIntegrationPartner"
          },
          "description": "Allowed third party integration partners for brand safety verification."
        },
        "reachIntegrationPartners": {
          "description": "Allowed third party integration partners for reach verification.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__CustomerThirdPartyReachIntegrationPartner"
          },
          "type": "array"
        },
        "viewabilityIntegrationPartners": {
          "description": "Allowed third party integration partners for YouTube viewability verification.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__CustomerThirdPartyViewabilityIntegrationPartner"
          },
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateAdGroupCriterionLabelsRequest": {
      "description": "Request message for AdGroupCriterionLabelService.MutateAdGroupCriterionLabels.",
      "properties": {
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__AdGroupCriterionLabelOperation"
          },
          "description": "Required. The list of operations to perform on ad group criterion labels."
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateAdGroupCriterionLabelsRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateExperimentArmResult": {
      "description": "The result for the experiment arm mutate.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        },
        "experimentArm": {
          "description": "The mutated experiment arm with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV24Resources__ExperimentArm"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateExperimentArmResult",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_Campaign_VanityPharma": {
      "description": "Describes how unbranded pharma ads will be displayed.",
      "properties": {
        "vanityPharmaText": {
          "description": "The text that will be displayed in display URL of the text ad when website description is the selected display mode for vanity pharma URLs.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Prescription treatment website with website content in English.",
            "Prescription treatment website with website content in Spanish (Sitio de tratamientos con receta).",
            "Prescription device website with website content in English.",
            "Prescription device website with website content in Spanish (Sitio de dispositivos con receta).",
            "Medical device website with website content in English.",
            "Medical device website with website content in Spanish (Sitio de dispositivos médicos).",
            "Preventative treatment website with website content in English.",
            "Preventative treatment website with website content in Spanish (Sitio de tratamientos preventivos).",
            "Prescription contraception website with website content in English.",
            "Prescription contraception website with website content in Spanish (Sitio de anticonceptivos con receta).",
            "Prescription vaccine website with website content in English.",
            "Prescription vaccine website with website content in Spanish (Sitio de vacunas con receta)."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PRESCRIPTION_TREATMENT_WEBSITE_EN",
            "PRESCRIPTION_TREATMENT_WEBSITE_ES",
            "PRESCRIPTION_DEVICE_WEBSITE_EN",
            "PRESCRIPTION_DEVICE_WEBSITE_ES",
            "MEDICAL_DEVICE_WEBSITE_EN",
            "MEDICAL_DEVICE_WEBSITE_ES",
            "PREVENTATIVE_TREATMENT_WEBSITE_EN",
            "PREVENTATIVE_TREATMENT_WEBSITE_ES",
            "PRESCRIPTION_CONTRACEPTION_WEBSITE_EN",
            "PRESCRIPTION_CONTRACEPTION_WEBSITE_ES",
            "PRESCRIPTION_VACCINE_WEBSITE_EN",
            "PRESCRIPTION_VACCINE_WEBSITE_ES"
          ],
          "type": "string"
        },
        "vanityPharmaDisplayUrlMode": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MANUFACTURER_WEBSITE_URL",
            "WEBSITE_DESCRIPTION"
          ],
          "description": "The display mode for vanity pharma URLs.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Replace vanity pharma URL with manufacturer website url.",
            "Replace vanity pharma URL with description of the website."
          ]
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_Campaign_VanityPharma",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateCustomerUserAccessInvitationResult": {
      "description": "The result for the access invitation mutate.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateCustomerUserAccessInvitationResult",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__DynamicHotelsAndRentalsAsset": {
      "id": "GoogleAdsGoogleadsV24Common__DynamicHotelsAndRentalsAsset",
      "type": "object",
      "description": "A dynamic hotels and rentals asset.",
      "properties": {
        "address": {
          "type": "string",
          "description": "Address which can be specified in one of the following formats. (1) City, state, code, country, for example, Mountain View, CA, USA. (2) Full address, for example, 123 Boulevard St, Mountain View, CA 94043. (3) Latitude-longitude in the DDD format, for example, 41.40338, 2.17403"
        },
        "destinationName": {
          "description": "Destination name, for example, Downtown Mountain View.",
          "type": "string"
        },
        "similarPropertyIds": {
          "items": {
            "type": "string"
          },
          "description": "Similar property IDs.",
          "type": "array"
        },
        "price": {
          "description": "Price which can be number followed by the alphabetic currency code, ISO 4217 standard. Use '.' as the decimal mark, for example, 100.00 USD.",
          "type": "string"
        },
        "description": {
          "description": "Description, for example, Close to SJC Airport.",
          "type": "string"
        },
        "propertyName": {
          "type": "string",
          "description": "Required. Property name, for example, Mountain View Hotel. Required."
        },
        "androidAppLink": {
          "type": "string",
          "description": "Android deep link, for example, android-app://com.example.android/http/example.com/gizmos?1234."
        },
        "formattedSalePrice": {
          "type": "string",
          "description": "Formatted sale price which can be any characters. If set, this attribute will be used instead of 'sale price', for example, On sale for $80.00."
        },
        "formattedPrice": {
          "type": "string",
          "description": "Formatted price which can be any characters. If set, this attribute will be used instead of 'price', for example, Starting at $100.00."
        },
        "category": {
          "type": "string",
          "description": "Category, for example, Hotel suite."
        },
        "salePrice": {
          "description": "ISO 4217 standard. Use '.' as the decimal mark, for example, 80.00 USD. Must be less than the 'price' field.",
          "type": "string"
        },
        "contextualKeywords": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Contextual keywords, for example, Mountain View \"Hotels\", South Bay hotels."
        },
        "propertyId": {
          "description": "Required. Property ID which can be any sequence of letters and digits, and must be unique and match the values of remarketing tag. Required.",
          "type": "string"
        },
        "imageUrl": {
          "type": "string",
          "description": "Image URL, for example, http://www.example.com/image.png. The image will not be uploaded as image asset."
        },
        "starRating": {
          "description": "Star rating. Must be a number between 1 to 5, inclusive.",
          "format": "int64",
          "type": "string"
        },
        "iosAppLink": {
          "description": "iOS deep link, for example, exampleApp://content/page.",
          "type": "string"
        },
        "iosAppStoreId": {
          "description": "iOS app store ID. This is used to check if the user has the app installed on their device before deep linking. If this field is set, then the ios_app_link field must also be present.",
          "format": "int64",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__DistanceView": {
      "description": "A distance view with metrics aggregated by the user's distance from an advertiser's location extensions. Each DistanceBucket includes all impressions that fall within its distance and a single impression will contribute to the metrics for all DistanceBuckets that include the user's distance.",
      "properties": {
        "distanceBucket": {
          "description": "Output only. Grouping of user distance from location extensions.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "User was within 700m of the location.",
            "User was within 1KM of the location.",
            "User was within 5KM of the location.",
            "User was within 10KM of the location.",
            "User was within 15KM of the location.",
            "User was within 20KM of the location.",
            "User was within 25KM of the location.",
            "User was within 30KM of the location.",
            "User was within 35KM of the location.",
            "User was within 40KM of the location.",
            "User was within 45KM of the location.",
            "User was within 50KM of the location.",
            "User was within 55KM of the location.",
            "User was within 60KM of the location.",
            "User was within 65KM of the location.",
            "User was beyond 65KM of the location.",
            "User was within 0.7 miles of the location.",
            "User was within 1 mile of the location.",
            "User was within 5 miles of the location.",
            "User was within 10 miles of the location.",
            "User was within 15 miles of the location.",
            "User was within 20 miles of the location.",
            "User was within 25 miles of the location.",
            "User was within 30 miles of the location.",
            "User was within 35 miles of the location.",
            "User was within 40 miles of the location.",
            "User was beyond 40 miles of the location."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "WITHIN_700M",
            "WITHIN_1KM",
            "WITHIN_5KM",
            "WITHIN_10KM",
            "WITHIN_15KM",
            "WITHIN_20KM",
            "WITHIN_25KM",
            "WITHIN_30KM",
            "WITHIN_35KM",
            "WITHIN_40KM",
            "WITHIN_45KM",
            "WITHIN_50KM",
            "WITHIN_55KM",
            "WITHIN_60KM",
            "WITHIN_65KM",
            "BEYOND_65KM",
            "WITHIN_0_7MILES",
            "WITHIN_1MILE",
            "WITHIN_5MILES",
            "WITHIN_10MILES",
            "WITHIN_15MILES",
            "WITHIN_20MILES",
            "WITHIN_25MILES",
            "WITHIN_30MILES",
            "WITHIN_35MILES",
            "WITHIN_40MILES",
            "BEYOND_40MILES"
          ],
          "type": "string"
        },
        "metricSystem": {
          "type": "boolean",
          "description": "Output only. True if the DistanceBucket is using the metric system, false otherwise.",
          "readOnly": true
        },
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the distance view. Distance view resource names have the form: `customers/{customer_id}/distanceViews/1~{distance_bucket}`",
          "readOnly": true
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__DistanceView",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__TargetingSuggestionMetrics": {
      "description": "A suggested targetable audience relevant to the requested audience.",
      "properties": {
        "parentalStatus": {
          "description": "A Parental Status value (parent, or not a parent).",
          "$ref": "GoogleAdsGoogleadsV24Common__ParentalStatusInfo"
        },
        "userInterests": {
          "description": "List of user interest attributes with metadata defining the audience. The combination has a logical AND-of-ORs structure: The attributes within each AudienceInsightsAttributeMetadataGroup are ORed, and the groups themselves are ANDed.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AudienceInsightsAttributeMetadataGroup"
          },
          "type": "array"
        },
        "index": {
          "description": "The ratio of coverage to the coverage of the baseline audience or zero if this ratio is undefined or is not meaningful.",
          "format": "double",
          "type": "number"
        },
        "gender": {
          "description": "Suggested gender targeting. If present, this attribute has dimension GENDER.",
          "$ref": "GoogleAdsGoogleadsV24Common__GenderInfo"
        },
        "locations": {
          "type": "array",
          "description": "Suggested location targeting. These attributes all have dimension GEO_TARGET_COUNTRY or SUB_COUNTRY_LOCATION",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AudienceInsightsAttributeMetadata"
          }
        },
        "coverage": {
          "type": "number",
          "description": "The fraction (from 0 to 1 inclusive) of the requested audience that can be reached using the suggested targeting.",
          "format": "double"
        },
        "potentialYoutubeReach": {
          "type": "string",
          "description": "The approximate estimated number of people that can be reached on YouTube using this targeting.",
          "format": "int64"
        },
        "ageRanges": {
          "type": "array",
          "description": "Suggested age targeting; may be empty indicating no age targeting.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AgeRangeInfo"
          }
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__TargetingSuggestionMetrics",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__LegacyAppInstallAdInfo": {
      "id": "GoogleAdsGoogleadsV24Common__LegacyAppInstallAdInfo",
      "type": "object",
      "description": "A legacy app install ad that only can be used by a few select customers.",
      "properties": {
        "headline": {
          "description": "The headline of the ad.",
          "type": "string"
        },
        "appStore": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "APPLE_APP_STORE",
            "GOOGLE_PLAY",
            "WINDOWS_STORE",
            "WINDOWS_PHONE_STORE",
            "CN_APP_STORE"
          ],
          "description": "The app store the mobile app is available in.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Apple iTunes.",
            "Google Play.",
            "Windows Store.",
            "Windows Phone Store.",
            "The app is hosted in a Chinese app store."
          ]
        },
        "description2": {
          "type": "string",
          "description": "The second description line of the ad."
        },
        "appId": {
          "description": "The ID of the mobile app.",
          "type": "string"
        },
        "description1": {
          "type": "string",
          "description": "The first description line of the ad."
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_Campaign_PerformanceMaxUpgrade": {
      "id": "GoogleAdsGoogleadsV24Resources_Campaign_PerformanceMaxUpgrade",
      "type": "object",
      "description": "Information about a campaign being upgraded to Performance Max.",
      "properties": {
        "status": {
          "type": "string",
          "description": "Output only. The upgrade status of a campaign requested to be upgraded to Performance Max.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The upgrade to a Performance Max campaign is in progress.",
            "The upgrade to a Performance Max campaign is complete.",
            "The upgrade to a Performance Max campaign failed. The campaign will still serve as it was before upgrade was attempted.",
            "The campaign is eligible for upgrade to a Performance Max campaign."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "UPGRADE_IN_PROGRESS",
            "UPGRADE_COMPLETE",
            "UPGRADE_FAILED",
            "UPGRADE_ELIGIBLE"
          ]
        },
        "preUpgradeCampaign": {
          "description": "Output only. The resource name of the legacy campaign upgraded to Performance Max.",
          "readOnly": true,
          "type": "string"
        },
        "performanceMaxCampaign": {
          "description": "Output only. The resource name of the Performance Max campaign the campaign is upgraded to.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateAdGroupAdLabelResult": {
      "id": "GoogleAdsGoogleadsV24Services__MutateAdGroupAdLabelResult",
      "type": "object",
      "description": "The result for an ad group ad label mutate.",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__PriceAsset": {
      "id": "GoogleAdsGoogleadsV24Common__PriceAsset",
      "type": "object",
      "description": "An asset representing a list of price offers.",
      "properties": {
        "languageCode": {
          "type": "string",
          "description": "Required. The language of the price asset. Represented as BCP 47 language tag."
        },
        "priceQualifier": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "FROM",
            "UP_TO",
            "AVERAGE"
          ],
          "description": "The price qualifier of the price asset.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "'From' qualifier for the price.",
            "'Up to' qualifier for the price.",
            "'Average' qualifier for the price."
          ]
        },
        "type": {
          "type": "string",
          "description": "Required. The type of the price asset.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The type for showing a list of brands.",
            "The type for showing a list of events.",
            "The type for showing locations relevant to your business.",
            "The type for showing sub-regions or districts within a city or region.",
            "The type for showing a collection of product categories.",
            "The type for showing a collection of related product tiers.",
            "The type for showing a collection of services offered by your business.",
            "The type for showing a collection of service categories.",
            "The type for showing a collection of related service tiers."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BRANDS",
            "EVENTS",
            "LOCATIONS",
            "NEIGHBORHOODS",
            "PRODUCT_CATEGORIES",
            "PRODUCT_TIERS",
            "SERVICES",
            "SERVICE_CATEGORIES",
            "SERVICE_TIERS"
          ]
        },
        "priceOfferings": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__PriceOffering"
          },
          "description": "The price offerings of the price asset. The size of this collection should be between 3 and 8, inclusive."
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__StructuredSnippetAsset": {
      "description": "A Structured Snippet asset.",
      "properties": {
        "values": {
          "description": "Required. The values in the snippet. The size of this collection should be between 3 and 10, inclusive. The length of each value should be between 1 and 25 characters, inclusive.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "header": {
          "type": "string",
          "description": "Required. The header of the snippet. This string should be one of the predefined values at https://developers.google.com/google-ads/api/reference/data/structured-snippet-headers"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__StructuredSnippetAsset",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateConversionValueRulesRequest": {
      "id": "GoogleAdsGoogleadsV24Services__MutateConversionValueRulesRequest",
      "type": "object",
      "description": "Request message for ConversionValueRuleService.MutateConversionValueRules.",
      "properties": {
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "operations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__ConversionValueRuleOperation"
          },
          "description": "Required. The list of operations to perform on individual conversion value rules.",
          "type": "array"
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "responseContentType": {
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__FrequencyCapKey": {
      "id": "GoogleAdsGoogleadsV24Common__FrequencyCapKey",
      "type": "object",
      "description": "A group of fields used as keys for a frequency cap. There can be no more than one frequency cap with the same key.",
      "properties": {
        "timeUnit": {
          "type": "string",
          "description": "Unit of time the cap is defined at (for example, day, week).",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The cap would define limit per one day.",
            "The cap would define limit per one week.",
            "The cap would define limit per one month."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DAY",
            "WEEK",
            "MONTH"
          ]
        },
        "level": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AD_GROUP_AD",
            "AD_GROUP",
            "CAMPAIGN"
          ],
          "description": "The level on which the cap is to be applied (for example, ad group ad, ad group). The cap is applied to all the entities of this level.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The cap is applied at the ad group ad level.",
            "The cap is applied at the ad group level.",
            "The cap is applied at the campaign level."
          ]
        },
        "eventType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "IMPRESSION",
            "VIDEO_VIEW"
          ],
          "description": "The type of event that the cap applies to (for example, impression).",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The cap applies on ad impressions.",
            "The cap applies on video ad views."
          ],
          "type": "string"
        },
        "timeLength": {
          "type": "integer",
          "description": "Number of time units the cap lasts.",
          "format": "int32"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateCustomerResponse": {
      "description": "Response message for customer mutate.",
      "properties": {
        "result": {
          "description": "Result for the mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomerResult"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateCustomerResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__AdVideoAssetInventoryPreferences": {
      "id": "GoogleAdsGoogleadsV24Common__AdVideoAssetInventoryPreferences",
      "type": "object",
      "description": "YouTube Video Asset inventory preferences.",
      "properties": {
        "inFeedPreference": {
          "type": "boolean",
          "description": "When true, YouTube Video Asset with this inventory preference will be preferred when choosing a video to serve In Feed."
        },
        "shortsPreference": {
          "type": "boolean",
          "description": "When true, YouTube Video Asset with this inventory preference will be preferred when choosing a video to serve on YouTube Shorts."
        },
        "inStreamPreference": {
          "description": "When true, YouTube Video Asset with this inventory preference will be preferred when choosing a video to serve In Stream.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__SharedSetOperation": {
      "id": "GoogleAdsGoogleadsV24Services__SharedSetOperation",
      "type": "object",
      "description": "A single operation (create, update, remove) on an shared set.",
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new shared set.",
          "$ref": "GoogleAdsGoogleadsV24Resources__SharedSet"
        },
        "update": {
          "description": "Update operation: The shared set is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV24Resources__SharedSet"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed shared set is expected, in this format: `customers/{customer_id}/sharedSets/{shared_set_id}`"
        },
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateCampaignLabelsRequest": {
      "id": "GoogleAdsGoogleadsV24Services__MutateCampaignLabelsRequest",
      "type": "object",
      "description": "Request message for CampaignLabelService.MutateCampaignLabels.",
      "properties": {
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "operations": {
          "type": "array",
          "description": "Required. The list of operations to perform on campaign-label relationships.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__CampaignLabelOperation"
          }
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__UserListNumberRuleItemInfo": {
      "id": "GoogleAdsGoogleadsV24Common__UserListNumberRuleItemInfo",
      "type": "object",
      "description": "A rule item composed of a number operation.",
      "properties": {
        "operator": {
          "type": "string",
          "description": "Number comparison operator. This field is required and must be populated when creating a new number rule item.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Greater than.",
            "Greater than or equal.",
            "Equals.",
            "Not equals.",
            "Less than.",
            "Less than or equal."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "GREATER_THAN",
            "GREATER_THAN_OR_EQUAL",
            "EQUALS",
            "NOT_EQUALS",
            "LESS_THAN",
            "LESS_THAN_OR_EQUAL"
          ]
        },
        "value": {
          "type": "number",
          "description": "Number value to be compared with the variable. This field is required and must be populated when creating a new number rule item.",
          "format": "double"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__CampaignCustomizerOperation": {
      "id": "GoogleAdsGoogleadsV24Services__CampaignCustomizerOperation",
      "type": "object",
      "description": "A single operation (create, remove) on a customizer attribute.",
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new campaign customizer",
          "$ref": "GoogleAdsGoogleadsV24Resources__CampaignCustomizer"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed campaign customizer is expected, in this format: `customers/{customer_id}/campaignCustomizers/{campaign_id}~{customizer_attribute_id}`"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateCustomerRequest": {
      "description": "Request message for CustomerService.MutateCustomer.",
      "properties": {
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "responseContentType": {
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "type": "string"
        },
        "operation": {
          "description": "Required. The operation to perform on the customer",
          "$ref": "GoogleAdsGoogleadsV24Services__CustomerOperation"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateCustomerRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateKeywordPlanAdGroupKeywordsResponse": {
      "description": "Response message for a Keyword Plan ad group keyword mutate.",
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateKeywordPlanAdGroupKeywordResult"
          },
          "description": "All results for the mutate."
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateKeywordPlanAdGroupKeywordsResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common_PolicyTopicEvidence_DestinationNotWorking": {
      "id": "GoogleAdsGoogleadsV24Common_PolicyTopicEvidence_DestinationNotWorking",
      "type": "object",
      "description": "Evidence details when the destination is returning an HTTP error code or isn't functional in all locations for commonly used devices.",
      "properties": {
        "expandedUrl": {
          "description": "The full URL that didn't work.",
          "type": "string"
        },
        "device": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DESKTOP",
            "ANDROID",
            "IOS"
          ],
          "description": "The type of device that failed to load the URL.",
          "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."
          ]
        },
        "lastCheckedDateTime": {
          "type": "string",
          "description": "The time the URL was last checked. The format is \"YYYY-MM-DD HH:MM:SS\". Examples: \"2018-03-05 09:15:00\" or \"2018-02-01 14:34:30\""
        },
        "dnsErrorType": {
          "type": "string",
          "description": "The type of DNS error.",
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "Host name not found in DNS when fetching landing page.",
            "Google internal crawler issue when communicating with DNS. This error doesn't mean the landing page doesn't work. Google will recrawl the landing page."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HOSTNAME_NOT_FOUND",
            "GOOGLE_CRAWLER_DNS_ISSUE"
          ]
        },
        "httpErrorCode": {
          "description": "The HTTP error code.",
          "format": "int64",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__UpdateYouTubeVideoUploadRequest": {
      "id": "GoogleAdsGoogleadsV24Services__UpdateYouTubeVideoUploadRequest",
      "type": "object",
      "description": "Request message for YouTubeVideoUploadService.UpdateYouTubeVideoUpload.",
      "properties": {
        "youTubeVideoUpload": {
          "description": "Required. The YouTube video upload resource to be updated. It's expected to have a valid resource name. Required.",
          "$ref": "GoogleAdsGoogleadsV24Resources__YouTubeVideoUpload"
        },
        "updateMask": {
          "type": "string",
          "description": "Required. FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__BiddingSeasonalityAdjustment": {
      "id": "GoogleAdsGoogleadsV24Resources__BiddingSeasonalityAdjustment",
      "type": "object",
      "description": "Represents a bidding seasonality adjustment. Cannot be used in manager accounts. See \"About seasonality adjustments\" at https://support.google.com/google-ads/answer/10369906.",
      "properties": {
        "status": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "description": "Output only. The status of the seasonality adjustment.",
          "readOnly": true,
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The seasonality event is enabled.",
            "The seasonality event is removed."
          ],
          "type": "string"
        },
        "startDateTime": {
          "type": "string",
          "description": "Required. The inclusive start time of the seasonality adjustment in yyyy-MM-dd HH:mm:ss format. A seasonality adjustment is forward looking and should be used for events that start and end in the future."
        },
        "description": {
          "type": "string",
          "description": "The description of the seasonality adjustment. The description can be at most 2048 characters."
        },
        "resourceName": {
          "description": "Immutable. The resource name of the seasonality adjustment. Seasonality adjustment resource names have the form: `customers/{customer_id}/biddingSeasonalityAdjustments/{seasonality_adjustment_id}`",
          "type": "string"
        },
        "campaigns": {
          "type": "array",
          "description": "The seasonality adjustment will apply to the campaigns listed when the scope of this adjustment is CAMPAIGN. The maximum number of campaigns per event is 2000. Note: a seasonality adjustment with both advertising_channel_types and campaign_ids is not supported.",
          "items": {
            "type": "string"
          }
        },
        "scope": {
          "description": "The scope of the seasonality adjustment.",
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The seasonality event is applied to all the customer's traffic for supported advertising channel types and device types. The CUSTOMER scope cannot be used in mutates.",
            "The seasonality event is applied to all specified campaigns.",
            "The seasonality event is applied to all campaigns that belong to specified channel types."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CUSTOMER",
            "CAMPAIGN",
            "CHANNEL"
          ],
          "type": "string"
        },
        "advertisingChannelTypes": {
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "Search Network. Includes display bundled, and Search+ campaigns.",
              "Google Display Network only.",
              "Shopping campaigns serve on the shopping property and on google.com search results.",
              "Hotel Ads campaigns.",
              "Video campaigns.",
              "App Campaigns, and App Campaigns for Engagement, that run across multiple channels.",
              "Local ads campaigns.",
              "Smart campaigns.",
              "Performance Max campaigns.",
              "Local services campaigns.",
              "Travel campaigns.",
              "Demand Gen campaigns."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "SEARCH",
              "DISPLAY",
              "SHOPPING",
              "HOTEL",
              "VIDEO",
              "MULTI_CHANNEL",
              "LOCAL",
              "SMART",
              "PERFORMANCE_MAX",
              "LOCAL_SERVICES",
              "TRAVEL",
              "DEMAND_GEN"
            ]
          },
          "description": "The seasonality adjustment will apply to all the campaigns under the listed channels retroactively as well as going forward when the scope of this adjustment is CHANNEL. The supported advertising channel types are DISPLAY, SEARCH and SHOPPING. Note: a seasonality adjustment with both advertising_channel_types and campaign_ids is not supported."
        },
        "endDateTime": {
          "type": "string",
          "description": "Required. The exclusive end time of the seasonality adjustment in yyyy-MM-dd HH:mm:ss format. The length of [start_date_time, end_date_time) interval must be within (0, 14 days]."
        },
        "devices": {
          "type": "array",
          "items": {
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "MOBILE",
              "TABLET",
              "DESKTOP",
              "CONNECTED_TV",
              "OTHER"
            ],
            "enumDescriptions": [
              "Not specified.",
              "The value is unknown in this version.",
              "Mobile devices with full browsers.",
              "Tablets with full browsers.",
              "Computers.",
              "Smart TVs and game consoles.",
              "Other device types."
            ],
            "type": "string"
          },
          "description": "If not specified, all devices will be included in this adjustment. Otherwise, only the specified targeted devices will be included in this adjustment."
        },
        "seasonalityAdjustmentId": {
          "type": "string",
          "description": "Output only. The ID of the seasonality adjustment.",
          "readOnly": true,
          "format": "int64"
        },
        "name": {
          "description": "The name of the seasonality adjustment. The name can be at most 255 characters.",
          "type": "string"
        },
        "conversionRateModifier": {
          "type": "number",
          "description": "Conversion rate modifier estimated based on expected conversion rate changes. When this field is unset or set to 1.0 no adjustment will be applied to traffic. The allowed range is 0.1 to 10.0.",
          "format": "double"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateAdGroupCriterionCustomizerResult": {
      "id": "GoogleAdsGoogleadsV24Services__MutateAdGroupCriterionCustomizerResult",
      "type": "object",
      "description": "The result for the ad group criterion customizer mutate.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        },
        "adGroupCriterionCustomizer": {
          "description": "The mutated AdGroupCriterionCustomizer with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV24Resources__AdGroupCriterionCustomizer"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__CarrierConstant": {
      "id": "GoogleAdsGoogleadsV24Resources__CarrierConstant",
      "type": "object",
      "description": "A carrier criterion that can be used in campaign targeting.",
      "properties": {
        "resourceName": {
          "description": "Output only. The resource name of the carrier criterion. Carrier criterion resource names have the form: `carrierConstants/{criterion_id}`",
          "readOnly": true,
          "type": "string"
        },
        "name": {
          "description": "Output only. The full name of the carrier in English.",
          "readOnly": true,
          "type": "string"
        },
        "id": {
          "description": "Output only. The ID of the carrier criterion.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "countryCode": {
          "type": "string",
          "description": "Output only. The country code of the country where the carrier is located, for example, \"AR\", \"FR\", etc.",
          "readOnly": true
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__CreateProductLinkInvitationResponse": {
      "description": "Response message for product link invitation create.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Resource name of the product link invitation."
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__CreateProductLinkInvitationResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__IdentityVerificationProgress": {
      "description": "Information regarding the verification progress for a verification program type.",
      "properties": {
        "invitationLinkExpirationTime": {
          "type": "string",
          "description": "The timestamp when the action url will expire in \"yyyy-MM-dd HH:mm:ss\" format."
        },
        "actionUrl": {
          "description": "Action URL for user to complete verification for the given verification program type.",
          "type": "string"
        },
        "programStatus": {
          "type": "string",
          "description": "Current Status (PENDING_USER_ACTION, SUCCESS, FAILURE etc)",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Verification is pending on user action to proceed.",
            "Verification is pending on review.",
            "Verification succeeded.",
            "Verification failed."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PENDING_USER_ACTION",
            "PENDING_REVIEW",
            "SUCCESS",
            "FAILURE"
          ]
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__IdentityVerificationProgress",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__YouTubeVideoUpload": {
      "description": "Represents a video upload to YouTube using the Google Ads API.",
      "properties": {
        "videoUploadId": {
          "description": "Output only. The unique ID of the YouTube video upload.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "videoTitle": {
          "type": "string",
          "description": "Input only. Immutable. The title of the video. Only mutable on YouTube video upload creation. Immutable after creation."
        },
        "videoPrivacy": {
          "type": "string",
          "description": "The privacy state of the video. Only mutable for videos uploaded to the advertiser owned (brand) YouTube channel. For videos uploaded to the Google-managed channels only UNLISTED privacy is allowed. Defaults to UNLISTED privacy if not specified.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Video is public.",
            "Video is unlisted."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PUBLIC",
            "UNLISTED"
          ]
        },
        "resourceName": {
          "description": "Immutable. Resource name of the YouTube video upload.",
          "type": "string"
        },
        "videoDescription": {
          "description": "Input only. Immutable. The description of the video. Only mutable on YouTube video upload creation. Immutable after creation.",
          "type": "string"
        },
        "channelId": {
          "description": "Immutable. The destination YouTube channel ID for the video upload. Only mutable on YouTube video upload creation. If omitted, the video will be uploaded to the Google-managed YouTube channel associated with the Ads account.",
          "type": "string"
        },
        "videoId": {
          "description": "Output only. The YouTube video ID of the uploaded video.",
          "readOnly": true,
          "type": "string"
        },
        "state": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PENDING",
            "UPLOADED",
            "PROCESSED",
            "FAILED",
            "REJECTED",
            "UNAVAILABLE"
          ],
          "description": "Output only. The current state of the YouTube video upload.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "The video is currently being uploaded.",
            "The video was uploaded and is being processed.",
            "The video was successfully uploaded and processed.",
            "The video upload or processing did not complete successfully.",
            "The video was not accepted due to validation or policy reasons.",
            "The video upload state is unavailable. It may have been removed from YouTube."
          ],
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__YouTubeVideoUpload",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__GenerateShareablePreviewsResponse": {
      "description": "Response message for ShareablePreviewService.GenerateShareablePreviews.",
      "properties": {
        "result": {
          "description": "The result of the generate shareable previews action.",
          "$ref": "GoogleAdsGoogleadsV24Actions__GenerateShareablePreviewsResult"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__GenerateShareablePreviewsResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__AgeRangeView": {
      "id": "GoogleAdsGoogleadsV24Resources__AgeRangeView",
      "type": "object",
      "description": "An age range view.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the age range view. Age range view resource names have the form: `customers/{customer_id}/ageRangeViews/{ad_group_id}~{criterion_id}`",
          "readOnly": true
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__ClickLocation": {
      "description": "Location criteria associated with a click.",
      "properties": {
        "mostSpecific": {
          "type": "string",
          "description": "The most specific location criterion associated with the impression."
        },
        "region": {
          "type": "string",
          "description": "The region location criterion associated with the impression."
        },
        "city": {
          "type": "string",
          "description": "The city location criterion associated with the impression."
        },
        "metro": {
          "type": "string",
          "description": "The metro location criterion associated with the impression."
        },
        "country": {
          "description": "The country location criterion associated with the impression.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__ClickLocation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__GenerateTargetingSuggestionMetricsResponse": {
      "id": "GoogleAdsGoogleadsV24Services__GenerateTargetingSuggestionMetricsResponse",
      "type": "object",
      "description": "Response message for AudienceInsightsService.GenerateTargetingSuggestionMetrics.",
      "properties": {
        "suggestions": {
          "description": "Suggested targetable audiences. There will be one suggestion for each GenerateTargetingSuggestionMetricsRequest.audiences requested, matching the order requested.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__TargetingSuggestionMetrics"
          },
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__SharedCriterion": {
      "id": "GoogleAdsGoogleadsV24Resources__SharedCriterion",
      "type": "object",
      "description": "A criterion belonging to a shared set.",
      "properties": {
        "mobileApplication": {
          "description": "Immutable. Mobile application.",
          "$ref": "GoogleAdsGoogleadsV24Common__MobileApplicationInfo"
        },
        "negative": {
          "description": "Immutable. If true, the criterion is excluded. If false, the criterion is targeted.",
          "type": "boolean"
        },
        "criterionId": {
          "type": "string",
          "description": "Output only. The ID of the criterion. This field is ignored for mutates.",
          "readOnly": true,
          "format": "int64"
        },
        "youtubeVideo": {
          "description": "Immutable. YouTube Video.",
          "$ref": "GoogleAdsGoogleadsV24Common__YouTubeVideoInfo"
        },
        "youtubeChannel": {
          "description": "Immutable. YouTube Channel.",
          "$ref": "GoogleAdsGoogleadsV24Common__YouTubeChannelInfo"
        },
        "placement": {
          "description": "Immutable. Placement.",
          "$ref": "GoogleAdsGoogleadsV24Common__PlacementInfo"
        },
        "type": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "KEYWORD",
            "PLACEMENT",
            "MOBILE_APP_CATEGORY",
            "MOBILE_APPLICATION",
            "DEVICE",
            "LOCATION",
            "LISTING_GROUP",
            "AD_SCHEDULE",
            "AGE_RANGE",
            "GENDER",
            "INCOME_RANGE",
            "PARENTAL_STATUS",
            "YOUTUBE_VIDEO",
            "YOUTUBE_CHANNEL",
            "USER_LIST",
            "PROXIMITY",
            "TOPIC",
            "LISTING_SCOPE",
            "LANGUAGE",
            "IP_BLOCK",
            "CONTENT_LABEL",
            "CARRIER",
            "USER_INTEREST",
            "WEBPAGE",
            "OPERATING_SYSTEM_VERSION",
            "APP_PAYMENT_MODEL",
            "MOBILE_DEVICE",
            "CUSTOM_AFFINITY",
            "CUSTOM_INTENT",
            "LOCATION_GROUP",
            "CUSTOM_AUDIENCE",
            "COMBINED_AUDIENCE",
            "KEYWORD_THEME",
            "AUDIENCE",
            "NEGATIVE_KEYWORD_LIST",
            "LOCAL_SERVICE_ID",
            "SEARCH_THEME",
            "BRAND",
            "BRAND_LIST",
            "LIFE_EVENT",
            "WEBPAGE_LIST",
            "VIDEO_LINEUP",
            "PLACEMENT_LIST",
            "VERTICAL_ADS_ITEM_GROUP_RULE_LIST",
            "VERTICAL_ADS_ITEM_GROUP_RULE",
            "RETAIL_FILTER_BUNDLE",
            "RETAIL_FILTER"
          ],
          "description": "Output only. The type of the criterion.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Keyword, for example, 'mars cruise'.",
            "Placement, also known as Website, for example, 'www.flowers4sale.com'",
            "Mobile application categories to target.",
            "Mobile applications to target.",
            "Devices to target.",
            "Locations to target.",
            "Listing groups to target.",
            "Ad Schedule.",
            "Age range.",
            "Gender.",
            "Income Range.",
            "Parental status.",
            "YouTube Video.",
            "YouTube Channel.",
            "User list.",
            "Proximity.",
            "A topic target on the display network (for example, \"Pets & Animals\").",
            "Listing scope to target.",
            "Language.",
            "IpBlock.",
            "Content Label for category exclusion.",
            "Carrier.",
            "A category the user is interested in.",
            "Webpage criterion for dynamic search ads.",
            "Operating system version.",
            "App payment model.",
            "Mobile device.",
            "Custom affinity.",
            "Custom intent.",
            "Location group.",
            "Custom audience",
            "Combined audience",
            "Smart Campaign keyword theme",
            "Audience",
            "Negative Keyword List",
            "Local Services Ads Service ID.",
            "Search Theme.",
            "Brand",
            "Brand List",
            "Life Event",
            "Webpage List",
            "Video lineup",
            "Placement List",
            "A list of rules for item groups in Vertical Ads.",
            "A rule for an item group in Vertical Ads.",
            "Retail Filter Bundle for linking a retail filter shared set to an ad group.",
            "Retail Filter for defining individual tag rules or expressions within a shared set."
          ],
          "type": "string"
        },
        "mobileAppCategory": {
          "description": "Immutable. Mobile App Category.",
          "$ref": "GoogleAdsGoogleadsV24Common__MobileAppCategoryInfo"
        },
        "sharedSet": {
          "type": "string",
          "description": "Immutable. The shared set to which the shared criterion belongs."
        },
        "webpage": {
          "description": "Immutable. Webpage.",
          "$ref": "GoogleAdsGoogleadsV24Common__WebpageInfo"
        },
        "resourceName": {
          "description": "Immutable. The resource name of the shared criterion. Shared set resource names have the form: `customers/{customer_id}/sharedCriteria/{shared_set_id}~{criterion_id}`",
          "type": "string"
        },
        "brand": {
          "description": "Immutable. Brand.",
          "$ref": "GoogleAdsGoogleadsV24Common__BrandInfo"
        },
        "retailFilter": {
          "description": "Immutable. Retail Filter.",
          "$ref": "GoogleAdsGoogleadsV24Common__RetailFilter"
        },
        "keyword": {
          "description": "Immutable. Keyword.",
          "$ref": "GoogleAdsGoogleadsV24Common__KeywordInfo"
        },
        "verticalAdsItemGroupRule": {
          "description": "Immutable. Vertical ads item group rule.",
          "$ref": "GoogleAdsGoogleadsV24Common__VerticalAdsItemGroupRuleInfo"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_AssetSet_HotelPropertyData": {
      "description": "For Performance Max for travel goals campaigns with a Hotel Center account link. Read-only.",
      "properties": {
        "hotelCenterId": {
          "description": "Output only. The hotel center ID of the partner.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "partnerName": {
          "type": "string",
          "description": "Output only. Name of the hotel partner.",
          "readOnly": true
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_AssetSet_HotelPropertyData",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__SearchVolumeRange": {
      "id": "GoogleAdsGoogleadsV24Common__SearchVolumeRange",
      "type": "object",
      "description": "Search volume range. Actual search volume falls within this range.",
      "properties": {
        "min": {
          "description": "Lower bound of search volume.",
          "format": "int64",
          "type": "string"
        },
        "max": {
          "type": "string",
          "description": "Upper bound of search volume.",
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_FineGrainedConversionValueMappings": {
      "id": "GoogleAdsGoogleadsV24Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_FineGrainedConversionValueMappings",
      "type": "object",
      "description": "Mappings for fine grained conversion value.",
      "properties": {
        "fineGrainedConversionValue": {
          "type": "integer",
          "description": "Output only. Fine grained conversion value. Valid values are in the inclusive range [0,63].",
          "readOnly": true,
          "format": "int32"
        },
        "conversionValueMapping": {
          "description": "Output only. Conversion events the fine grained conversion value maps to.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_ConversionValueMapping"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__AdGroupCreativeAssetCombinationData": {
      "id": "GoogleAdsGoogleadsV24Resources__AdGroupCreativeAssetCombinationData",
      "type": "object",
      "description": "Ad group asset combination data",
      "properties": {
        "assetCombinationServedAssets": {
          "description": "Output only. Served assets.",
          "readOnly": true,
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AssetUsage"
          },
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV24Actions__BookCampaignsResult": {
      "description": "Response message for the BookCampaigns action. Note that if the response contains errors, the action response will not be returned, but a quote may still be returned in the ErrorDetails.reservation_error_details field.",
      "properties": {},
      "id": "GoogleAdsGoogleadsV24Actions__BookCampaignsResult",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateAdParameterResult": {
      "id": "GoogleAdsGoogleadsV24Services__MutateAdParameterResult",
      "type": "object",
      "description": "The result for the ad parameter mutate.",
      "properties": {
        "adParameter": {
          "description": "The mutated AdParameter with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV24Resources__AdParameter"
        },
        "resourceName": {
          "description": "The resource name returned for successful operations.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__HotelGroupView": {
      "id": "GoogleAdsGoogleadsV24Resources__HotelGroupView",
      "type": "object",
      "description": "A hotel group view.",
      "properties": {
        "resourceName": {
          "description": "Output only. The resource name of the hotel group view. Hotel Group view resource names have the form: `customers/{customer_id}/hotelGroupViews/{ad_group_id}~{criterion_id}`",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_Recommendation_RaiseTargetCpaRecommendation": {
      "id": "GoogleAdsGoogleadsV24Resources_Recommendation_RaiseTargetCpaRecommendation",
      "type": "object",
      "description": "Recommendation to raise Target CPA.",
      "properties": {
        "appBiddingGoal": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "OPTIMIZE_FOR_INSTALL_CONVERSION_VOLUME",
            "OPTIMIZE_FOR_IN_APP_CONVERSION_VOLUME",
            "OPTIMIZE_FOR_TOTAL_CONVERSION_VALUE",
            "OPTIMIZE_FOR_TARGET_IN_APP_CONVERSION",
            "OPTIMIZE_FOR_RETURN_ON_ADVERTISING_SPEND",
            "OPTIMIZE_FOR_INSTALL_CONVERSION_VOLUME_WITHOUT_TARGET_CPI",
            "OPTIMIZE_FOR_PRE_REGISTRATION_CONVERSION_VOLUME"
          ],
          "description": "Output only. Represents the goal towards which the bidding strategy should optimize. Only populated for App Campaigns.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Represents value unknown in this version of the API.",
            "The bidding strategy of the app campaign should aim to maximize installation of the app.",
            "The bidding strategy of the app campaign should aim to maximize the selected in-app conversions' volume.",
            "The bidding strategy of the app campaign should aim to maximize all conversions' value, that is, install and selected in-app conversions.",
            "The bidding strategy of the app campaign should aim to maximize just the selected in-app conversion's volume, while achieving or exceeding target cost per in-app conversion.",
            "The bidding strategy of the app campaign should aim to maximize all conversions' value, that is, install and selected in-app conversions while achieving or exceeding target return on advertising spend.",
            "This bidding strategy of the app campaign should aim to maximize installation of the app without advertiser-provided target cost-per-install.",
            "This bidding strategy of the app campaign should aim to maximize pre-registration of the app."
          ]
        },
        "targetAdjustment": {
          "description": "Output only. The relevant information describing the recommended target adjustment.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_TargetAdjustmentInfo"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__UpdateDataLinkRequest": {
      "description": "Request message for DataLinkService.UpdateDataLink.",
      "properties": {
        "dataLinkStatus": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "REQUESTED",
            "PENDING_APPROVAL",
            "ENABLED",
            "DISABLED",
            "REVOKED",
            "REJECTED"
          ],
          "description": "Required. The data link status to be updated to.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Link has been requested by one party, but not confirmed by the other party.",
            "Link is waiting for the customer to approve.",
            "Link is established and can be used as needed.",
            "Link is no longer valid and should be ignored.",
            "Link request has been cancelled by the requester and further cleanup may be needed.",
            "Link request has been rejected by the approver."
          ]
        },
        "resourceName": {
          "type": "string",
          "description": "Required. The data link is expected to have a valid resource name."
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__UpdateDataLinkRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__IdentityVerification": {
      "description": "An identity verification for a customer.",
      "properties": {
        "verificationProgram": {
          "type": "string",
          "description": "The verification program type.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Advertiser submits documents to verify their identity."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADVERTISER_IDENTITY_VERIFICATION"
          ]
        },
        "identityVerificationRequirement": {
          "description": "The verification requirement for this verification program for this customer.",
          "$ref": "GoogleAdsGoogleadsV24Services__IdentityVerificationRequirement"
        },
        "verificationProgress": {
          "description": "Information regarding progress for this verification program for this customer.",
          "$ref": "GoogleAdsGoogleadsV24Services__IdentityVerificationProgress"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__IdentityVerification",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Actions__QuoteCampaignsResult": {
      "description": "The response of the QuoteCampaigns action, when the action is successful. Note that if the response contains errors, the action response will not be returned, but a quote may still be returned in the ErrorDetails.reservation_error_details field.",
      "properties": {
        "quotes": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__CampaignReservationQuote"
          },
          "description": "The quotes for the requested campaigns."
        },
        "quoteSignature": {
          "type": "string",
          "description": "The signature of the quote. This signature should be used when booking the quote."
        }
      },
      "id": "GoogleAdsGoogleadsV24Actions__QuoteCampaignsResult",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services_GenerateCreatorInsightsRequest_SearchAttributes": {
      "description": "The audience attributes (such as Age, Gender, Affinity, and In-Market) and creator attributes (such as creator's content topics) used to search for top creators. The returned creators are sorted based on likelihood that your audience watches the creator, relative to the general population (most likely is returned first).",
      "properties": {
        "creatorAttributes": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AudienceInsightsAttribute"
          },
          "description": "Optional. Creator attributes that describe a collection of types of content. This is used to search for creators whose content matches the input creator attributes. Only Knowledge Graph Entities tagged with CREATOR_ATTRIBUTE are supported. Use AudienceInsightsService.ListAudienceInsightsAttributes to get the list of supported entities. Other attributes including location are not supported."
        },
        "audienceCombinations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__InsightsAudienceAttributeGroup"
          },
          "description": "Optional. A list of audience attribute groups consisting of one or more Knowledge Graph entities, Product & Service Categories and user interests that describes an audience. The groups have a logical AND-of-ORs structure: 1. Attributes within each InsightsAudienceAttributeGroup are combined with OR. 2. The groups themselves are combined together with AND. For example, an audience (Interest A OR Interest B) AND (Entity C) is represented using two groups. The first group contains the two interests and the second group contains the entity. This field cannot be set if any Knowledge Graph entities, Product & Service Categories, or user interests are specified in audience_attributes."
        },
        "audienceAttributes": {
          "description": "Optional. Audience attributes that describe an audience of viewers. This is used to search for creators whose own viewers match the input audience. Attributes age_range, gender, user_interest, entity, category, device, parental_status, and income_range are supported. Attribute location is not supported. Attributes user_interest, entity, and category can only be set in audience_attributes when audience_combinations is unused.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AudienceInsightsAttribute"
          },
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services_GenerateCreatorInsightsRequest_SearchAttributes",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_AdGroup_VerticalAdsFormatSetting": {
      "description": "Vertical ads setting feature to enable/disable ad group format controls in search campaigns.",
      "properties": {
        "enableBookingLinks": {
          "type": "boolean",
          "description": "If true, booking links will be enabled for this ad group."
        },
        "enableVerticalPromotionAds": {
          "type": "boolean",
          "description": "If true, vertical promotion ads will be enabled for this ad group."
        },
        "disableTextAds": {
          "description": "If true, text ads will be disabled for this ad group.",
          "type": "boolean"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_AdGroup_VerticalAdsFormatSetting",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__CampaignThirdPartyBrandLiftIntegrationPartner": {
      "description": "Container for third party Brand Lift integration data for Campaign.",
      "properties": {
        "brandLiftIntegrationPartner": {
          "description": "Allowed third party integration partners for Brand Lift verification.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Kantar",
            "Dynata",
            "Intage",
            "Macromill"
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "KANTAR_MILLWARD_BROWN",
            "DYNATA",
            "INTAGE",
            "MACROMILL"
          ],
          "type": "string"
        },
        "brandLiftIntegrationPartnerData": {
          "description": "Third party partner data for YouTube Brand Lift verification. This is optional metadata for partners to join or attach data to Ads campaigns.",
          "$ref": "GoogleAdsGoogleadsV24Common__ThirdPartyIntegrationPartnerData"
        },
        "shareCost": {
          "type": "boolean",
          "description": "If true, then cost data will be shared with this vendor."
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__CampaignThirdPartyBrandLiftIntegrationPartner",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_SitelinkExtensionParameters": {
      "description": "Parameters to use when applying sitelink recommendation.",
      "properties": {
        "sitelinkExtensions": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__SitelinkFeedItem"
          },
          "description": "Sitelinks to be added. This is a required field."
        }
      },
      "id": "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_SitelinkExtensionParameters",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__WebpageListInfo": {
      "description": "Represents a list of webpage criteria.",
      "properties": {
        "sharedSet": {
          "description": "Shared set resource name of the webpage list.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__WebpageListInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_Recommendation_DisplayExpansionOptInRecommendation": {
      "description": "The Display Expansion opt-in recommendation.",
      "properties": {},
      "id": "GoogleAdsGoogleadsV24Resources_Recommendation_DisplayExpansionOptInRecommendation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__RemarketingActionOperation": {
      "description": "A single operation (create, update) on a remarketing action.",
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new remarketing action.",
          "$ref": "GoogleAdsGoogleadsV24Resources__RemarketingAction"
        },
        "update": {
          "description": "Update operation: The remarketing action is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV24Resources__RemarketingAction"
        },
        "updateMask": {
          "type": "string",
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__RemarketingActionOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateCampaignAssetSetResult": {
      "description": "The result for the campaign asset set mutate.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        },
        "campaignAssetSet": {
          "description": "The mutated campaign asset set with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV24Resources__CampaignAssetSet"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateCampaignAssetSetResult",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__DynamicBusinessProfileLocationGroupFilter": {
      "id": "GoogleAdsGoogleadsV24Common__DynamicBusinessProfileLocationGroupFilter",
      "type": "object",
      "description": "Represents a filter on Business Profile locations in an asset set. If multiple filters are provided, they are AND'ed together.",
      "properties": {
        "labelFilters": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Used to filter Business Profile locations by label. Only locations that have any of the listed labels will be in the asset set. Label filters are OR'ed together."
        },
        "businessNameFilter": {
          "description": "Used to filter Business Profile locations by business name.",
          "$ref": "GoogleAdsGoogleadsV24Common__BusinessProfileBusinessNameFilter"
        },
        "listingIdFilters": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "int64"
          },
          "description": "Used to filter Business Profile locations by listing ids."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__EnablePMaxBrandGuidelinesResponse": {
      "id": "GoogleAdsGoogleadsV24Services__EnablePMaxBrandGuidelinesResponse",
      "type": "object",
      "description": "Brand Guidelines campaign enablement response.",
      "properties": {
        "results": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__EnablementResult"
          },
          "description": "Campaign enablement results per campaign.",
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__UnusableAdGroup": {
      "id": "GoogleAdsGoogleadsV24Services__UnusableAdGroup",
      "type": "object",
      "description": "An AdGroup/Campaign pair that could not be used as a suggestion for keywords. AdGroups may not be usable if the AdGroup * belongs to a Campaign that is not ENABLED or PAUSED * is itself not ENABLED",
      "properties": {
        "adGroup": {
          "type": "string",
          "description": "The AdGroup resource name. Resource name format: `customers/{customer_id}/adGroups/{ad_group_id}`"
        },
        "campaign": {
          "type": "string",
          "description": "The Campaign resource name. Resource name format: `customers/{customer_id}/campaigns/{campaign_id}`"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateCampaignAssetsResponse": {
      "id": "GoogleAdsGoogleadsV24Services__MutateCampaignAssetsResponse",
      "type": "object",
      "description": "Response message for a campaign asset mutate.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "type": "array",
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateCampaignAssetResult"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV24Common_PolicyTopicConstraint_ResellerConstraint": {
      "id": "GoogleAdsGoogleadsV24Common_PolicyTopicConstraint_ResellerConstraint",
      "type": "object",
      "description": "Indicates that a policy topic was constrained due to disapproval of the website for reseller purposes.",
      "properties": {}
    },
    "GoogleAdsGoogleadsV24Resources__AssetGroupListingGroupFilter": {
      "id": "GoogleAdsGoogleadsV24Resources__AssetGroupListingGroupFilter",
      "type": "object",
      "description": "AssetGroupListingGroupFilter represents a listing group filter tree node in an asset group.",
      "properties": {
        "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": {
          "type": "string",
          "description": "Immutable. Resource name of the parent listing group subdivision. Null for the root listing group filter node."
        },
        "id": {
          "description": "Output only. The ID of the ListingGroupFilter.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "listingSource": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SHOPPING",
            "WEBPAGE",
            "RETAIL"
          ],
          "description": "Immutable. The source of listings filtered by this listing group filter.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Listings from a Shopping source, like products from Google Merchant Center.",
            "Listings from a webpage source, like URLs from a page feed or from the advertiser web domain.",
            "Used for Retail Product Tags."
          ]
        },
        "caseValue": {
          "description": "Dimension value with which this listing group is refining its parent. Undefined for the root group.",
          "$ref": "GoogleAdsGoogleadsV24Resources__ListingGroupFilterDimension"
        },
        "assetGroup": {
          "type": "string",
          "description": "Immutable. The asset group which this asset group listing group filter is part of."
        },
        "type": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SUBDIVISION",
            "UNIT_INCLUDED",
            "UNIT_EXCLUDED"
          ],
          "description": "Immutable. Type of a listing group filter node.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Subdivision of products along some listing dimensions.",
            "An included listing group filter leaf node.",
            "An excluded listing group filter leaf node."
          ]
        },
        "path": {
          "description": "Output only. The path of dimensions defining this listing group filter.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources__ListingGroupFilterDimensionPath"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__AdStrengthActionItem": {
      "description": "An action item to improve the ad strength of an asset group.",
      "properties": {
        "actionItemType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADD_ASSET"
          ],
          "description": "Output only. The action item type.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "This action item suggests adding an asset to the asset group."
          ],
          "type": "string"
        },
        "addAssetDetails": {
          "description": "Output only. The action item details for action item type ADD_ASSET.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_AdStrengthActionItem_AddAssetDetails"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__AdStrengthActionItem",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_Recommendation_CampaignBudgetRecommendation": {
      "description": "The budget recommendation for budget constrained campaigns.",
      "properties": {
        "currentBudgetAmountMicros": {
          "description": "Output only. The current budget amount in micros.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "recommendedBudgetAmountMicros": {
          "description": "Output only. The recommended budget amount in micros.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "budgetOptions": {
          "type": "array",
          "description": "Output only. The budget amounts and associated impact estimates for some values of possible budget amounts.",
          "readOnly": true,
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Resources_RecommendationCampaignBudgetRecommendation_CampaignBudgetRecommendationOption"
          }
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_Recommendation_CampaignBudgetRecommendation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__AiMaxSearchTermAdCombinationView": {
      "description": "AiMaxSearchTermAdCombinationView Resource.",
      "properties": {
        "adGroup": {
          "description": "Output only. Ad group where the search term served.",
          "readOnly": true,
          "type": "string"
        },
        "headline": {
          "description": "Output only. The concatenated string containing headline assets for the ad. Up to three headline assets are concatenated, separated by \" | \". This field is read-only.",
          "readOnly": true,
          "type": "string"
        },
        "searchTerm": {
          "type": "string",
          "description": "Output only. The search term that triggered the ad. This field is read-only.",
          "readOnly": true
        },
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the AI Max Search Term Ad Combination view AI Max Search Term Ad Combination view resource names have the form: `customers/{customer_id}/aiMaxSearchTermAdCombinationViews/{ad_group_id}~{URL-base64_search_term}~{URL-base64_landing_page}~{URL-base64_headline}`",
          "readOnly": true
        },
        "landingPage": {
          "type": "string",
          "description": "Output only. The destination URL, which was dynamically generated. This field is read-only.",
          "readOnly": true
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__AiMaxSearchTermAdCombinationView",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__CustomerManagerLinkOperation": {
      "id": "GoogleAdsGoogleadsV24Services__CustomerManagerLinkOperation",
      "type": "object",
      "description": "Updates the status of a CustomerManagerLink. The following actions are possible: 1. Update operation with status ACTIVE accepts a pending invitation. 2. Update operation with status REFUSED declines a pending invitation. 3. Update operation with status INACTIVE terminates link to manager.",
      "properties": {
        "update": {
          "description": "Update operation: The link is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CustomerManagerLink"
        },
        "updateMask": {
          "type": "string",
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__AdGroupCriterionLabelOperation": {
      "id": "GoogleAdsGoogleadsV24Services__AdGroupCriterionLabelOperation",
      "type": "object",
      "description": "A single operation (create, remove) on an ad group criterion label.",
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new ad group label.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AdGroupCriterionLabel"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the ad group criterion label being removed, in this format: `customers/{customer_id}/adGroupCriterionLabels/{ad_group_id}~{criterion_id}~{label_id}`"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__CustomerLabel": {
      "description": "Represents a relationship between a customer and a label. This customer may not have access to all the labels attached to it. Additional CustomerLabels may be returned by increasing permissions with login-customer-id.",
      "properties": {
        "customer": {
          "description": "Output only. The resource name of the customer to which the label is attached. This field should not be set when creating a new `CustomerLabel`.",
          "readOnly": true,
          "type": "string"
        },
        "label": {
          "description": "Output only. The resource name of the label assigned to the customer. This field should not be set when creating a new `CustomerLabel`. Note: the Customer ID portion of the label resource name is not validated when creating a new `CustomerLabel`.",
          "readOnly": true,
          "type": "string"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. Name of the resource. Customer label resource names have the form: `customers/{customer_id}/customerLabels/{label_id}`"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__CustomerLabel",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__Targeting": {
      "description": "The targeting for which traffic metrics will be reported.",
      "properties": {
        "network": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "YOUTUBE",
            "GOOGLE_VIDEO_PARTNERS",
            "YOUTUBE_AND_GOOGLE_VIDEO_PARTNERS"
          ],
          "description": "Targetable network for the ad product. If not specified, targets all applicable networks. Applicable networks vary by product and region and can be obtained from ReachPlanService.ListPlannableProducts.",
          "enumDescriptions": [
            "Not specified.",
            "Used as a return value only. Represents value unknown in this version.",
            "YouTube network.",
            "Google Video Partners (GVP) network.",
            "A combination of the YouTube network and the Google Video Partners network."
          ]
        },
        "audienceTargeting": {
          "description": "Targeted audiences. If not specified, does not target any specific audience.",
          "$ref": "GoogleAdsGoogleadsV24Services__AudienceTargeting"
        },
        "ageRange": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AGE_RANGE_18_24",
            "AGE_RANGE_18_34",
            "AGE_RANGE_18_44",
            "AGE_RANGE_18_49",
            "AGE_RANGE_18_54",
            "AGE_RANGE_18_64",
            "AGE_RANGE_18_65_UP",
            "AGE_RANGE_21_34",
            "AGE_RANGE_21_44",
            "AGE_RANGE_21_49",
            "AGE_RANGE_21_54",
            "AGE_RANGE_21_64",
            "AGE_RANGE_21_65_UP",
            "AGE_RANGE_25_34",
            "AGE_RANGE_25_44",
            "AGE_RANGE_25_49",
            "AGE_RANGE_25_54",
            "AGE_RANGE_25_64",
            "AGE_RANGE_25_65_UP",
            "AGE_RANGE_35_44",
            "AGE_RANGE_35_49",
            "AGE_RANGE_35_54",
            "AGE_RANGE_35_64",
            "AGE_RANGE_35_65_UP",
            "AGE_RANGE_45_54",
            "AGE_RANGE_45_64",
            "AGE_RANGE_45_65_UP",
            "AGE_RANGE_50_65_UP",
            "AGE_RANGE_55_64",
            "AGE_RANGE_55_65_UP",
            "AGE_RANGE_65_UP"
          ],
          "description": "Targeted age range. An unset value is equivalent to targeting all ages.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Between 18 and 24 years old.",
            "Between 18 and 34 years old.",
            "Between 18 and 44 years old.",
            "Between 18 and 49 years old.",
            "Between 18 and 54 years old.",
            "Between 18 and 64 years old.",
            "Between 18 and 65+ years old.",
            "Between 21 and 34 years old.",
            "Between 21 and 44 years old.",
            "Between 21 and 49 years old.",
            "Between 21 and 54 years old.",
            "Between 21 and 64 years old.",
            "Between 21 and 65+ years old.",
            "Between 25 and 34 years old.",
            "Between 25 and 44 years old.",
            "Between 25 and 49 years old.",
            "Between 25 and 54 years old.",
            "Between 25 and 64 years old.",
            "Between 25 and 65+ years old.",
            "Between 35 and 44 years old.",
            "Between 35 and 49 years old.",
            "Between 35 and 54 years old.",
            "Between 35 and 64 years old.",
            "Between 35 and 65+ years old.",
            "Between 45 and 54 years old.",
            "Between 45 and 64 years old.",
            "Between 45 and 65+ years old.",
            "Between 50 and 65+ years old.",
            "Between 55 and 64 years old.",
            "Between 55 and 65+ years old.",
            "65 years old and beyond."
          ],
          "type": "string"
        },
        "devices": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__DeviceInfo"
          },
          "description": "Targeted devices. If not specified, targets all applicable devices. Applicable devices vary by product and region and can be obtained from ReachPlanService.ListPlannableProducts.",
          "type": "array"
        },
        "genders": {
          "description": "Targeted genders. An unset value is equivalent to targeting MALE and FEMALE.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__GenderInfo"
          },
          "type": "array"
        },
        "plannableLocationIds": {
          "type": "array",
          "description": "The list of plannable location IDs to target with this forecast. If more than one ID is provided, all IDs must have the same `parent_country_id`. Planning for more than `parent_county` is not supported. Plannable location IDs and their `parent_country_id` can be obtained from ReachPlanService.ListPlannableLocations. Requests must set either this field or `plannable_location_id`.",
          "items": {
            "type": "string"
          }
        },
        "plannableLocationId": {
          "description": "The ID of the selected location. Plannable location IDs can be obtained from ReachPlanService.ListPlannableLocations. Requests must set either this field or `plannable_location_ids`. This field is deprecated and will be removed in a future release. Use `plannable_location_ids` instead.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__Targeting",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__HotelReconciliation": {
      "description": "A hotel reconciliation. It contains conversion information from Hotel bookings to reconcile with advertiser records. These rows may be updated or canceled before billing through Bulk Uploads.",
      "properties": {
        "campaign": {
          "description": "Output only. The resource name for the Campaign associated with the conversion.",
          "readOnly": true,
          "type": "string"
        },
        "checkOutDate": {
          "type": "string",
          "description": "Output only. Check-out date recorded when the booking is made. If the check-in date is modified at reconciliation, the revised date will then take the place of the original date in this column. Format is YYYY-MM-DD.",
          "readOnly": true
        },
        "status": {
          "type": "string",
          "description": "Required. Output only. Current status of a booking with regards to reconciliation and billing. Bookings should be reconciled within 45 days after the check-out date. Any booking not reconciled within 45 days will be billed at its original value.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Bookings are for a future date, or a stay is underway but the check-out date hasn't passed. An active reservation can't be reconciled.",
            "Check-out has already taken place, or the booked dates have passed without cancellation. Bookings that are not reconciled within 45 days of the check-out date are billed based on the original booking price.",
            "These bookings have been reconciled. Reconciled bookings are billed 45 days after the check-out date.",
            "This booking was marked as canceled. Canceled stays with a value greater than zero (due to minimum stay rules or cancellation fees) are billed 45 days after the check-out date."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "RESERVATION_ENABLED",
            "RECONCILIATION_NEEDED",
            "RECONCILED",
            "CANCELED"
          ]
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the hotel reconciliation. Hotel reconciliation resource names have the form: `customers/{customer_id}/hotelReconciliations/{commission_id}`"
        },
        "hotelCenterId": {
          "description": "Output only. Identifier for the Hotel Center account which provides the rates for the Hotel campaign.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "billed": {
          "description": "Output only. Whether a given booking has been billed. Once billed, a booking can't be modified.",
          "readOnly": true,
          "type": "boolean"
        },
        "checkInDate": {
          "type": "string",
          "description": "Output only. Check-in date recorded when the booking is made. If the check-in date is modified at reconciliation, the revised date will then take the place of the original date in this column. Format is YYYY-MM-DD.",
          "readOnly": true
        },
        "reconciledValueMicros": {
          "description": "Required. Output only. Reconciled value is the final value of a booking as paid by the guest. If original booking value changes for any reason, such as itinerary changes or room upsells, the reconciled value should be the full final amount collected. If a booking is canceled, the reconciled value should include the value of any cancellation fees or non-refundable nights charged. Value is in millionths of the base unit currency. For example, $12.35 would be represented as 12350000. Currency unit is in the default customer currency.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "hotelId": {
          "description": "Output only. Unique identifier for the booked property, as provided in the Hotel Center feed. The hotel ID comes from the 'ID' parameter of the conversion tracking tag.",
          "readOnly": true,
          "type": "string"
        },
        "commissionId": {
          "type": "string",
          "description": "Required. Output only. The commission ID is Google's ID for this booking. Every booking event is assigned a Commission ID to help you match it to a guest stay.",
          "readOnly": true
        },
        "orderId": {
          "description": "Output only. The order ID is the identifier for this booking as provided in the 'transaction_id' parameter of the conversion tracking tag.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__HotelReconciliation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_AccessibleBiddingStrategy_MaximizeConversions": {
      "description": "An automated bidding strategy to help get the most conversions for your campaigns while spending your budget.",
      "properties": {
        "targetCpaMicros": {
          "description": "Output only. The target cost per acquisition (CPA) option. This is the average amount that you would like to spend per acquisition.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_AccessibleBiddingStrategy_MaximizeConversions",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__VideoAdInfo": {
      "id": "GoogleAdsGoogleadsV24Common__VideoAdInfo",
      "type": "object",
      "description": "A video ad.",
      "properties": {
        "nonSkippable": {
          "description": "Video non-skippable in-stream ad format.",
          "$ref": "GoogleAdsGoogleadsV24Common__VideoNonSkippableInStreamAdInfo"
        },
        "audio": {
          "description": "YouTube Audio ad format.",
          "$ref": "GoogleAdsGoogleadsV24Common__YouTubeAudioAdInfo"
        },
        "inStream": {
          "description": "Video TrueView in-stream ad format.",
          "$ref": "GoogleAdsGoogleadsV24Common__VideoTrueViewInStreamAdInfo"
        },
        "bumper": {
          "description": "Video bumper in-stream ad format.",
          "$ref": "GoogleAdsGoogleadsV24Common__VideoBumperInStreamAdInfo"
        },
        "inFeed": {
          "description": "In-feed video ad format.",
          "$ref": "GoogleAdsGoogleadsV24Common__InFeedVideoAdInfo"
        },
        "video": {
          "description": "The YouTube video assets used for the ad.",
          "$ref": "GoogleAdsGoogleadsV24Common__AdVideoAsset"
        },
        "outStream": {
          "description": "Video out-stream ad format.",
          "$ref": "GoogleAdsGoogleadsV24Common__VideoOutstreamAdInfo"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__TargetRestrictionOperation": {
      "description": "Operation to be performed on a target restriction list in a mutate.",
      "properties": {
        "operator": {
          "type": "string",
          "description": "Type of list operation to perform.",
          "enumDescriptions": [
            "Unspecified.",
            "Used for return value only. Represents value unknown in this version.",
            "Add the restriction to the existing restrictions.",
            "Remove the restriction from the existing restrictions."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADD",
            "REMOVE"
          ]
        },
        "value": {
          "description": "The target restriction being added to or removed from the list.",
          "$ref": "GoogleAdsGoogleadsV24Common__TargetRestriction"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__TargetRestrictionOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__ListAudienceInsightsAttributesRequest": {
      "description": "Request message for AudienceInsightsService.ListAudienceInsightsAttributes.",
      "properties": {
        "customerInsightsGroup": {
          "type": "string",
          "description": "The name of the customer being planned for. This is a user-defined value."
        },
        "locationCountryFilters": {
          "type": "array",
          "description": "If SUB_COUNTRY_LOCATION attributes are one of the requested dimensions and this field is present, then the SUB_COUNTRY_LOCATION attributes returned will be located in these countries. If this field is absent, then location attributes are not filtered by country. Setting this field when SUB_COUNTRY_LOCATION attributes are not requested will return an error.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__LocationInfo"
          }
        },
        "insightsApplicationInfo": {
          "description": "Optional. Additional information on the application issuing the request.",
          "$ref": "GoogleAdsGoogleadsV24Common__AdditionalApplicationInfo"
        },
        "dimensions": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "CATEGORY",
              "KNOWLEDGE_GRAPH",
              "GEO_TARGET_COUNTRY",
              "SUB_COUNTRY_LOCATION",
              "YOUTUBE_CHANNEL",
              "AFFINITY_USER_INTEREST",
              "IN_MARKET_USER_INTEREST",
              "PARENTAL_STATUS",
              "INCOME_RANGE",
              "AGE_RANGE",
              "GENDER",
              "YOUTUBE_VIDEO",
              "DEVICE",
              "YOUTUBE_LINEUP",
              "USER_LIST",
              "LIFE_EVENT_USER_INTEREST"
            ],
            "enumDescriptions": [
              "Not specified.",
              "The value is unknown in this version.",
              "A Product & Service category.",
              "A Knowledge Graph entity.",
              "A country, represented by a geo target.",
              "A geographic location within a country.",
              "A YouTube channel.",
              "An Affinity UserInterest.",
              "An In-Market UserInterest.",
              "A Parental Status value (parent, or not a parent).",
              "A household income percentile range.",
              "An age range.",
              "A gender.",
              "A YouTube video.",
              "A device type, such as Mobile, Desktop, Tablet, and Connected TV.",
              "A YouTube Lineup.",
              "A User List.",
              "A Life Event UserInterest."
            ]
          },
          "description": "Required. The types of attributes to be returned. Supported dimensions are CATEGORY, KNOWLEDGE_GRAPH, DEVICE, GEO_TARGET_COUNTRY, SUB_COUNTRY_LOCATION, YOUTUBE_LINEUP, AFFINITY_USER_INTEREST, IN_MARKET_USER_INTEREST, LIFE_EVENT_USER_INTEREST, PARENTAL_STATUS, INCOME_RANGE, AGE_RANGE, and GENDER."
        },
        "queryText": {
          "type": "string",
          "description": "Required. A free text query. If the requested dimensions include Attributes CATEGORY or KNOWLEDGE_GRAPH, then the attributes returned for those dimensions will match or be related to this string. For other dimensions, this field is ignored and all available attributes are returned."
        },
        "youtubeReachLocation": {
          "description": "If present, potential YouTube reach estimates within the specified market will be returned for attributes for which they are available. Reach is only available for the AGE_RANGE, GENDER, AFFINITY_USER_INTEREST and IN_MARKET_USER_INTEREST dimensions, and may not be available for every attribute of those dimensions in every market.",
          "$ref": "GoogleAdsGoogleadsV24Common__LocationInfo"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__ListAudienceInsightsAttributesRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__BiddingSeasonalityAdjustmentOperation": {
      "description": "A single operation (create, remove, update) on a seasonality adjustment.",
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new seasonality adjustment.",
          "$ref": "GoogleAdsGoogleadsV24Resources__BiddingSeasonalityAdjustment"
        },
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask",
          "type": "string"
        },
        "update": {
          "description": "Update operation: The seasonality adjustment is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV24Resources__BiddingSeasonalityAdjustment"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed seasonality adjustment is expected, in this format: `customers/{customer_id}/biddingSeasonalityAdjustments/{seasonality_adjustment_id}`"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__BiddingSeasonalityAdjustmentOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_CampaignVideoCampaignSettings_BookingDetails": {
      "id": "GoogleAdsGoogleadsV24Resources_CampaignVideoCampaignSettings_BookingDetails",
      "type": "object",
      "description": "Container for booking details for campaigns with the FIXED_CPM or FIXED_SHARE_OF_VOICE bidding strategies.",
      "properties": {
        "holdExpirationDateTime": {
          "type": "string",
          "description": "Output only. Time until which booked inventory will be held or has been held for this campaign. Available for status HELD and HOLD_EXPIRED. Format is \"yyyy-MM-dd HH:mm:ss\" in the customer's time zone.",
          "readOnly": true
        },
        "cancellationDateTime": {
          "type": "string",
          "description": "Output only. Time when the booked inventory of this campaign will be cancelled or has been cancelled. Available for primary status NOT_ELIGIBLE if the campaign will be cancelled and for primary status reason BOOKING_CANCELLED. Format is \"yyyy-MM-dd HH:mm:ss\" in the customer's time zone.",
          "readOnly": true
        },
        "status": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BOOKED",
            "HELD",
            "CAMPAIGN_ENDED",
            "HOLD_EXPIRED",
            "BOOKING_CANCELLED"
          ],
          "description": "Output only. The status of the booking.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The booking is active and holds inventory for the campaign.",
            "The campaign is holding inventory, but the booking is not confirmed.",
            "The campaign has ended and is no longer holding inventory.",
            "The hold on the inventory has expired.",
            "The campaign was booked, but was in a non-servable state for too long and the booking was cancelled by the system."
          ],
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateAdGroupCriterionCustomizersResponse": {
      "id": "GoogleAdsGoogleadsV24Services__MutateAdGroupCriterionCustomizersResponse",
      "type": "object",
      "description": "Response message for an ad group criterion customizer mutate.",
      "properties": {
        "results": {
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateAdGroupCriterionCustomizerResult"
          },
          "type": "array"
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__ZaloBusinessMessageInfo": {
      "id": "GoogleAdsGoogleadsV24Common__ZaloBusinessMessageInfo",
      "type": "object",
      "description": "Zalo information to use for messaging.",
      "properties": {
        "customName": {
          "description": "Custom name generated by the advertiser for their Zalo Account. These names will usually be registered brands or trademarks.",
          "type": "string"
        },
        "oaId": {
          "type": "string",
          "description": "Zalo Official Account ID of the advertiser.",
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__GenerateInsightsFinderReportRequest": {
      "description": "Request message for AudienceInsightsService.GenerateInsightsFinderReport.",
      "properties": {
        "baselineAudience": {
          "description": "Required. A baseline audience for this report, typically all people in a region.",
          "$ref": "GoogleAdsGoogleadsV24Services__InsightsAudience"
        },
        "customerInsightsGroup": {
          "type": "string",
          "description": "The name of the customer being planned for. This is a user-defined value."
        },
        "specificAudience": {
          "description": "Required. The specific audience of interest for this report. The insights in the report will be based on attributes more prevalent in this audience than in the report's baseline audience.",
          "$ref": "GoogleAdsGoogleadsV24Services__InsightsAudience"
        },
        "insightsApplicationInfo": {
          "description": "Optional. Additional information on the application issuing the request.",
          "$ref": "GoogleAdsGoogleadsV24Common__AdditionalApplicationInfo"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__GenerateInsightsFinderReportRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateCampaignDraftResult": {
      "id": "GoogleAdsGoogleadsV24Services__MutateCampaignDraftResult",
      "type": "object",
      "description": "The result for the campaign draft mutate.",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        },
        "campaignDraft": {
          "description": "The mutated campaign draft with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV24Resources__CampaignDraft"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__LocationSet": {
      "id": "GoogleAdsGoogleadsV24Common__LocationSet",
      "type": "object",
      "description": "Data related to location set. One of the Google Business Profile (previously known as Google My Business) data, Chain data, and map location data need to be specified.",
      "properties": {
        "mapsLocationSet": {
          "description": "Only set if locations are synced based on selected maps locations",
          "$ref": "GoogleAdsGoogleadsV24Common__MapsLocationSet"
        },
        "businessProfileLocationSet": {
          "description": "Data used to configure a location set populated from Google Business Profile locations.",
          "$ref": "GoogleAdsGoogleadsV24Common__BusinessProfileLocationSet"
        },
        "locationOwnershipType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BUSINESS_OWNER",
            "AFFILIATE"
          ],
          "description": "Required. Immutable. Location Ownership Type (owned location or affiliate location).",
          "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)."
          ],
          "type": "string"
        },
        "chainLocationSet": {
          "description": "Data used to configure a location on chain set populated with the specified chains.",
          "$ref": "GoogleAdsGoogleadsV24Common__ChainSet"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateCustomerCustomizersRequest": {
      "description": "Request message for CustomerCustomizerService.MutateCustomerCustomizers.",
      "properties": {
        "operations": {
          "description": "Required. The list of operations to perform on individual customer customizers.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__CustomerCustomizerOperation"
          },
          "type": "array"
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "responseContentType": {
          "type": "string",
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ]
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateCustomerCustomizersRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services_GenerateCreatorInsightsRequest_YouTubeChannels": {
      "id": "GoogleAdsGoogleadsV24Services_GenerateCreatorInsightsRequest_YouTubeChannels",
      "type": "object",
      "description": "A collection of YouTube Channels.",
      "properties": {
        "youtubeChannels": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__YouTubeChannelInfo"
          },
          "description": "Optional. The YouTube Channel IDs to fetch creator insights for."
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__CustomerLifecycleGoal": {
      "id": "GoogleAdsGoogleadsV24Resources__CustomerLifecycleGoal",
      "type": "object",
      "description": "Account level customer lifecycle goal settings.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the customer lifecycle goal. Customer lifecycle resource names have the form: `customers/{customer_id}/customerLifecycleGoal`"
        },
        "ownerCustomer": {
          "description": "Output only. The resource name of the customer which owns the lifecycle goal.",
          "readOnly": true,
          "type": "string"
        },
        "customerAcquisitionGoalValueSettings": {
          "description": "Output only. Customer acquisition goal customer level value settings.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Common__LifecycleGoalValueSettings"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__LocationAsset": {
      "id": "GoogleAdsGoogleadsV24Common__LocationAsset",
      "type": "object",
      "description": "A location asset.",
      "properties": {
        "businessProfileLocations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__BusinessProfileLocation"
          },
          "description": "The list of business locations for the customer. This will only be returned if the Location Asset is syncing from the Business Profile account. It is possible to have multiple Business Profile listings under the same account that point to the same Place ID."
        },
        "locationOwnershipType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BUSINESS_OWNER",
            "AFFILIATE"
          ],
          "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.",
          "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)."
          ],
          "type": "string"
        },
        "placeId": {
          "type": "string",
          "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."
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__ChainSet": {
      "id": "GoogleAdsGoogleadsV24Common__ChainSet",
      "type": "object",
      "description": "Data used to configure a location set populated with the specified chains.",
      "properties": {
        "chains": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__ChainFilter"
          },
          "description": "Required. A list of chain level filters, all filters are OR'ed together."
        },
        "relationshipType": {
          "type": "string",
          "description": "Required. Immutable. Relationship type the specified chains have with this advertiser.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Auto dealer relationship.",
            "General retailer relationship."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AUTO_DEALERS",
            "GENERAL_RETAILERS"
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV24Services_GenerateRecommendationsRequest_BudgetInfo": {
      "id": "GoogleAdsGoogleadsV24Services_GenerateRecommendationsRequest_BudgetInfo",
      "type": "object",
      "description": "Current budget information of the campaign.",
      "properties": {
        "currentBudget": {
          "type": "string",
          "description": "Required. Current budget amount in micros. This field is necessary for the following recommendation_types if budget_info is set: CAMPAIGN_BUDGET",
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__TravelAdInfo": {
      "description": "A travel ad.",
      "properties": {},
      "id": "GoogleAdsGoogleadsV24Common__TravelAdInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_ListingGroupFilterDimension_ProductCustomAttribute": {
      "id": "GoogleAdsGoogleadsV24Resources_ListingGroupFilterDimension_ProductCustomAttribute",
      "type": "object",
      "description": "Custom attribute of a product offer.",
      "properties": {
        "index": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INDEX0",
            "INDEX1",
            "INDEX2",
            "INDEX3",
            "INDEX4"
          ],
          "description": "Indicates the index of the custom attribute.",
          "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."
          ]
        },
        "value": {
          "description": "String value of the product custom attribute.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_Recommendation_LowerTargetRoasRecommendation": {
      "description": "Recommendation to lower Target ROAS.",
      "properties": {
        "targetAdjustment": {
          "description": "Output only. The relevant information describing the recommended target adjustment.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_TargetAdjustmentInfo"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_Recommendation_LowerTargetRoasRecommendation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateLabelsRequest": {
      "id": "GoogleAdsGoogleadsV24Services__MutateLabelsRequest",
      "type": "object",
      "description": "Request message for LabelService.MutateLabels.",
      "properties": {
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "operations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__LabelOperation"
          },
          "description": "Required. The list of operations to perform on labels.",
          "type": "array"
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "responseContentType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__ConversionValueRule": {
      "id": "GoogleAdsGoogleadsV24Resources__ConversionValueRule",
      "type": "object",
      "description": "A conversion value rule",
      "properties": {
        "deviceCondition": {
          "description": "Condition for device type that must be satisfied for the value rule to apply.",
          "$ref": "GoogleAdsGoogleadsV24Resources_ConversionValueRule_ValueRuleDeviceCondition"
        },
        "itineraryCondition": {
          "description": "Condition for itinerary that must be satisfied for the value rule to apply.",
          "$ref": "GoogleAdsGoogleadsV24Resources_ConversionValueRule_ValueRuleItineraryCondition"
        },
        "id": {
          "description": "Output only. The ID of the conversion value rule.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the conversion value rule. Conversion value rule resource names have the form: `customers/{customer_id}/conversionValueRules/{conversion_value_rule_id}`"
        },
        "audienceCondition": {
          "description": "Condition for audience that must be satisfied for the value rule to apply.",
          "$ref": "GoogleAdsGoogleadsV24Resources_ConversionValueRule_ValueRuleAudienceCondition"
        },
        "status": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED",
            "PAUSED"
          ],
          "description": "The status of the conversion value rule.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Conversion Value Rule is enabled and can be applied.",
            "Conversion Value Rule is permanently deleted and can't be applied.",
            "Conversion Value Rule is paused, but can be re-enabled."
          ]
        },
        "geoLocationCondition": {
          "description": "Condition for Geo location that must be satisfied for the value rule to apply.",
          "$ref": "GoogleAdsGoogleadsV24Resources_ConversionValueRule_ValueRuleGeoLocationCondition"
        },
        "ownerCustomer": {
          "description": "Output only. The resource name of the conversion value rule's owner customer. When the value rule is inherited from a manager customer, owner_customer will be the resource name of the manager whereas the customer in the resource_name will be of the requesting serving customer. ** Read-only **",
          "readOnly": true,
          "type": "string"
        },
        "action": {
          "description": "Action applied when the rule is triggered.",
          "$ref": "GoogleAdsGoogleadsV24Resources_ConversionValueRule_ValueRuleAction"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__AdGroupKeywordSuggestion": {
      "id": "GoogleAdsGoogleadsV24Services__AdGroupKeywordSuggestion",
      "type": "object",
      "description": "The suggested text and AdGroup/Campaign pairing for a given keyword.",
      "properties": {
        "suggestedKeywordText": {
          "description": "The normalized version of keyword_text for BROAD/EXACT/PHRASE suggestions.",
          "type": "string"
        },
        "suggestedCampaign": {
          "description": "The suggested Campaign for the keyword. Resource name format: `customers/{customer_id}/campaigns/{campaign_id}`",
          "type": "string"
        },
        "keywordText": {
          "description": "The original keyword text.",
          "type": "string"
        },
        "suggestedMatchType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EXACT",
            "PHRASE",
            "BROAD"
          ],
          "description": "The suggested keyword match type.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Exact match.",
            "Phrase match.",
            "Broad match."
          ]
        },
        "suggestedAdGroup": {
          "type": "string",
          "description": "The suggested AdGroup for the keyword. Resource name format: `customers/{customer_id}/adGroups/{ad_group_id}`"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services_DismissRecommendationRequest_DismissRecommendationOperation": {
      "id": "GoogleAdsGoogleadsV24Services_DismissRecommendationRequest_DismissRecommendationOperation",
      "type": "object",
      "description": "Operation to dismiss a single recommendation identified by resource_name.",
      "properties": {
        "resourceName": {
          "description": "The resource name of the recommendation to dismiss.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MoveManagerLinkResponse": {
      "id": "GoogleAdsGoogleadsV24Services__MoveManagerLinkResponse",
      "type": "object",
      "description": "Response message for a CustomerManagerLink moveManagerLink.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations. Represents a CustomerManagerLink resource of the newly created link between client customer and new manager customer."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__SuggestKeywordThemeConstantsResponse": {
      "description": "Response message for KeywordThemeConstantService.SuggestKeywordThemeConstants.",
      "properties": {
        "keywordThemeConstants": {
          "type": "array",
          "description": "Smart Campaign keyword theme suggestions.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Resources__KeywordThemeConstant"
          }
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__SuggestKeywordThemeConstantsResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__IpBlockInfo": {
      "description": "An IpBlock criterion used for excluding IP addresses. We support excluding individual IP addresses or CIDR blocks. Create one IpBlockInfo criterion for each individual IP address or CIDR block you want to exclude. You can exclude up to 500 IP addresses per campaign. For more details, see [Exclude IP addresses](//support.google.com/google-ads/answer/2456098). IPv4 examples: * Individual address: 192.168.0.1 * Individual address as CIDR block: 192.168.0.1/32 * CIDR block: 192.168.0.0/24 IPv6 examples: * Individual address: 2001:db8:a0b:12f0::1 * Individual address as CIDR block: 2001:db8:a0b:12f0::1/128 * CIDR block: 2001:db8::/48",
      "properties": {
        "ipAddress": {
          "description": "The IP address or the CIDR block to be excluded.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__IpBlockInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_Campaign_AiMaxSetting": {
      "description": "Settings for AI Max in search campaigns.",
      "properties": {
        "enableAiMax": {
          "type": "boolean",
          "description": "Controls whether or not AI Max features are served for this campaign. Individual AI Max features are enabled or disabled by their respective settings. But if enable_ai_max is set to false or cleared, then no AI Max features will serve for this campaign, regardless of the other settings. Search Term Matching is enabled by default when AI Max is enabled, and can be disabled at the ad group level."
        },
        "bundlingRequired": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NOT_REQUIRED",
            "REQUIRED"
          ],
          "description": "Output only. Indicates whether a search campaign has adopted AI Max before, and is required to have AI Max enabled to adopt campaign-level text asset automation and brand list targeting in all API versions.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Search campaign is using text asset automation or brand list targeting, and AI Max is not required to be enabled to serve these features.",
            "AI Max is required to be enabled for this search campaign to serve existing text asset automation and brand list targeting, or to add new text asset automation and brand list targeting settings."
          ]
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_Campaign_AiMaxSetting",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__ThirdPartyAppAnalyticsLink": {
      "description": "A data sharing connection, allowing the import of third party app analytics into a Google Ads Customer.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the third party app analytics link. Third party app analytics link resource names have the form: `customers/{customer_id}/thirdPartyAppAnalyticsLinks/{account_link_id}`"
        },
        "shareableLinkId": {
          "type": "string",
          "description": "Output only. The shareable link ID that should be provided to the third party when setting up app analytics. This is able to be regenerated using regenerate method in the ThirdPartyAppAnalyticsLinkService.",
          "readOnly": true
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__ThirdPartyAppAnalyticsLink",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_Recommendation_ResponsiveSearchAdRecommendation": {
      "id": "GoogleAdsGoogleadsV24Resources_Recommendation_ResponsiveSearchAdRecommendation",
      "type": "object",
      "description": "The add responsive search ad recommendation.",
      "properties": {
        "ad": {
          "description": "Output only. Recommended ad.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources__Ad"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__FixedCpmTargetFrequencyGoalInfo": {
      "description": "Target frequency bidding goal details for Fixed CPM bidding strategy. Only relevant if the goal of the bidding strategy is `TARGET_FREQUENCY`.",
      "properties": {
        "targetCount": {
          "description": "Target frequency count represents the number of times an advertiser wants to show the ad to target a single user.",
          "format": "int64",
          "type": "string"
        },
        "timeUnit": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MONTHLY"
          ],
          "description": "Time window expressing the period over which you want to reach the specified target_count.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Optimize bidding to reach target frequency in 30 days."
          ],
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__FixedCpmTargetFrequencyGoalInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__ExperimentOperation": {
      "description": "A single operation on an experiment.",
      "properties": {
        "updateMask": {
          "type": "string",
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask"
        },
        "update": {
          "description": "Update operation: The experiment is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV24Resources__Experiment"
        },
        "remove": {
          "description": "Remove operation: The experiment is expected to have a valid resource name, in this format: `customers/{customer_id}/experiments/{campaign_experiment_id}`",
          "type": "string"
        },
        "create": {
          "description": "Create operation",
          "$ref": "GoogleAdsGoogleadsV24Resources__Experiment"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__ExperimentOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__AudienceInsightsDimensions": {
      "id": "GoogleAdsGoogleadsV24Services__AudienceInsightsDimensions",
      "type": "object",
      "description": "A collection of dimensions to be used for generating insights.",
      "properties": {
        "dimensions": {
          "type": "array",
          "items": {
            "enumDescriptions": [
              "Not specified.",
              "The value is unknown in this version.",
              "A Product & Service category.",
              "A Knowledge Graph entity.",
              "A country, represented by a geo target.",
              "A geographic location within a country.",
              "A YouTube channel.",
              "An Affinity UserInterest.",
              "An In-Market UserInterest.",
              "A Parental Status value (parent, or not a parent).",
              "A household income percentile range.",
              "An age range.",
              "A gender.",
              "A YouTube video.",
              "A device type, such as Mobile, Desktop, Tablet, and Connected TV.",
              "A YouTube Lineup.",
              "A User List.",
              "A Life Event UserInterest."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "CATEGORY",
              "KNOWLEDGE_GRAPH",
              "GEO_TARGET_COUNTRY",
              "SUB_COUNTRY_LOCATION",
              "YOUTUBE_CHANNEL",
              "AFFINITY_USER_INTEREST",
              "IN_MARKET_USER_INTEREST",
              "PARENTAL_STATUS",
              "INCOME_RANGE",
              "AGE_RANGE",
              "GENDER",
              "YOUTUBE_VIDEO",
              "DEVICE",
              "YOUTUBE_LINEUP",
              "USER_LIST",
              "LIFE_EVENT_USER_INTEREST"
            ],
            "type": "string"
          },
          "description": "Required. A list of dimensions."
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__LeadFormCustomQuestionField": {
      "description": "One custom question input field instance within a form.",
      "properties": {
        "customQuestionText": {
          "description": "The exact custom question field text (for example, \"What kind of vehicle do you have?\").",
          "type": "string"
        },
        "hasLocationAnswer": {
          "description": "Answer configuration for location question. If true, campaign/account level location data (state, city, business name etc) will be rendered on the Lead Form. Starting V13.1, has_location_answer can only be set for \"What is your preferred dealership?\" question, for advertisers with Location Assets setup at campaign/account level.",
          "type": "boolean"
        },
        "singleChoiceAnswers": {
          "description": "Answer configuration for a single choice question. Minimum of 2 answers and maximum of 12 allowed.",
          "$ref": "GoogleAdsGoogleadsV24Common__LeadFormSingleChoiceAnswers"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__LeadFormCustomQuestionField",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__ActivityIdInfo": {
      "id": "GoogleAdsGoogleadsV24Common__ActivityIdInfo",
      "type": "object",
      "description": "Advertiser-specific activity ID.",
      "properties": {
        "value": {
          "description": "String value of the activity ID.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateCustomConversionGoalsRequest": {
      "id": "GoogleAdsGoogleadsV24Services__MutateCustomConversionGoalsRequest",
      "type": "object",
      "description": "Request message for CustomConversionGoalService.MutateCustomConversionGoals.",
      "properties": {
        "operations": {
          "description": "Required. The list of operations to perform on individual custom conversion goal.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__CustomConversionGoalOperation"
          },
          "type": "array"
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "responseContentType": {
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_Campaign_HotelSettingInfo": {
      "description": "Campaign-level settings for hotel ads.",
      "properties": {
        "hotelCenterId": {
          "type": "string",
          "description": "The linked Hotel Center account.",
          "format": "int64"
        },
        "disableHotelSetting": {
          "type": "boolean",
          "description": "Disable the optional hotel setting. This field is currently supported only for Demand Gen campaigns."
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_Campaign_HotelSettingInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__UploadUserDataRequest": {
      "id": "GoogleAdsGoogleadsV24Services__UploadUserDataRequest",
      "type": "object",
      "description": "Request message for UserDataService.UploadUserData",
      "properties": {
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__UserDataOperation"
          },
          "description": "Required. The list of operations to be done."
        },
        "customerMatchUserListMetadata": {
          "description": "Metadata for data updates to a Customer Match user list.",
          "$ref": "GoogleAdsGoogleadsV24Common__CustomerMatchUserListMetadata"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__BookCampaignsResponse": {
      "description": "Response message for ReservationService.BookCampaigns.",
      "properties": {
        "result": {
          "description": "The result of the book campaigns operation.",
          "$ref": "GoogleAdsGoogleadsV24Actions__BookCampaignsResult"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__BookCampaignsResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateCustomerUserAccessInvitationRequest": {
      "id": "GoogleAdsGoogleadsV24Services__MutateCustomerUserAccessInvitationRequest",
      "type": "object",
      "description": "Request message for CustomerUserAccessInvitationService.MutateCustomerUserAccessInvitation",
      "properties": {
        "operation": {
          "description": "Required. The operation to perform on the access invitation",
          "$ref": "GoogleAdsGoogleadsV24Services__CustomerUserAccessInvitationOperation"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__CampaignCriterion": {
      "description": "A campaign criterion.",
      "properties": {
        "operatingSystemVersion": {
          "description": "Immutable. Operating system version.",
          "$ref": "GoogleAdsGoogleadsV24Common__OperatingSystemVersionInfo"
        },
        "placement": {
          "description": "Immutable. Placement.",
          "$ref": "GoogleAdsGoogleadsV24Common__PlacementInfo"
        },
        "brandList": {
          "description": "Immutable. Brand list campaign criterion.",
          "$ref": "GoogleAdsGoogleadsV24Common__BrandListInfo"
        },
        "mobileAppCategory": {
          "description": "Immutable. Mobile app category.",
          "$ref": "GoogleAdsGoogleadsV24Common__MobileAppCategoryInfo"
        },
        "adSchedule": {
          "description": "Immutable. Ad Schedule.",
          "$ref": "GoogleAdsGoogleadsV24Common__AdScheduleInfo"
        },
        "mobileApplication": {
          "description": "Immutable. Mobile application.",
          "$ref": "GoogleAdsGoogleadsV24Common__MobileApplicationInfo"
        },
        "localServiceId": {
          "description": "Immutable. GLS service campaign criterion.",
          "$ref": "GoogleAdsGoogleadsV24Common__LocalServiceIdInfo"
        },
        "criterionId": {
          "type": "string",
          "description": "Output only. The ID of the criterion. This field is ignored during mutate.",
          "readOnly": true,
          "format": "int64"
        },
        "language": {
          "description": "Immutable. Language.",
          "$ref": "GoogleAdsGoogleadsV24Common__LanguageInfo"
        },
        "youtubeChannel": {
          "description": "Immutable. YouTube Channel.",
          "$ref": "GoogleAdsGoogleadsV24Common__YouTubeChannelInfo"
        },
        "keywordTheme": {
          "description": "Immutable. Smart Campaign Keyword Theme.",
          "$ref": "GoogleAdsGoogleadsV24Common__KeywordThemeInfo"
        },
        "keyword": {
          "description": "Immutable. Keyword.",
          "$ref": "GoogleAdsGoogleadsV24Common__KeywordInfo"
        },
        "userList": {
          "description": "Immutable. User List.",
          "$ref": "GoogleAdsGoogleadsV24Common__UserListInfo"
        },
        "bidModifier": {
          "description": "The modifier for the bids when the criterion matches. The modifier must be in the range: 0.1 - 10.0. Most targetable criteria types support modifiers. Use 0 to opt out of a Device type.",
          "format": "float",
          "type": "number"
        },
        "ipBlock": {
          "description": "Immutable. IpBlock. You can exclude up to 500 IP addresses per campaign.",
          "$ref": "GoogleAdsGoogleadsV24Common__IpBlockInfo"
        },
        "location": {
          "description": "Immutable. Location.",
          "$ref": "GoogleAdsGoogleadsV24Common__LocationInfo"
        },
        "listingScope": {
          "description": "Immutable. Listing scope.",
          "$ref": "GoogleAdsGoogleadsV24Common__ListingScopeInfo"
        },
        "webpageList": {
          "description": "Immutable. Webpage list. This criterion is not publicly available.",
          "$ref": "GoogleAdsGoogleadsV24Common__WebpageListInfo"
        },
        "contentLabel": {
          "description": "Immutable. ContentLabel.",
          "$ref": "GoogleAdsGoogleadsV24Common__ContentLabelInfo"
        },
        "mobileDevice": {
          "description": "Immutable. Mobile Device.",
          "$ref": "GoogleAdsGoogleadsV24Common__MobileDeviceInfo"
        },
        "customAudience": {
          "description": "Immutable. Custom Audience",
          "$ref": "GoogleAdsGoogleadsV24Common__CustomAudienceInfo"
        },
        "locationGroup": {
          "description": "Immutable. Location Group",
          "$ref": "GoogleAdsGoogleadsV24Common__LocationGroupInfo"
        },
        "displayName": {
          "description": "Output only. The display name of the criterion. This field is ignored for mutates.",
          "readOnly": true,
          "type": "string"
        },
        "type": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "KEYWORD",
            "PLACEMENT",
            "MOBILE_APP_CATEGORY",
            "MOBILE_APPLICATION",
            "DEVICE",
            "LOCATION",
            "LISTING_GROUP",
            "AD_SCHEDULE",
            "AGE_RANGE",
            "GENDER",
            "INCOME_RANGE",
            "PARENTAL_STATUS",
            "YOUTUBE_VIDEO",
            "YOUTUBE_CHANNEL",
            "USER_LIST",
            "PROXIMITY",
            "TOPIC",
            "LISTING_SCOPE",
            "LANGUAGE",
            "IP_BLOCK",
            "CONTENT_LABEL",
            "CARRIER",
            "USER_INTEREST",
            "WEBPAGE",
            "OPERATING_SYSTEM_VERSION",
            "APP_PAYMENT_MODEL",
            "MOBILE_DEVICE",
            "CUSTOM_AFFINITY",
            "CUSTOM_INTENT",
            "LOCATION_GROUP",
            "CUSTOM_AUDIENCE",
            "COMBINED_AUDIENCE",
            "KEYWORD_THEME",
            "AUDIENCE",
            "NEGATIVE_KEYWORD_LIST",
            "LOCAL_SERVICE_ID",
            "SEARCH_THEME",
            "BRAND",
            "BRAND_LIST",
            "LIFE_EVENT",
            "WEBPAGE_LIST",
            "VIDEO_LINEUP",
            "PLACEMENT_LIST",
            "VERTICAL_ADS_ITEM_GROUP_RULE_LIST",
            "VERTICAL_ADS_ITEM_GROUP_RULE",
            "RETAIL_FILTER_BUNDLE",
            "RETAIL_FILTER"
          ],
          "description": "Output only. The type of the criterion.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Keyword, for example, 'mars cruise'.",
            "Placement, also known as Website, for example, 'www.flowers4sale.com'",
            "Mobile application categories to target.",
            "Mobile applications to target.",
            "Devices to target.",
            "Locations to target.",
            "Listing groups to target.",
            "Ad Schedule.",
            "Age range.",
            "Gender.",
            "Income Range.",
            "Parental status.",
            "YouTube Video.",
            "YouTube Channel.",
            "User list.",
            "Proximity.",
            "A topic target on the display network (for example, \"Pets & Animals\").",
            "Listing scope to target.",
            "Language.",
            "IpBlock.",
            "Content Label for category exclusion.",
            "Carrier.",
            "A category the user is interested in.",
            "Webpage criterion for dynamic search ads.",
            "Operating system version.",
            "App payment model.",
            "Mobile device.",
            "Custom affinity.",
            "Custom intent.",
            "Location group.",
            "Custom audience",
            "Combined audience",
            "Smart Campaign keyword theme",
            "Audience",
            "Negative Keyword List",
            "Local Services Ads Service ID.",
            "Search Theme.",
            "Brand",
            "Brand List",
            "Life Event",
            "Webpage List",
            "Video lineup",
            "Placement List",
            "A list of rules for item groups in Vertical Ads.",
            "A rule for an item group in Vertical Ads.",
            "Retail Filter Bundle for linking a retail filter shared set to an ad group.",
            "Retail Filter for defining individual tag rules or expressions within a shared set."
          ],
          "type": "string"
        },
        "proximity": {
          "description": "Immutable. Proximity.",
          "$ref": "GoogleAdsGoogleadsV24Common__ProximityInfo"
        },
        "userInterest": {
          "description": "Immutable. User Interest.",
          "$ref": "GoogleAdsGoogleadsV24Common__UserInterestInfo"
        },
        "parentalStatus": {
          "description": "Immutable. Parental status.",
          "$ref": "GoogleAdsGoogleadsV24Common__ParentalStatusInfo"
        },
        "lifeEvent": {
          "description": "Immutable. Life event campaign criterion.",
          "$ref": "GoogleAdsGoogleadsV24Common__LifeEventInfo"
        },
        "negative": {
          "type": "boolean",
          "description": "Immutable. Whether to target (`false`) or exclude (`true`) the criterion."
        },
        "device": {
          "description": "Immutable. Device.",
          "$ref": "GoogleAdsGoogleadsV24Common__DeviceInfo"
        },
        "youtubeVideo": {
          "description": "Immutable. YouTube Video.",
          "$ref": "GoogleAdsGoogleadsV24Common__YouTubeVideoInfo"
        },
        "extendedDemographic": {
          "description": "Immutable. Extended demographic criterion.",
          "$ref": "GoogleAdsGoogleadsV24Common__ExtendedDemographicInfo"
        },
        "customAffinity": {
          "description": "Immutable. Custom Affinity.",
          "$ref": "GoogleAdsGoogleadsV24Common__CustomAffinityInfo"
        },
        "topic": {
          "description": "Immutable. Topic.",
          "$ref": "GoogleAdsGoogleadsV24Common__TopicInfo"
        },
        "ageRange": {
          "description": "Immutable. Age range.",
          "$ref": "GoogleAdsGoogleadsV24Common__AgeRangeInfo"
        },
        "combinedAudience": {
          "description": "Immutable. Combined Audience.",
          "$ref": "GoogleAdsGoogleadsV24Common__CombinedAudienceInfo"
        },
        "campaign": {
          "description": "Immutable. The campaign to which the criterion belongs.",
          "type": "string"
        },
        "status": {
          "type": "string",
          "description": "The status of the criterion.",
          "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"
          ]
        },
        "webpage": {
          "description": "Immutable. Webpage.",
          "$ref": "GoogleAdsGoogleadsV24Common__WebpageInfo"
        },
        "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"
        },
        "gender": {
          "description": "Immutable. Gender.",
          "$ref": "GoogleAdsGoogleadsV24Common__GenderInfo"
        },
        "incomeRange": {
          "description": "Immutable. Income range.",
          "$ref": "GoogleAdsGoogleadsV24Common__IncomeRangeInfo"
        },
        "videoLineup": {
          "description": "Immutable. Video lineup criterion.",
          "$ref": "GoogleAdsGoogleadsV24Common__VideoLineupInfo"
        },
        "carrier": {
          "description": "Immutable. Carrier.",
          "$ref": "GoogleAdsGoogleadsV24Common__CarrierInfo"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__CampaignCriterion",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__SimilarUserListInfo": {
      "id": "GoogleAdsGoogleadsV24Common__SimilarUserListInfo",
      "type": "object",
      "description": "SimilarUserList is a list of users which are similar to users from another UserList. These lists are read-only and automatically created by Google.",
      "properties": {
        "seedUserList": {
          "description": "Seed UserList from which this list is derived.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__UserAttribute": {
      "id": "GoogleAdsGoogleadsV24Common__UserAttribute",
      "type": "object",
      "description": "User attribute, can only be used with CUSTOMER_MATCH_WITH_ATTRIBUTES job type.",
      "properties": {
        "lifetimeValueBucket": {
          "type": "integer",
          "description": "Advertiser defined lifetime value bucket for the user. The valid range for a lifetime value bucket is from 1 (low) to 10 (high), except for remove operation where 0 will also be accepted.",
          "format": "int32"
        },
        "lifecycleStage": {
          "description": "Optional. Advertiser defined lifecycle stage for the user. The accepted values are \"Lead\", \"Active\" and \"Churned\".",
          "type": "string"
        },
        "firstPurchaseDateTime": {
          "description": "Optional. Timestamp of the first purchase made by the user. The format is YYYY-MM-DD HH:MM:SS[+/-HH:MM], where [+/-HH:MM] is an optional timezone offset from UTC. If the offset is absent, the API will use the account's timezone as default.",
          "type": "string"
        },
        "lastPurchaseDateTime": {
          "description": "Timestamp of the last purchase made by the user. The format is YYYY-MM-DD HH:MM:SS[+/-HH:MM], where [+/-HH:MM] is an optional timezone offset from UTC. If the offset is absent, the API will use the account's timezone as default.",
          "type": "string"
        },
        "shoppingLoyalty": {
          "description": "The shopping loyalty related data. Shopping utilizes this data to provide users with a better experience. Accessible only to merchants on the allow-list with the user's consent.",
          "$ref": "GoogleAdsGoogleadsV24Common__ShoppingLoyalty"
        },
        "lifetimeValueMicros": {
          "type": "string",
          "description": "Advertiser defined lifetime value for the user.",
          "format": "int64"
        },
        "averagePurchaseCount": {
          "description": "Advertiser defined average number of purchases that are made by the user in a 30 day period.",
          "format": "int32",
          "type": "integer"
        },
        "averagePurchaseValueMicros": {
          "type": "string",
          "description": "Advertiser defined average purchase value in micros for the user.",
          "format": "int64"
        },
        "acquisitionDateTime": {
          "type": "string",
          "description": "Timestamp when the user was acquired. The format is YYYY-MM-DD HH:MM:SS[+/-HH:MM], where [+/-HH:MM] is an optional timezone offset from UTC. If the offset is absent, the API will use the account's timezone as default."
        },
        "eventAttribute": {
          "description": "Optional. Advertiser defined events and their attributes. All the values in the nested fields are required. Currently this field is in beta.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__EventAttribute"
          },
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_Recommendation_CallAssetRecommendation": {
      "description": "The call asset recommendation.",
      "properties": {},
      "id": "GoogleAdsGoogleadsV24Resources_Recommendation_CallAssetRecommendation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__RecommendationSubscriptionOperation": {
      "description": "A single operation (create, update) on a recommendation subscription. RecommendationSubscriptionService.MutateRecommendationSubscription",
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new subscription.",
          "$ref": "GoogleAdsGoogleadsV24Resources__RecommendationSubscription"
        },
        "update": {
          "description": "Update operation: The subscription is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV24Resources__RecommendationSubscription"
        },
        "updateMask": {
          "description": "Optional. FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__RecommendationSubscriptionOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__CallView": {
      "id": "GoogleAdsGoogleadsV24Resources__CallView",
      "type": "object",
      "description": "A call view that includes data for call tracking of call-only ads or call extensions.",
      "properties": {
        "callStatus": {
          "type": "string",
          "description": "Output only. The status of the call.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The call was missed.",
            "The call was received."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MISSED",
            "RECEIVED"
          ]
        },
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the call view. Call view resource names have the form: `customers/{customer_id}/callViews/{call_detail_id}`",
          "readOnly": true
        },
        "callerCountryCode": {
          "description": "Output only. Country code of the caller.",
          "readOnly": true,
          "type": "string"
        },
        "type": {
          "description": "Output only. The type of the call.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The phone call was manually dialed.",
            "The phone call was a mobile click-to-call."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MANUALLY_DIALED",
            "HIGH_END_MOBILE_SEARCH"
          ],
          "type": "string"
        },
        "startCallDateTime": {
          "description": "Output only. The advertiser-provided call start date time.",
          "readOnly": true,
          "type": "string"
        },
        "callTrackingDisplayLocation": {
          "type": "string",
          "description": "Output only. The call tracking display location.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The phone call placed from the ad.",
            "The phone call placed from the landing page ad points to."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AD",
            "LANDING_PAGE"
          ]
        },
        "callerAreaCode": {
          "description": "Output only. Area code of the caller. Null if the call duration is shorter than 15 seconds.",
          "readOnly": true,
          "type": "string"
        },
        "callDurationSeconds": {
          "description": "Output only. The advertiser-provided call duration in seconds.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "endCallDateTime": {
          "description": "Output only. The advertiser-provided call end date time.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services_SuggestKeywordThemesResponse_KeywordTheme": {
      "id": "GoogleAdsGoogleadsV24Services_SuggestKeywordThemesResponse_KeywordTheme",
      "type": "object",
      "description": "A Smart campaign keyword theme suggestion.",
      "properties": {
        "freeFormKeywordTheme": {
          "description": "A free-form text keyword theme.",
          "type": "string"
        },
        "keywordThemeConstant": {
          "description": "A Smart campaign keyword theme constant.",
          "$ref": "GoogleAdsGoogleadsV24Resources__KeywordThemeConstant"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateCampaignGroupsResponse": {
      "description": "Response message for campaign group mutate.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateCampaignGroupResult"
          },
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateCampaignGroupsResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__GenerateSuggestedTargetingInsightsResponse": {
      "description": "Response message for AudienceInsightsService.GenerateSuggestedTargetingInsights.",
      "properties": {
        "suggestions": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__TargetingSuggestionMetrics"
          },
          "description": "Suggested insights for targetable audiences.",
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__GenerateSuggestedTargetingInsightsResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateCustomerManagerLinkResult": {
      "description": "The result for the customer manager link mutate.",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateCustomerManagerLinkResult",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__ProductRecontextGenerationImageInput": {
      "id": "GoogleAdsGoogleadsV24Services__ProductRecontextGenerationImageInput",
      "type": "object",
      "description": "Input for generating new images by recontextualizing existing product images.",
      "properties": {
        "prompt": {
          "description": "Optional. A freeform description of the assets to be generated. Maximum character limit is 1500.",
          "type": "string"
        },
        "sourceImages": {
          "type": "array",
          "description": "Required. Product images to use for generating new images. 1-3 images must be provided.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__SourceImage"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__EffectiveFrequencyBreakdown": {
      "id": "GoogleAdsGoogleadsV24Services__EffectiveFrequencyBreakdown",
      "type": "object",
      "description": "A breakdown of the number of unique people reached at a given effective frequency.",
      "properties": {
        "totalReach": {
          "description": "Total number of unique people reached at least effective_frequency times. This includes people that may fall outside the specified Targeting. Note that a minimum number of unique people must be reached in order for data to be reported. If the minimum number is not met, the total_reach value will be rounded to 0.",
          "format": "int64",
          "type": "string"
        },
        "onTargetReach": {
          "description": "The number of unique people reached at least effective_frequency times that exactly matches the Targeting. Note that a minimum number of unique people must be reached in order for data to be reported. If the minimum number is not met, the on_target_reach value will be rounded to 0.",
          "format": "int64",
          "type": "string"
        },
        "effectiveCoviewReach": {
          "type": "string",
          "description": "The number of users (including co-viewing users) reached for the associated effective_frequency value.",
          "format": "int64"
        },
        "onTargetEffectiveCoviewReach": {
          "description": "The number of users (including co-viewing users) reached for the associated effective_frequency value within the specified plan demographic.",
          "format": "int64",
          "type": "string"
        },
        "effectiveFrequency": {
          "type": "integer",
          "description": "The effective frequency [1-10].",
          "format": "int32"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_TargetCpaOptInParameters": {
      "description": "Parameters to use when applying Target CPA recommendation.",
      "properties": {
        "targetCpaMicros": {
          "description": "Average CPA to use for Target CPA bidding strategy. This is a required field.",
          "format": "int64",
          "type": "string"
        },
        "newCampaignBudgetAmountMicros": {
          "description": "Optional, budget amount to set for the campaign.",
          "format": "int64",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_TargetCpaOptInParameters",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__LifeEventSegment": {
      "id": "GoogleAdsGoogleadsV24Common__LifeEventSegment",
      "type": "object",
      "description": "Live event segment.",
      "properties": {
        "lifeEvent": {
          "description": "The life event resource.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateCampaignCustomizerResult": {
      "description": "The result for the campaign customizer mutate.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        },
        "campaignCustomizer": {
          "description": "The mutated CampaignCustomizer with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV24Resources__CampaignCustomizer"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateCampaignCustomizerResult",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__YoutubeVideoIdentifier": {
      "id": "GoogleAdsGoogleadsV24Resources__YoutubeVideoIdentifier",
      "type": "object",
      "description": "The identifier for YouTube video",
      "properties": {
        "channelId": {
          "type": "string",
          "description": "Immutable. The ID of the hosting channel of the video. This is a string value with “UC” prefix. For example, \"UCK8sQmJBp8GCxrOtXWBpyEA\"."
        },
        "videoId": {
          "type": "string",
          "description": "Immutable. The ID of the video associated with the video link. This is the 11 character string value used in the YouTube video URL. For example, video ID is jV1vkHv4zq8 from the YouTube video URL \"https://www.youtube.com/watch?v=jV1vkHv4zq8&t=2s\"."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__ListBenchmarksProductsResponse": {
      "id": "GoogleAdsGoogleadsV24Services__ListBenchmarksProductsResponse",
      "type": "object",
      "description": "Response message for BenchmarksService.ListBenchmarksProducts.",
      "properties": {
        "benchmarksProducts": {
          "type": "array",
          "description": "The list of products available for benchmarks data.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__BenchmarksProductMetadata"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__AdGroupBidModifierOperation": {
      "description": "A single operation (create, remove, update) on an ad group bid modifier.",
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new ad group bid modifier.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AdGroupBidModifier"
        },
        "update": {
          "description": "Update operation: The ad group bid modifier is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AdGroupBidModifier"
        },
        "remove": {
          "description": "Remove operation: A resource name for the removed ad group bid modifier is expected, in this format: `customers/{customer_id}/adGroupBidModifiers/{ad_group_id}~{criterion_id}`",
          "type": "string"
        },
        "updateMask": {
          "type": "string",
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__AdGroupBidModifierOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateAudienceResult": {
      "id": "GoogleAdsGoogleadsV24Services__MutateAudienceResult",
      "type": "object",
      "description": "The result for the audience mutate.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        },
        "audience": {
          "description": "The mutated Audience with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV24Resources__Audience"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__CallAsset": {
      "id": "GoogleAdsGoogleadsV24Common__CallAsset",
      "type": "object",
      "description": "A Call asset.",
      "properties": {
        "phoneNumber": {
          "description": "Required. The advertiser's raw phone number. Examples: '1234567890', '(123)456-7890'",
          "type": "string"
        },
        "adScheduleTargets": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__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"
        },
        "countryCode": {
          "description": "Required. Two-letter country code of the phone number. Examples: 'US', 'us'.",
          "type": "string"
        },
        "callConversionReportingState": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DISABLED",
            "USE_ACCOUNT_LEVEL_CALL_CONVERSION_ACTION",
            "USE_RESOURCE_LEVEL_CALL_CONVERSION_ACTION"
          ],
          "description": "Indicates whether this CallAsset should use its own call conversion setting, follow the account level setting, or disable call conversion.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Call conversion action is disabled.",
            "Call conversion action will use call conversion type set at the account level.",
            "Call conversion action will use call conversion type set at the resource (call only ads/call extensions) level."
          ],
          "type": "string"
        },
        "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"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__OperatingSystemVersionInfo": {
      "description": "Represents an operating system version to be targeted.",
      "properties": {
        "operatingSystemVersionConstant": {
          "description": "The operating system version constant resource name.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__OperatingSystemVersionInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateCustomerNegativeCriteriaRequest": {
      "id": "GoogleAdsGoogleadsV24Services__MutateCustomerNegativeCriteriaRequest",
      "type": "object",
      "description": "Request message for CustomerNegativeCriterionService.MutateCustomerNegativeCriteria.",
      "properties": {
        "operations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__CustomerNegativeCriterionOperation"
          },
          "description": "Required. The list of operations to perform on individual criteria.",
          "type": "array"
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "responseContentType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ]
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_ConversionValueRule_ValueRuleGeoLocationCondition": {
      "id": "GoogleAdsGoogleadsV24Resources_ConversionValueRule_ValueRuleGeoLocationCondition",
      "type": "object",
      "description": "Condition on Geo dimension.",
      "properties": {
        "geoMatchType": {
          "type": "string",
          "description": "Included Geo location match type.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Either Area of Interest or Location of Presence can be used to match.",
            "Only Location of Presence can be used to match."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ANY",
            "LOCATION_OF_PRESENCE"
          ]
        },
        "excludedGeoTargetConstants": {
          "description": "Geo locations that advertisers want to exclude.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "geoTargetConstants": {
          "items": {
            "type": "string"
          },
          "description": "Geo locations that advertisers want to include.",
          "type": "array"
        },
        "excludedGeoMatchType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ANY",
            "LOCATION_OF_PRESENCE"
          ],
          "description": "Excluded Geo location match type.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Either Area of Interest or Location of Presence can be used to match.",
            "Only Location of Presence can be used to match."
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__UploadCallConversionsRequest": {
      "description": "Request message for ConversionUploadService.UploadCallConversions.",
      "properties": {
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "conversions": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__CallConversion"
          },
          "description": "Required. The conversions that are being uploaded."
        },
        "partialFailure": {
          "type": "boolean",
          "description": "Required. If `true`, successful operations will be carried out and invalid operations will return errors. If `false`, all operations will be carried out in one transaction if and only if they are all valid. This should always be set to `true`. See [Best practices for partial failures](/google-ads/api/docs/best-practices/partial-failures)."
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__UploadCallConversionsRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__CustomIntentInfo": {
      "id": "GoogleAdsGoogleadsV24Common__CustomIntentInfo",
      "type": "object",
      "description": "A custom intent criterion. A criterion of this type is only targetable.",
      "properties": {
        "customIntent": {
          "type": "string",
          "description": "The CustomInterest resource name."
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__ConceptGroup": {
      "id": "GoogleAdsGoogleadsV24Common__ConceptGroup",
      "type": "object",
      "description": "The concept group for the keyword concept.",
      "properties": {
        "type": {
          "description": "The concept group type.",
          "enumDescriptions": [
            "The concept group classification different from brand/non-brand. This is a catch all bucket for all classifications that are none of the below.",
            "The value is unknown in this version.",
            "The concept group classification is based on BRAND.",
            "The concept group classification based on BRAND, that didn't fit well with the BRAND classifications. These are generally outliers and can have very few keywords in this type of classification.",
            "These concept group classification is not based on BRAND. This is returned for generic keywords that don't have a brand association."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BRAND",
            "OTHER_BRANDS",
            "NON_BRAND"
          ],
          "type": "string"
        },
        "name": {
          "description": "The concept group name.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__LifeEventInfo": {
      "id": "GoogleAdsGoogleadsV24Common__LifeEventInfo",
      "type": "object",
      "description": "Represents a life event criterion.",
      "properties": {
        "lifeEventId": {
          "description": "Taxonomy id of the life event.",
          "format": "int64",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateCampaignAssetResult": {
      "description": "The result for the campaign asset mutate.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        },
        "campaignAsset": {
          "description": "The mutated campaign asset with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV24Resources__CampaignAsset"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateCampaignAssetResult",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__ChangeEvent": {
      "id": "GoogleAdsGoogleadsV24Resources__ChangeEvent",
      "type": "object",
      "description": "Describes the granular change of returned resources of certain resource types. Changes made through the UI or API in the past 30 days are included. Previous and new values of the changed fields are shown. ChangeEvent could have up to 3 minutes delay to reflect a new change.",
      "properties": {
        "clientType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "GOOGLE_ADS_WEB_CLIENT",
            "GOOGLE_ADS_AUTOMATED_RULE",
            "GOOGLE_ADS_SCRIPTS",
            "GOOGLE_ADS_BULK_UPLOAD",
            "GOOGLE_ADS_API",
            "GOOGLE_ADS_EDITOR",
            "GOOGLE_ADS_MOBILE_APP",
            "GOOGLE_ADS_RECOMMENDATIONS",
            "SEARCH_ADS_360_SYNC",
            "SEARCH_ADS_360_POST",
            "INTERNAL_TOOL",
            "OTHER",
            "GOOGLE_ADS_RECOMMENDATIONS_SUBSCRIPTION"
          ],
          "description": "Output only. Where the change was made through.",
          "readOnly": true,
          "enumDescriptions": [
            "No value has been specified.",
            "Used for return value only. Represents an unclassified client type unknown in this version.",
            "Changes made through the \"ads.google.com\". For example, changes made through campaign management.",
            "Changes made through Google Ads automated rules.",
            "Changes made through Google Ads scripts.",
            "Changes made by Google Ads bulk upload.",
            "Changes made by Google Ads API.",
            "Changes made by Google Ads Editor. This value is a placeholder. The API does not return these changes.",
            "Changes made by Google Ads mobile app.",
            "Changes made through Google Ads recommendations.",
            "Changes made through Search Ads 360 Sync.",
            "Changes made through Search Ads 360 Post.",
            "Changes made through internal tools. For example, when a user sets a URL template on an entity like a Campaign, it's automatically wrapped with the SA360 Clickserver URL.",
            "Types of changes that are not categorized, for example, changes made by coupon redemption through Google Ads.",
            "Changes made by subscribing to Google Ads recommendations."
          ]
        },
        "changeResourceType": {
          "type": "string",
          "description": "Output only. The type of the changed resource. This dictates what resource will be set in old_resource and new_resource.",
          "readOnly": true,
          "enumDescriptions": [
            "No value has been specified.",
            "Used for return value only. Represents an unclassified resource unknown in this version.",
            "An Ad resource change.",
            "An AdGroup resource change.",
            "An AdGroupCriterion resource change.",
            "A Campaign resource change.",
            "A CampaignBudget resource change.",
            "An AdGroupBidModifier resource change.",
            "A CampaignCriterion resource change.",
            "A Feed resource change.",
            "A FeedItem resource change.",
            "A CampaignFeed resource change.",
            "An AdGroupFeed resource change.",
            "An AdGroupAd resource change.",
            "An Asset resource change.",
            "A CustomerAsset resource change.",
            "A CampaignAsset resource change.",
            "An AdGroupAsset resource change.",
            "An AssetSet resource change.",
            "An AssetSetAsset resource change.",
            "A CampaignAssetSet resource change."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AD",
            "AD_GROUP",
            "AD_GROUP_CRITERION",
            "CAMPAIGN",
            "CAMPAIGN_BUDGET",
            "AD_GROUP_BID_MODIFIER",
            "CAMPAIGN_CRITERION",
            "FEED",
            "FEED_ITEM",
            "CAMPAIGN_FEED",
            "AD_GROUP_FEED",
            "AD_GROUP_AD",
            "ASSET",
            "CUSTOMER_ASSET",
            "CAMPAIGN_ASSET",
            "AD_GROUP_ASSET",
            "ASSET_SET",
            "ASSET_SET_ASSET",
            "CAMPAIGN_ASSET_SET"
          ]
        },
        "userEmail": {
          "description": "Output only. The email of the user who made this change.",
          "readOnly": true,
          "type": "string"
        },
        "campaign": {
          "description": "Output only. The Campaign affected by this change.",
          "readOnly": true,
          "type": "string"
        },
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the change event. Change event resource names have the form: `customers/{customer_id}/changeEvents/{timestamp_micros}~{command_index}~{mutate_index}`",
          "readOnly": true
        },
        "newResource": {
          "description": "Output only. The new resource after the change. Only changed fields will be populated.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_ChangeEvent_ChangedResource"
        },
        "changedFields": {
          "type": "string",
          "description": "Output only. A list of fields that are changed in the returned resource.",
          "readOnly": true,
          "format": "google-fieldmask"
        },
        "asset": {
          "type": "string",
          "description": "Output only. The Asset affected by this change.",
          "readOnly": true
        },
        "adGroup": {
          "description": "Output only. The AdGroup affected by this change.",
          "readOnly": true,
          "type": "string"
        },
        "oldResource": {
          "description": "Output only. The old resource before the change. Only changed fields will be populated.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_ChangeEvent_ChangedResource"
        },
        "changeDateTime": {
          "type": "string",
          "description": "Output only. Time at which the change was committed on this resource.",
          "readOnly": true
        },
        "resourceChangeOperation": {
          "description": "Output only. The operation on the changed resource.",
          "readOnly": true,
          "enumDescriptions": [
            "No value has been specified.",
            "Used for return value only. Represents an unclassified operation unknown in this version.",
            "The resource was created.",
            "The resource was modified.",
            "The resource was removed."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CREATE",
            "UPDATE",
            "REMOVE"
          ],
          "type": "string"
        },
        "changeResourceName": {
          "type": "string",
          "description": "Output only. The Simply resource this change occurred on.",
          "readOnly": true
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__Fellowship": {
      "description": "Details about the employee's medical Fellowship. Fellowship is a period of medical training that the professional undertakes after finishing their residency.",
      "properties": {
        "completionYear": {
          "description": "Output only. Year of completion.",
          "readOnly": true,
          "format": "int32",
          "type": "integer"
        },
        "institutionName": {
          "type": "string",
          "description": "Output only. Name of the instutition at which the fellowship was completed.",
          "readOnly": true
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__Fellowship",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__DynamicLocalAsset": {
      "id": "GoogleAdsGoogleadsV24Common__DynamicLocalAsset",
      "type": "object",
      "description": "A dynamic local asset.",
      "properties": {
        "dealId": {
          "type": "string",
          "description": "Required. Deal ID which can be any sequence of letters and digits, and must be unique and match the values of remarketing tag. Required."
        },
        "price": {
          "type": "string",
          "description": "Price which can be a number followed by the alphabetic currency code, ISO 4217 standard. Use '.' as the decimal mark, for example, 100.00 USD."
        },
        "address": {
          "description": "Address which can be specified in one of the following formats. (1) City, state, code, country, for example, Mountain View, CA, USA. (2) Full address, for example, 123 Boulevard St, Mountain View, CA 94043. (3) Latitude-longitude in the DDD format, for example, 41.40338, 2.17403.",
          "type": "string"
        },
        "description": {
          "type": "string",
          "description": "Description, for example, Save on your weekly bill."
        },
        "formattedSalePrice": {
          "description": "Formatted sale price which can be any characters. If set, this attribute will be used instead of 'sale price', for example, On sale for $80.00.",
          "type": "string"
        },
        "androidAppLink": {
          "description": "Android deep link, for example, android-app://com.example.android/http/example.com/gizmos?1234.",
          "type": "string"
        },
        "similarDealIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Similar deal IDs, for example, 1275."
        },
        "category": {
          "description": "Category, for example, Food.",
          "type": "string"
        },
        "formattedPrice": {
          "type": "string",
          "description": "Formatted price which can be any characters. If set, this attribute will be used instead of 'price', for example, Starting at $100.00."
        },
        "salePrice": {
          "description": "Sale price which can be number followed by the alphabetic currency code, ISO 4217 standard. Use '.' as the decimal mark, for example, 80.00 USD. Must be less than the 'price' field.",
          "type": "string"
        },
        "contextualKeywords": {
          "items": {
            "type": "string"
          },
          "description": "Contextual keywords, for example, Save groceries coupons.",
          "type": "array"
        },
        "imageUrl": {
          "type": "string",
          "description": "Image URL, for example, http://www.example.com/image.png. The image will not be uploaded as image asset."
        },
        "iosAppStoreId": {
          "type": "string",
          "description": "iOS app store ID. This is used to check if the user has the app installed on their device before deep linking. If this field is set, then the ios_app_link field must also be present.",
          "format": "int64"
        },
        "iosAppLink": {
          "type": "string",
          "description": "iOS deep link, for example, exampleApp://content/page."
        },
        "dealName": {
          "type": "string",
          "description": "Required. Deal name, for example, 50% off at Mountain View Grocers. Required."
        },
        "subtitle": {
          "description": "Subtitle, for example, Groceries.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateCustomerAssetsResponse": {
      "description": "Response message for a customer asset mutate.",
      "properties": {
        "results": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomerAssetResult"
          },
          "description": "All results for the mutate.",
          "type": "array"
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateCustomerAssetsResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__CustomerNegativeCriterion": {
      "id": "GoogleAdsGoogleadsV24Resources__CustomerNegativeCriterion",
      "type": "object",
      "description": "A negative criterion for exclusions at the customer level.",
      "properties": {
        "mobileAppCategory": {
          "description": "Immutable. MobileAppCategory.",
          "$ref": "GoogleAdsGoogleadsV24Common__MobileAppCategoryInfo"
        },
        "placementList": {
          "description": "Immutable. PlacementList.",
          "$ref": "GoogleAdsGoogleadsV24Common__PlacementListInfo"
        },
        "type": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "KEYWORD",
            "PLACEMENT",
            "MOBILE_APP_CATEGORY",
            "MOBILE_APPLICATION",
            "DEVICE",
            "LOCATION",
            "LISTING_GROUP",
            "AD_SCHEDULE",
            "AGE_RANGE",
            "GENDER",
            "INCOME_RANGE",
            "PARENTAL_STATUS",
            "YOUTUBE_VIDEO",
            "YOUTUBE_CHANNEL",
            "USER_LIST",
            "PROXIMITY",
            "TOPIC",
            "LISTING_SCOPE",
            "LANGUAGE",
            "IP_BLOCK",
            "CONTENT_LABEL",
            "CARRIER",
            "USER_INTEREST",
            "WEBPAGE",
            "OPERATING_SYSTEM_VERSION",
            "APP_PAYMENT_MODEL",
            "MOBILE_DEVICE",
            "CUSTOM_AFFINITY",
            "CUSTOM_INTENT",
            "LOCATION_GROUP",
            "CUSTOM_AUDIENCE",
            "COMBINED_AUDIENCE",
            "KEYWORD_THEME",
            "AUDIENCE",
            "NEGATIVE_KEYWORD_LIST",
            "LOCAL_SERVICE_ID",
            "SEARCH_THEME",
            "BRAND",
            "BRAND_LIST",
            "LIFE_EVENT",
            "WEBPAGE_LIST",
            "VIDEO_LINEUP",
            "PLACEMENT_LIST",
            "VERTICAL_ADS_ITEM_GROUP_RULE_LIST",
            "VERTICAL_ADS_ITEM_GROUP_RULE",
            "RETAIL_FILTER_BUNDLE",
            "RETAIL_FILTER"
          ],
          "description": "Output only. The type of the criterion.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Keyword, for example, 'mars cruise'.",
            "Placement, also known as Website, for example, 'www.flowers4sale.com'",
            "Mobile application categories to target.",
            "Mobile applications to target.",
            "Devices to target.",
            "Locations to target.",
            "Listing groups to target.",
            "Ad Schedule.",
            "Age range.",
            "Gender.",
            "Income Range.",
            "Parental status.",
            "YouTube Video.",
            "YouTube Channel.",
            "User list.",
            "Proximity.",
            "A topic target on the display network (for example, \"Pets & Animals\").",
            "Listing scope to target.",
            "Language.",
            "IpBlock.",
            "Content Label for category exclusion.",
            "Carrier.",
            "A category the user is interested in.",
            "Webpage criterion for dynamic search ads.",
            "Operating system version.",
            "App payment model.",
            "Mobile device.",
            "Custom affinity.",
            "Custom intent.",
            "Location group.",
            "Custom audience",
            "Combined audience",
            "Smart Campaign keyword theme",
            "Audience",
            "Negative Keyword List",
            "Local Services Ads Service ID.",
            "Search Theme.",
            "Brand",
            "Brand List",
            "Life Event",
            "Webpage List",
            "Video lineup",
            "Placement List",
            "A list of rules for item groups in Vertical Ads.",
            "A rule for an item group in Vertical Ads.",
            "Retail Filter Bundle for linking a retail filter shared set to an ad group.",
            "Retail Filter for defining individual tag rules or expressions within a shared set."
          ]
        },
        "placement": {
          "description": "Immutable. Placement.",
          "$ref": "GoogleAdsGoogleadsV24Common__PlacementInfo"
        },
        "contentLabel": {
          "description": "Immutable. ContentLabel.",
          "$ref": "GoogleAdsGoogleadsV24Common__ContentLabelInfo"
        },
        "youtubeVideo": {
          "description": "Immutable. YouTube Video.",
          "$ref": "GoogleAdsGoogleadsV24Common__YouTubeVideoInfo"
        },
        "youtubeChannel": {
          "description": "Immutable. YouTube Channel.",
          "$ref": "GoogleAdsGoogleadsV24Common__YouTubeChannelInfo"
        },
        "resourceName": {
          "description": "Immutable. The resource name of the customer negative criterion. Customer negative criterion resource names have the form: `customers/{customer_id}/customerNegativeCriteria/{criterion_id}`",
          "type": "string"
        },
        "negativeKeywordList": {
          "description": "Immutable. NegativeKeywordList.",
          "$ref": "GoogleAdsGoogleadsV24Common__NegativeKeywordListInfo"
        },
        "id": {
          "type": "string",
          "description": "Output only. The ID of the criterion.",
          "readOnly": true,
          "format": "int64"
        },
        "mobileApplication": {
          "description": "Immutable. MobileApplication.",
          "$ref": "GoogleAdsGoogleadsV24Common__MobileApplicationInfo"
        },
        "ipBlock": {
          "description": "Immutable. IpBlock. You can exclude up to 500 IP addresses per account.",
          "$ref": "GoogleAdsGoogleadsV24Common__IpBlockInfo"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__SmartCampaignEligibleDetails": {
      "description": "Details related to Smart campaigns that are eligible to serve.",
      "properties": {
        "lastImpressionDateTime": {
          "type": "string",
          "description": "The timestamp of the last impression observed in the last 48 hours for this campaign. The timestamp is in the customer’s timezone and in “yyyy-MM-dd HH:mm:ss” format."
        },
        "endDateTime": {
          "description": "The timestamp of when the campaign will end, if applicable. The timestamp is in the customer’s timezone and in “yyyy-MM-dd HH:mm:ss” format.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__SmartCampaignEligibleDetails",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_Recommendation_CampaignBudget": {
      "id": "GoogleAdsGoogleadsV24Resources_Recommendation_CampaignBudget",
      "type": "object",
      "description": "A campaign budget shared amongst various budget recommendation types.",
      "properties": {
        "currentAmountMicros": {
          "type": "string",
          "description": "Output only. Current budget amount.",
          "readOnly": true,
          "format": "int64"
        },
        "recommendedNewAmountMicros": {
          "description": "Output only. Recommended budget amount.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "newStartDate": {
          "type": "string",
          "description": "Output only. The date when the new budget would start being used. This field will be set for the following recommendation types: FORECASTING_SET_TARGET_ROAS , FORECASTING_SET_TARGET_CPA YYYY-MM-DD format, for example, 2018-04-17.",
          "readOnly": true
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_BillingSetup_PaymentsAccountInfo": {
      "id": "GoogleAdsGoogleadsV24Resources_BillingSetup_PaymentsAccountInfo",
      "type": "object",
      "description": "Container of payments account information for this billing.",
      "properties": {
        "paymentsProfileId": {
          "description": "Immutable. A 12 digit id used to identify the payments profile associated with the billing setup. This must be passed in as a string with dashes, for example, \"1234-5678-9012\".",
          "type": "string"
        },
        "paymentsAccountName": {
          "description": "Immutable. The name of the payments account associated with the billing setup. This enables the user to specify a meaningful name for a payments account to aid in reconciling monthly invoices. This name will be printed in the monthly invoices.",
          "type": "string"
        },
        "paymentsAccountId": {
          "type": "string",
          "description": "Output only. A 16 digit id used to identify the payments account associated with the billing setup. This must be passed as a string with dashes, for example, \"1234-5678-9012-3456\".",
          "readOnly": true
        },
        "paymentsProfileName": {
          "description": "Output only. The name of the payments profile associated with the billing setup.",
          "readOnly": true,
          "type": "string"
        },
        "secondaryPaymentsProfileId": {
          "description": "Output only. A secondary payments profile id present in uncommon situations, for example, when a sequential liability agreement has been arranged.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_ListingGroupFilterDimension_ProductCondition": {
      "id": "GoogleAdsGoogleadsV24Resources_ListingGroupFilterDimension_ProductCondition",
      "type": "object",
      "description": "Condition of a product offer.",
      "properties": {
        "condition": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NEW",
            "REFURBISHED",
            "USED"
          ],
          "description": "Value of the condition.",
          "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."
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_CampaignPmaxCampaignSettings_BrandTargetingOverrides": {
      "id": "GoogleAdsGoogleadsV24Resources_CampaignPmaxCampaignSettings_BrandTargetingOverrides",
      "type": "object",
      "description": "Overrides of brand targeting for various ad types.",
      "properties": {
        "ignoreExclusionsForShoppingAds": {
          "description": "If true, brand exclusions are ignored for Shopping ads.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateConversionGoalCampaignConfigResult": {
      "id": "GoogleAdsGoogleadsV24Services__MutateConversionGoalCampaignConfigResult",
      "type": "object",
      "description": "The result for the conversion goal campaign config mutate.",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        },
        "conversionGoalCampaignConfig": {
          "description": "The mutated ConversionGoalCampaignConfig with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV24Resources__ConversionGoalCampaignConfig"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__ProvideLeadFeedbackRequest": {
      "description": "Request message for LocalServicesLeadService.ProvideLeadFeedback.",
      "properties": {
        "surveyDissatisfied": {
          "description": "Details about various factors for not being satisfied with the lead.",
          "$ref": "GoogleAdsGoogleadsV24Services__SurveyDissatisfied"
        },
        "surveyAnswer": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "VERY_SATISFIED",
            "SATISFIED",
            "NEUTRAL",
            "DISSATISFIED",
            "VERY_DISSATISFIED"
          ],
          "description": "Required. Survey answer for Local Services Ads Lead.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Very satisfied with the lead.",
            "Satisfied with the lead.",
            "Neutral with the lead.",
            "Dissatisfied with the lead.",
            "Very dissatisfied with the lead."
          ]
        },
        "surveySatisfied": {
          "description": "Details about various factors for being satisfied with the lead.",
          "$ref": "GoogleAdsGoogleadsV24Services__SurveySatisfied"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__ProvideLeadFeedbackRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_Campaign_NetworkSettings": {
      "id": "GoogleAdsGoogleadsV24Resources_Campaign_NetworkSettings",
      "type": "object",
      "description": "The network settings for the campaign.",
      "properties": {
        "targetSearchNetwork": {
          "type": "boolean",
          "description": "Whether ads will be served on sites in the Google Search Partners Network (requires `target_google_search` to also be `true`)."
        },
        "targetYoutube": {
          "type": "boolean",
          "description": "Whether ads will be served on YouTube."
        },
        "targetGoogleTvNetwork": {
          "description": "Whether ads will be served on the Google TV network.",
          "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"
        },
        "targetContentNetwork": {
          "type": "boolean",
          "description": "Whether ads will be served on specified placements in the Google Display Network. Placements are specified using the Placement criterion."
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__AdVideoAsset": {
      "id": "GoogleAdsGoogleadsV24Common__AdVideoAsset",
      "type": "object",
      "description": "A video asset used inside an ad.",
      "properties": {
        "asset": {
          "description": "The Asset resource name of this video.",
          "type": "string"
        },
        "adVideoAssetInfo": {
          "description": "Contains info fields for this AdVideoAsset.",
          "$ref": "GoogleAdsGoogleadsV24Common__AdVideoAssetInfo"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__ReachForecast": {
      "description": "A point on reach curve.",
      "properties": {
        "costMicros": {
          "type": "string",
          "description": "The cost in micros.",
          "format": "int64"
        },
        "forecast": {
          "description": "Forecasted traffic metrics for this point.",
          "$ref": "GoogleAdsGoogleadsV24Services__Forecast"
        },
        "plannedProductReachForecasts": {
          "description": "The forecasted allocation and traffic metrics for each planned product at this point on the reach curve.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__PlannedProductReachForecast"
          },
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__ReachForecast",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_Recommendation_KeywordMatchTypeRecommendation": {
      "description": "The keyword match type recommendation.",
      "properties": {
        "keyword": {
          "description": "Output only. The existing keyword where the match type should be more broad.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Common__KeywordInfo"
        },
        "recommendedMatchType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EXACT",
            "PHRASE",
            "BROAD"
          ],
          "description": "Output only. The recommended new match type.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Exact match.",
            "Phrase match.",
            "Broad match."
          ]
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_Recommendation_KeywordMatchTypeRecommendation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__ActivityCountryInfo": {
      "description": "The country where the travel activity is available.",
      "properties": {
        "value": {
          "type": "string",
          "description": "String value of the activity country. The Geo Target Constant resource name."
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__ActivityCountryInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateConversionGoalCampaignConfigsRequest": {
      "id": "GoogleAdsGoogleadsV24Services__MutateConversionGoalCampaignConfigsRequest",
      "type": "object",
      "description": "Request message for ConversionGoalCampaignConfigService.MutateConversionGoalCampaignConfigs.",
      "properties": {
        "operations": {
          "description": "Required. The list of operations to perform on individual conversion goal campaign config.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__ConversionGoalCampaignConfigOperation"
          },
          "type": "array"
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "responseContentType": {
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Actions__QuoteCampaignsOperation": {
      "description": "Request message for the QuoteCampaigns action. Request including this operation can have a latency of up to 30 seconds. This feature is not publicly available.",
      "properties": {
        "quoteSignature": {
          "description": "If provided, the signature of the previous quote. Clients should always provide the quote signature from previous quotes if they haven't changed the campaigns to prevent price fluctuations within a user session.",
          "type": "string"
        },
        "campaigns": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Actions_QuoteCampaignsOperation_Campaign"
          },
          "description": "Campaigns for which the quotes are requested. Maximum 2 campaigns per request.",
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Actions__QuoteCampaignsOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__SourceImage": {
      "id": "GoogleAdsGoogleadsV24Services__SourceImage",
      "type": "object",
      "description": "A source image to be used in the generation process.",
      "properties": {
        "imageData": {
          "description": "Optional. Raw bytes of the image to use.",
          "format": "byte",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__ApplyRecommendationRequest": {
      "id": "GoogleAdsGoogleadsV24Services__ApplyRecommendationRequest",
      "type": "object",
      "description": "Request message for RecommendationService.ApplyRecommendation.",
      "properties": {
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, operations will be carried out as a transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__ApplyRecommendationOperation"
          },
          "description": "Required. The list of operations to apply recommendations. If partial_failure=false all recommendations should be of the same type There is a limit of 100 operations per request."
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__UserLocationView": {
      "id": "GoogleAdsGoogleadsV24Resources__UserLocationView",
      "type": "object",
      "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.",
      "properties": {
        "countryCriterionId": {
          "description": "Output only. Criterion Id for the country.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "targetingLocation": {
          "description": "Output only. Indicates whether location was targeted or not.",
          "readOnly": true,
          "type": "boolean"
        },
        "resourceName": {
          "type": "string",
          "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
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__Incentive": {
      "id": "GoogleAdsGoogleadsV24Services__Incentive",
      "type": "object",
      "description": "An incentive that a user can claim for their account.",
      "properties": {
        "incentiveId": {
          "type": "string",
          "description": "The incentive ID of this incentive. This is used to identify which incentive is selected by the user in the CYO flow.",
          "format": "int64"
        },
        "requirement": {
          "description": "The requirement for this incentive.",
          "$ref": "GoogleAdsGoogleadsV24Services_Incentive_Requirement"
        },
        "type": {
          "description": "The type of the incentive.",
          "enumDescriptions": [
            "Not specified.",
            "Unknown incentive type. Should not be used as a value explicitly.",
            "An acquisition incentive."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ACQUISITION"
          ],
          "type": "string"
        },
        "incentiveTermsAndConditionsUrl": {
          "description": "The URL of the terms and conditions for THIS incentive offer ONLY. This is different from the terms_and_conditions_url field in AcquisitionIncentiveOffer which is a combination of all the Incentive offers in a CYO offer.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateCustomConversionGoalResult": {
      "description": "The result for the custom conversion goal mutate.",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        },
        "customConversionGoal": {
          "description": "The mutated CustomConversionGoal with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV24Resources__CustomConversionGoal"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateCustomConversionGoalResult",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateConversionCustomVariableResult": {
      "description": "The result for the conversion custom variable mutate.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        },
        "conversionCustomVariable": {
          "description": "The mutated conversion custom variable with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV24Resources__ConversionCustomVariable"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateConversionCustomVariableResult",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateAccountLinkResult": {
      "id": "GoogleAdsGoogleadsV24Services__MutateAccountLinkResult",
      "type": "object",
      "description": "The result for the account link mutate.",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__ContactDetails": {
      "id": "GoogleAdsGoogleadsV24Resources__ContactDetails",
      "type": "object",
      "description": "Fields containing consumer contact details.",
      "properties": {
        "phoneNumber": {
          "type": "string",
          "description": "Output only. Phone number of the consumer for the lead. This can be a real phone number or a tracking number. The phone number is returned in E164 format. See https://support.google.com/google-ads/answer/16355235?hl=en to learn more. Example: +16504519489.",
          "readOnly": true
        },
        "email": {
          "description": "Output only. Consumer email address.",
          "readOnly": true,
          "type": "string"
        },
        "consumerName": {
          "description": "Output only. Consumer name if consumer provided name from Message or Booking form on google.com",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__LifeEvent": {
      "description": "A life event: a particular interest-based vertical to be targeted to reach users when they are in the midst of important life milestones.",
      "properties": {
        "name": {
          "type": "string",
          "description": "Output only. The name of the life event, for example,\"Recently Moved\"",
          "readOnly": true
        },
        "parent": {
          "type": "string",
          "description": "Output only. The parent of the life_event.",
          "readOnly": true
        },
        "id": {
          "type": "string",
          "description": "Output only. The ID of the life event.",
          "readOnly": true,
          "format": "int64"
        },
        "launchedToAll": {
          "description": "Output only. True if the life event is launched to all channels and locales.",
          "readOnly": true,
          "type": "boolean"
        },
        "resourceName": {
          "description": "Output only. The resource name of the life event. Life event resource names have the form: `customers/{customer_id}/lifeEvents/{life_event_id}`",
          "readOnly": true,
          "type": "string"
        },
        "availabilities": {
          "description": "Output only. Availability information of the life event.",
          "readOnly": true,
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__CriterionCategoryAvailability"
          },
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__LifeEvent",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__ListPlannableUserListsRequest": {
      "description": "Request message for ReachPlanService.ListPlannableUserLists that lists the available user lists for a customer.",
      "properties": {
        "customerId": {
          "type": "string",
          "description": "Required. The ID of the customer."
        },
        "customerReachGroup": {
          "description": "The name of the customer being planned for. This is a user-defined value.",
          "type": "string"
        },
        "reachApplicationInfo": {
          "description": "Optional. Additional information on the application issuing the request.",
          "$ref": "GoogleAdsGoogleadsV24Common__AdditionalApplicationInfo"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__ListPlannableUserListsRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__QuoteCampaignsRequest": {
      "id": "GoogleAdsGoogleadsV24Services__QuoteCampaignsRequest",
      "type": "object",
      "description": "Request message for ReservationService.QuoteCampaigns.",
      "properties": {
        "operation": {
          "description": "The operation to quote the campaigns.",
          "$ref": "GoogleAdsGoogleadsV24Actions__QuoteCampaignsOperation"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateAssetResult": {
      "description": "The result for the asset mutate.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "The resource name returned for successful operations."
        },
        "asset": {
          "description": "The mutated asset with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV24Resources__Asset"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateAssetResult",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__KeywordPlanGeoTarget": {
      "description": "A geo target.",
      "properties": {
        "geoTargetConstant": {
          "type": "string",
          "description": "Required. The resource name of the geo target."
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__KeywordPlanGeoTarget",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__BusinessProfileBusinessNameFilter": {
      "description": "Business Profile location group business name filter.",
      "properties": {
        "businessName": {
          "description": "Business name string to use for filtering.",
          "type": "string"
        },
        "filterType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EXACT"
          ],
          "description": "The type of string matching to use when filtering with business_name.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The filter will use exact string matching."
          ]
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__BusinessProfileBusinessNameFilter",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateCampaignAssetSetsRequest": {
      "id": "GoogleAdsGoogleadsV24Services__MutateCampaignAssetSetsRequest",
      "type": "object",
      "description": "Request message for CampaignAssetSetService.MutateCampaignAssetSets.",
      "properties": {
        "operations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__CampaignAssetSetOperation"
          },
          "description": "Required. The list of operations to perform on individual campaign asset sets.",
          "type": "array"
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "responseContentType": {
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "type": "string"
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsGoogleadsV24Actions__GenerateShareablePreviewsResult": {
      "id": "GoogleAdsGoogleadsV24Actions__GenerateShareablePreviewsResult",
      "type": "object",
      "description": "Result of the GenerateShareablePreviews action.",
      "properties": {
        "previews": {
          "type": "array",
          "description": "List of previews.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Actions__ShareablePreviewResult"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV24Common_PolicyTopicEvidence_DestinationMismatch": {
      "description": "Evidence of mismatches between the URLs of a resource.",
      "properties": {
        "urlTypes": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "DISPLAY_URL",
              "FINAL_URL",
              "FINAL_MOBILE_URL",
              "TRACKING_URL",
              "MOBILE_TRACKING_URL"
            ],
            "enumDescriptions": [
              "No value has been specified.",
              "The received value is not known in this version. This is a response-only value.",
              "The display url.",
              "The final url.",
              "The final mobile url.",
              "The tracking url template, with substituted desktop url.",
              "The tracking url template, with substituted mobile url."
            ]
          },
          "description": "The set of URLs that did not match each other."
        }
      },
      "id": "GoogleAdsGoogleadsV24Common_PolicyTopicEvidence_DestinationMismatch",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateAdGroupLabelsResponse": {
      "description": "Response message for an ad group labels mutate.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateAdGroupLabelResult"
          },
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateAdGroupLabelsResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__DataLink": {
      "description": "Represents the data sharing connection between a Google Ads customer and another product's data.",
      "properties": {
        "type": {
          "description": "Output only. The type of the data.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "A data link to YouTube video."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "VIDEO"
          ],
          "type": "string"
        },
        "youtubeVideo": {
          "description": "Immutable. A data link to YouTube video.",
          "$ref": "GoogleAdsGoogleadsV24Resources__YoutubeVideoIdentifier"
        },
        "dataLinkId": {
          "type": "string",
          "description": "Output only. The ID of the data link. This field is read only.",
          "readOnly": true,
          "format": "int64"
        },
        "productLinkId": {
          "description": "Output only. The ID of the link. This field is read only.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "status": {
          "type": "string",
          "description": "Output only. The status of the data link.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Link has been requested by one party, but not confirmed by the other party.",
            "Link is waiting for the customer to approve.",
            "Link is established and can be used as needed.",
            "Link is no longer valid and should be ignored.",
            "Link request has been cancelled by the requester and further cleanup may be needed.",
            "Link request has been rejected by the approver."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "REQUESTED",
            "PENDING_APPROVAL",
            "ENABLED",
            "DISABLED",
            "REVOKED",
            "REJECTED"
          ]
        },
        "resourceName": {
          "description": "Immutable. Resource name of the product data link. DataLink resource names have the form: `customers/{customer_id}/datalinks/{product_link_id}~{data_link_id}}",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__DataLink",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_AccountBudget_PendingAccountBudgetProposal": {
      "description": "A pending proposal associated with the enclosing account-level budget, if applicable.",
      "properties": {
        "name": {
          "description": "Output only. The name to assign to the account-level budget.",
          "readOnly": true,
          "type": "string"
        },
        "purchaseOrderNumber": {
          "description": "Output only. A purchase order number is a value that helps users reference this budget in their monthly invoices.",
          "readOnly": true,
          "type": "string"
        },
        "proposalType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CREATE",
            "UPDATE",
            "END",
            "REMOVE"
          ],
          "description": "Output only. The type of this proposal, for example, END to end the budget associated with this proposal.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Identifies a request to create a new budget.",
            "Identifies a request to edit an existing budget.",
            "Identifies a request to end a budget that has already started.",
            "Identifies a request to remove a budget that hasn't started yet."
          ]
        },
        "notes": {
          "type": "string",
          "description": "Output only. Notes associated with this budget.",
          "readOnly": true
        },
        "accountBudgetProposal": {
          "type": "string",
          "description": "Output only. The resource name of the proposal. AccountBudgetProposal resource names have the form: `customers/{customer_id}/accountBudgetProposals/{account_budget_proposal_id}`",
          "readOnly": true
        },
        "endDateTime": {
          "description": "Output only. The end time in yyyy-MM-dd HH:mm:ss format.",
          "readOnly": true,
          "type": "string"
        },
        "endTimeType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NOW",
            "FOREVER"
          ],
          "description": "Output only. The end time as a well-defined type, for example, FOREVER.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "As soon as possible.",
            "An infinite point in the future."
          ],
          "type": "string"
        },
        "spendingLimitType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INFINITE"
          ],
          "description": "Output only. The spending limit as a well-defined type, for example, INFINITE.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Infinite, indicates unlimited spending power."
          ],
          "type": "string"
        },
        "spendingLimitMicros": {
          "description": "Output only. The spending limit in micros. One million is equivalent to one unit.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "startDateTime": {
          "type": "string",
          "description": "Output only. The start time in yyyy-MM-dd HH:mm:ss format.",
          "readOnly": true
        },
        "creationDateTime": {
          "description": "Output only. The time when this account-level budget proposal was created. Formatted as yyyy-MM-dd HH:mm:ss.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_AccountBudget_PendingAccountBudgetProposal",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__DynamicRealEstateAsset": {
      "description": "A dynamic real estate asset.",
      "properties": {
        "cityName": {
          "description": "City name, for example, Mountain View, California.",
          "type": "string"
        },
        "iosAppLink": {
          "description": "iOS deep link, for example, exampleApp://content/page.",
          "type": "string"
        },
        "iosAppStoreId": {
          "description": "iOS app store ID. This is used to check if the user has the app installed on their device before deep linking. If this field is set, then the ios_app_link field must also be present.",
          "format": "int64",
          "type": "string"
        },
        "imageUrl": {
          "type": "string",
          "description": "Image URL, for example, http://www.example.com/image.png. The image will not be uploaded as image asset."
        },
        "contextualKeywords": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Contextual keywords, for example, For sale; Houses for sale."
        },
        "listingType": {
          "type": "string",
          "description": "Listing type, for example, For sale."
        },
        "formattedPrice": {
          "type": "string",
          "description": "Formatted price which can be any characters. If set, this attribute will be used instead of 'price', for example, Starting at $200,000.00."
        },
        "listingId": {
          "type": "string",
          "description": "Required. Listing ID which can be any sequence of letters and digits, and must be unique and match the values of remarketing tag. Required."
        },
        "propertyType": {
          "description": "Property type, for example, House.",
          "type": "string"
        },
        "similarListingIds": {
          "type": "array",
          "description": "Similar listing IDs.",
          "items": {
            "type": "string"
          }
        },
        "androidAppLink": {
          "type": "string",
          "description": "Android deep link, for example, android-app://com.example.android/http/example.com/gizmos?1234."
        },
        "description": {
          "description": "Description, for example, 3 beds, 2 baths, 1568 sq. ft.",
          "type": "string"
        },
        "address": {
          "type": "string",
          "description": "Address which can be specified in one of the following formats. (1) City, state, code, country, for example, Mountain View, CA, USA. (2) Full address, for example, 123 Boulevard St, Mountain View, CA 94043. (3) Latitude-longitude in the DDD format, for example, 41.40338, 2.17403"
        },
        "listingName": {
          "description": "Required. Listing name, for example, Boulevard Bungalow. Required.",
          "type": "string"
        },
        "price": {
          "type": "string",
          "description": "Price which can be number followed by the alphabetic currency code, ISO 4217 standard. Use '.' as the decimal mark, for example, 200,000.00 USD."
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__DynamicRealEstateAsset",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__ListPaymentsAccountsResponse": {
      "description": "Response message for PaymentsAccountService.ListPaymentsAccounts.",
      "properties": {
        "paymentsAccounts": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Resources__PaymentsAccount"
          },
          "description": "The list of accessible payments accounts."
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__ListPaymentsAccountsResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__MapsLocationSet": {
      "description": "Wrapper for multiple maps location sync data",
      "properties": {
        "mapsLocations": {
          "description": "Required. A list of maps location info that user manually synced in.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__MapsLocationInfo"
          },
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__MapsLocationSet",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__BiddingStrategy": {
      "id": "GoogleAdsGoogleadsV24Resources__BiddingStrategy",
      "type": "object",
      "description": "A bidding strategy.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the bidding strategy. Bidding strategy resource names have the form: `customers/{customer_id}/biddingStrategies/{bidding_strategy_id}`"
        },
        "currencyCode": {
          "type": "string",
          "description": "Immutable. The currency used by the bidding strategy (ISO 4217 three-letter code). For bidding strategies in manager customers, this currency can be set on creation and defaults to the manager customer's currency. For serving customers, this field cannot be set; all strategies in a serving customer implicitly use the serving customer's currency. In all cases the effective_currency_code field returns the currency used by the strategy."
        },
        "status": {
          "description": "Output only. The status of the bidding strategy. This field is read-only.",
          "readOnly": true,
          "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"
          ],
          "type": "string"
        },
        "targetSpend": {
          "description": "A bid strategy that sets your bids to help get as many clicks as possible within your budget.",
          "$ref": "GoogleAdsGoogleadsV24Common__TargetSpend"
        },
        "campaignCount": {
          "type": "string",
          "description": "Output only. The number of campaigns attached to this bidding strategy. This field is read-only.",
          "readOnly": true,
          "format": "int64"
        },
        "maximizeConversions": {
          "description": "An automated bidding strategy to help get the most conversions for your campaigns while spending your budget.",
          "$ref": "GoogleAdsGoogleadsV24Common__MaximizeConversions"
        },
        "targetImpressionShare": {
          "description": "A bidding strategy that automatically optimizes towards a chosen percentage of impressions.",
          "$ref": "GoogleAdsGoogleadsV24Common__TargetImpressionShare"
        },
        "id": {
          "type": "string",
          "description": "Output only. The ID of the bidding strategy.",
          "readOnly": true,
          "format": "int64"
        },
        "targetRoas": {
          "description": "A bidding strategy that helps you maximize revenue while averaging a specific target Return On Ad Spend (ROAS).",
          "$ref": "GoogleAdsGoogleadsV24Common__TargetRoas"
        },
        "effectiveCurrencyCode": {
          "type": "string",
          "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
        },
        "nonRemovedCampaignCount": {
          "type": "string",
          "description": "Output only. The number of non-removed campaigns attached to this bidding strategy. This field is read-only.",
          "readOnly": true,
          "format": "int64"
        },
        "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": "GoogleAdsGoogleadsV24Common__TargetCpa"
        },
        "maximizeConversionValue": {
          "description": "An automated bidding strategy to help get the most conversion value for your campaigns while spending your budget.",
          "$ref": "GoogleAdsGoogleadsV24Common__MaximizeConversionValue"
        },
        "type": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "COMMISSION",
            "ENHANCED_CPC",
            "FIXED_CPM",
            "FIXED_SHARE_OF_VOICE",
            "INVALID",
            "MANUAL_CPA",
            "MANUAL_CPC",
            "MANUAL_CPM",
            "MANUAL_CPV",
            "MAXIMIZE_CONVERSIONS",
            "MAXIMIZE_CONVERSION_VALUE",
            "PAGE_ONE_PROMOTED",
            "PERCENT_CPC",
            "TARGET_CPA",
            "TARGET_CPC",
            "TARGET_CPM",
            "TARGET_CPV",
            "TARGET_IMPRESSION_SHARE",
            "TARGET_OUTRANK_SHARE",
            "TARGET_ROAS",
            "TARGET_SPEND"
          ],
          "description": "Output only. The type of the bidding strategy. Create a bidding strategy by setting the bidding scheme. This field is read-only.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Commission is an automatic bidding strategy in which the advertiser pays a certain portion of the conversion value.",
            "Enhanced CPC is a bidding strategy that raises bids for clicks that seem more likely to lead to a conversion and lowers them for clicks where they seem less likely.",
            "Fixed CPM is a manual bidding strategy with a fixed CPM.",
            "Fixed share of voice is a manual bidding strategy for YouTube Sponsorships that bills either on CPM or a fixed cost per day.",
            "Used for return value only. Indicates that a campaign does not have a bidding strategy. This prevents the campaign from serving. For example, a campaign may be attached to a manager bidding strategy and the serving account is subsequently unlinked from the manager account. In this case the campaign will automatically be detached from the now inaccessible manager bidding strategy and transition to the INVALID bidding strategy type.",
            "Manual bidding strategy that allows advertiser to set the bid per advertiser-specified action.",
            "Manual click based bidding where user pays per click.",
            "Manual impression based bidding where user pays per thousand impressions.",
            "A bidding strategy that pays a configurable amount per video view.",
            "A bidding strategy that automatically maximizes number of conversions given a daily budget.",
            "An automated bidding strategy that automatically sets bids to maximize revenue while spending your budget.",
            "Page-One Promoted bidding scheme, which sets max cpc bids to target impressions on page one or page one promoted slots on google.com. This enum value is deprecated.",
            "Percent Cpc is bidding strategy where bids are a fraction of the advertised price for some good or service.",
            "Target CPA is an automated bid strategy that sets bids to help get as many conversions as possible at the target cost-per-acquisition (CPA) you set.",
            "Target CPC is an automated bid strategy that sets bids to help get as many clicks as possible at the target cost-per-click (CPC) you set.",
            "Target CPM is an automated bid strategy that sets bids to help get as many impressions as possible at the target cost per one thousand impressions (CPM) you set.",
            "Target CPV is an automated bidding strategy that sets bids to optimize performance given the average target cost per view.",
            "An automated bidding strategy that sets bids so that a certain percentage of search ads are shown at the top of the first page (or other targeted location).",
            "Target Outrank Share is an automated bidding strategy that sets bids based on the target fraction of auctions where the advertiser should outrank a specific competitor. This enum value is deprecated.",
            "Target ROAS is an automated bidding strategy that helps you maximize revenue while averaging a specific target Return On Average Spend (ROAS).",
            "Target Spend is an automated bid strategy that sets your bids to help get as many clicks as possible within your budget."
          ]
        },
        "name": {
          "type": "string",
          "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)."
        },
        "alignedCampaignBudgetId": {
          "type": "string",
          "description": "ID of the campaign budget that this portfolio bidding strategy is aligned with. When a portfolio and a campaign budget are aligned, that means that they are attached to the same set of campaigns. After a bidding strategy is aligned with a campaign budget, campaigns that are added to the bidding strategy must also use the aligned campaign budget.",
          "format": "int64"
        },
        "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": "GoogleAdsGoogleadsV24Common__EnhancedCpc"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__CampaignAssetOperation": {
      "id": "GoogleAdsGoogleadsV24Services__CampaignAssetOperation",
      "type": "object",
      "description": "A single operation (create, update, remove) on a campaign asset.",
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new campaign asset.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CampaignAsset"
        },
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask",
          "type": "string"
        },
        "update": {
          "description": "Update operation: The campaign asset is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CampaignAsset"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed campaign asset is expected, in this format: `customers/{customer_id}/campaignAssets/{campaign_id}~{asset_id}~{field_type}`"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateCampaignSharedSetsResponse": {
      "id": "GoogleAdsGoogleadsV24Services__MutateCampaignSharedSetsResponse",
      "type": "object",
      "description": "Response message for a campaign shared set mutate.",
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateCampaignSharedSetResult"
          },
          "description": "All results for the mutate."
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__AdvertisingPartnerLinkInvitationIdentifier": {
      "id": "GoogleAdsGoogleadsV24Resources__AdvertisingPartnerLinkInvitationIdentifier",
      "type": "object",
      "description": "The identifier for the Advertising Partner Google Ads account.",
      "properties": {
        "customer": {
          "type": "string",
          "description": "Immutable. The resource name of the advertising partner Google Ads account. This field is read only."
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__CalloutAsset": {
      "id": "GoogleAdsGoogleadsV24Common__CalloutAsset",
      "type": "object",
      "description": "A Callout asset.",
      "properties": {
        "calloutText": {
          "type": "string",
          "description": "Required. The callout text. The length of this string should be between 1 and 25, inclusive."
        },
        "endDate": {
          "type": "string",
          "description": "Last date of when this asset is effective and still serving, in yyyy-MM-dd format."
        },
        "adScheduleTargets": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdScheduleInfo"
          },
          "description": "List of non-overlapping schedules specifying all time intervals for which the asset may serve. There can be a maximum of 6 schedules per day, 42 in total.",
          "type": "array"
        },
        "startDate": {
          "description": "Start date of when this asset is effective and can begin serving, in yyyy-MM-dd format.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__BenchmarksProductMetadata": {
      "description": "The metadata associated with a product supported for benchmarks data.",
      "properties": {
        "marketingObjective": {
          "type": "string",
          "description": "The marketing objective associated with the product. A marketing objective is a broader classification of products.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "The objective is to increase awareness.",
            "The objective is to encourage potential customers to consider the brand or products.",
            "The objective is to drive a specific conversion, such as a purchase."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AWARENESS",
            "CONSIDERATION",
            "ACTION"
          ]
        },
        "productCode": {
          "description": "The identifier of the product. The identifier can be used as inputs for BenchmarksService.GenerateBenchmarksMetrics.",
          "type": "string"
        },
        "productName": {
          "type": "string",
          "description": "The name of the product."
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__BenchmarksProductMetadata",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__SmartCampaignAdInfo": {
      "description": "A Smart campaign ad.",
      "properties": {
        "headlines": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdTextAsset"
          },
          "description": "List of text assets, each of which corresponds to a headline when the ad serves. This list consists of a minimum of 3 and up to 15 text assets.",
          "type": "array"
        },
        "descriptions": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdTextAsset"
          },
          "description": "List of text assets, each of which corresponds to a description when the ad serves. This list consists of a minimum of 2 and up to 4 text assets.",
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__SmartCampaignAdInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__FacebookMessengerBusinessMessageInfo": {
      "id": "GoogleAdsGoogleadsV24Common__FacebookMessengerBusinessMessageInfo",
      "type": "object",
      "description": "Facebook Messenger information to use for messaging.",
      "properties": {
        "pageName": {
          "description": "Required. Facebook page name used for starting a chat on Facebook Messenger.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__GenerateBenchmarksMetricsRequest": {
      "id": "GoogleAdsGoogleadsV24Services__GenerateBenchmarksMetricsRequest",
      "type": "object",
      "description": "Request message for BenchmarksService.GenerateBenchmarksMetrics.",
      "properties": {
        "currencyCode": {
          "description": "Optional. The three-character ISO 4217 currency code. If unspecified, the default currency for monetary values is USD.",
          "type": "string"
        },
        "location": {
          "description": "Required. The location to generate benchmarks metrics for.",
          "$ref": "GoogleAdsGoogleadsV24Common__LocationInfo"
        },
        "dateRange": {
          "description": "The date range to aggregate metrics over. If unset, data will be returned for the most recent quarter for which data is available. Dates can be retrieved using BenchmarksService.ListBenchmarksAvailableDates.",
          "$ref": "GoogleAdsGoogleadsV24Common__DateRange"
        },
        "applicationInfo": {
          "description": "Additional information on the application issuing the request.",
          "$ref": "GoogleAdsGoogleadsV24Common__AdditionalApplicationInfo"
        },
        "customerBenchmarksGroup": {
          "type": "string",
          "description": "The name of the customer being planned for. This is a user-defined value."
        },
        "breakdownDefinition": {
          "description": "Optional. The set of dimensions to group metrics by. If multiple dimensions are selected, cross-dimension breakdowns are returned.",
          "$ref": "GoogleAdsGoogleadsV24Services__BreakdownDefinition"
        },
        "benchmarksSource": {
          "description": "Required. The source used to generate benchmarks metrics for.",
          "$ref": "GoogleAdsGoogleadsV24Services__BenchmarksSource"
        },
        "productFilter": {
          "description": "Required. The products to aggregate metrics over. Product filter settings support a list of product IDs or a list of marketing objectives.",
          "$ref": "GoogleAdsGoogleadsV24Services__ProductFilter"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__CustomerThirdPartyViewabilityIntegrationPartner": {
      "description": "Container for third party viewability integration data for Customer.",
      "properties": {
        "allowShareCost": {
          "type": "boolean",
          "description": "If true, cost data can be shared with this vendor."
        },
        "viewabilityIntegrationPartner": {
          "type": "string",
          "description": "Allowed third party integration partners for YouTube viewability verification.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "DoubleVerify.",
            "Integral Ad Science."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DOUBLE_VERIFY",
            "INTEGRAL_AD_SCIENCE"
          ]
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__CustomerThirdPartyViewabilityIntegrationPartner",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_Recommendation_CustomAudienceOptInRecommendation": {
      "description": "The Custom Audience Opt In recommendation.",
      "properties": {
        "keywords": {
          "type": "array",
          "description": "Output only. The list of keywords to use for custom audience creation.",
          "readOnly": true,
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__KeywordInfo"
          }
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_Recommendation_CustomAudienceOptInRecommendation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__KeywordPlanAdGroupKeywordOperation": {
      "id": "GoogleAdsGoogleadsV24Services__KeywordPlanAdGroupKeywordOperation",
      "type": "object",
      "description": "A single operation (create, update, remove) on a Keyword Plan ad group keyword.",
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new Keyword Plan ad group keyword.",
          "$ref": "GoogleAdsGoogleadsV24Resources__KeywordPlanAdGroupKeyword"
        },
        "updateMask": {
          "description": "The FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask",
          "type": "string"
        },
        "update": {
          "description": "Update operation: The Keyword Plan ad group keyword is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV24Resources__KeywordPlanAdGroupKeyword"
        },
        "remove": {
          "description": "Remove operation: A resource name for the removed Keyword Plan ad group keyword is expected, in this format: `customers/{customer_id}/keywordPlanAdGroupKeywords/{kp_ad_group_keyword_id}`",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_Event": {
      "id": "GoogleAdsGoogleadsV24Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_Event",
      "type": "object",
      "description": "Defines a Google conversion event that the conversion value is mapped to.",
      "properties": {
        "eventOccurrenceRange": {
          "description": "Output only. The event counter range.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaEvent_EventOccurrenceRange"
        },
        "mappedEventName": {
          "type": "string",
          "description": "Output only. Google event name represented by this conversion value.",
          "readOnly": true
        },
        "currencyCode": {
          "description": "Output only. The reported currency for the event_revenue. ISO 4217 three-letter currency code, for example, \"USD\"",
          "readOnly": true,
          "type": "string"
        },
        "eventRevenueRange": {
          "description": "Output only. The event revenue range.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaEvent_RevenueRange"
        },
        "eventRevenueValue": {
          "description": "Output only. The specific event revenue value.",
          "readOnly": true,
          "format": "double",
          "type": "number"
        },
        "eventCounter": {
          "type": "string",
          "description": "Output only. For specific event counter values.",
          "readOnly": true,
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__KeywordSeed": {
      "description": "Keyword Seed",
      "properties": {
        "keywords": {
          "type": "array",
          "description": "Requires at least one keyword and no more than 20 keywords.",
          "items": {
            "type": "string"
          }
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__KeywordSeed",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__MediaFile": {
      "description": "A media file.",
      "properties": {
        "type": {
          "description": "Immutable. Type of the media file.",
          "enumDescriptions": [
            "The media type has not been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "Static image, used for image ad.",
            "Small image, used for map ad.",
            "ZIP file, used in fields of template ads.",
            "Audio file.",
            "Video file.",
            "Animated image, such as animated GIF."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "IMAGE",
            "ICON",
            "MEDIA_BUNDLE",
            "AUDIO",
            "VIDEO",
            "DYNAMIC_IMAGE"
          ],
          "type": "string"
        },
        "fileSize": {
          "type": "string",
          "description": "Output only. The size of the media file in bytes.",
          "readOnly": true,
          "format": "int64"
        },
        "name": {
          "description": "Immutable. The name of the media file. The name can be used by clients to help identify previously uploaded media.",
          "type": "string"
        },
        "image": {
          "description": "Immutable. Encapsulates an Image.",
          "$ref": "GoogleAdsGoogleadsV24Resources__MediaImage"
        },
        "id": {
          "type": "string",
          "description": "Output only. The ID of the media file.",
          "readOnly": true,
          "format": "int64"
        },
        "sourceUrl": {
          "description": "Immutable. The URL of where the original media file was downloaded from (or a file name). Only used for media of type AUDIO and IMAGE.",
          "type": "string"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the media file. Media file resource names have the form: `customers/{customer_id}/mediaFiles/{media_file_id}`"
        },
        "mimeType": {
          "description": "Output only. The mime type of the media file.",
          "readOnly": true,
          "enumDescriptions": [
            "The mime type has not been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "MIME type of image/jpeg.",
            "MIME type of image/gif.",
            "MIME type of image/png.",
            "MIME type of application/x-shockwave-flash.",
            "MIME type of text/html.",
            "MIME type of application/pdf.",
            "MIME type of application/msword.",
            "MIME type of application/vnd.ms-excel.",
            "MIME type of application/rtf.",
            "MIME type of audio/wav.",
            "MIME type of audio/mp3.",
            "MIME type of application/x-html5-ad-zip."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "IMAGE_JPEG",
            "IMAGE_GIF",
            "IMAGE_PNG",
            "FLASH",
            "TEXT_HTML",
            "PDF",
            "MSWORD",
            "MSEXCEL",
            "RTF",
            "AUDIO_WAV",
            "AUDIO_MP3",
            "HTML5_AD_ZIP"
          ],
          "type": "string"
        },
        "mediaBundle": {
          "description": "Immutable. A ZIP archive media the content of which contains HTML5 assets.",
          "$ref": "GoogleAdsGoogleadsV24Resources__MediaBundle"
        },
        "audio": {
          "description": "Output only. Encapsulates an Audio.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources__MediaAudio"
        },
        "video": {
          "description": "Immutable. Encapsulates a Video.",
          "$ref": "GoogleAdsGoogleadsV24Resources__MediaVideo"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__MediaFile",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__CustomerMatchUserListMetadata": {
      "id": "GoogleAdsGoogleadsV24Common__CustomerMatchUserListMetadata",
      "type": "object",
      "description": "Metadata for customer match user list.",
      "properties": {
        "consent": {
          "description": "The consent setting for all the users in this job.",
          "$ref": "GoogleAdsGoogleadsV24Common__Consent"
        },
        "userList": {
          "type": "string",
          "description": "The resource name of remarketing list to update data. Required for job of CUSTOMER_MATCH_USER_LIST type."
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__LocationInterestView": {
      "id": "GoogleAdsGoogleadsV24Resources__LocationInterestView",
      "type": "object",
      "description": "A location interest view summarizes the performance of adgroup location interest criteria.",
      "properties": {
        "resourceName": {
          "description": "Output only. The resource name of the location interest view. Location interest view resource names have the form: `customers/{customer_id}/locationInterestViews/{campaign_id}~{ad_group_id}~{criterion_id}`",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__MediaBundleAsset": {
      "id": "GoogleAdsGoogleadsV24Common__MediaBundleAsset",
      "type": "object",
      "description": "A MediaBundle asset.",
      "properties": {
        "data": {
          "type": "string",
          "description": "Media bundle (ZIP file) asset data. The format of the uploaded ZIP file depends on the ad field where it will be used. For more information on the format, see the documentation of the ad field where you plan on using the MediaBundleAsset. This field is mutate only.",
          "format": "byte"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__ImageAdInfo": {
      "id": "GoogleAdsGoogleadsV24Common__ImageAdInfo",
      "type": "object",
      "description": "An image ad.",
      "properties": {
        "pixelWidth": {
          "type": "string",
          "description": "Width in pixels of the full size image.",
          "format": "int64"
        },
        "data": {
          "description": "Raw image data as bytes.",
          "format": "byte",
          "type": "string"
        },
        "imageUrl": {
          "description": "URL of the full size image.",
          "type": "string"
        },
        "mimeType": {
          "type": "string",
          "description": "The mime type of the image.",
          "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"
          ]
        },
        "imageAsset": {
          "description": "The image assets used for the ad.",
          "$ref": "GoogleAdsGoogleadsV24Common__AdImageAsset"
        },
        "previewPixelWidth": {
          "description": "Width in pixels of the preview size image.",
          "format": "int64",
          "type": "string"
        },
        "previewPixelHeight": {
          "type": "string",
          "description": "Height in pixels of the preview size image.",
          "format": "int64"
        },
        "adIdToCopyImageFrom": {
          "description": "An ad ID to copy the image from.",
          "format": "int64",
          "type": "string"
        },
        "pixelHeight": {
          "type": "string",
          "description": "Height in pixels of the full size image.",
          "format": "int64"
        },
        "name": {
          "description": "The name of the image. If the image was created from a MediaFile, this is the MediaFile's name. If the image was created from bytes, this is empty.",
          "type": "string"
        },
        "previewImageUrl": {
          "description": "URL of the preview size image.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services_GenerateCreatorInsightsRequest_SearchBrand": {
      "id": "GoogleAdsGoogleadsV24Services_GenerateCreatorInsightsRequest_SearchBrand",
      "type": "object",
      "description": "The brand used to search for top creators.",
      "properties": {
        "brandEntities": {
          "description": "Optional. One or more Knowledge Graph Entities that represent the brand for which to find insights.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AudienceInsightsAttribute"
          },
          "type": "array"
        },
        "includeRelatedTopics": {
          "description": "Optional. When true, we will expand the search to beyond just the entities specified in brand_entities to other related knowledge graph entities similar to the brand. The default value is `false`.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaEvent_EventOccurrenceRange": {
      "description": "Defines a range for event counter values.",
      "properties": {
        "minEventCount": {
          "description": "Output only. For event counter ranges, the minimum of the defined range. A value of 0 will be treated as unset.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "maxEventCount": {
          "description": "Output only. For event counter ranges, the maximum of the defined range. A value of 0 will be treated as unset.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaEvent_EventOccurrenceRange",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__RemoveYouTubeVideoUploadRequest": {
      "description": "Request message for YouTubeVideoUploadService.RemoveYouTubeVideoUpload.",
      "properties": {
        "resourceNames": {
          "type": "array",
          "description": "The resource names of the YouTube video uploads to be removed. Required.",
          "items": {
            "type": "string"
          }
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__RemoveYouTubeVideoUploadRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__IdentityVerificationRequirement": {
      "id": "GoogleAdsGoogleadsV24Services__IdentityVerificationRequirement",
      "type": "object",
      "description": "Information regarding the verification requirement for a verification program type.",
      "properties": {
        "verificationStartDeadlineTime": {
          "type": "string",
          "description": "The deadline to start verification in \"yyyy-MM-dd HH:mm:ss\" format."
        },
        "verificationCompletionDeadlineTime": {
          "type": "string",
          "description": "The deadline to submit verification."
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__EventItemAttribute": {
      "id": "GoogleAdsGoogleadsV24Common__EventItemAttribute",
      "type": "object",
      "description": "Event Item attributes of the Customer Match.",
      "properties": {
        "itemId": {
          "type": "string",
          "description": "Optional. A unique identifier of a product. It can be either the Merchant Center Item ID or GTIN (Global Trade Item Number)."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateAssetGroupsResponse": {
      "id": "GoogleAdsGoogleadsV24Services__MutateAssetGroupsResponse",
      "type": "object",
      "description": "Response message for an asset group mutate.",
      "properties": {
        "results": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateAssetGroupResult"
          },
          "description": "All results for the mutate.",
          "type": "array"
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__DetailedDemographic": {
      "id": "GoogleAdsGoogleadsV24Resources__DetailedDemographic",
      "type": "object",
      "description": "A detailed demographic: a particular interest-based vertical to be targeted to reach users based on long-term life facts.",
      "properties": {
        "resourceName": {
          "description": "Output only. The resource name of the detailed demographic. Detailed demographic resource names have the form: `customers/{customer_id}/detailedDemographics/{detailed_demographic_id}`",
          "readOnly": true,
          "type": "string"
        },
        "availabilities": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__CriterionCategoryAvailability"
          },
          "description": "Output only. Availability information of the detailed demographic.",
          "readOnly": true
        },
        "id": {
          "type": "string",
          "description": "Output only. The ID of the detailed demographic.",
          "readOnly": true,
          "format": "int64"
        },
        "launchedToAll": {
          "description": "Output only. True if the detailed demographic is launched to all channels and locales.",
          "readOnly": true,
          "type": "boolean"
        },
        "name": {
          "type": "string",
          "description": "Output only. The name of the detailed demographic. For example,\"Highest Level of Educational Attainment\"",
          "readOnly": true
        },
        "parent": {
          "description": "Output only. The parent of the detailed_demographic.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_Campaign_MessagingRestriction": {
      "description": "Freeform instructions that will be used to guide text asset generation using LLM inference.",
      "properties": {
        "restrictionType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "RESTRICTION_BASED_EXCLUSION"
          ],
          "description": "Determines how the guideline is applied. Only `RESTRICTION_BASED_EXCLUSION` is currently supported.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Exclude text assets that are not compliant with this restriction."
          ]
        },
        "restrictionText": {
          "description": "Freeform instructions to guide text asset generation using LLM inference. Valid instructions may contain a maximum of 300 characters.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_Campaign_MessagingRestriction",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__BatchJobResult": {
      "description": "An individual batch job result.",
      "properties": {
        "status": {
          "description": "Details of the errors when processing the operation.",
          "$ref": "GoogleRpc__Status"
        },
        "operationIndex": {
          "type": "string",
          "description": "Index of the mutate operation.",
          "format": "int64"
        },
        "mutateOperationResponse": {
          "description": "Response for the mutate. May be empty if errors occurred.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateOperationResponse"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__BatchJobResult",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__GenerateRecommendationsResponse": {
      "id": "GoogleAdsGoogleadsV24Services__GenerateRecommendationsResponse",
      "type": "object",
      "description": "Response message for RecommendationService.GenerateRecommendations.",
      "properties": {
        "recommendations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Resources__Recommendation"
          },
          "description": "List of generated recommendations from the passed in set of requested recommendation_types. If there isn't sufficient data to generate a recommendation for the requested recommendation_types, the result set won't contain a recommendation for that type.",
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__KeywordPlan": {
      "description": "A Keyword Planner plan. Max number of saved keyword plans: 10000. It's possible to remove plans if limit is reached.",
      "properties": {
        "id": {
          "type": "string",
          "description": "Output only. The ID of the keyword plan.",
          "readOnly": true,
          "format": "int64"
        },
        "name": {
          "type": "string",
          "description": "The name of the keyword plan. This field is required and should not be empty when creating new keyword plans."
        },
        "forecastPeriod": {
          "description": "The date period used for forecasting the plan.",
          "$ref": "GoogleAdsGoogleadsV24Resources__KeywordPlanForecastPeriod"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the Keyword Planner plan. KeywordPlan resource names have the form: `customers/{customer_id}/keywordPlans/{kp_plan_id}`"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__KeywordPlan",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__AdGroupAssetOperation": {
      "description": "A single operation (create, update, remove) on an ad group asset.",
      "properties": {
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask",
          "type": "string"
        },
        "update": {
          "description": "Update operation: The ad group asset is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AdGroupAsset"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed ad group asset is expected, in this format: `customers/{customer_id}/adGroupAssets/{ad_group_id}~{asset_id}~{field_type}`"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new ad group asset.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AdGroupAsset"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__AdGroupAssetOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Errors__BudgetPerDayMinimumErrorDetails": {
      "id": "GoogleAdsGoogleadsV24Errors__BudgetPerDayMinimumErrorDetails",
      "type": "object",
      "description": "Error details for a budget below per-day minimum error.",
      "properties": {
        "failedBudgetTotalAmountMicros": {
          "type": "string",
          "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.",
          "format": "int64"
        },
        "currencyCode": {
          "description": "The advertiser's currency, represented as a three-letter ISO 4217 currency code (such as \"USD\").",
          "type": "string"
        },
        "minimumBudgetTotalAmountMicros": {
          "type": "string",
          "description": "The minimum value for the budget's total_amount field required by the campaign given its configured start and end time, in micros of the advertiser currency. Only set if this error is caused by the total_amount field value.",
          "format": "int64"
        },
        "failedBudgetAmountMicros": {
          "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.",
          "format": "int64",
          "type": "string"
        },
        "budgetPerDayMinimumMicros": {
          "type": "string",
          "description": "The minimum budget required by the campaign per day, in micros of the advertiser currency. Applies to both daily and custom budgets.",
          "format": "int64"
        },
        "minimumBudgetAmountMicros": {
          "type": "string",
          "description": "The minimum value for the budget's amount field required by the campaign, in micros of the advertiser currency. Only set if this error is caused by the amount field value.",
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__GoogleAdsRow": {
      "description": "A returned row from the query.",
      "properties": {
        "sharedCriterion": {
          "description": "The shared set referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__SharedCriterion"
        },
        "goal": {
          "description": "The goal in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__Goal"
        },
        "clickView": {
          "description": "The ClickView referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__ClickView"
        },
        "changeStatus": {
          "description": "The ChangeStatus referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__ChangeStatus"
        },
        "geoTargetConstant": {
          "description": "The geo target constant referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__GeoTargetConstant"
        },
        "productLink": {
          "description": "The product link referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__ProductLink"
        },
        "smartCampaignSetting": {
          "description": "The Smart campaign setting referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__SmartCampaignSetting"
        },
        "adGroup": {
          "description": "The ad group referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AdGroup"
        },
        "adGroupCriterionCustomizer": {
          "description": "The ad group criterion customizer referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AdGroupCriterionCustomizer"
        },
        "campaignConversionGoal": {
          "description": "The CampaignConversionGoal referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CampaignConversionGoal"
        },
        "customerClient": {
          "description": "The CustomerClient referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CustomerClient"
        },
        "conversionValueRuleSet": {
          "description": "The conversion value rule set referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__ConversionValueRuleSet"
        },
        "localServicesLeadConversation": {
          "description": "The local services lead conversationreferenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__LocalServicesLeadConversation"
        },
        "campaign": {
          "description": "The campaign referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__Campaign"
        },
        "keywordThemeConstant": {
          "description": "The keyword theme constant referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__KeywordThemeConstant"
        },
        "customerUserAccessInvitation": {
          "description": "The CustomerUserAccessInvitation referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CustomerUserAccessInvitation"
        },
        "productLinkInvitation": {
          "description": "The product link invitation in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__ProductLinkInvitation"
        },
        "finalUrlExpansionAssetView": {
          "description": "The final url expansion asset view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__FinalUrlExpansionAssetView"
        },
        "productCategoryConstant": {
          "description": "The product category referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__ProductCategoryConstant"
        },
        "dataLink": {
          "description": "The data link referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__DataLink"
        },
        "conversionValueRule": {
          "description": "The conversion value rule referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__ConversionValueRule"
        },
        "customAudience": {
          "description": "The CustomAudience referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CustomAudience"
        },
        "assetGroup": {
          "description": "The asset group referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AssetGroup"
        },
        "operatingSystemVersionConstant": {
          "description": "The operating system version constant referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__OperatingSystemVersionConstant"
        },
        "thirdPartyAppAnalyticsLink": {
          "description": "The AccountLink referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__ThirdPartyAppAnalyticsLink"
        },
        "userListCustomerType": {
          "description": "The user list customer type in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__UserListCustomerType"
        },
        "userInterest": {
          "description": "The user interest referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__UserInterest"
        },
        "biddingDataExclusion": {
          "description": "The bidding data exclusion referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__BiddingDataExclusion"
        },
        "label": {
          "description": "The label referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__Label"
        },
        "lifeEvent": {
          "description": "The life event referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__LifeEvent"
        },
        "offlineConversionUploadClientSummary": {
          "description": "Offline conversion upload summary at customer level.",
          "$ref": "GoogleAdsGoogleadsV24Resources__OfflineConversionUploadClientSummary"
        },
        "biddingStrategy": {
          "description": "The bidding strategy referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__BiddingStrategy"
        },
        "detailedDemographic": {
          "description": "The detailed demographic referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__DetailedDemographic"
        },
        "campaignBidModifier": {
          "description": "The campaign bid modifier referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CampaignBidModifier"
        },
        "campaignDraft": {
          "description": "The campaign draft referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CampaignDraft"
        },
        "searchTermView": {
          "description": "The search term view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__SearchTermView"
        },
        "qualifyingQuestion": {
          "description": "The qualifying question referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__QualifyingQuestion"
        },
        "genderView": {
          "description": "The gender view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__GenderView"
        },
        "conversionAction": {
          "description": "The conversion action referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__ConversionAction"
        },
        "customerLabel": {
          "description": "The customer label referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CustomerLabel"
        },
        "hotelGroupView": {
          "description": "The hotel group view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__HotelGroupView"
        },
        "campaignLabel": {
          "description": "The campaign label referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CampaignLabel"
        },
        "geographicView": {
          "description": "The geographic view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__GeographicView"
        },
        "hotelReconciliation": {
          "description": "The hotel reconciliation referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__HotelReconciliation"
        },
        "conversionGoalCampaignConfig": {
          "description": "The ConversionGoalCampaignConfig referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__ConversionGoalCampaignConfig"
        },
        "assetGroupListingGroupFilter": {
          "description": "The asset group listing group filter referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AssetGroupListingGroupFilter"
        },
        "managedPlacementView": {
          "description": "The managed placement view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__ManagedPlacementView"
        },
        "keywordPlanAdGroupKeyword": {
          "description": "The keyword plan ad group referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__KeywordPlanAdGroupKeyword"
        },
        "localServicesVerificationArtifact": {
          "description": "The local services verification artifact referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__LocalServicesVerificationArtifact"
        },
        "detailPlacementView": {
          "description": "The detail placement view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__DetailPlacementView"
        },
        "customerLifecycleGoal": {
          "description": "The customer lifecycle goal referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CustomerLifecycleGoal"
        },
        "adGroupSimulation": {
          "description": "The ad group simulation referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AdGroupSimulation"
        },
        "groupPlacementView": {
          "description": "The group placement view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__GroupPlacementView"
        },
        "adGroupAdAssetView": {
          "description": "The ad group ad asset view in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AdGroupAdAssetView"
        },
        "recommendation": {
          "description": "The recommendation referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__Recommendation"
        },
        "adGroupLabel": {
          "description": "The ad group label referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AdGroupLabel"
        },
        "targetingExpansionView": {
          "description": "The Targeting expansion view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__TargetingExpansionView"
        },
        "contentCriterionView": {
          "description": "The content criterion view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__ContentCriterionView"
        },
        "mobileAppCategoryConstant": {
          "description": "The mobile app category constant referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__MobileAppCategoryConstant"
        },
        "localServicesLead": {
          "description": "The local services lead referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__LocalServicesLead"
        },
        "androidPrivacySharedKeyGoogleCampaign": {
          "description": "The android privacy shared key google campaign referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AndroidPrivacySharedKeyGoogleCampaign"
        },
        "mediaFile": {
          "description": "The media file referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__MediaFile"
        },
        "incomeRangeView": {
          "description": "The income range view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__IncomeRangeView"
        },
        "adGroupAssetSet": {
          "description": "The ad group asset set referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AdGroupAssetSet"
        },
        "hotelPerformanceView": {
          "description": "The hotel performance view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__HotelPerformanceView"
        },
        "appliedIncentive": {
          "description": "The applied incentive referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AppliedIncentive"
        },
        "landingPageView": {
          "description": "The landing page view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__LandingPageView"
        },
        "customConversionGoal": {
          "description": "The CustomConversionGoal referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CustomConversionGoal"
        },
        "shoppingProduct": {
          "description": "The shopping product referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__ShoppingProduct"
        },
        "recommendationSubscription": {
          "description": "The recommendation subscription referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__RecommendationSubscription"
        },
        "customerAssetSet": {
          "description": "The customer asset set referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CustomerAssetSet"
        },
        "topicConstant": {
          "description": "The topic constant referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__TopicConstant"
        },
        "adGroupCriterionSimulation": {
          "description": "The ad group criterion simulation referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AdGroupCriterionSimulation"
        },
        "locationInterestView": {
          "description": "The location interest view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__LocationInterestView"
        },
        "shoppingPerformanceView": {
          "description": "The shopping performance view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__ShoppingPerformanceView"
        },
        "segments": {
          "description": "The segments.",
          "$ref": "GoogleAdsGoogleadsV24Common__Segments"
        },
        "detailContentSuitabilityPlacementView": {
          "description": "The detail content suitability placement view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__DetailContentSuitabilityPlacementView"
        },
        "parentalStatusView": {
          "description": "The parental status view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__ParentalStatusView"
        },
        "performanceMaxPlacementView": {
          "description": "The performance max placement view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__PerformanceMaxPlacementView"
        },
        "topicView": {
          "description": "The topic view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__TopicView"
        },
        "userList": {
          "description": "The user list referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__UserList"
        },
        "assetGroupSignal": {
          "description": "The asset group signal referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AssetGroupSignal"
        },
        "videoEnhancement": {
          "description": "The video enhancement referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__VideoEnhancement"
        },
        "adParameter": {
          "description": "The ad parameter referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AdParameter"
        },
        "keywordPlan": {
          "description": "The keyword plan referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__KeywordPlan"
        },
        "appTopCombinationView": {
          "description": "The app top combination view in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AppTopCombinationView"
        },
        "billingSetup": {
          "description": "The billing setup referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__BillingSetup"
        },
        "adGroupCustomizer": {
          "description": "The ad group customizer referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AdGroupCustomizer"
        },
        "accessibleBiddingStrategy": {
          "description": "The accessible bidding strategy referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AccessibleBiddingStrategy"
        },
        "callView": {
          "description": "The call view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CallView"
        },
        "audience": {
          "description": "The Audience referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__Audience"
        },
        "adGroupAd": {
          "description": "The ad referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AdGroupAd"
        },
        "adGroupAsset": {
          "description": "The ad group asset referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AdGroupAsset"
        },
        "customer": {
          "description": "The customer referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__Customer"
        },
        "androidPrivacySharedKeyGoogleNetworkType": {
          "description": "The android privacy shared key google network type referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AndroidPrivacySharedKeyGoogleNetworkType"
        },
        "keywordPlanCampaign": {
          "description": "The keyword plan campaign referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__KeywordPlanCampaign"
        },
        "displayKeywordView": {
          "description": "The display keyword view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__DisplayKeywordView"
        },
        "localServicesEmployee": {
          "description": "The local services employee referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__LocalServicesEmployee"
        },
        "adGroupCriterionLabel": {
          "description": "The ad group criterion label referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AdGroupCriterionLabel"
        },
        "campaignBudget": {
          "description": "The campaign budget referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CampaignBudget"
        },
        "campaignGoalConfig": {
          "description": "The campaign goal config referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CampaignGoalConfig"
        },
        "productGroupView": {
          "description": "The product group view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__ProductGroupView"
        },
        "combinedAudience": {
          "description": "The CombinedAudience referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CombinedAudience"
        },
        "sharedSet": {
          "description": "The shared set referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__SharedSet"
        },
        "campaignSearchTermView": {
          "description": "The campaign-level search term view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CampaignSearchTermView"
        },
        "experimentArm": {
          "description": "The experiment arm referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__ExperimentArm"
        },
        "assetSet": {
          "description": "The asset set referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AssetSet"
        },
        "metrics": {
          "description": "The metrics.",
          "$ref": "GoogleAdsGoogleadsV24Common__Metrics"
        },
        "keywordView": {
          "description": "The keyword view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__KeywordView"
        },
        "customerCustomizer": {
          "description": "The customer customizer referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CustomerCustomizer"
        },
        "cartDataSalesView": {
          "description": "The cart data sales view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CartDataSalesView"
        },
        "campaignLifecycleGoal": {
          "description": "The campaign lifecycle goal referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CampaignLifecycleGoal"
        },
        "customInterest": {
          "description": "The CustomInterest referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CustomInterest"
        },
        "accountLink": {
          "description": "The AccountLink referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AccountLink"
        },
        "adScheduleView": {
          "description": "The ad schedule view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AdScheduleView"
        },
        "campaignAudienceView": {
          "description": "The campaign audience view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CampaignAudienceView"
        },
        "expandedLandingPageView": {
          "description": "The expanded landing page view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__ExpandedLandingPageView"
        },
        "groupContentSuitabilityPlacementView": {
          "description": "The group content suitability placement view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__GroupContentSuitabilityPlacementView"
        },
        "keywordPlanCampaignKeyword": {
          "description": "The keyword plan campaign keyword referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__KeywordPlanCampaignKeyword"
        },
        "assetGroupTopCombinationView": {
          "description": "The asset group top combination view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AssetGroupTopCombinationView"
        },
        "campaignCriterion": {
          "description": "The campaign criterion referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CampaignCriterion"
        },
        "keywordPlanAdGroup": {
          "description": "The keyword plan ad group referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__KeywordPlanAdGroup"
        },
        "mobileDeviceConstant": {
          "description": "The mobile device constant referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__MobileDeviceConstant"
        },
        "assetGroupAsset": {
          "description": "The asset group asset referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AssetGroupAsset"
        },
        "biddingStrategySimulation": {
          "description": "The bidding strategy simulation referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__BiddingStrategySimulation"
        },
        "travelActivityGroupView": {
          "description": "The travel activity group view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__TravelActivityGroupView"
        },
        "youTubeVideoUpload": {
          "description": "The YouTube video upload referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__YouTubeVideoUpload"
        },
        "travelActivityPerformanceView": {
          "description": "The travel activity performance view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__TravelActivityPerformanceView"
        },
        "adGroupBidModifier": {
          "description": "The bid modifier referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AdGroupBidModifier"
        },
        "accountBudgetProposal": {
          "description": "The account budget proposal referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AccountBudgetProposal"
        },
        "assetSetAsset": {
          "description": "The asset set asset referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AssetSetAsset"
        },
        "customizerAttribute": {
          "description": "The customizer attribute referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CustomizerAttribute"
        },
        "perStoreView": {
          "description": "The per store view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__PerStoreView"
        },
        "experiment": {
          "description": "The experiment referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__Experiment"
        },
        "campaignSimulation": {
          "description": "The campaign simulation referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CampaignSimulation"
        },
        "conversionCustomVariable": {
          "description": "The conversion custom variable referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__ConversionCustomVariable"
        },
        "campaignSearchTermInsight": {
          "description": "The campaign search term insight referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CampaignSearchTermInsight"
        },
        "dynamicSearchAdsSearchTermView": {
          "description": "The dynamic search ads search term view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__DynamicSearchAdsSearchTermView"
        },
        "campaignGroup": {
          "description": "Campaign Group referenced in AWQL query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CampaignGroup"
        },
        "carrierConstant": {
          "description": "The carrier constant referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CarrierConstant"
        },
        "customerClientLink": {
          "description": "The CustomerClientLink referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CustomerClientLink"
        },
        "assetSetTypeView": {
          "description": "The asset set type view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AssetSetTypeView"
        },
        "campaignAssetSet": {
          "description": "The campaign asset set referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CampaignAssetSet"
        },
        "channelAggregateAssetView": {
          "description": "The channel aggregate asset view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__ChannelAggregateAssetView"
        },
        "locationView": {
          "description": "The location view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__LocationView"
        },
        "webpageView": {
          "description": "The webpage view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__WebpageView"
        },
        "smartCampaignSearchTermView": {
          "description": "The Smart campaign search term view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__SmartCampaignSearchTermView"
        },
        "adGroupAdAssetCombinationView": {
          "description": "The ad group ad asset combination view in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AdGroupAdAssetCombinationView"
        },
        "adGroupAudienceView": {
          "description": "The ad group audience view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AdGroupAudienceView"
        },
        "customerSearchTermInsight": {
          "description": "The customer search term insight referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CustomerSearchTermInsight"
        },
        "ad": {
          "description": "The Ad referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__Ad"
        },
        "adGroupCriterion": {
          "description": "The criterion referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AdGroupCriterion"
        },
        "campaignAggregateAssetView": {
          "description": "The campaign aggregate asset view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CampaignAggregateAssetView"
        },
        "adGroupAdLabel": {
          "description": "The ad group ad label referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AdGroupAdLabel"
        },
        "languageConstant": {
          "description": "The language constant referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__LanguageConstant"
        },
        "customerConversionGoal": {
          "description": "The CustomerConversionGoal referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CustomerConversionGoal"
        },
        "customerNegativeCriterion": {
          "description": "The customer negative criterion referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CustomerNegativeCriterion"
        },
        "batchJob": {
          "description": "The batch job referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__BatchJob"
        },
        "currencyConstant": {
          "description": "The currency constant referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CurrencyConstant"
        },
        "customerUserAccess": {
          "description": "The CustomerUserAccess referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CustomerUserAccess"
        },
        "remarketingAction": {
          "description": "The remarketing action referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__RemarketingAction"
        },
        "assetFieldTypeView": {
          "description": "The asset field type view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AssetFieldTypeView"
        },
        "changeEvent": {
          "description": "The ChangeEvent referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__ChangeEvent"
        },
        "ageRangeView": {
          "description": "The age range view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AgeRangeView"
        },
        "campaignAsset": {
          "description": "The campaign asset referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CampaignAsset"
        },
        "asset": {
          "description": "The asset referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__Asset"
        },
        "distanceView": {
          "description": "The distance view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__DistanceView"
        },
        "androidPrivacySharedKeyGoogleAdGroup": {
          "description": "The android privacy shared key google ad group referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AndroidPrivacySharedKeyGoogleAdGroup"
        },
        "userLocationView": {
          "description": "The user location view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__UserLocationView"
        },
        "leadFormSubmissionData": {
          "description": "The lead form user submission referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__LeadFormSubmissionData"
        },
        "domainCategory": {
          "description": "The domain category referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__DomainCategory"
        },
        "campaignSharedSet": {
          "description": "Campaign Shared Set referenced in AWQL query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CampaignSharedSet"
        },
        "paidOrganicSearchTermView": {
          "description": "The paid organic search term view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__PaidOrganicSearchTermView"
        },
        "customerManagerLink": {
          "description": "The CustomerManagerLink referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CustomerManagerLink"
        },
        "customerAsset": {
          "description": "The customer asset referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CustomerAsset"
        },
        "offlineUserDataJob": {
          "description": "The offline user data job referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__OfflineUserDataJob"
        },
        "accountBudget": {
          "description": "The account budget in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AccountBudget"
        },
        "assetGroupProductGroupView": {
          "description": "The asset group product group view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AssetGroupProductGroupView"
        },
        "campaignCustomizer": {
          "description": "The campaign customizer referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CampaignCustomizer"
        },
        "matchedLocationInterestView": {
          "description": "The matched location interest view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__MatchedLocationInterestView"
        },
        "video": {
          "description": "The video referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__Video"
        },
        "offlineConversionUploadConversionActionSummary": {
          "description": "Offline conversion upload summary at conversion type level.",
          "$ref": "GoogleAdsGoogleadsV24Resources__OfflineConversionUploadConversionActionSummary"
        },
        "aiMaxSearchTermAdCombinationView": {
          "description": "The AI Max search term ad combination view referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AiMaxSearchTermAdCombinationView"
        },
        "biddingSeasonalityAdjustment": {
          "description": "The bidding seasonality adjustment referenced in the query.",
          "$ref": "GoogleAdsGoogleadsV24Resources__BiddingSeasonalityAdjustment"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__GoogleAdsRow",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__AssetDisapproved": {
      "description": "Details related to AssetLinkPrimaryStatusReasonPB.ASSET_DISAPPROVED",
      "properties": {
        "offlineEvaluationErrorReasons": {
          "type": "array",
          "description": "Provides the quality evaluation disapproval reason of an asset.",
          "items": {
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "PRICE_ASSET_DESCRIPTION_REPEATS_ROW_HEADER",
              "PRICE_ASSET_REPETITIVE_HEADERS",
              "PRICE_ASSET_HEADER_INCOMPATIBLE_WITH_PRICE_TYPE",
              "PRICE_ASSET_DESCRIPTION_INCOMPATIBLE_WITH_ITEM_HEADER",
              "PRICE_ASSET_DESCRIPTION_HAS_PRICE_QUALIFIER",
              "PRICE_ASSET_UNSUPPORTED_LANGUAGE",
              "PRICE_ASSET_OTHER_ERROR"
            ],
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "One or more descriptions repeats its corresponding row header.",
              "Price asset contains repetitive headers.",
              "Price item header is not relevant to the price type.",
              "Price item description is not relevant to the item header.",
              "Price asset has a price qualifier in a description.",
              "Unsupported language for price assets",
              "Human raters identified an issue with the price asset that isn't captured by other error reasons. The primary purpose of this value is to represent legacy FeedItem disapprovals that are no longer produced."
            ],
            "type": "string"
          }
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__AssetDisapproved",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_AdGroup_AiMaxAdGroupSetting": {
      "description": "Settings for AI Max feature in standard search adgroups.",
      "properties": {
        "disableSearchTermMatching": {
          "description": "Disable search term matching for this adgroup when AI Max is enabled. Search term matching uses broad match, asset-based, and landing page-based technology to improve reach.",
          "type": "boolean"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_AdGroup_AiMaxAdGroupSetting",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__KeywordPlanAdGroupKeyword": {
      "id": "GoogleAdsGoogleadsV24Resources__KeywordPlanAdGroupKeyword",
      "type": "object",
      "description": "A Keyword Plan ad group keyword. Max number of keyword plan keywords per plan: 10000.",
      "properties": {
        "id": {
          "type": "string",
          "description": "Output only. The ID of the Keyword Plan keyword.",
          "readOnly": true,
          "format": "int64"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the Keyword Plan ad group keyword. KeywordPlanAdGroupKeyword resource names have the form: `customers/{customer_id}/keywordPlanAdGroupKeywords/{kp_ad_group_keyword_id}`"
        },
        "keywordPlanAdGroup": {
          "type": "string",
          "description": "The Keyword Plan ad group to which this keyword belongs."
        },
        "text": {
          "description": "The keyword text.",
          "type": "string"
        },
        "cpcBidMicros": {
          "description": "A keyword level max cpc bid in micros (for example, $1 = 1mm). The currency is the same as the account currency code. This will override any CPC bid set at the keyword plan ad group level. Not applicable for negative keywords. (negative = true) This field is Optional.",
          "format": "int64",
          "type": "string"
        },
        "negative": {
          "description": "Immutable. If true, the keyword is negative.",
          "type": "boolean"
        },
        "matchType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EXACT",
            "PHRASE",
            "BROAD"
          ],
          "description": "The keyword match type.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Exact match.",
            "Phrase match.",
            "Broad match."
          ],
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_Recommendation_AccountInfo": {
      "id": "GoogleAdsGoogleadsV24Resources_Recommendation_AccountInfo",
      "type": "object",
      "description": "Wrapper for information about a Google Ads account.",
      "properties": {
        "descriptiveName": {
          "type": "string",
          "description": "Output only. The descriptive name of the account.",
          "readOnly": true
        },
        "customerId": {
          "type": "string",
          "description": "Output only. The customer ID of the account.",
          "readOnly": true,
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__CampaignBudget": {
      "id": "GoogleAdsGoogleadsV24Resources__CampaignBudget",
      "type": "object",
      "description": "A campaign budget.",
      "properties": {
        "hasRecommendedBudget": {
          "type": "boolean",
          "description": "Output only. Indicates whether there is a recommended budget for this campaign budget. This field is read-only.",
          "readOnly": true
        },
        "id": {
          "description": "Output only. The ID of the campaign budget. A campaign budget is created using the CampaignBudgetService create operation and is assigned a budget ID. A budget ID can be shared across different campaigns; the system will then allocate the campaign budget among different campaigns to get optimum results.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "recommendedBudgetEstimatedChangeWeeklyInteractions": {
          "type": "string",
          "description": "Output only. The estimated change in weekly interactions if the recommended budget is applied. This field is read-only.",
          "readOnly": true,
          "format": "int64"
        },
        "totalAmountMicros": {
          "description": "The total amount to be spent by the campaign over its entire duration. This field is used *only* when the CampaignBudget `period` is set to `CUSTOM_PERIOD`. It represents the budget cap for the campaign's lifetime, rather than a daily limit. The amount is specified in micros in the account's local currency. One million micros is equivalent to one currency unit. This field is mutually exclusive with 'amount_micros'. Only one of 'total_amount_micros' or 'amount_micros' should be set.",
          "format": "int64",
          "type": "string"
        },
        "name": {
          "description": "The name of the campaign budget. When creating a campaign budget through CampaignBudgetService, every explicitly shared campaign budget must have a non-null, non-empty name. Campaign budgets that are not explicitly shared derive their name from the attached campaign's name. The length of this string must be between 1 and 255, inclusive, in UTF-8 bytes, (trimmed).",
          "type": "string"
        },
        "deliveryMethod": {
          "type": "string",
          "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.",
          "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."
          ]
        },
        "type": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "STANDARD",
            "FIXED_CPA",
            "SMART_CAMPAIGN",
            "LOCAL_SERVICES"
          ],
          "description": "Immutable. The type of the campaign budget.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Budget type for standard Google Ads usage. Caps daily spend at two times the specified budget amount. Full details: https://support.google.com/google-ads/answer/6385083",
            "Budget type with a fixed cost-per-acquisition (conversion). Full details: https://support.google.com/google-ads/answer/7528254 This type is only supported by campaigns with AdvertisingChannelType.DISPLAY (excluding AdvertisingChannelSubType.DISPLAY_GMAIL), BiddingStrategyType.TARGET_CPA and PaymentMode.CONVERSIONS.",
            "Budget type for Smart Campaign. Full details: https://support.google.com/google-ads/answer/7653509 This type is only supported by campaigns with AdvertisingChannelType.SMART and AdvertisingChannelSubType.SMART_CAMPAIGN.",
            "Budget type for Local Services Campaign. Full details: https://support.google.com/localservices/answer/7434558 This type is only supported by campaigns with AdvertisingChannelType.LOCAL_SERVICES."
          ]
        },
        "alignedBiddingStrategyId": {
          "type": "string",
          "description": "ID of the portfolio bidding strategy that this shared campaign budget is aligned with. When a bidding strategy and a campaign budget are aligned, they are attached to the same set of campaigns. After a campaign budget is aligned with a bidding strategy, campaigns that are added to the campaign budget must also use the aligned bidding strategy.",
          "format": "int64"
        },
        "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"
        },
        "status": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "description": "Output only. The status of this campaign budget. This field is read-only.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Budget is enabled.",
            "Budget is removed."
          ],
          "type": "string"
        },
        "recommendedBudgetEstimatedChangeWeeklyClicks": {
          "type": "string",
          "description": "Output only. The estimated change in weekly clicks if the recommended budget is applied. This field is read-only.",
          "readOnly": true,
          "format": "int64"
        },
        "amountMicros": {
          "type": "string",
          "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.",
          "format": "int64"
        },
        "explicitlyShared": {
          "description": "Specifies whether the budget is explicitly shared. Defaults to true if unspecified in a create operation. If true, the budget was created with the purpose of sharing across one or more campaigns. If false, the budget was created with the intention of only being used with a single campaign. The budget's name and status will stay in sync with the campaign's name and status. Attempting to share the budget with a second campaign will result in an error. A non-shared budget can become an explicitly shared. The same operation must also assign the budget a name. A shared campaign budget can never become non-shared.",
          "type": "boolean"
        },
        "recommendedBudgetEstimatedChangeWeeklyViews": {
          "type": "string",
          "description": "Output only. The estimated change in weekly views if the recommended budget is applied. This field is read-only.",
          "readOnly": true,
          "format": "int64"
        },
        "period": {
          "description": "Immutable. Period over which to spend the budget. Defaults to DAILY if not specified.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Daily budget.",
            "Custom budget, added back in V5. Custom budget can be used with total_amount to specify lifetime budget limit. See: https://support.google.com/google-ads/answer/6385083 for more info."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DAILY",
            "CUSTOM_PERIOD"
          ],
          "type": "string"
        },
        "recommendedBudgetEstimatedChangeWeeklyCostMicros": {
          "description": "Output only. The estimated change in weekly cost in micros if the recommended budget is applied. One million is equivalent to one currency unit. This field is read-only.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "referenceCount": {
          "description": "Output only. The number of campaigns actively using the budget. This field is read-only.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "recommendedBudgetAmountMicros": {
          "description": "Output only. The recommended budget amount. If no recommendation is available, this will be set to the budget amount. Amount is specified in micros, where one million is equivalent to one currency unit. This field is read-only.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__BusinessMessageCallToActionInfo": {
      "description": "Display information that encourages the user to take action.",
      "properties": {
        "callToActionDescription": {
          "description": "Required. Text providing a clear value proposition of what users expect once they take the action. Examples: 'Message us for a quote', 'Ask our expert team'.",
          "type": "string"
        },
        "callToActionSelection": {
          "description": "Required. Pre-defined call to action text.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Apply now.",
            "Book now.",
            "Contact us.",
            "Get info.",
            "Get offer.",
            "Get quote.",
            "Get started.",
            "Learn more."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "APPLY_NOW",
            "BOOK_NOW",
            "CONTACT_US",
            "GET_INFO",
            "GET_OFFER",
            "GET_QUOTE",
            "GET_STARTED",
            "LEARN_MORE"
          ],
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__BusinessMessageCallToActionInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_CampaignVideoCampaignSettings_VideoAdSequenceStep": {
      "description": "Information about a step within a video sequence.",
      "properties": {
        "assetId": {
          "description": "The ID of the Asset for this step. The asset must be type YOUTUBE_VIDEO.",
          "format": "int64",
          "type": "string"
        },
        "videoAdSequenceStepId": {
          "description": "The ID of this sequence step.",
          "format": "int64",
          "type": "string"
        },
        "previousStepInteractionType": {
          "description": "Type of interaction *on the previous step* required in order for the user to advance to this step. As with the previous step ID, it's required for every step except for the first one.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The viewer engaged with or watched at least 30 seconds of the ad (or the entire ad, if it was less than 30 seconds). Only available for campaigns using Target CPM as the bidding strategy and skippable in-stream ads as the ad format.",
            "The viewer skipped the ad. Only available for campaigns using Target CPM as the bidding strategy and skippable in-stream ads as the ad format.",
            "The ad was shown to the viewer.",
            "An ad impression that was not immediately skipped, but didn't reach the billable event either."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PAID_VIEW",
            "SKIP",
            "IMPRESSION",
            "ENGAGED_IMPRESSION"
          ],
          "type": "string"
        },
        "adGroupType": {
          "type": "string",
          "description": "The ad group type for this step (denoting the video format).",
          "enumDescriptions": [
            "The type has not been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The default ad group type for Search campaigns.",
            "The default ad group type for Display campaigns.",
            "The ad group type for Shopping campaigns serving standard product ads.",
            "The default ad group type for Hotel campaigns.",
            "The type for ad groups in Smart Shopping campaigns.",
            "Short unskippable in-stream video ads.",
            "TrueView (skippable) in-stream video ads.",
            "TrueView in-display video ads.",
            "Unskippable in-stream video ads.",
            "Ad group type for Dynamic Search Ads ad groups.",
            "The type for ad groups in Shopping Comparison Listing campaigns.",
            "The ad group type for Promoted Hotel ad groups.",
            "Video responsive ad groups.",
            "Video efficient reach ad groups.",
            "Ad group type for Smart campaigns.",
            "Ad group type for Travel campaigns.",
            "Ad group type for YouTube Audio campaigns."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SEARCH_STANDARD",
            "DISPLAY_STANDARD",
            "SHOPPING_PRODUCT_ADS",
            "HOTEL_ADS",
            "SHOPPING_SMART_ADS",
            "VIDEO_BUMPER",
            "VIDEO_TRUE_VIEW_IN_STREAM",
            "VIDEO_TRUE_VIEW_IN_DISPLAY",
            "VIDEO_NON_SKIPPABLE_IN_STREAM",
            "SEARCH_DYNAMIC_ADS",
            "SHOPPING_COMPARISON_LISTING_ADS",
            "PROMOTED_HOTEL_ADS",
            "VIDEO_RESPONSIVE",
            "VIDEO_EFFICIENT_REACH",
            "SMART_CAMPAIGN_ADS",
            "TRAVEL_ADS",
            "YOUTUBE_AUDIO"
          ]
        },
        "previousStepId": {
          "description": "The ID of the previous step. This field is required for all steps except the first one. It must point to a step that appears in the step definition list before this step.",
          "format": "int64",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_CampaignVideoCampaignSettings_VideoAdSequenceStep",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__GenerateKeywordForecastMetricsResponse": {
      "id": "GoogleAdsGoogleadsV24Services__GenerateKeywordForecastMetricsResponse",
      "type": "object",
      "description": "Response message for KeywordPlanIdeaService.GenerateKeywordForecastMetrics.",
      "properties": {
        "campaignForecastMetrics": {
          "description": "Results of the campaign forecast.",
          "$ref": "GoogleAdsGoogleadsV24Services__KeywordForecastMetrics"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__BreakdownDefinition": {
      "id": "GoogleAdsGoogleadsV24Services__BreakdownDefinition",
      "type": "object",
      "description": "The set of dimensions to group metrics by.",
      "properties": {
        "dateBreakdown": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "WEEK",
            "MONTH",
            "QUARTER"
          ],
          "description": "The granularity for segmenting metrics by date. When this field is set, a valid date_range in the GenerateBenchmarksMetricsRequest is required and must precisely align with the boundaries of the selected granularity. For example, a monthly breakdown must start on the first day of a month and end on the last day of a month. A quarterly breakdown must start on the first day of a quarter and end on the last day of a quarter. A weekly breakdown must start on a Sunday and end on a Saturday. This is different from the ISO 8601 standard, where weeks start on Monday.",
          "enumDescriptions": [
            "Not specified.",
            "Used as a return value only. Represents value unknown in this version.",
            "Aggregate by week.",
            "Aggregate by month.",
            "Aggregate by quarter."
          ],
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Errors__PolicyViolationDetails": {
      "id": "GoogleAdsGoogleadsV24Errors__PolicyViolationDetails",
      "type": "object",
      "description": "Error returned as part of a mutate response. This error indicates single policy violation by some text in one of the fields.",
      "properties": {
        "externalPolicyDescription": {
          "type": "string",
          "description": "Human readable description of policy violation."
        },
        "externalPolicyName": {
          "type": "string",
          "description": "Human readable name of the policy."
        },
        "key": {
          "description": "Unique identifier for this violation. If policy is exemptible, this key may be used to request exemption.",
          "$ref": "GoogleAdsGoogleadsV24Common__PolicyViolationKey"
        },
        "isExemptible": {
          "description": "Whether user can file an exemption request for this violation.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_AdGroup_AudienceSetting": {
      "id": "GoogleAdsGoogleadsV24Resources_AdGroup_AudienceSetting",
      "type": "object",
      "description": "Settings for the audience targeting.",
      "properties": {
        "useAudienceGrouped": {
          "type": "boolean",
          "description": "Immutable. If true, this ad group uses an Audience resource for audience targeting. If false, this ad group may use audience segment criteria instead."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__AssetGenerationExistingContext": {
      "description": "The context for which assets are being generated, such as an existing AssetGroup or AdGroupAd.",
      "properties": {
        "existingAdGroupAd": {
          "description": "Resource name of an existing AdGroupAd for which these assets are being generated.",
          "type": "string"
        },
        "existingAssetGroup": {
          "description": "Resource name of an existing AssetGroup for which these assets are being generated.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__AssetGenerationExistingContext",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__SessionAttributeKeyValuePair": {
      "description": "Contains one session attribute of the conversion.",
      "properties": {
        "sessionAttributeKey": {
          "type": "string",
          "description": "Required. The name of the session attribute."
        },
        "sessionAttributeValue": {
          "type": "string",
          "description": "Required. The value of the session attribute."
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__SessionAttributeKeyValuePair",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateCampaignLabelResult": {
      "id": "GoogleAdsGoogleadsV24Services__MutateCampaignLabelResult",
      "type": "object",
      "description": "The result for a campaign label mutate.",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__YearMonthRange": {
      "description": "The year month range inclusive of the start and end months. Eg: A year month range to represent Jan 2020 would be: (Jan 2020, Jan 2020).",
      "properties": {
        "start": {
          "description": "The inclusive start year month.",
          "$ref": "GoogleAdsGoogleadsV24Common__YearMonth"
        },
        "end": {
          "description": "The inclusive end year month.",
          "$ref": "GoogleAdsGoogleadsV24Common__YearMonth"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__YearMonthRange",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__LegacyResponsiveDisplayAdInfo": {
      "description": "A legacy responsive display ad. Ads of this type are labeled 'Responsive ads' in the Google Ads UI.",
      "properties": {
        "pricePrefix": {
          "type": "string",
          "description": "Prefix before price. For example, 'as low as'."
        },
        "businessName": {
          "type": "string",
          "description": "The business name in the ad."
        },
        "longHeadline": {
          "type": "string",
          "description": "The long version of the ad's headline."
        },
        "mainColor": {
          "type": "string",
          "description": "The main color of the ad in hexadecimal, for example, #ffffff for white. If one of `main_color` and `accent_color` is set, the other is required as well."
        },
        "shortHeadline": {
          "description": "The short version of the ad's headline.",
          "type": "string"
        },
        "allowFlexibleColor": {
          "type": "boolean",
          "description": "Advertiser's consent to allow flexible color. When true, the ad may be served with different color if necessary. When false, the ad will be served with the specified colors or a neutral color. The default value is `true`. Must be true if `main_color` and `accent_color` are not set."
        },
        "accentColor": {
          "type": "string",
          "description": "The accent color of the ad in hexadecimal, for example, #ffffff for white. If one of `main_color` and `accent_color` is set, the other is required as well."
        },
        "squareLogoImage": {
          "type": "string",
          "description": "The MediaFile resource name of the square logo image used in the ad."
        },
        "logoImage": {
          "description": "The MediaFile resource name of the logo image used in the ad.",
          "type": "string"
        },
        "promoText": {
          "type": "string",
          "description": "Promotion text used for dynamic formats of responsive ads. For example 'Free two-day shipping'."
        },
        "squareMarketingImage": {
          "description": "The MediaFile resource name of the square marketing image used in the ad.",
          "type": "string"
        },
        "description": {
          "type": "string",
          "description": "The description of the ad."
        },
        "callToActionText": {
          "description": "The call-to-action text for the ad.",
          "type": "string"
        },
        "marketingImage": {
          "type": "string",
          "description": "The MediaFile resource name of the marketing image used in the ad."
        },
        "formatSetting": {
          "type": "string",
          "description": "Specifies which format the ad will be served in. Default is ALL_FORMATS.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Text, image and native formats.",
            "Text and image formats.",
            "Native format, for example, the format rendering is controlled by the publisher and not by Google."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ALL_FORMATS",
            "NON_NATIVE",
            "NATIVE"
          ]
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__LegacyResponsiveDisplayAdInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_Recommendation_MaximizeClicksOptInRecommendation": {
      "id": "GoogleAdsGoogleadsV24Resources_Recommendation_MaximizeClicksOptInRecommendation",
      "type": "object",
      "description": "The Maximize Clicks opt-in recommendation.",
      "properties": {
        "recommendedBudgetAmountMicros": {
          "description": "Output only. The recommended new budget amount. Only set if the current budget is too high.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__TargetCpaSimulationPoint": {
      "description": "Projected metrics for a specific target CPA amount.",
      "properties": {
        "targetCpaMicros": {
          "type": "string",
          "description": "The simulated target CPA upon which projected metrics are based.",
          "format": "int64"
        },
        "inAppActions": {
          "description": "Projected number of in-app actions.",
          "format": "double",
          "type": "number"
        },
        "requiredBudgetAmountMicros": {
          "description": "Projected required daily budget that the advertiser must set in order to receive the estimated traffic, in micros of advertiser currency.",
          "format": "int64",
          "type": "string"
        },
        "costMicros": {
          "description": "Projected cost in micros.",
          "format": "int64",
          "type": "string"
        },
        "interactions": {
          "description": "Projected number of interactions. Only discovery advertising channel type supports this field.",
          "format": "int64",
          "type": "string"
        },
        "biddableConversions": {
          "description": "Projected number of biddable conversions.",
          "format": "double",
          "type": "number"
        },
        "impressions": {
          "type": "string",
          "description": "Projected number of impressions.",
          "format": "int64"
        },
        "targetCpaScalingModifier": {
          "type": "number",
          "description": "The simulated scaling modifier upon which projected metrics are based. All CPA targets relevant to the simulated entity are scaled by this modifier.",
          "format": "double"
        },
        "topSlotImpressions": {
          "type": "string",
          "description": "Projected number of top slot impressions. Only search advertising channel type supports this field.",
          "format": "int64"
        },
        "biddableConversionsValue": {
          "description": "Projected total value of biddable conversions.",
          "format": "double",
          "type": "number"
        },
        "clicks": {
          "description": "Projected number of clicks.",
          "format": "int64",
          "type": "string"
        },
        "appInstalls": {
          "type": "number",
          "description": "Projected number of app installs.",
          "format": "double"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__TargetCpaSimulationPoint",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__AssetGroup": {
      "id": "GoogleAdsGoogleadsV24Resources__AssetGroup",
      "type": "object",
      "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.",
      "properties": {
        "finalUrls": {
          "type": "array",
          "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."
        },
        "name": {
          "type": "string",
          "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."
        },
        "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"
        },
        "assetCoverage": {
          "description": "Output only. The asset coverage of this asset group.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources__AssetCoverage"
        },
        "adStrength": {
          "description": "Output only. Overall ad strength of this asset group.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The ad strength is currently pending.",
            "No ads could be generated.",
            "Poor strength.",
            "Average strength.",
            "Good strength.",
            "Excellent strength."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PENDING",
            "NO_ADS",
            "POOR",
            "AVERAGE",
            "GOOD",
            "EXCELLENT"
          ],
          "type": "string"
        },
        "id": {
          "type": "string",
          "description": "Output only. The ID of the asset group.",
          "readOnly": true,
          "format": "int64"
        },
        "primaryStatus": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ELIGIBLE",
            "PAUSED",
            "REMOVED",
            "NOT_ELIGIBLE",
            "LIMITED",
            "PENDING"
          ],
          "description": "Output only. The primary status of the asset group. Provides insights into why an asset group is not serving or not serving optimally.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset group is eligible to serve.",
            "The asset group is paused.",
            "The asset group is removed.",
            "The asset group is not eligible to serve.",
            "The asset group has limited servability.",
            "The asset group is pending approval and may serve in the future."
          ]
        },
        "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"
        },
        "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": {
          "type": "string",
          "description": "Immutable. The campaign with which this asset group is associated. The asset which is linked to the asset group."
        },
        "status": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "PAUSED",
            "REMOVED"
          ],
          "description": "The status of the asset group.",
          "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."
          ],
          "type": "string"
        },
        "primaryStatusReasons": {
          "type": "array",
          "description": "Output only. Provides reasons into why an asset group is not serving or not serving optimally. It will be empty when the asset group is serving without issues.",
          "readOnly": true,
          "items": {
            "type": "string",
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "ASSET_GROUP_PAUSED",
              "ASSET_GROUP_REMOVED",
              "CAMPAIGN_REMOVED",
              "CAMPAIGN_PAUSED",
              "CAMPAIGN_PENDING",
              "CAMPAIGN_ENDED",
              "ASSET_GROUP_LIMITED",
              "ASSET_GROUP_DISAPPROVED",
              "ASSET_GROUP_UNDER_REVIEW"
            ],
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "The user-specified asset group status is paused. Contributes to AssetGroupPrimaryStatus.PAUSED",
              "The user-specified asset group status is removed. Contributes to AssetGroupPrimaryStatus.REMOVED.",
              "The user-specified campaign status is removed. Contributes to AssetGroupPrimaryStatus.NOT_ELIGIBLE.",
              "The user-specified campaign status is paused. Contributes to AssetGroupPrimaryStatus.NOT_ELIGIBLE.",
              "The user-specified time for this campaign to start is in the future. Contributes to AssetGroupPrimaryStatus.NOT_ELIGIBLE.",
              "The user-specified time for this campaign to end has passed. Contributes to AssetGroupPrimaryStatus.NOT_ELIGIBLE.",
              "The asset group is approved but only serves in limited capacity due to policies. Contributes to AssetGroupPrimaryStatus.LIMITED.",
              "The asset group has been marked as disapproved. Contributes to AssetGroupPrimaryStatus.NOT_ELIGIBLE.",
              "The asset group has not completed policy review. Contributes to AssetGroupPrimaryStatus.PENDING."
            ]
          }
        },
        "path1": {
          "description": "First part of text that may appear appended to the url displayed in the ad.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__DynamicEducationAsset": {
      "id": "GoogleAdsGoogleadsV24Common__DynamicEducationAsset",
      "type": "object",
      "description": "A Dynamic Education asset.",
      "properties": {
        "programId": {
          "type": "string",
          "description": "Required. Program ID which can be any sequence of letters and digits, and must be unique and match the values of remarketing tag. Required."
        },
        "imageUrl": {
          "description": "Image url, for example, http://www.example.com/image.png. The image will not be uploaded as image asset.",
          "type": "string"
        },
        "programName": {
          "description": "Required. Program name, for example, Nursing. Required.",
          "type": "string"
        },
        "contextualKeywords": {
          "description": "Contextual keywords, for example, Nursing certification, Health, Mountain View.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "locationId": {
          "type": "string",
          "description": "Location ID which can be any sequence of letters and digits and must be unique."
        },
        "thumbnailImageUrl": {
          "description": "Thumbnail image url, for example, http://www.example.com/thumbnail.png. The thumbnail image will not be uploaded as image asset.",
          "type": "string"
        },
        "schoolName": {
          "type": "string",
          "description": "School name, for example, Mountain View School of Nursing."
        },
        "iosAppStoreId": {
          "type": "string",
          "description": "iOS app store ID. This is used to check if the user has the app installed on their device before deep linking. If this field is set, then the ios_app_link field must also be present.",
          "format": "int64"
        },
        "iosAppLink": {
          "description": "iOS deep link, for example, exampleApp://content/page.",
          "type": "string"
        },
        "address": {
          "type": "string",
          "description": "School address which can be specified in one of the following formats. (1) City, state, code, country, for example, Mountain View, CA, USA. (2) Full address, for example, 123 Boulevard St, Mountain View, CA 94043. (3) Latitude-longitude in the DDD format, for example, 41.40338, 2.17403"
        },
        "similarProgramIds": {
          "description": "Similar program IDs.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "subject": {
          "type": "string",
          "description": "Subject of study, for example, Health."
        },
        "programDescription": {
          "type": "string",
          "description": "Program description, for example, Nursing Certification."
        },
        "androidAppLink": {
          "type": "string",
          "description": "Android deep link, for example, android-app://com.example.android/http/example.com/gizmos?1234."
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__AdGroupLabel": {
      "id": "GoogleAdsGoogleadsV24Resources__AdGroupLabel",
      "type": "object",
      "description": "A relationship between an ad group and a label.",
      "properties": {
        "label": {
          "description": "Immutable. The label assigned to the ad group.",
          "type": "string"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the ad group label. Ad group label resource names have the form: `customers/{customer_id}/adGroupLabels/{ad_group_id}~{label_id}`"
        },
        "adGroup": {
          "type": "string",
          "description": "Immutable. The ad group to which the label is attached."
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__LeadFormSingleChoiceAnswers": {
      "description": "Defines possible answers for a single choice question, usually presented as a single-choice drop-down list.",
      "properties": {
        "answers": {
          "type": "array",
          "description": "List of choices for a single question field. The order of entries defines UI order. Minimum of 2 answers required and maximum of 12 allowed.",
          "items": {
            "type": "string"
          }
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__LeadFormSingleChoiceAnswers",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__SitelinkAsset": {
      "description": "A Sitelink asset.",
      "properties": {
        "description1": {
          "type": "string",
          "description": "First line of the description for the sitelink. If set, the length should be between 1 and 35, inclusive, and description2 must also be set."
        },
        "endDate": {
          "type": "string",
          "description": "Last date of when this asset is effective and still serving, in yyyy-MM-dd format."
        },
        "adScheduleTargets": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__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"
        },
        "linkText": {
          "description": "Required. URL display text for the sitelink. The length of this string should be between 1 and 25, inclusive.",
          "type": "string"
        },
        "startDate": {
          "description": "Start date of when this asset is effective and can begin serving, in yyyy-MM-dd format.",
          "type": "string"
        },
        "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"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__SitelinkAsset",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__AdMediaBundleAsset": {
      "description": "A media bundle asset used inside an ad.",
      "properties": {
        "asset": {
          "description": "The Asset resource name of this media bundle.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__AdMediaBundleAsset",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__GenerateReachForecastResponse": {
      "description": "Response message containing the generated reach curve.",
      "properties": {
        "onTargetAudienceMetrics": {
          "description": "Reference on target audiences for this curve.",
          "$ref": "GoogleAdsGoogleadsV24Services__OnTargetAudienceMetrics"
        },
        "reachCurve": {
          "description": "The generated reach curve for the planned product mix.",
          "$ref": "GoogleAdsGoogleadsV24Services__ReachCurve"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__GenerateReachForecastResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateBatchJobResult": {
      "description": "The result for the batch job mutate.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "The resource name of the batch job."
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateBatchJobResult",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services_SmartCampaignSuggestionInfo_BusinessContext": {
      "description": "A context that describes a business.",
      "properties": {
        "businessName": {
          "description": "Optional. The name of the business.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services_SmartCampaignSuggestionInfo_BusinessContext",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Errors__ReservationErrorDetails": {
      "id": "GoogleAdsGoogleadsV24Errors__ReservationErrorDetails",
      "type": "object",
      "description": "Error details returned for BookCampaigns or QuoteCampaigns.",
      "properties": {
        "campaign": {
          "type": "string",
          "description": "The resource name of the campaign affected by the error, as it was specified in the request. It could contain a temporary ID. Format: customers/{customer_id}/campaigns/{campaign_id}"
        },
        "quotes": {
          "description": "A list of proposed quotes for all the campaigns in the request. For the failed campaign, the given quote allows booking.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__CampaignReservationQuote"
          },
          "type": "array"
        },
        "quoteSignature": {
          "description": "A signature of the returned quote. The signature covers the entire set of campaigns in the request, and can be used in subsequent requests for the same set of campaigns.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_Campaign_AssetAutomationSetting": {
      "description": "Asset automation setting contains pair of AssetAutomationType and the asset automation opt-in/out status",
      "properties": {
        "assetAutomationType": {
          "description": "The asset automation type advertiser would like to opt-in/out.",
          "enumDescriptions": [
            "Not specified.",
            "Used as a return value only. Represents value unknown in this version.",
            "Text asset automation includes headlines and descriptions. By default, advertisers are opted-in for Performance Max and opted-out for Search.",
            "Converts horizontal video assets to vertical orientation using content-aware technology. By default, advertisers are opted in for DemandGenVideoResponsiveAd.",
            "Shortens video assets to better capture user attention using content-aware technology. By default, advertisers are opted in for DemandGenVideoResponsiveAd.",
            "Generates a preview of the landing page shown in the engagement panel. By using this feature, you confirm that you own all legal rights to the images on the landing page used by this account (or you have permission to share the images with Google). You hereby instruct Google to publish these images on your behalf for advertising or other commercial purposes.",
            "Generates video enhancements (vertical and shorter videos) for PMax campaigns. Opted in by default.",
            "Generates image enhancements (AutoCrop and AutoEnhance). Opted in by default for pmax.",
            "Generates image extraction. It defaults to account level Dynamic Image Extension control value.",
            "Adds design elements and embeds text assets into image assets to create images with different aspect ratios. By default, advertisers are opted in for DemandGenMultiAssetAd.",
            "Controls automation for text assets related to Final URL expansion. This includes automatically creating dynamic landing pages from the final URL and generating text assets from the content of those landing pages. This setting is turned OFF by default for Search campaigns, but it is turned ON by default for Performance Max campaigns.",
            "Generates videos using other Assets as input, such as images and text. By default, advertisers are opted in for DemandGenMultiAssetAd."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "TEXT_ASSET_AUTOMATION",
            "GENERATE_VERTICAL_YOUTUBE_VIDEOS",
            "GENERATE_SHORTER_YOUTUBE_VIDEOS",
            "GENERATE_LANDING_PAGE_PREVIEW",
            "GENERATE_ENHANCED_YOUTUBE_VIDEOS",
            "GENERATE_IMAGE_ENHANCEMENT",
            "GENERATE_IMAGE_EXTRACTION",
            "GENERATE_DESIGN_VERSIONS_FOR_IMAGES",
            "FINAL_URL_EXPANSION_TEXT_ASSET_AUTOMATION",
            "GENERATE_VIDEOS_FROM_OTHER_ASSETS"
          ],
          "type": "string"
        },
        "assetAutomationStatus": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "OPTED_IN",
            "OPTED_OUT"
          ],
          "description": "The opt-in/out status of asset automation type.",
          "enumDescriptions": [
            "Not specified.",
            "Used as a return value only. Represents value unknown in this version.",
            "Opted-in will enable generating and serving an asset automation type.",
            "Opted-out will stop generating and serving an asset automation type."
          ]
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_Campaign_AssetAutomationSetting",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateKeywordPlanAdGroupResult": {
      "id": "GoogleAdsGoogleadsV24Services__MutateKeywordPlanAdGroupResult",
      "type": "object",
      "description": "The result for the Keyword Plan ad group mutate.",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__AdvertisingPartnerLinkInvitationProperties": {
      "description": "Properties specific to an Advertising Partner link invitation.",
      "properties": {
        "allowedDomain": {
          "description": "Immutable. The allowed domain for the Advertising Partner link invitation. The advertising partner will only be able to advertise on this domain. The field is immutable after the creation of the link invitation.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__AdvertisingPartnerLinkInvitationProperties",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__CampaignBudgetMapping": {
      "id": "GoogleAdsGoogleadsV24Services__CampaignBudgetMapping",
      "type": "object",
      "description": "The mapping of experiment campaign and budget to be graduated.",
      "properties": {
        "experimentCampaign": {
          "type": "string",
          "description": "Required. The experiment campaign to graduate."
        },
        "campaignBudget": {
          "type": "string",
          "description": "Required. The budget that should be attached to the graduating experiment campaign."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateCampaignGoalConfigResult": {
      "description": "The result for the campaign goal config mutate.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateCampaignGoalConfigResult",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__TrendInsight": {
      "description": "A trend insight for a given attribute.",
      "properties": {
        "trendDataPoints": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__TrendInsightDataPoint"
          },
          "description": "3 years of historical data for the trend, including the most recent month the TrendInsight represents. Each data point represents 1 month of data and the comparison period is 1 month. The data points are ordered from most recent month to least recent month. Only populated for trends using search_topics.",
          "type": "array"
        },
        "trendAttribute": {
          "description": "The attribute this trend is for.",
          "$ref": "GoogleAdsGoogleadsV24Common__AudienceInsightsAttributeMetadata"
        },
        "trendMetrics": {
          "description": "Metrics associated with this trend. These metrics are for the latest available month and the comparison period is 3 months.",
          "$ref": "GoogleAdsGoogleadsV24Services__TrendInsightMetrics"
        },
        "relatedCreators": {
          "description": "Related creators for this topic. Only populated for trends using search_topics.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__YouTubeCreatorInsights"
          },
          "type": "array"
        },
        "trend": {
          "type": "string",
          "description": "Indicate if a trend is sustained or emerging. Use trend_metrics.trend_change_percent to determine the direction of the trend.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "This is a new trend.",
            "This trend has increased recently.",
            "This trend has remained stable.",
            "This trend is declining."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EMERGING",
            "RISING",
            "SUSTAINED",
            "DECLINING"
          ]
        },
        "relatedVideos": {
          "type": "array",
          "description": "Related videos for this topic. Only populated for trends using search_topics.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AudienceInsightsAttributeMetadata"
          }
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__TrendInsight",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__YouTubeChannelAttributeMetadata": {
      "description": "Metadata associated with a YouTube channel attribute.",
      "properties": {
        "subscriberCount": {
          "description": "The approximate number of subscribers to the YouTube channel.",
          "format": "int64",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__YouTubeChannelAttributeMetadata",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__LocalServicesEmployee": {
      "id": "GoogleAdsGoogleadsV24Resources__LocalServicesEmployee",
      "type": "object",
      "description": "A local services employee resource.",
      "properties": {
        "yearStartedPracticing": {
          "description": "Output only. The year that this employee started practicing in this field.",
          "readOnly": true,
          "format": "int32",
          "type": "integer"
        },
        "categoryIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Output only. Category of the employee. A list of Local Services category IDs can be found at https://developers.google.com/google-ads/api/data/codes-formats#local_services_ids.",
          "readOnly": true
        },
        "firstName": {
          "type": "string",
          "description": "Output only. First name of the employee.",
          "readOnly": true
        },
        "middleName": {
          "type": "string",
          "description": "Output only. Middle name of the employee.",
          "readOnly": true
        },
        "resourceName": {
          "description": "Immutable. The resource name of the Local Services Verification. Local Services Verification resource names have the form: `customers/{customer_id}/localServicesEmployees/{gls_employee_id}`",
          "type": "string"
        },
        "status": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "description": "Output only. Employee status, such as DELETED or ENABLED.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Employee is not removed, and employee status is active.",
            "Employee is removed. Used to delete an employee from the business."
          ]
        },
        "emailAddress": {
          "type": "string",
          "description": "Output only. Email address of the employee.",
          "readOnly": true
        },
        "lastName": {
          "description": "Output only. Last name of the employee.",
          "readOnly": true,
          "type": "string"
        },
        "languagesSpoken": {
          "type": "array",
          "description": "Output only. Languages that the employee speaks, represented as language tags from https://developers.google.com/admin-sdk/directory/v1/languages",
          "readOnly": true,
          "items": {
            "type": "string"
          }
        },
        "nationalProviderIdNumber": {
          "type": "string",
          "description": "Output only. NPI id associated with the employee.",
          "readOnly": true
        },
        "creationDateTime": {
          "description": "Output only. Timestamp of employee creation. The format is \"YYYY-MM-DD HH:MM:SS\" in the Google Ads account's timezone. Examples: \"2018-03-05 09:15:00\" or \"2018-02-01 14:34:30\"",
          "readOnly": true,
          "type": "string"
        },
        "id": {
          "description": "Output only. The ID of the employee.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "fellowships": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Resources__Fellowship"
          },
          "description": "Output only. The institutions where the employee has completed their fellowship.",
          "readOnly": true
        },
        "residencies": {
          "type": "array",
          "description": "Output only. The institutions where the employee has completed their residency.",
          "readOnly": true,
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Resources__Residency"
          }
        },
        "type": {
          "type": "string",
          "description": "Output only. Employee type.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Represents the owner of the business.",
            "Represents an employee of the business."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BUSINESS_OWNER",
            "EMPLOYEE"
          ]
        },
        "jobTitle": {
          "type": "string",
          "description": "Output only. Job title for this employee, such as \"Senior partner\" in legal verticals.",
          "readOnly": true
        },
        "universityDegrees": {
          "description": "Output only. A list of degrees this employee has obtained, and wants to feature.",
          "readOnly": true,
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Resources__UniversityDegree"
          },
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaEvent_RevenueRange": {
      "description": "Defines a range for revenue values.",
      "properties": {
        "maxEventRevenue": {
          "description": "Output only. For revenue ranges, the maximum value in `currency_code` for which this conversion value would be updated. A value of 0 will be treated as unset.",
          "readOnly": true,
          "format": "double",
          "type": "number"
        },
        "minEventRevenue": {
          "description": "Output only. For revenue ranges, the minimum value in `currency_code` for which this conversion value would be updated. A value of 0 will be treated as unset.",
          "readOnly": true,
          "format": "double",
          "type": "number"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaEvent_RevenueRange",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateAdGroupCriterionResult": {
      "description": "The result for the criterion mutate.",
      "properties": {
        "adGroupCriterion": {
          "description": "The mutated ad group criterion with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV24Resources__AdGroupCriterion"
        },
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateAdGroupCriterionResult",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__AssetPolicySummary": {
      "description": "Contains policy information for an asset.",
      "properties": {
        "approvalStatus": {
          "type": "string",
          "description": "Output only. The overall approval status of this asset, calculated based on the status of its individual policy topic entries.",
          "readOnly": true,
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "Will not serve.",
            "Serves with restrictions.",
            "Serves without restrictions.",
            "Will not serve in targeted countries, but may serve for users who are searching for information about the targeted countries."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DISAPPROVED",
            "APPROVED_LIMITED",
            "APPROVED",
            "AREA_OF_INTEREST_ONLY"
          ]
        },
        "policyTopicEntries": {
          "type": "array",
          "description": "Output only. The list of policy findings for this asset.",
          "readOnly": true,
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__PolicyTopicEntry"
          }
        },
        "reviewStatus": {
          "description": "Output only. Where in the review process this asset is.",
          "readOnly": true,
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "Currently under review.",
            "Primary review complete. Other reviews may be continuing.",
            "The resource has been resubmitted for approval or its policy decision has been appealed.",
            "The resource is eligible and may be serving but could still undergo further review."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "REVIEW_IN_PROGRESS",
            "REVIEWED",
            "UNDER_APPEAL",
            "ELIGIBLE_MAY_SERVE"
          ],
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__AssetPolicySummary",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_CampaignVideoCampaignSettings_ReservationAdCategorySelfDisclosure": {
      "description": "Container for ad category self-disclosure for campaigns with the FIXED_CPM or FIXED_SHARE_OF_VOICE bidding strategies.",
      "properties": {
        "alcohol": {
          "description": "The campaign is expected to contain alcohol-related ads.",
          "type": "boolean"
        },
        "politics": {
          "description": "The campaign is expected to contain politics-related ads.",
          "type": "boolean"
        },
        "gambling": {
          "description": "The campaign is expected to contain gambling-related ads.",
          "type": "boolean"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_CampaignVideoCampaignSettings_ReservationAdCategorySelfDisclosure",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_ConversionAction_ValueSettings": {
      "id": "GoogleAdsGoogleadsV24Resources_ConversionAction_ValueSettings",
      "type": "object",
      "description": "Settings related to the value for conversion events associated with this conversion action.",
      "properties": {
        "alwaysUseDefaultValue": {
          "type": "boolean",
          "description": "Controls whether the default value and default currency code are used in place of the value and currency code specified in conversion events for this conversion action."
        },
        "defaultCurrencyCode": {
          "type": "string",
          "description": "The currency code to use when conversion events for this conversion action are sent with an invalid or missing currency code, or when this conversion action is configured to always use the default value."
        },
        "defaultValue": {
          "description": "The value to use when conversion events for this conversion action are sent with an invalid, disallowed or missing value, or when this conversion action is configured to always use the default value.",
          "format": "double",
          "type": "number"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__ActivityStateInfo": {
      "description": "The state where the travel activity is available.",
      "properties": {
        "value": {
          "type": "string",
          "description": "String value of the activity state. The Geo Target Constant resource name."
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__ActivityStateInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__AppPreRegistrationAdInfo": {
      "description": "App pre-registration ads link to your app or game listing on Google Play, and can run on Google Play, on YouTube (in-stream only), and within other apps and mobile websites on the Display Network. It will help capture people's interest in your app or game and generate an early install base for your app or game before a launch.",
      "properties": {
        "headlines": {
          "description": "List of text assets for headlines. When the ad serves the headlines will be selected from this list.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdTextAsset"
          },
          "type": "array"
        },
        "descriptions": {
          "type": "array",
          "description": "List of text assets for descriptions. When the ad serves the descriptions will be selected from this list.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdTextAsset"
          }
        },
        "images": {
          "type": "array",
          "description": "List of image asset IDs whose images may be displayed with the ad.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdImageAsset"
          }
        },
        "youtubeVideos": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdVideoAsset"
          },
          "description": "List of YouTube video asset IDs whose videos may be displayed with the ad."
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__AppPreRegistrationAdInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateAssetSetResult": {
      "description": "The result for the asset set mutate.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        },
        "assetSet": {
          "description": "The mutated asset set with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV24Resources__AssetSet"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateAssetSetResult",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__LocationView": {
      "description": "A location view summarizes the performance of campaigns by a Location criterion. If no Location criterion is set, no results are returned; instead, use geographic_view or user_location_view for visitor location data.",
      "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"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__LocationView",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateAssetSetAssetResult": {
      "description": "The result for the asset set asset mutate.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        },
        "assetSetAsset": {
          "description": "The mutated asset set asset with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV24Resources__AssetSetAsset"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateAssetSetAssetResult",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__AppliedIncentive": {
      "id": "GoogleAdsGoogleadsV24Resources__AppliedIncentive",
      "type": "object",
      "description": "Represents an applied incentive.",
      "properties": {
        "grantedAmountMicros": {
          "description": "Output only. The amount of the reward granted in micros. This field is not set if the reward has not been granted.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the incentive. Incentive resource names have the form: `customers/{customer_id}/appliedIncentives/{coupon_code}`",
          "readOnly": true
        },
        "currencyCode": {
          "type": "string",
          "description": "Output only. The currency code for all monetary amounts (for example, \"USD\").",
          "readOnly": true
        },
        "fulfillmentExpirationDateTime": {
          "type": "string",
          "description": "Output only. The time by which the incentive's fulfillment requirements must be met, in \"YYYY-MM-DD HH:MM:SS\" format in UTC.",
          "readOnly": true
        },
        "rewardAmountMicros": {
          "type": "string",
          "description": "Output only. The maximum potential reward amount in micros for the incentive.",
          "readOnly": true,
          "format": "int64"
        },
        "requiredMinSpendMicros": {
          "type": "string",
          "description": "Output only. The minimum amount that must be spent to fulfill the coupon requirements, in micros.",
          "readOnly": true,
          "format": "int64"
        },
        "rewardGrantDateTime": {
          "description": "Output only. The time when the reward was granted in \"YYYY-MM-DD HH:MM:SS\" format in UTC. This field is not set if the reward has not been granted.",
          "readOnly": true,
          "type": "string"
        },
        "redemptionDateTime": {
          "type": "string",
          "description": "Output only. The redemption time of the incentive in \"YYYY-MM-DD HH:MM:SS\" format in UTC.",
          "readOnly": true
        },
        "rewardExpirationDateTime": {
          "description": "Output only. The time when the granted reward expires in \"YYYY-MM-DD HH:MM:SS\" format in UTC. This field is not set if the reward has not been granted.",
          "readOnly": true,
          "type": "string"
        },
        "incentiveState": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "REDEEMED",
            "FULFILLED",
            "REWARD_GRANTED",
            "EXPIRED",
            "REWARD_EXPIRED",
            "INVALIDATED",
            "REWARD_EXHAUSTED"
          ],
          "description": "Output only. The current state of the incentive.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The incentive has been redeemed but the requirements are not yet met.",
            "The incentive's requirements have been met but the reward has not yet been granted.",
            "The reward for the incentive has been granted.",
            "The incentive expired before the requirements were met.",
            "The granted reward has expired.",
            "The incentive was marked as invalid after redemption.",
            "The granted reward has been fully used."
          ],
          "type": "string"
        },
        "couponCode": {
          "description": "Output only. The coupon code of the incentive.",
          "readOnly": true,
          "type": "string"
        },
        "currentSpendTowardsFulfillmentMicros": {
          "description": "Output only. The current amount spent towards the fulfillment requirements, in micros.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "rewardBalanceRemainingMicros": {
          "type": "string",
          "description": "Output only. The remaining balance of the granted reward in micros. This field is not set if the reward has not been granted.",
          "readOnly": true,
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_SmartCampaignSetting_PhoneNumber": {
      "id": "GoogleAdsGoogleadsV24Resources_SmartCampaignSetting_PhoneNumber",
      "type": "object",
      "description": "Phone number and country code in smart campaign settings.",
      "properties": {
        "countryCode": {
          "description": "Upper-case, two-letter country code as defined by ISO-3166.",
          "type": "string"
        },
        "phoneNumber": {
          "description": "Phone number of the smart campaign.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__YouTubeVideoInfo": {
      "description": "A YouTube Video criterion.",
      "properties": {
        "videoId": {
          "description": "YouTube video id as it appears on the YouTube watch page.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__YouTubeVideoInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__AdParameter": {
      "description": "An ad parameter that is used to update numeric values (such as prices or inventory levels) in any text line of an ad (including URLs). There can be a maximum of two AdParameters per ad group criterion. (One with parameter_index = 1 and one with parameter_index = 2.) In the ad the parameters are referenced by a placeholder of the form \"{param#:value}\". For example, \"{param1:$17}\"",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the ad parameter. Ad parameter resource names have the form: `customers/{customer_id}/adParameters/{ad_group_id}~{criterion_id}~{parameter_index}`"
        },
        "parameterIndex": {
          "description": "Immutable. The unique index of this ad parameter. Must be either 1 or 2.",
          "format": "int64",
          "type": "string"
        },
        "insertionText": {
          "description": "Numeric value to insert into the ad text. The following restrictions apply: - Can use comma or period as a separator, with an optional period or comma (respectively) for fractional values. For example, 1,000,000.00 and 2.000.000,10 are valid. - Can be prepended or appended with a currency symbol. For example, $99.99 is valid. - Can be prepended or appended with a currency code. For example, 99.99USD and EUR200 are valid. - Can use '%'. For example, 1.0% and 1,0% are valid. - Can use plus or minus. For example, -10.99 and 25+ are valid. - Can use '/' between two numbers. For example 4/1 and 0.95/0.45 are valid.",
          "type": "string"
        },
        "adGroupCriterion": {
          "type": "string",
          "description": "Immutable. The ad group criterion that this ad parameter belongs to."
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__AdParameter",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__InFeedVideoAdInfo": {
      "description": "Representation of In-feed video ad format.",
      "properties": {
        "headline": {
          "description": "The headline of the ad.",
          "type": "string"
        },
        "thumbnail": {
          "description": "Video thumbnail image to use.",
          "enumDescriptions": [
            "The type has not been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The default thumbnail. Can be auto-generated or user-uploaded.",
            "Thumbnail 1, generated from the video.",
            "Thumbnail 2, generated from the video.",
            "Thumbnail 3, generated from the video."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DEFAULT_THUMBNAIL",
            "THUMBNAIL_1",
            "THUMBNAIL_2",
            "THUMBNAIL_3"
          ],
          "type": "string"
        },
        "description1": {
          "type": "string",
          "description": "First text line for the ad."
        },
        "description2": {
          "type": "string",
          "description": "Second text line for the ad."
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__InFeedVideoAdInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__AdGroupAdAssetCombinationView": {
      "id": "GoogleAdsGoogleadsV24Resources__AdGroupAdAssetCombinationView",
      "type": "object",
      "description": "A view on the usage of ad group ad asset combination. Now we only support AdGroupAdAssetCombinationView for Responsive Search Ads, with more ad types planned for the future.",
      "properties": {
        "servedAssets": {
          "type": "array",
          "description": "Output only. Served assets.",
          "readOnly": true,
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AssetUsage"
          }
        },
        "enabled": {
          "description": "Output only. The status between the asset combination and the latest version of the ad. If true, the asset combination is linked to the latest version of the ad. If false, it means the link once existed but has been removed and is no longer present in the latest version of the ad.",
          "readOnly": true,
          "type": "boolean"
        },
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the ad group ad asset combination view. The combination ID is 128 bits long, where the upper 64 bits are stored in asset_combination_id_high, and the lower 64 bits are stored in asset_combination_id_low. AdGroupAd Asset Combination view resource names have the form: `customers/{customer_id}/adGroupAdAssetCombinationViews/{AdGroupAd.ad_group_id}~{AdGroupAd.ad.ad_id}~{AssetCombination.asset_combination_id_low}~{AssetCombination.asset_combination_id_high}`",
          "readOnly": true
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__KeywordPlanDeviceSearches": {
      "id": "GoogleAdsGoogleadsV24Common__KeywordPlanDeviceSearches",
      "type": "object",
      "description": "The total searches for the device type during the specified time period.",
      "properties": {
        "device": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MOBILE",
            "TABLET",
            "DESKTOP",
            "CONNECTED_TV",
            "OTHER"
          ],
          "description": "The device type.",
          "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."
          ],
          "type": "string"
        },
        "searchCount": {
          "description": "The total searches for the device.",
          "format": "int64",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__GenerateAdGroupThemesRequest": {
      "description": "Request message for KeywordPlanIdeaService.GenerateAdGroupThemes.",
      "properties": {
        "keywords": {
          "items": {
            "type": "string"
          },
          "description": "Required. A list of keywords to group into the provided AdGroups.",
          "type": "array"
        },
        "adGroups": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Required. A list of resource names of AdGroups to group keywords into. Resource name format: `customers/{customer_id}/adGroups/{ad_group_id}`"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__GenerateAdGroupThemesRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__AdAssetPolicySummary": {
      "id": "GoogleAdsGoogleadsV24Common__AdAssetPolicySummary",
      "type": "object",
      "description": "Contains policy information for an asset inside an ad.",
      "properties": {
        "approvalStatus": {
          "description": "The overall approval status of this asset, which is calculated based on the status of its individual policy topic entries.",
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "Will not serve.",
            "Serves with restrictions.",
            "Serves without restrictions.",
            "Will not serve in targeted countries, but may serve for users who are searching for information about the targeted countries."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DISAPPROVED",
            "APPROVED_LIMITED",
            "APPROVED",
            "AREA_OF_INTEREST_ONLY"
          ],
          "type": "string"
        },
        "policyTopicEntries": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__PolicyTopicEntry"
          },
          "description": "The list of policy findings for this asset.",
          "type": "array"
        },
        "reviewStatus": {
          "type": "string",
          "description": "Where in the review process this asset.",
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "Currently under review.",
            "Primary review complete. Other reviews may be continuing.",
            "The resource has been resubmitted for approval or its policy decision has been appealed.",
            "The resource is eligible and may be serving but could still undergo further review."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "REVIEW_IN_PROGRESS",
            "REVIEWED",
            "UNDER_APPEAL",
            "ELIGIBLE_MAY_SERVE"
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__LocalServicesVerificationArtifact": {
      "id": "GoogleAdsGoogleadsV24Resources__LocalServicesVerificationArtifact",
      "type": "object",
      "description": "A local services verification resource.",
      "properties": {
        "insuranceVerificationArtifact": {
          "description": "Output only. An insurance verification artifact.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources__InsuranceVerificationArtifact"
        },
        "artifactType": {
          "description": "Output only. The type of the verification artifact.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Background check verification artifact.",
            "Insurance verification artifact.",
            "License verification artifact.",
            "Business registration check verification artifact."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BACKGROUND_CHECK",
            "INSURANCE",
            "LICENSE",
            "BUSINESS_REGISTRATION_CHECK"
          ],
          "type": "string"
        },
        "licenseVerificationArtifact": {
          "description": "Output only. A license verification artifact.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources__LicenseVerificationArtifact"
        },
        "id": {
          "description": "Output only. The ID of the verification artifact.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "creationDateTime": {
          "description": "Output only. The timestamp when this verification artifact was created. The format is \"YYYY-MM-DD HH:MM:SS\" in the Google Ads account's timezone. Examples: \"2018-03-05 09:15:00\" or \"2018-02-01 14:34:30\"",
          "readOnly": true,
          "type": "string"
        },
        "status": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PASSED",
            "FAILED",
            "PENDING",
            "NO_SUBMISSION",
            "CANCELLED"
          ],
          "description": "Output only. The status of the verification artifact.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Artifact has passed verification.",
            "Artifact has failed verification.",
            "Artifact is in the process of verification.",
            "Artifact needs user to upload information before it is verified.",
            "Artifact has been cancelled by the user."
          ]
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the Local Services Verification. Local Services Verification resource names have the form: `customers/{customer_id}/localServicesVerificationArtifacts/{verification_artifact_id}`"
        },
        "businessRegistrationCheckVerificationArtifact": {
          "description": "Output only. A business registration check verification artifact.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources__BusinessRegistrationCheckVerificationArtifact"
        },
        "backgroundCheckVerificationArtifact": {
          "description": "Output only. A background check verification artifact.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources__BackgroundCheckVerificationArtifact"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_KeywordParameters": {
      "description": "Parameters to use when applying keyword recommendation.",
      "properties": {
        "adGroup": {
          "description": "The ad group resource to add keyword to. This is a required field.",
          "type": "string"
        },
        "matchType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EXACT",
            "PHRASE",
            "BROAD"
          ],
          "description": "The match type of the keyword. This is a required field.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Exact match.",
            "Phrase match.",
            "Broad match."
          ],
          "type": "string"
        },
        "cpcBidMicros": {
          "type": "string",
          "description": "Optional, CPC bid to set for the keyword. If not set, keyword will use bid based on bidding strategy used by target ad group.",
          "format": "int64"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_KeywordParameters",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateAdGroupCustomizersResponse": {
      "id": "GoogleAdsGoogleadsV24Services__MutateAdGroupCustomizersResponse",
      "type": "object",
      "description": "Response message for an ad group customizer mutate.",
      "properties": {
        "results": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateAdGroupCustomizerResult"
          },
          "description": "All results for the mutate.",
          "type": "array"
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__AdGroupCriterionOperation": {
      "id": "GoogleAdsGoogleadsV24Services__AdGroupCriterionOperation",
      "type": "object",
      "description": "A single operation (create, remove, update) on an ad group criterion.",
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new criterion.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AdGroupCriterion"
        },
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask",
          "type": "string"
        },
        "exemptPolicyViolationKeys": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__PolicyViolationKey"
          },
          "description": "The list of policy violation keys that should not cause a PolicyViolationError to be reported. Not all policy violations are exemptable, refer to the is_exemptible field in the returned PolicyViolationError. Resources violating these polices will be saved, but will not be eligible to serve. They may begin serving at a later time due to a change in policies, re-review of the resource, or a change in advertiser certificates.",
          "type": "array"
        },
        "update": {
          "description": "Update operation: The criterion is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AdGroupCriterion"
        },
        "remove": {
          "description": "Remove operation: A resource name for the removed criterion is expected, in this format: `customers/{customer_id}/adGroupCriteria/{ad_group_id}~{criterion_id}`",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_AdGroupDemandGenAdGroupSettingsDemandGenChannelControls_DemandGenSelectedChannels": {
      "id": "GoogleAdsGoogleadsV24Resources_AdGroupDemandGenAdGroupSettingsDemandGenChannelControls_DemandGenSelectedChannels",
      "type": "object",
      "description": "Explicitly selected channels for channel controls in Demand Gen ad groups.",
      "properties": {
        "youtubeInFeed": {
          "type": "boolean",
          "description": "Whether to enable ads on the YouTube In-Feed channel."
        },
        "youtubeShorts": {
          "type": "boolean",
          "description": "Whether to enable ads on the YouTube Shorts channel."
        },
        "gmail": {
          "description": "Whether to enable ads on the Gmail channel.",
          "type": "boolean"
        },
        "youtubeInStream": {
          "type": "boolean",
          "description": "Whether to enable ads on the YouTube In-Stream channel."
        },
        "display": {
          "type": "boolean",
          "description": "Whether to enable ads on the Display channel."
        },
        "discover": {
          "type": "boolean",
          "description": "Whether to enable ads on the Discover channel."
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__AdGroupAdAssetPolicySummary": {
      "description": "Contains policy information for an ad group ad asset.",
      "properties": {
        "policyTopicEntries": {
          "type": "array",
          "description": "Output only. The list of policy findings for the ad group ad asset.",
          "readOnly": true,
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__PolicyTopicEntry"
          }
        },
        "reviewStatus": {
          "description": "Output only. Where in the review process this ad group ad asset is.",
          "readOnly": true,
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "Currently under review.",
            "Primary review complete. Other reviews may be continuing.",
            "The resource has been resubmitted for approval or its policy decision has been appealed.",
            "The resource is eligible and may be serving but could still undergo further review."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "REVIEW_IN_PROGRESS",
            "REVIEWED",
            "UNDER_APPEAL",
            "ELIGIBLE_MAY_SERVE"
          ],
          "type": "string"
        },
        "approvalStatus": {
          "description": "Output only. The overall approval status of this ad group ad asset, calculated based on the status of its individual policy topic entries.",
          "readOnly": true,
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "Will not serve.",
            "Serves with restrictions.",
            "Serves without restrictions.",
            "Will not serve in targeted countries, but may serve for users who are searching for information about the targeted countries."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DISAPPROVED",
            "APPROVED_LIMITED",
            "APPROVED",
            "AREA_OF_INTEREST_ONLY"
          ],
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__AdGroupAdAssetPolicySummary",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateAdGroupCriterionLabelsResponse": {
      "id": "GoogleAdsGoogleadsV24Services__MutateAdGroupCriterionLabelsResponse",
      "type": "object",
      "description": "Response message for an ad group criterion labels mutate.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateAdGroupCriterionLabelResult"
          },
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateCampaignBidModifiersResponse": {
      "description": "Response message for campaign bid modifiers mutate.",
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateCampaignBidModifierResult"
          },
          "description": "All results for the mutate."
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateCampaignBidModifiersResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__LogicalUserListOperandInfo": {
      "description": "Operand of logical user list that consists of a user list.",
      "properties": {
        "userList": {
          "description": "Resource name of a user list as an operand.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__LogicalUserListOperandInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__ProductGroupView": {
      "id": "GoogleAdsGoogleadsV24Resources__ProductGroupView",
      "type": "object",
      "description": "A product group view.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the product group view. Product group view resource names have the form: `customers/{customer_id}/productGroupViews/{ad_group_id}~{criterion_id}`",
          "readOnly": true
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__AccountBudget": {
      "id": "GoogleAdsGoogleadsV24Resources__AccountBudget",
      "type": "object",
      "description": "An account-level budget. It contains information about the budget itself, as well as the most recently approved changes to the budget and proposed changes that are pending approval. The proposed changes that are pending approval, if any, are found in 'pending_proposal'. Effective details about the budget are found in fields prefixed 'approved_', 'adjusted_' and those without a prefix. Since some effective details may differ from what the user had originally requested (for example, spending limit), these differences are juxtaposed through 'proposed_', 'approved_', and possibly 'adjusted_' fields. This resource is mutated using AccountBudgetProposal and cannot be mutated directly. A budget may have at most one pending proposal at any given time. It is read through pending_proposal. Once approved, a budget may be subject to adjustments, such as credit adjustments. Adjustments create differences between the 'approved' and 'adjusted' fields, which would otherwise be identical.",
      "properties": {
        "approvedEndDateTime": {
          "type": "string",
          "description": "Output only. The approved end time in yyyy-MM-dd HH:mm:ss format.",
          "readOnly": true
        },
        "totalAdjustmentsMicros": {
          "description": "Output only. The total adjustments amount. An example of an adjustment is courtesy credits.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "proposedEndTimeType": {
          "type": "string",
          "description": "Output only. The proposed end time as a well-defined type, for example, FOREVER.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "As soon as possible.",
            "An infinite point in the future."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NOW",
            "FOREVER"
          ]
        },
        "adjustedSpendingLimitMicros": {
          "description": "Output only. The adjusted spending limit in micros. One million is equivalent to one unit. If the approved spending limit is finite, the adjusted spending limit may vary depending on the types of adjustments applied to this budget, if applicable. The different kinds of adjustments are described here: https://support.google.com/google-ads/answer/1704323 For example, a debit adjustment reduces how much the account is allowed to spend.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "notes": {
          "description": "Output only. Notes associated with the budget.",
          "readOnly": true,
          "type": "string"
        },
        "approvedEndTimeType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NOW",
            "FOREVER"
          ],
          "description": "Output only. The approved end time as a well-defined type, for example, FOREVER.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "As soon as possible.",
            "An infinite point in the future."
          ],
          "type": "string"
        },
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the account-level budget. AccountBudget resource names have the form: `customers/{customer_id}/accountBudgets/{account_budget_id}`",
          "readOnly": true
        },
        "status": {
          "description": "Output only. The status of this account-level budget.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The account budget is pending approval.",
            "The account budget has been approved.",
            "The account budget has been cancelled by the user."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PENDING",
            "APPROVED",
            "CANCELLED"
          ],
          "type": "string"
        },
        "proposedEndDateTime": {
          "type": "string",
          "description": "Output only. The proposed end time in yyyy-MM-dd HH:mm:ss format.",
          "readOnly": true
        },
        "approvedSpendingLimitMicros": {
          "description": "Output only. The approved spending limit in micros. One million is equivalent to one unit. This will only be populated if the proposed spending limit is finite, and will always be greater than or equal to the proposed spending limit.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "adjustedSpendingLimitType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INFINITE"
          ],
          "description": "Output only. The adjusted spending limit as a well-defined type, for example, INFINITE. This will only be populated if the adjusted spending limit is INFINITE, which is guaranteed to be true if the approved spending limit is INFINITE.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Infinite, indicates unlimited spending power."
          ]
        },
        "billingSetup": {
          "type": "string",
          "description": "Output only. The resource name of the billing setup associated with this account-level budget. BillingSetup resource names have the form: `customers/{customer_id}/billingSetups/{billing_setup_id}`",
          "readOnly": true
        },
        "proposedSpendingLimitMicros": {
          "type": "string",
          "description": "Output only. The proposed spending limit in micros. One million is equivalent to one unit.",
          "readOnly": true,
          "format": "int64"
        },
        "name": {
          "description": "Output only. The name of the account-level budget.",
          "readOnly": true,
          "type": "string"
        },
        "approvedStartDateTime": {
          "description": "Output only. The approved start time of the account-level budget in yyyy-MM-dd HH:mm:ss format. For example, if a new budget is approved after the proposed start time, the approved start time is the time of approval.",
          "readOnly": true,
          "type": "string"
        },
        "purchaseOrderNumber": {
          "description": "Output only. A purchase order number is a value that helps users reference this budget in their monthly invoices.",
          "readOnly": true,
          "type": "string"
        },
        "id": {
          "type": "string",
          "description": "Output only. The ID of the account-level budget.",
          "readOnly": true,
          "format": "int64"
        },
        "proposedStartDateTime": {
          "description": "Output only. The proposed start time of the account-level budget in yyyy-MM-dd HH:mm:ss format. If a start time type of NOW was proposed, this is the time of request.",
          "readOnly": true,
          "type": "string"
        },
        "pendingProposal": {
          "description": "Output only. The pending proposal to modify this budget, if applicable.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_AccountBudget_PendingAccountBudgetProposal"
        },
        "proposedSpendingLimitType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INFINITE"
          ],
          "description": "Output only. The proposed spending limit as a well-defined type, for example, INFINITE.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Infinite, indicates unlimited spending power."
          ],
          "type": "string"
        },
        "amountServedMicros": {
          "type": "string",
          "description": "Output only. The value of Ads that have been served, in micros. This includes overdelivery costs, in which case a credit might be automatically applied to the budget (see total_adjustments_micros).",
          "readOnly": true,
          "format": "int64"
        },
        "approvedSpendingLimitType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INFINITE"
          ],
          "description": "Output only. The approved spending limit as a well-defined type, for example, INFINITE. This will only be populated if the approved spending limit is INFINITE.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Infinite, indicates unlimited spending power."
          ],
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_Invoice_AccountSummary": {
      "description": "Represents a summarized view at account level.",
      "properties": {
        "couponAdjustmentSubtotalAmountMicros": {
          "type": "string",
          "description": "Output only. Pretax coupon adjustment subtotal amount, in micros.",
          "readOnly": true,
          "format": "int64"
        },
        "couponAdjustmentTotalAmountMicros": {
          "description": "Output only. Total coupon adjustment amount, in micros.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "exportChargeTaxAmountMicros": {
          "type": "string",
          "description": "Output only. Tax on export charge, in micros.",
          "readOnly": true,
          "format": "int64"
        },
        "regulatoryCostSummaries": {
          "description": "Output only. The list of regulatory cost information associated with this account.",
          "readOnly": true,
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Resources_Invoice_RegulatoryCostSummary"
          },
          "type": "array"
        },
        "subtotalAmountMicros": {
          "type": "string",
          "description": "Output only. Total pretax subtotal amount attributable to the account during the service period, in micros.",
          "readOnly": true,
          "format": "int64"
        },
        "totalAmountMicros": {
          "description": "Output only. Total amount attributable to the account during the service period, in micros. This equals the sum of the subtotal_amount_micros and tax_amount_micros.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "regulatoryCostsTotalAmountMicros": {
          "description": "Output only. Total regulatory costs amount, in micros.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "couponAdjustmentTaxAmountMicros": {
          "description": "Output only. Tax on coupon adjustment, in micros.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "regulatoryCostsTaxAmountMicros": {
          "type": "string",
          "description": "Output only. Tax on regulatory costs, in micros.",
          "readOnly": true,
          "format": "int64"
        },
        "excessCreditAdjustmentSubtotalAmountMicros": {
          "type": "string",
          "description": "Output only. Pretax excess credit adjustment subtotal amount, in micros.",
          "readOnly": true,
          "format": "int64"
        },
        "exportChargeSubtotalAmountMicros": {
          "type": "string",
          "description": "Output only. Pretax export charge subtotal amount, in micros.",
          "readOnly": true,
          "format": "int64"
        },
        "customer": {
          "description": "Output only. The account associated with the account summary.",
          "readOnly": true,
          "type": "string"
        },
        "billingCorrectionTaxAmountMicros": {
          "type": "string",
          "description": "Output only. Tax on billing correction, in micros.",
          "readOnly": true,
          "format": "int64"
        },
        "adjustmentSummaries": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Resources_Invoice_AdjustmentSummary"
          },
          "description": "Output only. The list of adjustment information associated with this account.",
          "readOnly": true
        },
        "billingCorrectionSubtotalAmountMicros": {
          "type": "string",
          "description": "Output only. Pretax billing correction subtotal amount, in micros.",
          "readOnly": true,
          "format": "int64"
        },
        "billingCorrectionTotalAmountMicros": {
          "type": "string",
          "description": "Output only. Total billing correction amount, in micros.",
          "readOnly": true,
          "format": "int64"
        },
        "excessCreditAdjustmentTotalAmountMicros": {
          "description": "Output only. Total excess credit adjustment amount, in micros.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "exportChargeTotalAmountMicros": {
          "description": "Output only. Total export charge amount, in micros.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "taxAmountMicros": {
          "description": "Output only. Total tax amount attributable to the account during the service period, in micros.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "excessCreditAdjustmentTaxAmountMicros": {
          "type": "string",
          "description": "Output only. Tax on excess credit adjustment, in micros.",
          "readOnly": true,
          "format": "int64"
        },
        "regulatoryCostsSubtotalAmountMicros": {
          "type": "string",
          "description": "Output only. Pretax regulatory costs subtotal amount, in micros.",
          "readOnly": true,
          "format": "int64"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_Invoice_AccountSummary",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateBiddingSeasonalityAdjustmentsResponse": {
      "description": "Response message for seasonality adjustments mutate.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "type": "array",
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateBiddingSeasonalityAdjustmentsResult"
          }
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateBiddingSeasonalityAdjustmentsResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__ParentalStatusDimension": {
      "description": "Dimension specifying users by their parental status.",
      "properties": {
        "parentalStatuses": {
          "items": {
            "type": "string",
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "PARENT",
              "NOT_A_PARENT",
              "UNDETERMINED"
            ],
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "Parent.",
              "Not a parent.",
              "Undetermined parental status."
            ]
          },
          "description": "Included parental status demographic segments.",
          "type": "array"
        },
        "includeUndetermined": {
          "description": "Include users whose parental status is undetermined.",
          "type": "boolean"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__ParentalStatusDimension",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_RaiseTargetCpaBidTooLowParameters": {
      "id": "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_RaiseTargetCpaBidTooLowParameters",
      "type": "object",
      "description": "Parameters to use when applying a raise target CPA bid too low recommendation. The apply is asynchronous and can take minutes depending on the number of ad groups there is in the related campaign..",
      "properties": {
        "targetMultiplier": {
          "description": "Required. A number greater than 1.0 indicating the factor by which to increase the target CPA. This is a required field.",
          "format": "double",
          "type": "number"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__BrandSuggestion": {
      "description": "Information of brand suggestion.",
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of the brand."
        },
        "state": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "DEPRECATED",
            "UNVERIFIED",
            "APPROVED",
            "CANCELLED",
            "REJECTED"
          ],
          "description": "Current state of the brand.",
          "enumDescriptions": [
            "No value has been specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Brand is verified and globally available for selection",
            "Brand was globally available in past but is no longer a valid brand (based on business criteria)",
            "Brand is unverified and customer scoped, but can be selected by customer (only who requested for same) for targeting",
            "Was a customer-scoped (unverified) brand, which got approved by business and added to the global list. Its assigned CKG MID should be used instead of this",
            "Was a customer-scoped (unverified) brand, but the request was canceled by customer and this brand id is no longer valid",
            "Was a customer-scoped (unverified) brand, but the request was rejected by internal business team and this brand id is no longer valid"
          ]
        },
        "id": {
          "type": "string",
          "description": "Id for the brand. It would be CKG MID for verified/global scoped brands."
        },
        "urls": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Urls which uniquely identify the brand."
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__BrandSuggestion",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_Invoice_AdjustmentSummary": {
      "description": "Represents adjustment information associated with an account.",
      "properties": {
        "amountMicros": {
          "description": "Output only. The amount of the adjustment, in micros. The currency code for this amount is the same as the Invoice.currency_code.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "adjustmentDescription": {
          "description": "Output only. The description of the adjustment. Example: Incentive Adjustment, discount.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_Invoice_AdjustmentSummary",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__CustomAudienceInfo": {
      "description": "A custom audience criterion.",
      "properties": {
        "customAudience": {
          "type": "string",
          "description": "The CustomAudience resource name."
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__CustomAudienceInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateAdGroupCustomizersRequest": {
      "description": "Request message for AdGroupCustomizerService.MutateAdGroupCustomizers.",
      "properties": {
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "operations": {
          "description": "Required. The list of operations to perform on individual ad group customizers.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__AdGroupCustomizerOperation"
          },
          "type": "array"
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "responseContentType": {
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateAdGroupCustomizersRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__CallConversionResult": {
      "id": "GoogleAdsGoogleadsV24Services__CallConversionResult",
      "type": "object",
      "description": "Identifying information for a successfully processed CallConversionUpload.",
      "properties": {
        "callStartDateTime": {
          "type": "string",
          "description": "The date time at which the call occurred. The format is \"yyyy-mm-dd hh:mm:ss+|-hh:mm\", for example, \"2019-01-01 12:32:45-08:00\"."
        },
        "callerId": {
          "description": "The caller id from which this call was placed. Caller id is expected to be in E.164 format with preceding '+' sign.",
          "type": "string"
        },
        "conversionAction": {
          "description": "Resource name of the conversion action associated with this conversion.",
          "type": "string"
        },
        "conversionDateTime": {
          "type": "string",
          "description": "The date time at which the conversion occurred. The format is \"yyyy-mm-dd hh:mm:ss+|-hh:mm\", for example, \"2019-01-01 12:32:45-08:00\"."
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__Invoice": {
      "description": "An invoice. All invoice information is snapshotted to match the PDF invoice. For invoices older than the launch of InvoiceService, the snapshotted information may not match the PDF invoice.",
      "properties": {
        "adjustmentsTaxAmountMicros": {
          "type": "string",
          "description": "Output only. The sum of taxes on the invoice level adjustments, in micros.",
          "readOnly": true,
          "format": "int64"
        },
        "regulatoryCostsTaxAmountMicros": {
          "description": "Output only. The sum of taxes on the invoice level regulatory costs, in micros.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "paymentsAccountId": {
          "description": "Output only. A 16 digit ID used to identify the payments account associated with the billing setup, for example, \"1234-5678-9012-3456\". It appears on the invoice PDF as \"Billing Account Number\".",
          "readOnly": true,
          "type": "string"
        },
        "type": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CREDIT_MEMO",
            "INVOICE"
          ],
          "description": "Output only. The type of invoice.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "An invoice with a negative amount. The account receives a credit.",
            "An invoice with a positive amount. The account owes a balance."
          ],
          "type": "string"
        },
        "totalAmountMicros": {
          "type": "string",
          "description": "Output only. The total amount, in micros. This equals the sum of Invoice.subtotal_amount_micros, Invoice.tax_amount_micros, Invoice.regulatory_costs_subtotal_amount_micros, and Invoice.export_charge_subtotal_amount_micros (which is separated into a separate line item starting with V14.1).",
          "readOnly": true,
          "format": "int64"
        },
        "accountBudgetSummaries": {
          "description": "Output only. The list of summarized account budget information associated with this invoice.",
          "readOnly": true,
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Resources_Invoice_AccountBudgetSummary"
          },
          "type": "array"
        },
        "exportChargeTotalAmountMicros": {
          "type": "string",
          "description": "Output only. The total amount of invoice level export charges, in micros.",
          "readOnly": true,
          "format": "int64"
        },
        "taxAmountMicros": {
          "description": "Output only. The sum of all taxes on the invoice, in micros. This equals the sum of the AccountBudgetSummary tax amounts, plus taxes not associated with a specific account budget.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "regulatoryCostsSubtotalAmountMicros": {
          "type": "string",
          "description": "Output only. The pretax subtotal amount of invoice level regulatory costs, in micros.",
          "readOnly": true,
          "format": "int64"
        },
        "replacedInvoices": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Output only. The resource name of the original invoice(s) being rebilled or replaced by this invoice, if applicable. There might be multiple replaced invoices due to invoice consolidation. The replaced invoices may not belong to the same payments account. If `replaced_invoices` is set, `corrected_invoice` will not be set. Invoice resource names have the form: `customers/{customer_id}/invoices/{invoice_id}`",
          "readOnly": true
        },
        "dueDate": {
          "type": "string",
          "description": "Output only. The due date in yyyy-mm-dd format.",
          "readOnly": true
        },
        "pdfUrl": {
          "description": "Output only. The URL to a PDF copy of the invoice. Users need to pass in their OAuth token to request the PDF with this URL.",
          "readOnly": true,
          "type": "string"
        },
        "adjustmentsSubtotalAmountMicros": {
          "description": "Output only. The pretax subtotal amount of invoice level adjustments, in micros.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "serviceDateRange": {
          "description": "Output only. The service period date range of this invoice. The end date is inclusive.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Common__DateRange"
        },
        "issueDate": {
          "type": "string",
          "description": "Output only. The issue date in yyyy-mm-dd format. It appears on the invoice PDF as either \"Issue date\" or \"Invoice date\".",
          "readOnly": true
        },
        "subtotalAmountMicros": {
          "description": "Output only. The pretax subtotal amount, in micros. This is equal to the sum of the AccountBudgetSummary subtotal amounts and Invoice.adjustments_subtotal_amount_micros.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the invoice. Multiple customers can share a given invoice, so multiple resource names may point to the same invoice. Invoice resource names have the form: `customers/{customer_id}/invoices/{invoice_id}`",
          "readOnly": true
        },
        "currencyCode": {
          "description": "Output only. The currency code. All costs are returned in this currency. A subset of the currency codes derived from the ISO 4217 standard is supported.",
          "readOnly": true,
          "type": "string"
        },
        "exportChargeSubtotalAmountMicros": {
          "description": "Output only. The pretax subtotal amount of invoice level export charges, in micros.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "regulatoryCostsTotalAmountMicros": {
          "type": "string",
          "description": "Output only. The total amount of invoice level regulatory costs, in micros.",
          "readOnly": true,
          "format": "int64"
        },
        "billingSetup": {
          "description": "Output only. The resource name of this invoice's billing setup. `customers/{customer_id}/billingSetups/{billing_setup_id}`",
          "readOnly": true,
          "type": "string"
        },
        "id": {
          "type": "string",
          "description": "Output only. The ID of the invoice. It appears on the invoice PDF as \"Invoice number\".",
          "readOnly": true
        },
        "correctedInvoice": {
          "type": "string",
          "description": "Output only. The resource name of the original invoice corrected, wrote off, or canceled by this invoice, if applicable. If `corrected_invoice` is set, `replaced_invoices` will not be set. Invoice resource names have the form: `customers/{customer_id}/invoices/{invoice_id}`",
          "readOnly": true
        },
        "exportChargeTaxAmountMicros": {
          "description": "Output only. The sum of taxes on the invoice level export charges, in micros.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "adjustmentsTotalAmountMicros": {
          "description": "Output only. The total amount of invoice level adjustments, in micros.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "accountSummaries": {
          "type": "array",
          "description": "Output only. The list of summarized account information associated with this invoice.",
          "readOnly": true,
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Resources_Invoice_AccountSummary"
          }
        },
        "paymentsProfileId": {
          "type": "string",
          "description": "Output only. A 12 digit ID used to identify the payments profile associated with the billing setup, for example, \"1234-5678-9012\". It appears on the invoice PDF as \"Billing ID\".",
          "readOnly": true
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__Invoice",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__UrlSeed": {
      "id": "GoogleAdsGoogleadsV24Services__UrlSeed",
      "type": "object",
      "description": "Url Seed",
      "properties": {
        "url": {
          "type": "string",
          "description": "The URL to crawl in order to generate keyword ideas."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__CustomerUserAccessOperation": {
      "description": "A single operation (update, remove) on customer user access.",
      "properties": {
        "update": {
          "description": "Update operation: The customer user access is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CustomerUserAccess"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed access is expected, in this format: `customers/{customer_id}/customerUserAccesses/{CustomerUserAccess.user_id}`"
        },
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__CustomerUserAccessOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__PromotionQrCodeInfo": {
      "description": "QR code info to generate promotion QR code.",
      "properties": {
        "qrCodeContent": {
          "type": "string",
          "description": "Promotion message to be encoded in the QR code."
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__PromotionQrCodeInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__GenerateAudienceOverlapInsightsResponse": {
      "description": "Response message for AudienceInsightsService.GenerateAudienceOverlapInsights.",
      "properties": {
        "dimensionResults": {
          "type": "array",
          "description": "Lists of attributes and their overlap with the primary attribute, one list per requested dimension.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__DimensionOverlapResult"
          }
        },
        "primaryAttributeMetadata": {
          "description": "Metadata for the primary attribute, including potential YouTube reach.",
          "$ref": "GoogleAdsGoogleadsV24Common__AudienceInsightsAttributeMetadata"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__GenerateAudienceOverlapInsightsResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__AudienceInsightsAttribute": {
      "id": "GoogleAdsGoogleadsV24Common__AudienceInsightsAttribute",
      "type": "object",
      "description": "An audience attribute that can be used to request insights about the audience. Valid inputs for these fields are available from AudienceInsightsService.ListAudienceInsightsAttributes.",
      "properties": {
        "category": {
          "description": "An audience attribute defined by interest in a Product & Service category.",
          "$ref": "GoogleAdsGoogleadsV24Common__AudienceInsightsCategory"
        },
        "entity": {
          "description": "An audience attribute defined by interest in a topic represented by a Knowledge Graph entity.",
          "$ref": "GoogleAdsGoogleadsV24Common__AudienceInsightsEntity"
        },
        "parentalStatus": {
          "description": "A Parental Status value (parent, or not a parent).",
          "$ref": "GoogleAdsGoogleadsV24Common__ParentalStatusInfo"
        },
        "userInterest": {
          "description": "An Affinity or In-Market audience.",
          "$ref": "GoogleAdsGoogleadsV24Common__UserInterestInfo"
        },
        "device": {
          "description": "A device type. (Mobile, Desktop, Tablet)",
          "$ref": "GoogleAdsGoogleadsV24Common__DeviceInfo"
        },
        "youtubeChannel": {
          "description": "A YouTube channel.",
          "$ref": "GoogleAdsGoogleadsV24Common__YouTubeChannelInfo"
        },
        "youtubeVideo": {
          "description": "A YouTube video.",
          "$ref": "GoogleAdsGoogleadsV24Common__YouTubeVideoInfo"
        },
        "ageRange": {
          "description": "An audience attribute defined by an age range.",
          "$ref": "GoogleAdsGoogleadsV24Common__AgeRangeInfo"
        },
        "lineup": {
          "description": "A YouTube Lineup.",
          "$ref": "GoogleAdsGoogleadsV24Common__AudienceInsightsLineup"
        },
        "userList": {
          "description": "A User List.",
          "$ref": "GoogleAdsGoogleadsV24Common__UserListInfo"
        },
        "gender": {
          "description": "An audience attribute defined by a gender.",
          "$ref": "GoogleAdsGoogleadsV24Common__GenderInfo"
        },
        "incomeRange": {
          "description": "A household income percentile range.",
          "$ref": "GoogleAdsGoogleadsV24Common__IncomeRangeInfo"
        },
        "location": {
          "description": "An audience attribute defined by a geographic location.",
          "$ref": "GoogleAdsGoogleadsV24Common__LocationInfo"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__HotelLengthOfStayInfo": {
      "description": "Criterion for length of hotel stay in nights.",
      "properties": {
        "minNights": {
          "type": "string",
          "description": "Low end of the number of nights in the stay.",
          "format": "int64"
        },
        "maxNights": {
          "description": "High end of the number of nights in the stay.",
          "format": "int64",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__HotelLengthOfStayInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__CreateOfflineUserDataJobResponse": {
      "id": "GoogleAdsGoogleadsV24Services__CreateOfflineUserDataJobResponse",
      "type": "object",
      "description": "Response message for OfflineUserDataJobService.CreateOfflineUserDataJob.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "The resource name of the OfflineUserDataJob."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateUserListCustomerTypesRequest": {
      "id": "GoogleAdsGoogleadsV24Services__MutateUserListCustomerTypesRequest",
      "type": "object",
      "description": "Request message for UserListCustomerTypeService.MutateUserListCustomerTypes.",
      "properties": {
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__UserListCustomerTypeOperation"
          },
          "description": "Required. The list of operations to perform on the user list customer types."
        },
        "validateOnly": {
          "type": "boolean",
          "description": "Optional. If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "partialFailure": {
          "type": "boolean",
          "description": "Optional. If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__YouTubeAudioAdInfo": {
      "id": "GoogleAdsGoogleadsV24Common__YouTubeAudioAdInfo",
      "type": "object",
      "description": "Representation of YouTube Audio ad format.",
      "properties": {}
    },
    "GoogleAdsGoogleadsV24Services__MutateCampaignAssetsRequest": {
      "id": "GoogleAdsGoogleadsV24Services__MutateCampaignAssetsRequest",
      "type": "object",
      "description": "Request message for CampaignAssetService.MutateCampaignAssets.",
      "properties": {
        "operations": {
          "description": "Required. The list of operations to perform on individual campaign assets.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__CampaignAssetOperation"
          },
          "type": "array"
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "responseContentType": {
          "type": "string",
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ]
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__GenerateKeywordIdeasRequest": {
      "description": "Request message for KeywordPlanIdeaService.GenerateKeywordIdeas.",
      "properties": {
        "siteSeed": {
          "description": "The site to generate ideas from, for example, www.example.com.",
          "$ref": "GoogleAdsGoogleadsV24Services__SiteSeed"
        },
        "aggregateMetrics": {
          "description": "The aggregate fields to include in response.",
          "$ref": "GoogleAdsGoogleadsV24Common__KeywordPlanAggregateMetrics"
        },
        "keywordSeed": {
          "description": "A Keyword or phrase to generate ideas from, for example, cars.",
          "$ref": "GoogleAdsGoogleadsV24Services__KeywordSeed"
        },
        "includeAdultKeywords": {
          "type": "boolean",
          "description": "If true, adult keywords will be included in response. The default value is false."
        },
        "urlSeed": {
          "description": "A specific url to generate ideas from, for example, www.example.com/cars.",
          "$ref": "GoogleAdsGoogleadsV24Services__UrlSeed"
        },
        "geoTargetConstants": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The resource names of the location to target. Maximum is 10. An empty list MAY be used to specify all targeting geos."
        },
        "historicalMetricsOptions": {
          "description": "The options for historical metrics data.",
          "$ref": "GoogleAdsGoogleadsV24Common__HistoricalMetricsOptions"
        },
        "keywordAnnotation": {
          "type": "array",
          "description": "The keyword annotations to include in response.",
          "items": {
            "enumDescriptions": [
              "Not specified.",
              "The value is unknown in this version.",
              "Return the keyword concept and concept group data."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "KEYWORD_CONCEPT"
            ],
            "type": "string"
          }
        },
        "pageSize": {
          "type": "integer",
          "description": "Number of results to retrieve in a single page. A maximum of 10,000 results may be returned, if the page_size exceeds this, it is ignored. If unspecified, at most 10,000 results will be returned. The server may decide to further limit the number of returned resources. If the response contains fewer than 10,000 results it may not be assumed as last page of results.",
          "format": "int32"
        },
        "keywordPlanNetwork": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "GOOGLE_SEARCH",
            "GOOGLE_SEARCH_AND_PARTNERS"
          ],
          "description": "Targeting network. If not set, Google Search And Partners Network will be used.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Google Search.",
            "Google Search + Search partners."
          ]
        },
        "pageToken": {
          "description": "Token of the page to retrieve. If not specified, the first page of results will be returned. To request next page of results use the value obtained from `next_page_token` in the previous response. The request fields must match across pages.",
          "type": "string"
        },
        "language": {
          "type": "string",
          "description": "The resource name of the language to target. Each keyword belongs to some set of languages; a keyword is included if language is one of its languages. If not set, all keywords will be included."
        },
        "keywordAndUrlSeed": {
          "description": "A Keyword and a specific Url to generate ideas from for example, cars, www.example.com/cars.",
          "$ref": "GoogleAdsGoogleadsV24Services__KeywordAndUrlSeed"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__GenerateKeywordIdeasRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__CreateOfflineUserDataJobRequest": {
      "id": "GoogleAdsGoogleadsV24Services__CreateOfflineUserDataJobRequest",
      "type": "object",
      "description": "Request message for OfflineUserDataJobService.CreateOfflineUserDataJob.",
      "properties": {
        "enableMatchRateRangePreview": {
          "description": "If true, match rate range for the offline user data job is calculated and made available in the resource.",
          "type": "boolean"
        },
        "job": {
          "description": "Required. The offline user data job to be created.",
          "$ref": "GoogleAdsGoogleadsV24Resources__OfflineUserDataJob"
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__CampaignAudienceView": {
      "id": "GoogleAdsGoogleadsV24Resources__CampaignAudienceView",
      "type": "object",
      "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.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the campaign audience view. Campaign audience view resource names have the form: `customers/{customer_id}/campaignAudienceViews/{campaign_id}~{criterion_id}`",
          "readOnly": true
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__ManualCpm": {
      "id": "GoogleAdsGoogleadsV24Common__ManualCpm",
      "type": "object",
      "description": "Manual impression-based bidding where user pays per thousand impressions.",
      "properties": {}
    },
    "GoogleAdsGoogleadsV24Services__MaximizeClicksBiddingStrategy": {
      "id": "GoogleAdsGoogleadsV24Services__MaximizeClicksBiddingStrategy",
      "type": "object",
      "description": "Maximize Clicks Bidding Strategy.",
      "properties": {
        "maxCpcBidCeilingMicros": {
          "type": "string",
          "description": "Ceiling on max CPC bids in micros.",
          "format": "int64"
        },
        "dailyTargetSpendMicros": {
          "description": "Required. The daily target spend in micros to be used for estimation. A minimum value is enforced for the local currency used in the campaign. An error will occur showing the minimum value if this field is set too low.",
          "format": "int64",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__GoalOperation": {
      "id": "GoogleAdsGoogleadsV24Services__GoalOperation",
      "type": "object",
      "description": "A single mutate operation on the goal.",
      "properties": {
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask",
          "type": "string"
        },
        "update": {
          "description": "Update an existing goal.",
          "$ref": "GoogleAdsGoogleadsV24Resources__Goal"
        },
        "create": {
          "description": "Create a new goal.",
          "$ref": "GoogleAdsGoogleadsV24Resources__Goal"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateCampaignAssetSetsResponse": {
      "id": "GoogleAdsGoogleadsV24Services__MutateCampaignAssetSetsResponse",
      "type": "object",
      "description": "Response message for a campaign asset set mutate.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateCampaignAssetSetResult"
          },
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__GoogleAdsField": {
      "description": "A field or resource (artifact) used by GoogleAdsService.",
      "properties": {
        "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,
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "sortable": {
          "type": "boolean",
          "description": "Output only. Whether the artifact can be used in a ORDER BY clause in search queries.",
          "readOnly": true
        },
        "typeUrl": {
          "description": "Output only. The URL of proto describing the artifact's data type.",
          "readOnly": true,
          "type": "string"
        },
        "resourceName": {
          "description": "Output only. The resource name of the artifact. Artifact resource names have the form: `googleAdsFields/{name}`",
          "readOnly": true,
          "type": "string"
        },
        "attributeResources": {
          "items": {
            "type": "string"
          },
          "description": "Output only. The names of all resources that are selectable with the described artifact. Fields from these resources do not segment metrics when included in search queries. This field is only set for artifacts whose category is RESOURCE.",
          "readOnly": true,
          "type": "array"
        },
        "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"
        },
        "segments": {
          "type": "array",
          "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,
          "items": {
            "type": "string"
          }
        },
        "dataType": {
          "description": "Output only. This field determines the operators that can be used with the artifact in WHERE clauses.",
          "readOnly": true,
          "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"
          ],
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "Output only. The name of the artifact.",
          "readOnly": true
        },
        "isRepeated": {
          "description": "Output only. Whether the field artifact is repeated.",
          "readOnly": true,
          "type": "boolean"
        },
        "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"
        },
        "category": {
          "description": "Output only. The category of the artifact.",
          "readOnly": true,
          "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"
          ],
          "type": "string"
        },
        "filterable": {
          "type": "boolean",
          "description": "Output only. Whether the artifact can be used in a WHERE clause in search queries.",
          "readOnly": true
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__GoogleAdsField",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__AdvancedProductTargeting": {
      "description": "Advanced targeting settings for products.",
      "properties": {
        "surfaceTargetingSettings": {
          "description": "Surface targeting settings for this product.",
          "$ref": "GoogleAdsGoogleadsV24Services__SurfaceTargeting"
        },
        "targetFrequencySettings": {
          "description": "Settings for a Target frequency campaign. Must be set when selecting the TARGET_FREQUENCY product. See https://support.google.com/google-ads/answer/12400225 for more information about Target Frequency campaigns.",
          "$ref": "GoogleAdsGoogleadsV24Services__TargetFrequencySettings"
        },
        "youtubeSelectSettings": {
          "description": "Settings for YouTube Select targeting.",
          "$ref": "GoogleAdsGoogleadsV24Services__YouTubeSelectSettings"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__AdvancedProductTargeting",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__SurfaceTargetingCombinations": {
      "id": "GoogleAdsGoogleadsV24Services__SurfaceTargetingCombinations",
      "type": "object",
      "description": "The surface targeting combinations available for an ad product.",
      "properties": {
        "defaultTargeting": {
          "description": "Default surface targeting applied to the ad product.",
          "$ref": "GoogleAdsGoogleadsV24Services__SurfaceTargeting"
        },
        "availableTargetingCombinations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__SurfaceTargeting"
          },
          "description": "Available surface target combinations for the ad product."
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__ProductLink": {
      "description": "Represents the data sharing connection between a Google Ads customer and another product.",
      "properties": {
        "advertisingPartner": {
          "description": "Output only. Advertising Partner link.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources__AdvertisingPartnerIdentifier"
        },
        "productLinkId": {
          "description": "Output only. The ID of the link. This field is read only.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. Resource name of the product link. ProductLink resource names have the form: `customers/{customer_id}/productLinks/{product_link_id} `"
        },
        "type": {
          "type": "string",
          "description": "Output only. The type of the linked product.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "A link to Data partner.",
            "A link to Google Ads.",
            "A link to Hotel Center.",
            "A link to Google Merchant Center.",
            "A link to the Google Ads account of the advertising partner."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DATA_PARTNER",
            "GOOGLE_ADS",
            "HOTEL_CENTER",
            "MERCHANT_CENTER",
            "ADVERTISING_PARTNER"
          ]
        },
        "googleAds": {
          "description": "Immutable. Google Ads link.",
          "$ref": "GoogleAdsGoogleadsV24Resources__GoogleAdsIdentifier"
        },
        "dataPartner": {
          "description": "Immutable. Data partner link.",
          "$ref": "GoogleAdsGoogleadsV24Resources__DataPartnerIdentifier"
        },
        "merchantCenter": {
          "description": "Immutable. Google Merchant Center link.",
          "$ref": "GoogleAdsGoogleadsV24Resources__MerchantCenterIdentifier"
        },
        "advertisingPartnerProperties": {
          "description": "Output only. Advertising Partner link properties. These properties are only applicable when the link is for an Advertising Partner.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources__AdvertisingPartnerProperties"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__ProductLink",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__UserInterest": {
      "id": "GoogleAdsGoogleadsV24Resources__UserInterest",
      "type": "object",
      "description": "A user interest: a particular interest-based vertical to be targeted.",
      "properties": {
        "userInterestParent": {
          "description": "Output only. The parent of the user interest.",
          "readOnly": true,
          "type": "string"
        },
        "taxonomyType": {
          "description": "Output only. Taxonomy type of the user interest.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The affinity for this user interest.",
            "The market for this user interest.",
            "Users known to have installed applications in the specified categories.",
            "The geographical location of the interest-based vertical.",
            "User interest criteria for new smart phone users."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AFFINITY",
            "IN_MARKET",
            "MOBILE_APP_INSTALL_USER",
            "VERTICAL_GEO",
            "NEW_SMART_PHONE_USER"
          ],
          "type": "string"
        },
        "name": {
          "description": "Output only. The name of the user interest.",
          "readOnly": true,
          "type": "string"
        },
        "userInterestId": {
          "type": "string",
          "description": "Output only. The ID of the user interest.",
          "readOnly": true,
          "format": "int64"
        },
        "launchedToAll": {
          "type": "boolean",
          "description": "Output only. True if the user interest is launched to all channels and locales.",
          "readOnly": true
        },
        "resourceName": {
          "description": "Output only. The resource name of the user interest. User interest resource names have the form: `customers/{customer_id}/userInterests/{user_interest_id}`",
          "readOnly": true,
          "type": "string"
        },
        "availabilities": {
          "type": "array",
          "description": "Output only. Availability information of the user interest.",
          "readOnly": true,
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__CriterionCategoryAvailability"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__ProximityInfo": {
      "id": "GoogleAdsGoogleadsV24Common__ProximityInfo",
      "type": "object",
      "description": "A Proximity criterion. The geo point and radius determine what geographical area is included. The address is a description of the geo point that does not affect ad serving. There are two ways to create a proximity. First, by setting an address and radius. The geo point will be automatically computed. Second, by setting a geo point and radius. The address is an optional label that won't be validated.",
      "properties": {
        "radiusUnits": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MILES",
            "KILOMETERS"
          ],
          "description": "The unit of measurement of the radius. Default is KILOMETERS.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Miles",
            "Kilometers"
          ]
        },
        "geoPoint": {
          "description": "Latitude and longitude.",
          "$ref": "GoogleAdsGoogleadsV24Common__GeoPointInfo"
        },
        "radius": {
          "type": "number",
          "description": "The radius of the proximity.",
          "format": "double"
        },
        "address": {
          "description": "Full address.",
          "$ref": "GoogleAdsGoogleadsV24Common__AddressInfo"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateBillingSetupResponse": {
      "id": "GoogleAdsGoogleadsV24Services__MutateBillingSetupResponse",
      "type": "object",
      "description": "Response message for a billing setup operation.",
      "properties": {
        "result": {
          "description": "A result that identifies the resource affected by the mutate request.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateBillingSetupResult"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__ListPlannableUserListsResponse": {
      "description": "A response with all available user lists with their plannable status.",
      "properties": {
        "plannableUserLists": {
          "description": "The list of user lists available for planning and related targeting metadata.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__PlannableUserList"
          },
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__ListPlannableUserListsResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__KeywordConcept": {
      "description": "The concept for the keyword.",
      "properties": {
        "name": {
          "description": "The concept name for the keyword in the concept_group.",
          "type": "string"
        },
        "conceptGroup": {
          "description": "The concept group of the concept details.",
          "$ref": "GoogleAdsGoogleadsV24Common__ConceptGroup"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__KeywordConcept",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateCampaignSharedSetResult": {
      "description": "The result for the campaign shared set mutate.",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        },
        "campaignSharedSet": {
          "description": "The mutated campaign shared set with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV24Resources__CampaignSharedSet"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateCampaignSharedSetResult",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__AssetInteractionTarget": {
      "description": "An AssetInteractionTarget segment.",
      "properties": {
        "asset": {
          "description": "The asset resource name.",
          "type": "string"
        },
        "interactionOnThisAsset": {
          "type": "boolean",
          "description": "Only used with CustomerAsset, CampaignAsset and AdGroupAsset metrics. Indicates whether the interaction metrics occurred on the asset itself or a different asset or ad unit."
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__AssetInteractionTarget",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__IndustryVerticalInfo": {
      "description": "The information associated with an Industry Vertical.",
      "properties": {
        "industryVerticalName": {
          "type": "string",
          "description": "The name of the Industry Vertical."
        },
        "industryVerticalId": {
          "type": "string",
          "description": "The unique identifier of the Industry Vertical.",
          "format": "int64"
        },
        "parentIndustryVerticalId": {
          "type": "string",
          "description": "The unique identifier of the parent Industry Vertical, if exists.",
          "format": "int64"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__IndustryVerticalInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__SuggestSmartCampaignAdResponse": {
      "id": "GoogleAdsGoogleadsV24Services__SuggestSmartCampaignAdResponse",
      "type": "object",
      "description": "Response message for SmartCampaignSuggestService.SuggestSmartCampaignAd.",
      "properties": {
        "adInfo": {
          "description": "Optional. Ad info includes 3 creative headlines and 2 creative descriptions.",
          "$ref": "GoogleAdsGoogleadsV24Common__SmartCampaignAdInfo"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_CampaignVideoCampaignSettings_NonSkippableInStreamRestrictions": {
      "description": "Restrictions for non-skippable format.",
      "properties": {
        "minDuration": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MIN_DURATION_FIVE_SECONDS",
            "MIN_DURATION_SEVEN_SECONDS",
            "MIN_DURATION_SIXTEEN_SECONDS",
            "MIN_DURATION_THIRTY_ONE_SECONDS"
          ],
          "description": "The minimum allowed duration for non-skippable ads.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Indicates that non-skippable ads must be at least 5 seconds long.",
            "Indicates that non-skippable ads must be at least 7 seconds long.",
            "Indicates that non-skippable ads must be at least 16 seconds long.",
            "Indicates that non-skippable ads must be at least 31 seconds long."
          ]
        },
        "maxDuration": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MAX_DURATION_FIFTEEN_SECONDS",
            "MAX_DURATION_THIRTY_SECONDS",
            "MAX_DURATION_SIXTY_SECONDS"
          ],
          "description": "The maximum allowed duration for non-skippable ads.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Indicates that non-skippable ads must be at most 15 seconds long.",
            "Indicates that non-skippable ads must be at most 30 seconds long.",
            "Indicates that non-skippable ads must be at most 60 seconds long."
          ]
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_CampaignVideoCampaignSettings_NonSkippableInStreamRestrictions",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__VideoTrueViewInStreamAdInfo": {
      "description": "Representation of video TrueView in-stream ad format (ad shown during video playback, often at beginning, which displays a skip button a few seconds into the video).",
      "properties": {
        "actionButtonLabel": {
          "type": "string",
          "description": "Label on the CTA (call-to-action) button taking the user to the video ad's final URL. Required for TrueView for action campaigns, optional otherwise."
        },
        "actionHeadline": {
          "type": "string",
          "description": "Additional text displayed with the CTA (call-to-action) button to give context and encourage clicking on the button."
        },
        "companionBanner": {
          "description": "The image assets of the companion banner used with the ad.",
          "$ref": "GoogleAdsGoogleadsV24Common__AdImageAsset"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__VideoTrueViewInStreamAdInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__CreditDetails": {
      "description": "Represents the credit details of a lead.",
      "properties": {
        "creditStateLastUpdateDateTime": {
          "type": "string",
          "description": "Output only. The date time when the credit state of the lead was last updated. The format is \"YYYY-MM-DD HH:MM:SS\" in the Google Ads account's timezone. Examples: \"2018-03-05 09:15:00\" or \"2018-02-01 14:34:30\"",
          "readOnly": true
        },
        "creditState": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PENDING",
            "CREDITED"
          ],
          "description": "Output only. Credit state of the lead.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "A credit has been filed and is being processed by Ads backend, but has not been applied to the account yet.",
            "The credit has been issued to the Ads account."
          ]
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__CreditDetails",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__CpcBidSimulationPointList": {
      "description": "A container for simulation points for simulations of type CPC_BID.",
      "properties": {
        "points": {
          "description": "Projected metrics for a series of CPC bid amounts.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__CpcBidSimulationPoint"
          },
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__CpcBidSimulationPointList",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateKeywordPlanCampaignResult": {
      "description": "The result for the Keyword Plan campaign mutate.",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateKeywordPlanCampaignResult",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__CampaignGroup": {
      "description": "A campaign group.",
      "properties": {
        "id": {
          "type": "string",
          "description": "Output only. The ID of the campaign group.",
          "readOnly": true,
          "format": "int64"
        },
        "name": {
          "type": "string",
          "description": "The name of the campaign group. This field is required and should not be empty when creating new campaign groups. It must not contain any null (code point 0x0), NL line feed (code point 0xA) or carriage return (code point 0xD) characters."
        },
        "status": {
          "description": "The status of the campaign group. When a new campaign group is added, the status defaults to ENABLED.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The campaign group is active.",
            "The campaign group has been removed."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "type": "string"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the campaign group. Campaign group resource names have the form: `customers/{customer_id}/campaignGroups/{campaign_group_id}`"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__CampaignGroup",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services_ProductFilter_MarketingObjectiveList": {
      "description": "The list of marketing objectives to generate benchmarks metrics for.",
      "properties": {
        "marketingObjectives": {
          "items": {
            "enumDescriptions": [
              "Not specified.",
              "The value is unknown in this version.",
              "The objective is to increase awareness.",
              "The objective is to encourage potential customers to consider the brand or products.",
              "The objective is to drive a specific conversion, such as a purchase."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "AWARENESS",
              "CONSIDERATION",
              "ACTION"
            ],
            "type": "string"
          },
          "description": "Required. Marketing objectives to generate benchmarks metrics for.",
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services_ProductFilter_MarketingObjectiveList",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__SearchGoogleAdsFieldsResponse": {
      "description": "Response message for GoogleAdsFieldService.SearchGoogleAdsFields.",
      "properties": {
        "nextPageToken": {
          "type": "string",
          "description": "Pagination token used to retrieve the next page of results. Pass the content of this string as the `page_token` attribute of the next request. `next_page_token` is not returned for the last page."
        },
        "totalResultsCount": {
          "description": "Total number of results that match the query ignoring the LIMIT clause.",
          "format": "int64",
          "type": "string"
        },
        "results": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Resources__GoogleAdsField"
          },
          "description": "The list of fields that matched the query.",
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__SearchGoogleAdsFieldsResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_Campaign_DynamicSearchAdsSetting": {
      "id": "GoogleAdsGoogleadsV24Resources_Campaign_DynamicSearchAdsSetting",
      "type": "object",
      "description": "The setting for controlling Dynamic Search Ads (DSA).",
      "properties": {
        "languageCode": {
          "type": "string",
          "description": "Required. The language code specifying the language of the domain, for example, \"en\"."
        },
        "domainName": {
          "type": "string",
          "description": "Required. The Internet domain name that this setting represents, for example, \"google.com\" or \"www.google.com\"."
        },
        "useSuppliedUrlsOnly": {
          "description": "Whether the campaign uses advertiser supplied URLs exclusively.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__GenerateAudienceCompositionInsightsResponse": {
      "description": "Response message for AudienceInsightsService.GenerateAudienceCompositionInsights.",
      "properties": {
        "sections": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__AudienceCompositionSection"
          },
          "description": "The contents of the insights report, organized into sections. Each section is associated with one of the AudienceInsightsDimension values in the request. There may be more than one section per dimension.",
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__GenerateAudienceCompositionInsightsResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__AddressInfo": {
      "description": "Address for proximity criterion.",
      "properties": {
        "countryCode": {
          "description": "Country code.",
          "type": "string"
        },
        "postalCode": {
          "description": "Postal code.",
          "type": "string"
        },
        "provinceName": {
          "type": "string",
          "description": "Province or state name."
        },
        "provinceCode": {
          "description": "Province or state code.",
          "type": "string"
        },
        "streetAddress2": {
          "type": "string",
          "description": "Street address line 2. This field is write-only. It is only used for calculating the longitude and latitude of an address when geo_point is empty."
        },
        "cityName": {
          "type": "string",
          "description": "Name of the city."
        },
        "streetAddress": {
          "description": "Street address line 1.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__AddressInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__MobileDeviceInfo": {
      "id": "GoogleAdsGoogleadsV24Common__MobileDeviceInfo",
      "type": "object",
      "description": "A mobile device criterion.",
      "properties": {
        "mobileDeviceConstant": {
          "description": "The mobile device constant resource name.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__CustomVariable": {
      "description": "A custom variable.",
      "properties": {
        "conversionCustomVariable": {
          "description": "Resource name of the custom variable associated with this conversion. Note: Although this resource name consists of a customer id and a conversion custom variable id, validation will ignore the customer id and use the conversion custom variable id as the sole identifier of the conversion custom variable.",
          "type": "string"
        },
        "value": {
          "description": "The value string of this custom variable. The value of the custom variable should not contain private customer data, such as email addresses or phone numbers.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__CustomVariable",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__MobileDeviceConstant": {
      "description": "A mobile device constant.",
      "properties": {
        "type": {
          "description": "Output only. The type of mobile device.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Mobile phones.",
            "Tablets."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MOBILE",
            "TABLET"
          ],
          "type": "string"
        },
        "name": {
          "description": "Output only. The name of the mobile device.",
          "readOnly": true,
          "type": "string"
        },
        "id": {
          "description": "Output only. The ID of the mobile device constant.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "operatingSystemName": {
          "description": "Output only. The operating system of the mobile device.",
          "readOnly": true,
          "type": "string"
        },
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the mobile device constant. Mobile device constant resource names have the form: `mobileDeviceConstants/{criterion_id}`",
          "readOnly": true
        },
        "manufacturerName": {
          "description": "Output only. The manufacturer of the mobile device.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__MobileDeviceConstant",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__GenerateCreatorInsightsRequest": {
      "description": "Request message for ContentCreatorInsightsService.GenerateCreatorInsights.",
      "properties": {
        "customerInsightsGroup": {
          "type": "string",
          "description": "Required. The name of the customer being planned for. This is a user-defined value."
        },
        "insightsApplicationInfo": {
          "description": "Optional. Additional information on the application issuing the request.",
          "$ref": "GoogleAdsGoogleadsV24Common__AdditionalApplicationInfo"
        },
        "countryLocations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__LocationInfo"
          },
          "description": "Required. The countries to search that apply to the criteria.",
          "type": "array"
        },
        "subCountryLocations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__LocationInfo"
          },
          "description": "The sub-country geographic locations to search that apply to the criteria. Only supported for SearchAttributes criteria."
        },
        "searchBrand": {
          "description": "A brand used to search for top creators. Data fetched is based on the list of countries specified in country_locations.",
          "$ref": "GoogleAdsGoogleadsV24Services_GenerateCreatorInsightsRequest_SearchBrand"
        },
        "searchChannels": {
          "description": "YouTube Channel IDs for Creator Insights. Data fetched for channels is based on the list of countries specified in country_locations.",
          "$ref": "GoogleAdsGoogleadsV24Services_GenerateCreatorInsightsRequest_YouTubeChannels"
        },
        "searchAttributes": {
          "description": "The attributes used to identify top creators. Data fetched is based on the list of countries or sub-country locations specified in country_locations or sub_country_locations.",
          "$ref": "GoogleAdsGoogleadsV24Services_GenerateCreatorInsightsRequest_SearchAttributes"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__GenerateCreatorInsightsRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__AdCallToActionAsset": {
      "id": "GoogleAdsGoogleadsV24Common__AdCallToActionAsset",
      "type": "object",
      "description": "A call to action asset used inside an ad.",
      "properties": {
        "asset": {
          "description": "The Asset resource name of this call to action asset.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateBillingSetupRequest": {
      "description": "Request message for billing setup mutate operations.",
      "properties": {
        "operation": {
          "description": "Required. The operation to perform.",
          "$ref": "GoogleAdsGoogleadsV24Services__BillingSetupOperation"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateBillingSetupRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateCampaignBudgetResult": {
      "id": "GoogleAdsGoogleadsV24Services__MutateCampaignBudgetResult",
      "type": "object",
      "description": "The result for the campaign budget mutate.",
      "properties": {
        "campaignBudget": {
          "description": "The mutated campaign budget with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV24Resources__CampaignBudget"
        },
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_Recommendation_MoveUnusedBudgetRecommendation": {
      "description": "The move unused budget recommendation.",
      "properties": {
        "excessCampaignBudget": {
          "description": "Output only. The excess budget's resource_name.",
          "readOnly": true,
          "type": "string"
        },
        "budgetRecommendation": {
          "description": "Output only. The recommendation for the constrained budget to increase.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_CampaignBudgetRecommendation"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_Recommendation_MoveUnusedBudgetRecommendation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__AdAppDeepLinkAsset": {
      "id": "GoogleAdsGoogleadsV24Common__AdAppDeepLinkAsset",
      "type": "object",
      "description": "An app deep link used inside an ad.",
      "properties": {
        "asset": {
          "description": "The Asset resource name of this app deep link asset.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_ListingGroupFilterDimension_WebpageCondition": {
      "id": "GoogleAdsGoogleadsV24Resources_ListingGroupFilterDimension_WebpageCondition",
      "type": "object",
      "description": "Matching condition for URL filtering.",
      "properties": {
        "customLabel": {
          "type": "string",
          "description": "Filters the URLs in a page feed that have this custom label. A custom label can be added to a campaign by creating an AssetSet of type PAGE_FEED and linking it to the campaign using CampaignAssetSet."
        },
        "urlContains": {
          "type": "string",
          "description": "Filters the URLs in a page feed and the URLs from the advertiser web domain that contain this string."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__CampaignToForecast": {
      "description": "A campaign to do a keyword campaign forecast.",
      "properties": {
        "languageConstants": {
          "description": "The list of resource names of languages to be targeted. The resource name is of the format \"languageConstants/{criterion_id}\". See https://developers.google.com/google-ads/api/data/codes-formats#languages for the list of language criterion codes.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "biddingStrategy": {
          "description": "Required. The bidding strategy for the campaign.",
          "$ref": "GoogleAdsGoogleadsV24Services_CampaignToForecast_CampaignBiddingStrategy"
        },
        "adGroups": {
          "type": "array",
          "description": "The ad groups in the new campaign to forecast.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__ForecastAdGroup"
          }
        },
        "geoTargetConstants": {
          "description": "Locations to be targeted. Locations must be unique. The resource name is of the format \"geoTargetConstants/{criterion_id}\".",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__CampaignToForecast",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__ListingDimensionInfo": {
      "description": "Listing dimensions for listing group criterion.",
      "properties": {
        "productItemId": {
          "description": "Item id of a product offer.",
          "$ref": "GoogleAdsGoogleadsV24Common__ProductItemIdInfo"
        },
        "productType": {
          "description": "Type of a product offer.",
          "$ref": "GoogleAdsGoogleadsV24Common__ProductTypeInfo"
        },
        "productTypeFull": {
          "description": "Full type of a product offer. This listing dimension is deprecated and it is supported only in Display campaigns.",
          "$ref": "GoogleAdsGoogleadsV24Common__ProductTypeFullInfo"
        },
        "unknownListingDimension": {
          "description": "Unknown dimension. Set when no other listing dimension is set.",
          "$ref": "GoogleAdsGoogleadsV24Common__UnknownListingDimensionInfo"
        },
        "productCategory": {
          "description": "Category of a product offer.",
          "$ref": "GoogleAdsGoogleadsV24Common__ProductCategoryInfo"
        },
        "hotelCity": {
          "description": "City the hotel is located in.",
          "$ref": "GoogleAdsGoogleadsV24Common__HotelCityInfo"
        },
        "hotelClass": {
          "description": "Class of the hotel as a number of stars 1 to 5.",
          "$ref": "GoogleAdsGoogleadsV24Common__HotelClassInfo"
        },
        "productCondition": {
          "description": "Condition of a product offer.",
          "$ref": "GoogleAdsGoogleadsV24Common__ProductConditionInfo"
        },
        "hotelCountryRegion": {
          "description": "Country or Region the hotel is located in.",
          "$ref": "GoogleAdsGoogleadsV24Common__HotelCountryRegionInfo"
        },
        "activityRating": {
          "description": "Rating of the activity as a number 1 to 5, where 5 is the best.",
          "$ref": "GoogleAdsGoogleadsV24Common__ActivityRatingInfo"
        },
        "hotelState": {
          "description": "State the hotel is located in.",
          "$ref": "GoogleAdsGoogleadsV24Common__HotelStateInfo"
        },
        "productCustomAttribute": {
          "description": "Custom attribute of a product offer.",
          "$ref": "GoogleAdsGoogleadsV24Common__ProductCustomAttributeInfo"
        },
        "productLabels": {
          "description": "Labels of a product offer. This listing dimension is deprecated and it is supported only in Display campaigns.",
          "$ref": "GoogleAdsGoogleadsV24Common__ProductLabelsInfo"
        },
        "activityState": {
          "description": "The state where the travel activity is available.",
          "$ref": "GoogleAdsGoogleadsV24Common__ActivityStateInfo"
        },
        "activityId": {
          "description": "Advertiser-specific activity ID.",
          "$ref": "GoogleAdsGoogleadsV24Common__ActivityIdInfo"
        },
        "productBrand": {
          "description": "Brand of a product offer.",
          "$ref": "GoogleAdsGoogleadsV24Common__ProductBrandInfo"
        },
        "productChannel": {
          "description": "Locality of a product offer.",
          "$ref": "GoogleAdsGoogleadsV24Common__ProductChannelInfo"
        },
        "productGrouping": {
          "description": "Grouping of a product offer. This listing dimension is deprecated and it is supported only in Display campaigns.",
          "$ref": "GoogleAdsGoogleadsV24Common__ProductGroupingInfo"
        },
        "hotelId": {
          "description": "Advertiser-specific hotel ID.",
          "$ref": "GoogleAdsGoogleadsV24Common__HotelIdInfo"
        },
        "activityCountry": {
          "description": "The country where the travel activity is available.",
          "$ref": "GoogleAdsGoogleadsV24Common__ActivityCountryInfo"
        },
        "productChannelExclusivity": {
          "description": "Availability of a product offer.",
          "$ref": "GoogleAdsGoogleadsV24Common__ProductChannelExclusivityInfo"
        },
        "productLegacyCondition": {
          "description": "Legacy condition of a product offer. This listing dimension is deprecated and it is supported only in Display campaigns.",
          "$ref": "GoogleAdsGoogleadsV24Common__ProductLegacyConditionInfo"
        },
        "activityCity": {
          "description": "The city where the travel activity is available.",
          "$ref": "GoogleAdsGoogleadsV24Common__ActivityCityInfo"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__ListingDimensionInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_Recommendation_ResponsiveSearchAdAssetRecommendation": {
      "id": "GoogleAdsGoogleadsV24Resources_Recommendation_ResponsiveSearchAdAssetRecommendation",
      "type": "object",
      "description": "The add responsive search ad asset recommendation.",
      "properties": {
        "currentAd": {
          "description": "Output only. The current ad to be updated.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources__Ad"
        },
        "recommendedAssets": {
          "description": "Output only. The recommended assets. This is populated only with the new headlines and/or descriptions, and is otherwise empty.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources__Ad"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__ConfigureCustomerLifecycleGoalsResponse": {
      "description": "Response message for CustomerLifecycleGoalService.ConfigureCustomerLifecycleGoals.",
      "properties": {
        "result": {
          "description": "result for the customer lifecycle goal configuration.",
          "$ref": "GoogleAdsGoogleadsV24Services__ConfigureCustomerLifecycleGoalsResult"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__ConfigureCustomerLifecycleGoalsResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__RemoveCampaignAutomaticallyCreatedAssetRequest": {
      "description": "Request message for AutomaticallyCreatedAssetRemovalService.RemoveCampaignAutomaticallyCreatedAsset.",
      "properties": {
        "partialFailure": {
          "type": "boolean",
          "description": "Required. If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid."
        },
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__RemoveCampaignAutomaticallyCreatedAssetOperation"
          },
          "description": "Required. The list of operations."
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__RemoveCampaignAutomaticallyCreatedAssetRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__GenderDimension": {
      "description": "Dimension specifying users by their gender.",
      "properties": {
        "genders": {
          "description": "Included gender demographic segments.",
          "items": {
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "MALE",
              "FEMALE",
              "UNDETERMINED"
            ],
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "Male.",
              "Female.",
              "Undetermined gender."
            ],
            "type": "string"
          },
          "type": "array"
        },
        "includeUndetermined": {
          "description": "Include users whose gender is not determined.",
          "type": "boolean"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__GenderDimension",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__GeoPointInfo": {
      "id": "GoogleAdsGoogleadsV24Common__GeoPointInfo",
      "type": "object",
      "description": "Geo point for proximity criterion.",
      "properties": {
        "longitudeInMicroDegrees": {
          "description": "Micro degrees for the longitude.",
          "format": "int32",
          "type": "integer"
        },
        "latitudeInMicroDegrees": {
          "description": "Micro degrees for the latitude.",
          "format": "int32",
          "type": "integer"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__AdScheduleView": {
      "id": "GoogleAdsGoogleadsV24Resources__AdScheduleView",
      "type": "object",
      "description": "An ad schedule view summarizes the performance of campaigns by AdSchedule criteria.",
      "properties": {
        "resourceName": {
          "description": "Output only. The resource name of the ad schedule view. AdSchedule view resource names have the form: `customers/{customer_id}/adScheduleViews/{campaign_id}~{criterion_id}`",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__AdVideoAssetInfo": {
      "description": "Contains info fields for AdVideoAssets.",
      "properties": {
        "adVideoAssetInventoryPreferences": {
          "description": "List of inventory preferences for this AdVideoAsset. This field can only be set for DiscoveryVideoResponsiveAd. The video assets with an inventory asset preference set will be preferred over other videos from the same ad during serving time. For example, consider this ad being served for a specific inventory. The server will first try to match an eligible video with a matching preference for that inventory. Videos with no preferences are chosen only when a video with matching preference and eligible for a given ad slot can be found.",
          "$ref": "GoogleAdsGoogleadsV24Common__AdVideoAssetInventoryPreferences"
        },
        "adVideoAssetFeatureControl": {
          "description": "Defines feature controls for this AdVideoAsset during serving time. For example, whether YouTube comments should be enabled for Partnership Ads served on YouTube Shorts.",
          "$ref": "GoogleAdsGoogleadsV24Common__AdVideoAssetLinkFeatureControl"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__AdVideoAssetInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__KeywordPlanAdGroupOperation": {
      "id": "GoogleAdsGoogleadsV24Services__KeywordPlanAdGroupOperation",
      "type": "object",
      "description": "A single operation (create, update, remove) on a Keyword Plan ad group.",
      "properties": {
        "updateMask": {
          "description": "The FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask",
          "type": "string"
        },
        "update": {
          "description": "Update operation: The Keyword Plan ad group is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV24Resources__KeywordPlanAdGroup"
        },
        "remove": {
          "description": "Remove operation: A resource name for the removed Keyword Plan ad group is expected, in this format: `customers/{customer_id}/keywordPlanAdGroups/{kp_ad_group_id}`",
          "type": "string"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new Keyword Plan ad group.",
          "$ref": "GoogleAdsGoogleadsV24Resources__KeywordPlanAdGroup"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__UpdateProductLinkInvitationResponse": {
      "description": "Response message for product link invitation update.",
      "properties": {
        "resourceName": {
          "description": "Result of the update.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__UpdateProductLinkInvitationResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateCustomerConversionGoalResult": {
      "id": "GoogleAdsGoogleadsV24Services__MutateCustomerConversionGoalResult",
      "type": "object",
      "description": "The result for the customer conversion goal mutate.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__UploadConversionAdjustmentsResponse": {
      "id": "GoogleAdsGoogleadsV24Services__UploadConversionAdjustmentsResponse",
      "type": "object",
      "description": "Response message for ConversionAdjustmentUploadService.UploadConversionAdjustments.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to conversion adjustment failures in the partial failure mode. Returned when all errors occur inside the adjustments. If any errors occur outside the adjustments (for example, auth errors), we return an RPC level error. See https://developers.google.com/google-ads/api/docs/best-practices/partial-failures for more information about partial failure.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "description": "Returned for successfully processed conversion adjustments. Proto will be empty for rows that received an error. Results are not returned when validate_only is true.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__ConversionAdjustmentResult"
          },
          "type": "array"
        },
        "jobId": {
          "description": "Job ID for the upload batch.",
          "format": "int64",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateBiddingStrategyResult": {
      "description": "The result for the bidding strategy mutate.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        },
        "biddingStrategy": {
          "description": "The mutated bidding strategy with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV24Resources__BiddingStrategy"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateBiddingStrategyResult",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__ListingGroupFilterDimensionPath": {
      "id": "GoogleAdsGoogleadsV24Resources__ListingGroupFilterDimensionPath",
      "type": "object",
      "description": "The path defining of dimensions defining a listing group filter.",
      "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,
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Resources__ListingGroupFilterDimension"
          },
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__CustomerClient": {
      "id": "GoogleAdsGoogleadsV24Resources__CustomerClient",
      "type": "object",
      "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.",
      "properties": {
        "descriptiveName": {
          "description": "Output only. Descriptive name for the client. Read only.",
          "readOnly": true,
          "type": "string"
        },
        "manager": {
          "description": "Output only. Identifies if the client is a manager. Read only.",
          "readOnly": true,
          "type": "boolean"
        },
        "hidden": {
          "description": "Output only. Specifies whether this is a [hidden account](https://support.google.com/google-ads/answer/7519830). Read only.",
          "readOnly": true,
          "type": "boolean"
        },
        "clientCustomer": {
          "type": "string",
          "description": "Output only. The resource name of the client-customer which is linked to the given customer. Read only.",
          "readOnly": true
        },
        "level": {
          "description": "Output only. Distance between given customer and client. For self link, the level value will be 0. Read only.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "testAccount": {
          "description": "Output only. Identifies if the client is a test account. Read only.",
          "readOnly": true,
          "type": "boolean"
        },
        "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"
        },
        "status": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "CANCELED",
            "SUSPENDED",
            "CLOSED"
          ],
          "description": "Output only. The status of the client customer. Read only.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Indicates an active account able to serve ads.",
            "Indicates a canceled account unable to serve ads. Can be reactivated by an admin user.",
            "Indicates a suspended account unable to serve ads. May only be activated by Google support.",
            "Indicates a closed account unable to serve ads. Test account will also have CLOSED status. Status is permanent and may not be reopened."
          ],
          "type": "string"
        },
        "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"
        },
        "currencyCode": {
          "description": "Output only. Currency code (for example, 'USD', 'EUR') for the client. Read only.",
          "readOnly": true,
          "type": "string"
        },
        "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,
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "id": {
          "type": "string",
          "description": "Output only. The ID of the client customer. Read only.",
          "readOnly": true,
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__LocationInfo": {
      "id": "GoogleAdsGoogleadsV24Common__LocationInfo",
      "type": "object",
      "description": "A location criterion.",
      "properties": {
        "geoTargetConstant": {
          "type": "string",
          "description": "The geo target constant resource name."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateAssetGroupListingGroupFiltersRequest": {
      "description": "Request message for AssetGroupListingGroupFilterService.MutateAssetGroupListingGroupFilters. partial_failure is not supported because the tree needs to be validated together.",
      "properties": {
        "operations": {
          "description": "Required. The list of operations to perform on individual asset group listing group filters.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__AssetGroupListingGroupFilterOperation"
          },
          "type": "array"
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "responseContentType": {
          "type": "string",
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ]
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateAssetGroupListingGroupFiltersRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__LocalAdInfo": {
      "id": "GoogleAdsGoogleadsV24Common__LocalAdInfo",
      "type": "object",
      "description": "A local ad.",
      "properties": {
        "descriptions": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdTextAsset"
          },
          "description": "List of text assets for descriptions. When the ad serves the descriptions will be selected from this list. At least 1 and at most 5 descriptions must be specified."
        },
        "callToActions": {
          "description": "List of text assets for call-to-actions. When the ad serves the call-to-actions will be selected from this list. At least 1 and at most 5 call-to-actions must be specified.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdTextAsset"
          },
          "type": "array"
        },
        "logoImages": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdImageAsset"
          },
          "description": "List of logo image assets that may be displayed with the ad. The images must be 128x128 pixels and not larger than 120KB. At least 1 and at most 5 image assets must be specified.",
          "type": "array"
        },
        "marketingImages": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdImageAsset"
          },
          "description": "List of marketing image assets that may be displayed with the ad. The images must be 314x600 pixels or 320x320 pixels. At least 1 and at most 20 image assets must be specified.",
          "type": "array"
        },
        "path2": {
          "type": "string",
          "description": "Second part of optional text that can be appended to the URL in the ad. This field can only be set when `path1` is also set."
        },
        "videos": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdVideoAsset"
          },
          "description": "List of YouTube video assets that may be displayed with the ad. At least 1 and at most 20 video assets must be specified."
        },
        "headlines": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdTextAsset"
          },
          "description": "List of text assets for headlines. When the ad serves the headlines will be selected from this list. At least 1 and at most 5 headlines must be specified.",
          "type": "array"
        },
        "path1": {
          "description": "First part of optional text that can be appended to the URL in the ad.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__AndroidPrivacySharedKeyGoogleAdGroup": {
      "id": "GoogleAdsGoogleadsV24Resources__AndroidPrivacySharedKeyGoogleAdGroup",
      "type": "object",
      "description": "An Android privacy shared key view for Google ad group key.",
      "properties": {
        "androidPrivacyInteractionType": {
          "type": "string",
          "description": "Output only. The interaction type enum used in the share key encoding.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "The physical click interaction type.",
            "The 10 seconds engaged view interaction type.",
            "The view (ad impression) interaction type."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CLICK",
            "ENGAGED_VIEW",
            "VIEW"
          ]
        },
        "campaignId": {
          "description": "Output only. The campaign ID used in the share key encoding.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "androidPrivacyInteractionDate": {
          "description": "Output only. The interaction date used in the shared key encoding in the format of \"YYYY-MM-DD\" in UTC timezone.",
          "readOnly": true,
          "type": "string"
        },
        "androidPrivacyNetworkType": {
          "type": "string",
          "description": "Output only. The network type enum used in the share key encoding.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Search Network.",
            "Display Network.",
            "YouTube Network."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SEARCH",
            "DISPLAY",
            "YOUTUBE"
          ]
        },
        "sharedAdGroupKey": {
          "description": "Output only. 128 bit hex string of the encoded shared ad group key, including a '0x' prefix. This key can be used to do a bitwise OR operator with the aggregate conversion key to create a full aggregation key to retrieve the Aggregate API Report in Android Privacy Sandbox.",
          "readOnly": true,
          "type": "string"
        },
        "resourceName": {
          "description": "Output only. The resource name of the Android privacy shared key. Android privacy shared key resource names have the form: `customers/{customer_id}/androidPrivacySharedKeyGoogleAdGroups/{campaign_id}~{ad_group_id}~{android_privacy_interaction_type}~{android_privacy_network_type}~{android_privacy_interaction_date(yyyy-mm-dd)}`",
          "readOnly": true,
          "type": "string"
        },
        "adGroupId": {
          "description": "Output only. The ad group ID used in the share key encoding.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__DismissRecommendationResponse": {
      "id": "GoogleAdsGoogleadsV24Services__DismissRecommendationResponse",
      "type": "object",
      "description": "Response message for RecommendationService.DismissRecommendation.",
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services_DismissRecommendationResponse_DismissRecommendationResult"
          },
          "description": "Results of operations to dismiss recommendations."
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors) we return the RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateBatchJobResponse": {
      "id": "GoogleAdsGoogleadsV24Services__MutateBatchJobResponse",
      "type": "object",
      "description": "Response message for BatchJobService.MutateBatchJob.",
      "properties": {
        "result": {
          "description": "The result for the mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateBatchJobResult"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__RemarketingAction": {
      "id": "GoogleAdsGoogleadsV24Resources__RemarketingAction",
      "type": "object",
      "description": "A remarketing action. A snippet of JavaScript code that will collect the product id and the type of page people visited (product page, shopping cart page, purchase page, general site visit) on an advertiser's website.",
      "properties": {
        "id": {
          "description": "Output only. Id of the remarketing action.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "tagSnippets": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__TagSnippet"
          },
          "description": "Output only. The snippets used for tracking remarketing actions.",
          "readOnly": true,
          "type": "array"
        },
        "name": {
          "description": "The name of the remarketing action. This field is required and should not be empty when creating new remarketing actions.",
          "type": "string"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the remarketing action. Remarketing action resource names have the form: `customers/{customer_id}/remarketingActions/{remarketing_action_id}`"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__KeywordPlanAdGroup": {
      "description": "A Keyword Planner ad group. Max number of keyword plan ad groups per plan: 200.",
      "properties": {
        "id": {
          "type": "string",
          "description": "Output only. The ID of the keyword plan ad group.",
          "readOnly": true,
          "format": "int64"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the Keyword Planner ad group. KeywordPlanAdGroup resource names have the form: `customers/{customer_id}/keywordPlanAdGroups/{kp_ad_group_id}`"
        },
        "cpcBidMicros": {
          "type": "string",
          "description": "A default ad group max cpc bid in micros in account currency for all biddable keywords under the keyword plan ad group. If not set, will inherit from parent campaign.",
          "format": "int64"
        },
        "keywordPlanCampaign": {
          "type": "string",
          "description": "The keyword plan campaign to which this ad group belongs."
        },
        "name": {
          "type": "string",
          "description": "The name of the keyword plan ad group. This field is required and should not be empty when creating keyword plan ad group."
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__KeywordPlanAdGroup",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__SmartCampaignSearchTermView": {
      "description": "A Smart campaign search term view.",
      "properties": {
        "searchTerm": {
          "type": "string",
          "description": "Output only. The search term.",
          "readOnly": true
        },
        "campaign": {
          "description": "Output only. The Smart campaign the search term served in.",
          "readOnly": true,
          "type": "string"
        },
        "resourceName": {
          "description": "Output only. The resource name of the Smart campaign search term view. Smart campaign search term view resource names have the form: `customers/{customer_id}/smartCampaignSearchTermViews/{campaign_id}~{URL-base64_search_term}`",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__SmartCampaignSearchTermView",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__TagSnippet": {
      "id": "GoogleAdsGoogleadsV24Common__TagSnippet",
      "type": "object",
      "description": "The site tag and event snippet pair for a TrackingCodeType.",
      "properties": {
        "globalSiteTag": {
          "type": "string",
          "description": "The site tag that adds visitors to your basic remarketing lists and sets new cookies on your domain."
        },
        "eventSnippet": {
          "description": "The event snippet that works with the site tag to track actions that should be counted as conversions.",
          "type": "string"
        },
        "pageFormat": {
          "description": "The format of the web page where the tracking tag and snippet will be installed, for example, HTML.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Standard HTML page format.",
            "Google AMP page format."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HTML",
            "AMP"
          ],
          "type": "string"
        },
        "type": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "WEBPAGE",
            "WEBPAGE_ONCLICK",
            "CLICK_TO_CALL",
            "WEBSITE_CALL"
          ],
          "description": "The type of the generated tag snippets for tracking conversions.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The snippet that is fired as a result of a website page loading.",
            "The snippet contains a JavaScript function which fires the tag. This function is typically called from an onClick handler added to a link or button element on the page.",
            "For embedding on a mobile webpage. The snippet contains a JavaScript function which fires the tag.",
            "The snippet that is used to replace the phone number on your website with a Google forwarding number for call tracking purposes."
          ],
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateCustomAudiencesResponse": {
      "id": "GoogleAdsGoogleadsV24Services__MutateCustomAudiencesResponse",
      "type": "object",
      "description": "Response message for custom audience mutate.",
      "properties": {
        "results": {
          "type": "array",
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomAudienceResult"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateAdGroupResult": {
      "description": "The result for the ad group mutate.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        },
        "adGroup": {
          "description": "The mutated ad group with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV24Resources__AdGroup"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateAdGroupResult",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateAssetSetsResponse": {
      "description": "Response message for an asset set mutate.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "type": "array",
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateAssetSetResult"
          }
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateAssetSetsResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateCustomerClientLinkResponse": {
      "description": "Response message for a CustomerClientLink mutate.",
      "properties": {
        "result": {
          "description": "A result that identifies the resource affected by the mutate request.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomerClientLinkResult"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateCustomerClientLinkResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_Campaign_LocalServicesCampaignSettings": {
      "id": "GoogleAdsGoogleadsV24Resources_Campaign_LocalServicesCampaignSettings",
      "type": "object",
      "description": "Settings for LocalServicesCampaign subresource.",
      "properties": {
        "categoryBids": {
          "description": "Categorical level bids associated with MANUAL_CPA bidding strategy.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Resources_Campaign_CategoryBid"
          },
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__ConversionValueRuleSetOperation": {
      "id": "GoogleAdsGoogleadsV24Services__ConversionValueRuleSetOperation",
      "type": "object",
      "description": "A single operation (create, update, remove) on a conversion value rule set.",
      "properties": {
        "update": {
          "description": "Update operation: The conversion value rule set is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV24Resources__ConversionValueRuleSet"
        },
        "remove": {
          "description": "Remove operation: A resource name for the removed conversion value rule set is expected, in this format: `customers/{customer_id}/conversionValueRuleSets/{conversion_value_rule_set_id}`",
          "type": "string"
        },
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask",
          "type": "string"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new conversion value rule set.",
          "$ref": "GoogleAdsGoogleadsV24Resources__ConversionValueRuleSet"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_AdGroup_DemandGenAdGroupSettings": {
      "id": "GoogleAdsGoogleadsV24Resources_AdGroup_DemandGenAdGroupSettings",
      "type": "object",
      "description": "Settings for Demand Gen ad groups.",
      "properties": {
        "channelControls": {
          "description": "Channel controls for Demand Gen ad groups.",
          "$ref": "GoogleAdsGoogleadsV24Resources_AdGroupDemandGenAdGroupSettings_DemandGenChannelControls"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__SessionAttributesKeyValuePairs": {
      "description": "Contains session attributes of the conversion, represented as key-value pairs.",
      "properties": {
        "keyValuePairs": {
          "description": "Required. The session attributes for the conversion.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__SessionAttributeKeyValuePair"
          },
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__SessionAttributesKeyValuePairs",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__CampaignGroupOperation": {
      "id": "GoogleAdsGoogleadsV24Services__CampaignGroupOperation",
      "type": "object",
      "description": "A single operation (create, update, remove) on a campaign group.",
      "properties": {
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask",
          "type": "string"
        },
        "update": {
          "description": "Update operation: The campaign group is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CampaignGroup"
        },
        "remove": {
          "description": "Remove operation: A resource name for the removed campaign group is expected, in this format: `customers/{customer_id}/campaignGroups/{campaign_group_id}`",
          "type": "string"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new campaign group.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CampaignGroup"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateCampaignGroupResult": {
      "id": "GoogleAdsGoogleadsV24Services__MutateCampaignGroupResult",
      "type": "object",
      "description": "The result for the campaign group mutate.",
      "properties": {
        "resourceName": {
          "description": "Required. Returned for successful operations.",
          "type": "string"
        },
        "campaignGroup": {
          "description": "The mutated campaign group with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV24Resources__CampaignGroup"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__AdvertisingPartnerIdentifier": {
      "id": "GoogleAdsGoogleadsV24Resources__AdvertisingPartnerIdentifier",
      "type": "object",
      "description": "The identifier for the Advertising Partner Google Ads account.",
      "properties": {
        "customer": {
          "type": "string",
          "description": "Output only. The resource name of the advertising partner Google Ads account. This field is required and should not be empty when creating a new Advertising Partner link. It is unable to be modified after the creation of the link.",
          "readOnly": true
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__CampaignSearchTermInsight": {
      "id": "GoogleAdsGoogleadsV24Resources__CampaignSearchTermInsight",
      "type": "object",
      "description": "This report provides a high-level view of search demand at the campaign level by grouping similar search terms into categories and showing their search volume. Historical data is available starting March 2023.",
      "properties": {
        "id": {
          "description": "Output only. The ID of the insight.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "campaignId": {
          "type": "string",
          "description": "Output only. The ID of the campaign.",
          "readOnly": true,
          "format": "int64"
        },
        "resourceName": {
          "description": "Output only. The resource name of the campaign level search term insight. Campaign level search term insight resource names have the form: `customers/{customer_id}/campaignSearchTermInsights/{campaign_id}~{category_id}`",
          "readOnly": true,
          "type": "string"
        },
        "categoryLabel": {
          "description": "Output only. The label for the search category. An empty string denotes the catch-all category for search terms that didn't fit into another category.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateCustomerManagerLinkRequest": {
      "description": "Request message for CustomerManagerLinkService.MutateCustomerManagerLink.",
      "properties": {
        "operations": {
          "type": "array",
          "description": "Required. The list of operations to perform on individual customer manager links.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__CustomerManagerLinkOperation"
          }
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateCustomerManagerLinkRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateUserListCustomerTypesResponse": {
      "description": "Response message for a user list customer type mutate.",
      "properties": {
        "results": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateUserListCustomerTypeResult"
          },
          "description": "All results for the mutate.",
          "type": "array"
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateUserListCustomerTypesResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__HotelPerformanceView": {
      "id": "GoogleAdsGoogleadsV24Resources__HotelPerformanceView",
      "type": "object",
      "description": "A hotel performance view.",
      "properties": {
        "resourceName": {
          "description": "Output only. The resource name of the hotel performance view. Hotel performance view resource names have the form: `customers/{customer_id}/hotelPerformanceView`",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__GenerateSuggestedTargetingInsightsRequest": {
      "id": "GoogleAdsGoogleadsV24Services__GenerateSuggestedTargetingInsightsRequest",
      "type": "object",
      "description": "Request message for AudienceInsightsService.GenerateSuggestedTargetingInsights.",
      "properties": {
        "insightsApplicationInfo": {
          "description": "Optional. Additional information on the application issuing the request.",
          "$ref": "GoogleAdsGoogleadsV24Common__AdditionalApplicationInfo"
        },
        "audienceDefinition": {
          "description": "Provide a seed audience to get suggestions for.",
          "$ref": "GoogleAdsGoogleadsV24Services__InsightsAudienceDefinition"
        },
        "customerInsightsGroup": {
          "type": "string",
          "description": "Optional. The name of the customer being planned for. This is a user-defined value."
        },
        "audienceDescription": {
          "description": "Provide a text description of an audience to get AI-generated targeting suggestions. This can take around 5 or more seconds to complete. Supported marketing objectives are: AWARENESS and CONSIDERATION. Supported dimensions are: AGE_RANGE, GENDER, PARENTAL_STATUS, AFFINITY_USER_INTEREST, IN_MARKET_USER_INTEREST and LIFE_EVENT_USER_INTEREST.",
          "$ref": "GoogleAdsGoogleadsV24Services__InsightsAudienceDescription"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_AccessibleBiddingStrategy_TargetImpressionShare": {
      "id": "GoogleAdsGoogleadsV24Resources_AccessibleBiddingStrategy_TargetImpressionShare",
      "type": "object",
      "description": "An automated bidding strategy that sets bids so that a certain percentage of search ads are shown at the top of the first page (or other targeted location).",
      "properties": {
        "cpcBidCeilingMicros": {
          "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,
          "format": "int64",
          "type": "string"
        },
        "location": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ANYWHERE_ON_PAGE",
            "TOP_OF_PAGE",
            "ABSOLUTE_TOP_OF_PAGE"
          ],
          "description": "Output only. The targeted location on the search results page.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Any location on the web page.",
            "Top box of ads.",
            "Top slot in the top box of ads."
          ]
        },
        "locationFractionMicros": {
          "description": "The chosen fraction of ads to be shown in the targeted location in micros. For example, 1% equals 10,000.",
          "format": "int64",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_SitelinkAssetParameters": {
      "id": "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_SitelinkAssetParameters",
      "type": "object",
      "description": "Parameters to use when applying sitelink asset recommendations.",
      "properties": {
        "adAssetApplyParameters": {
          "description": "Required. Sitelink assets to be added. This is a required field.",
          "$ref": "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_AdAssetApplyParameters"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__GroupContentSuitabilityPlacementView": {
      "id": "GoogleAdsGoogleadsV24Resources__GroupContentSuitabilityPlacementView",
      "type": "object",
      "description": "A group content suitability placement view.",
      "properties": {
        "placementType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "WEBSITE",
            "MOBILE_APP_CATEGORY",
            "MOBILE_APPLICATION",
            "YOUTUBE_VIDEO",
            "YOUTUBE_CHANNEL",
            "GOOGLE_PRODUCTS"
          ],
          "description": "Output only. Represents the type of the placement, for example, Website, YouTubeVideo and MobileApplication.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Websites(for example, 'www.flowers4sale.com').",
            "Mobile application categories(for example, 'Games').",
            "mobile applications(for example, 'mobileapp::2-com.whatsthewordanswers').",
            "YouTube videos(for example, 'youtube.com/video/wtLJPvx7-ys').",
            "YouTube channels(for example, 'youtube.com::L8ZULXASCc1I_oaOT0NaOQ').",
            "Surfaces owned and operated by Google(for example, 'tv.google.com')."
          ]
        },
        "displayName": {
          "description": "Output only. The display name is URL for websites, YouTube video name for YouTube videos, and translated mobile app name for mobile apps.",
          "readOnly": true,
          "type": "string"
        },
        "resourceName": {
          "description": "Output only. The resource name of the group content suitability placement view. Group content suitability placement view resource names have the form: `customers/{customer_id}/groupContentSuitabilityPlacementViews/{placement_fingerprint}`",
          "readOnly": true,
          "type": "string"
        },
        "placement": {
          "description": "Output only. The automatic placement string at group level, for example. website url, mobile application id, or a YouTube video id.",
          "readOnly": true,
          "type": "string"
        },
        "targetUrl": {
          "description": "Output only. URL of the placement, for example, website, link to the mobile application in app store, or a YouTube video URL.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__UrlCollection": {
      "description": "Collection of urls that is tagged with a unique identifier.",
      "properties": {
        "finalMobileUrls": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of possible final mobile URLs."
        },
        "trackingUrlTemplate": {
          "description": "URL template for constructing a tracking URL.",
          "type": "string"
        },
        "urlCollectionId": {
          "type": "string",
          "description": "Unique identifier for this UrlCollection instance."
        },
        "finalUrls": {
          "description": "A list of possible final URLs.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__UrlCollection",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__YoutubeVideoAsset": {
      "id": "GoogleAdsGoogleadsV24Common__YoutubeVideoAsset",
      "type": "object",
      "description": "A YouTube asset.",
      "properties": {
        "youtubeVideoTitle": {
          "description": "YouTube video title.",
          "type": "string"
        },
        "youtubeVideoId": {
          "type": "string",
          "description": "YouTube video id. This is the 11 character string value used in the YouTube video URL."
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__TargetSpend": {
      "id": "GoogleAdsGoogleadsV24Common__TargetSpend",
      "type": "object",
      "description": "An automated bid strategy that sets your bids to help get as many clicks as possible within your budget.",
      "properties": {
        "targetSpendMicros": {
          "deprecated": true,
          "type": "string",
          "description": "Deprecated: The spend target under which to maximize clicks. A TargetSpend bidder will attempt to spend the smaller of this value or the natural throttling spend amount. If not specified, the budget is used as the spend target. This field is deprecated and should no longer be used. See https://ads-developers.googleblog.com/2020/05/reminder-about-sunset-creation-of.html for details.",
          "format": "int64"
        },
        "cpcBidCeilingMicros": {
          "description": "Maximum bid limit that can be set by the bid strategy. The limit applies to all keywords managed by the strategy.",
          "format": "int64",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_ResponsiveSearchAdImproveAdStrengthParameters": {
      "description": "Parameters to use when applying a responsive search ad improve ad strength recommendation.",
      "properties": {
        "updatedAd": {
          "description": "Updated ad. The current ad's content will be replaced.",
          "$ref": "GoogleAdsGoogleadsV24Resources__Ad"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_ResponsiveSearchAdImproveAdStrengthParameters",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__ThirdPartyAppAnalyticsLinkIdentifier": {
      "description": "The identifiers of a Third Party App Analytics Link.",
      "properties": {
        "appId": {
          "type": "string",
          "description": "Immutable. A string that uniquely identifies a mobile application from which the data was collected to the Google Ads API. For iOS, the ID string is the 9 digit string that appears at the end of an App Store URL (for example, \"422689480\" for \"Gmail\" whose App Store link is https://apps.apple.com/us/app/gmail-email-by-google/id422689480). For Android, the ID string is the application's package name (for example, \"com.google.android.gm\" for \"Gmail\" given Google Play link https://play.google.com/store/apps/details?id=com.google.android.gm) This field should not be empty when creating a new third party app analytics link. It is unable to be modified after the creation of the link."
        },
        "appAnalyticsProviderId": {
          "type": "string",
          "description": "Immutable. The ID of the app analytics provider. This field should not be empty when creating a new third party app analytics link. It is unable to be modified after the creation of the link.",
          "format": "int64"
        },
        "appVendor": {
          "description": "Immutable. The vendor of the app. This field should not be empty when creating a new third party app analytics link. It is unable to be modified after the creation of the link.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Mobile app vendor for Apple app store.",
            "Mobile app vendor for Google app store."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "APPLE_APP_STORE",
            "GOOGLE_APP_STORE"
          ],
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__ThirdPartyAppAnalyticsLinkIdentifier",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateAdParametersRequest": {
      "description": "Request message for AdParameterService.MutateAdParameters",
      "properties": {
        "operations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__AdParameterOperation"
          },
          "description": "Required. The list of operations to perform on individual ad parameters.",
          "type": "array"
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "responseContentType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ]
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateAdParametersRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateAdGroupLabelResult": {
      "id": "GoogleAdsGoogleadsV24Services__MutateAdGroupLabelResult",
      "type": "object",
      "description": "The result for an ad group label mutate.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateCustomerCustomizerResult": {
      "id": "GoogleAdsGoogleadsV24Services__MutateCustomerCustomizerResult",
      "type": "object",
      "description": "The result for the customizer attribute mutate.",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        },
        "customerCustomizer": {
          "description": "The mutated CustomerCustomizer with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV24Resources__CustomerCustomizer"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__LanguageDistribution": {
      "description": "Languages that pertain to a YouTube channel based on the channel content. Only languages above a certain proportion threshold are included.",
      "properties": {
        "languageCode": {
          "type": "string",
          "description": "[Language code](https://developers.google.com/google-ads/api/reference/data/codes-formats#languages) of the language for the YouTube channel."
        },
        "proportion": {
          "type": "number",
          "description": "The proportion (between 0 and 1) of the channel's videos in the language.",
          "format": "double"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__LanguageDistribution",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__AdGroupCriterionSimulation": {
      "description": "An ad group criterion simulation. Supported combinations of advertising channel type, criterion type, simulation type, and simulation modification method are detailed below respectively. Hotel AdGroupCriterion simulation operations starting in V5. 1. DISPLAY - KEYWORD - CPC_BID - UNIFORM 2. SEARCH - KEYWORD - CPC_BID - UNIFORM 3. SHOPPING - LISTING_GROUP - CPC_BID - UNIFORM 4. HOTEL - LISTING_GROUP - CPC_BID - UNIFORM 5. HOTEL - LISTING_GROUP - PERCENT_CPC_BID - UNIFORM",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the ad group criterion simulation. Ad group criterion simulation resource names have the form: `customers/{customer_id}/adGroupCriterionSimulations/{ad_group_id}~{criterion_id}~{type}~{modification_method}~{start_date}~{end_date}`",
          "readOnly": true
        },
        "modificationMethod": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "UNIFORM",
            "DEFAULT",
            "SCALING"
          ],
          "description": "Output only. How the simulation modifies the field.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The values in a simulation were applied to all children of a given resource uniformly. Overrides on child resources were not respected.",
            "The values in a simulation were applied to the given resource. Overrides on child resources were respected, and traffic estimates do not include these resources.",
            "The values in a simulation were all scaled by the same factor. For example, in a simulated TargetCpa campaign, the campaign target and all ad group targets were scaled by a factor of X."
          ]
        },
        "cpcBidPointList": {
          "description": "Output only. Simulation points if the simulation type is CPC_BID.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Common__CpcBidSimulationPointList"
        },
        "endDate": {
          "type": "string",
          "description": "Output only. Last day on which the simulation is based, in YYYY-MM-DD format.",
          "readOnly": true
        },
        "criterionId": {
          "type": "string",
          "description": "Output only. Criterion ID of the simulation.",
          "readOnly": true,
          "format": "int64"
        },
        "percentCpcBidPointList": {
          "description": "Output only. Simulation points if the simulation type is PERCENT_CPC_BID.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Common__PercentCpcBidSimulationPointList"
        },
        "adGroupId": {
          "description": "Output only. AdGroup ID of the simulation.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "startDate": {
          "type": "string",
          "description": "Output only. First day on which the simulation is based, in YYYY-MM-DD format.",
          "readOnly": true
        },
        "type": {
          "description": "Output only. The field that the simulation modifies.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The simulation is for a CPC bid.",
            "The simulation is for a CPV bid.",
            "The simulation is for a CPA target.",
            "The simulation is for a bid modifier.",
            "The simulation is for a ROAS target.",
            "The simulation is for a percent CPC bid.",
            "The simulation is for an impression share target.",
            "The simulation is for a budget."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CPC_BID",
            "CPV_BID",
            "TARGET_CPA",
            "BID_MODIFIER",
            "TARGET_ROAS",
            "PERCENT_CPC_BID",
            "TARGET_IMPRESSION_SHARE",
            "BUDGET"
          ],
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__AdGroupCriterionSimulation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__GenderView": {
      "id": "GoogleAdsGoogleadsV24Resources__GenderView",
      "type": "object",
      "description": "A gender view. The gender_view resource reflects the effective serving state, rather than what criteria were added. An ad group without gender criteria by default shows to all genders, so all genders appear in gender_view with stats.",
      "properties": {
        "resourceName": {
          "type": "string",
          "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
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateCampaignConversionGoalsRequest": {
      "description": "Request message for CampaignConversionGoalService.MutateCampaignConversionGoals.",
      "properties": {
        "operations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__CampaignConversionGoalOperation"
          },
          "description": "Required. The list of operations to perform on individual campaign conversion goal.",
          "type": "array"
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateCampaignConversionGoalsRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateExperimentsRequest": {
      "description": "Request message for ExperimentService.MutateExperiments.",
      "properties": {
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "operations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__ExperimentOperation"
          },
          "description": "Required. The list of operations to perform on individual experiments.",
          "type": "array"
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateExperimentsRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__AdScheduleInfo": {
      "id": "GoogleAdsGoogleadsV24Common__AdScheduleInfo",
      "type": "object",
      "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.",
      "properties": {
        "endMinute": {
          "description": "Minutes after the end hour at which this schedule ends. The schedule is exclusive of the end minute. This field is required for CREATE operations and is prohibited on UPDATE operations.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Zero minutes past the hour.",
            "Fifteen minutes past the hour.",
            "Thirty minutes past the hour.",
            "Forty-five minutes past the hour."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ZERO",
            "FIFTEEN",
            "THIRTY",
            "FORTY_FIVE"
          ],
          "type": "string"
        },
        "startHour": {
          "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.",
          "format": "int32",
          "type": "integer"
        },
        "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.",
          "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"
          ],
          "type": "string"
        },
        "endHour": {
          "description": "Ending hour in 24 hour time; 24 signifies end of the day. This field must be between 0 and 24, inclusive. This field is required for CREATE operations and is prohibited on UPDATE operations.",
          "format": "int32",
          "type": "integer"
        },
        "dayOfWeek": {
          "description": "Day of the week the schedule applies to. This field is required for CREATE operations and is prohibited on UPDATE operations.",
          "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"
          ],
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__SearchGoogleAdsRequest": {
      "id": "GoogleAdsGoogleadsV24Services__SearchGoogleAdsRequest",
      "type": "object",
      "description": "Request message for GoogleAdsService.Search.",
      "properties": {
        "validateOnly": {
          "description": "If true, the request is validated but not executed.",
          "type": "boolean"
        },
        "pageSize": {
          "description": "This field is deprecated and will be removed in a future version of the API. Google Ads API returns a `PAGE_SIZE_NOT_SUPPORTED` error if this field is set in the request body.",
          "format": "int32",
          "type": "integer"
        },
        "query": {
          "description": "Required. The query string.",
          "type": "string"
        },
        "searchSettings": {
          "description": "Settings that allow users to specify request count, summary row, and results behavior.",
          "$ref": "GoogleAdsGoogleadsV24Services__SearchSettings"
        },
        "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"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__SearchGoogleAdsStreamRequest": {
      "description": "Request message for GoogleAdsService.SearchStream.",
      "properties": {
        "query": {
          "type": "string",
          "description": "Required. The query string."
        },
        "summaryRowSetting": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NO_SUMMARY_ROW",
            "SUMMARY_ROW_WITH_RESULTS",
            "SUMMARY_ROW_ONLY"
          ],
          "description": "Determines whether a summary row will be returned. By default, summary row is not returned. If requested, the summary row will be sent in a response by itself after all other query results are returned.",
          "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."
          ],
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__SearchGoogleAdsStreamRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__TextAsset": {
      "id": "GoogleAdsGoogleadsV24Common__TextAsset",
      "type": "object",
      "description": "A Text asset.",
      "properties": {
        "text": {
          "description": "Text content of the text asset.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_Campaign_TravelCampaignSettings": {
      "id": "GoogleAdsGoogleadsV24Resources_Campaign_TravelCampaignSettings",
      "type": "object",
      "description": "Settings for Travel campaign.",
      "properties": {
        "travelAccountId": {
          "type": "string",
          "description": "Immutable. The Travel account ID associated with the Travel campaign.",
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__CpvBidSimulationPoint": {
      "id": "GoogleAdsGoogleadsV24Common__CpvBidSimulationPoint",
      "type": "object",
      "description": "Projected metrics for a specific CPV bid amount.",
      "properties": {
        "views": {
          "type": "string",
          "description": "Projected number of views.",
          "format": "int64"
        },
        "impressions": {
          "type": "string",
          "description": "Projected number of impressions.",
          "format": "int64"
        },
        "cpvBidMicros": {
          "type": "string",
          "description": "The simulated CPV bid upon which projected metrics are based.",
          "format": "int64"
        },
        "costMicros": {
          "description": "Projected cost in micros.",
          "format": "int64",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__GeoTargetConstant": {
      "description": "A geo target constant.",
      "properties": {
        "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"
        },
        "id": {
          "description": "Output only. The ID of the geo target constant.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "status": {
          "description": "Output only. Geo target constant status.",
          "readOnly": true,
          "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"
          ],
          "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"
        },
        "targetType": {
          "description": "Output only. Geo target constant target type.",
          "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"
        },
        "parentGeoTarget": {
          "type": "string",
          "description": "Output only. The resource name of the parent geo target constant. Geo target constant resource names have the form: `geoTargetConstants/{parent_geo_target_constant_id}`",
          "readOnly": true
        },
        "name": {
          "type": "string",
          "description": "Output only. Geo target constant English name.",
          "readOnly": true
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__GeoTargetConstant",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_Recommendation_TargetCpaOptInRecommendation": {
      "description": "The Target CPA opt-in recommendation.",
      "properties": {
        "recommendedTargetCpaMicros": {
          "description": "Output only. The recommended average CPA target. See required budget amount and impact of using this recommendation in options list.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "options": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Resources_RecommendationTargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption"
          },
          "description": "Output only. The available goals and corresponding options for Target CPA strategy.",
          "readOnly": true
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_Recommendation_TargetCpaOptInRecommendation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateAssetGroupListingGroupFilterResult": {
      "id": "GoogleAdsGoogleadsV24Services__MutateAssetGroupListingGroupFilterResult",
      "type": "object",
      "description": "The result for the asset group listing group filter mutate.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        },
        "assetGroupListingGroupFilter": {
          "description": "The mutated AssetGroupListingGroupFilter with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV24Resources__AssetGroupListingGroupFilter"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_Recommendation_SearchPartnersOptInRecommendation": {
      "description": "The Search Partners Opt-In recommendation.",
      "properties": {},
      "id": "GoogleAdsGoogleadsV24Resources_Recommendation_SearchPartnersOptInRecommendation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__DisplayUploadAdInfo": {
      "id": "GoogleAdsGoogleadsV24Common__DisplayUploadAdInfo",
      "type": "object",
      "description": "A generic type of display ad. The exact ad format is controlled by the `display_upload_product_type` field, which determines what kinds of data need to be included with the ad.",
      "properties": {
        "mediaBundle": {
          "description": "A media bundle asset to be used in the ad. For information about the media bundle for HTML5_UPLOAD_AD, see https://support.google.com/google-ads/answer/1722096 Media bundles that are part of dynamic product types use a special format that needs to be created through the Google Web Designer. See https://support.google.com/webdesigner/answer/7543898 for more information.",
          "$ref": "GoogleAdsGoogleadsV24Common__AdMediaBundleAsset"
        },
        "displayUploadProductType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HTML5_UPLOAD_AD",
            "DYNAMIC_HTML5_EDUCATION_AD",
            "DYNAMIC_HTML5_FLIGHT_AD",
            "DYNAMIC_HTML5_HOTEL_RENTAL_AD",
            "DYNAMIC_HTML5_JOB_AD",
            "DYNAMIC_HTML5_LOCAL_AD",
            "DYNAMIC_HTML5_REAL_ESTATE_AD",
            "DYNAMIC_HTML5_CUSTOM_AD",
            "DYNAMIC_HTML5_TRAVEL_AD",
            "DYNAMIC_HTML5_HOTEL_AD"
          ],
          "description": "The product type of this ad. See comments on the enum for details.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "HTML5 upload ad. This product type requires the upload_media_bundle field in DisplayUploadAdInfo to be set.",
            "Dynamic HTML5 education ad. This product type requires the upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be used in an education campaign.",
            "Dynamic HTML5 flight ad. This product type requires the upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be used in a flight campaign.",
            "Dynamic HTML5 hotel and rental ad. This product type requires the upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be used in a hotel campaign.",
            "Dynamic HTML5 job ad. This product type requires the upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be used in a job campaign.",
            "Dynamic HTML5 local ad. This product type requires the upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be used in a local campaign.",
            "Dynamic HTML5 real estate ad. This product type requires the upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be used in a real estate campaign.",
            "Dynamic HTML5 custom ad. This product type requires the upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be used in a custom campaign.",
            "Dynamic HTML5 travel ad. This product type requires the upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be used in a travel campaign.",
            "Dynamic HTML5 hotel ad. This product type requires the upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be used in a hotel campaign."
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__ChainLocationGroup": {
      "description": "Represents information about a Chain dynamic location group. Only applicable if the sync level AssetSet's type is LOCATION_SYNC and sync source is chain.",
      "properties": {
        "dynamicChainLocationGroupFilters": {
          "type": "array",
          "description": "Used to filter chain locations by chain ids. Only Locations that belong to the specified chain(s) will be in the asset set.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__ChainFilter"
          }
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__ChainLocationGroup",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__CustomerClientLink": {
      "description": "Represents customer client link relationship.",
      "properties": {
        "managerLinkId": {
          "type": "string",
          "description": "Output only. This is uniquely identifies a customer client link. Read only.",
          "readOnly": true,
          "format": "int64"
        },
        "status": {
          "description": "This is the status of the link between client and manager.",
          "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"
          ],
          "type": "string"
        },
        "hidden": {
          "type": "boolean",
          "description": "The visibility of the link. Users can choose whether or not to see hidden links in the Google Ads UI. Default value is false"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. Name of the resource. CustomerClientLink resource names have the form: `customers/{customer_id}/customerClientLinks/{client_customer_id}~{manager_link_id}`"
        },
        "clientCustomer": {
          "description": "Immutable. The client customer linked to this customer.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__CustomerClientLink",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__ManualCpcBiddingStrategy": {
      "id": "GoogleAdsGoogleadsV24Services__ManualCpcBiddingStrategy",
      "type": "object",
      "description": "Manual CPC Bidding Strategy.",
      "properties": {
        "dailyBudgetMicros": {
          "type": "string",
          "description": "Campaign level budget in micros. If set, a minimum value is enforced for the local currency used in the campaign. An error will occur showing the minimum value if this field is set too low.",
          "format": "int64"
        },
        "maxCpcBidMicros": {
          "type": "string",
          "description": "Required. A bid in micros to be applied to ad groups within the campaign for a manual CPC bidding strategy.",
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__KeywordForecastMetrics": {
      "id": "GoogleAdsGoogleadsV24Services__KeywordForecastMetrics",
      "type": "object",
      "description": "The forecast metrics for the planless keyword campaign.",
      "properties": {
        "averageCpcMicros": {
          "description": "The average cpc. Available only if clicks \u003e 0.",
          "format": "int64",
          "type": "string"
        },
        "conversions": {
          "type": "number",
          "description": "Forecasted number of conversions. This field is only available if the bidding strategy is MaximizeConversionsBiddingStrategy.",
          "format": "double"
        },
        "clicks": {
          "type": "number",
          "description": "The total number of clicks. This field is only available if the bidding strategy is MaximizeClicksBiddingStrategy or ManualCpcBiddingStrategy.",
          "format": "double"
        },
        "costMicros": {
          "type": "string",
          "description": "The total cost.",
          "format": "int64"
        },
        "averageCpaMicros": {
          "type": "string",
          "description": "Average cost per acquisition calculated as cost_micros / conversions.",
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__ShoppingLoyalty": {
      "description": "The shopping loyalty related data. Shopping utilizes this data to provide users with a better experience. Accessible only to merchants on the allow-list.",
      "properties": {
        "loyaltyTier": {
          "type": "string",
          "description": "The membership tier. It is a free-form string as each merchant may have their own loyalty system. For example, it could be a number from 1 to 10, or a string such as \"Golden\" or \"Silver\", or even empty string \"\"."
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__ShoppingLoyalty",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__SuggestTravelAssetsRequest": {
      "description": "Request message for TravelAssetSuggestionService.SuggestTravelAssets.",
      "properties": {
        "languageOption": {
          "type": "string",
          "description": "Required. The language specifications in BCP 47 format (for example, en-US, zh-CN, etc.) for the asset suggestions. Text will be in this language. Usually matches one of the campaign target languages."
        },
        "placeIds": {
          "items": {
            "type": "string"
          },
          "description": "The Google Maps Place IDs of hotels for which assets are requested. See https://developers.google.com/places/web-service/place-id for more information.",
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__SuggestTravelAssetsRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__RemoveDataLinkResponse": {
      "description": "Response message for DataLinkService.RemoveDataLink.",
      "properties": {
        "resourceName": {
          "description": "Result for the remove request.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__RemoveDataLinkResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__CombinedAudience": {
      "description": "Describe a resource for combined audiences which includes different audiences.",
      "properties": {
        "id": {
          "description": "Output only. ID of the combined audience.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the combined audience. Combined audience names have the form: `customers/{customer_id}/combinedAudience/{combined_audience_id}`"
        },
        "status": {
          "description": "Output only. Status of this combined audience. Indicates whether the combined audience is enabled or removed.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Enabled status - combined audience is enabled and can be targeted.",
            "Removed status - combined audience is removed and cannot be used for targeting."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "type": "string"
        },
        "description": {
          "type": "string",
          "description": "Output only. Description of this combined audience.",
          "readOnly": true
        },
        "name": {
          "type": "string",
          "description": "Output only. Name of the combined audience. It should be unique across all combined audiences.",
          "readOnly": true
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__CombinedAudience",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__MessageDetails": {
      "id": "GoogleAdsGoogleadsV24Resources__MessageDetails",
      "type": "object",
      "description": "Represents details of text message in case of email, message or SMS.",
      "properties": {
        "text": {
          "type": "string",
          "description": "Output only. Textual content of the message.",
          "readOnly": true
        },
        "attachmentUrls": {
          "description": "Output only. URL to the SMS or email attachments. These URLs can be used to download the contents of the attachment by using the developer token.",
          "readOnly": true,
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common_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.",
      "properties": {
        "websites": {
          "items": {
            "type": "string"
          },
          "description": "Websites that caused the policy finding.",
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common_PolicyTopicEvidence_WebsiteList",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__RetailFilterExpression": {
      "description": "Represents a Retail Filter Expression. Tags grouped within an expression are joined with OR operator. A product needs to have any of these tags to satisfy expression condition.",
      "properties": {
        "name": {
          "description": "The name of the expression. This name is used for grouping Retail Tags into one logical expression with OR operator. The name can contain at most 20 characters. Only lowercase latin letters, underscores, and numbers are allowed. This field is required and must be unique within the shared set.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__RetailFilterExpression",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__AccountBudgetProposalOperation": {
      "description": "A single operation to propose the creation of a new account-level budget or edit/end/remove an existing one.",
      "properties": {
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed proposal is expected, in this format: `customers/{customer_id}/accountBudgetProposals/{account_budget_proposal_id}` A request may be cancelled iff it is pending."
        },
        "updateMask": {
          "type": "string",
          "description": "FieldMask that determines which budget fields are modified. While budgets may be modified, proposals that propose such modifications are final. Therefore, update operations are not supported for proposals. Proposals that modify budgets have the 'update' proposal type. Specifying a mask for any other proposal type is considered an error.",
          "format": "google-fieldmask"
        },
        "create": {
          "description": "Create operation: A new proposal to create a new budget, edit an existing budget, end an actively running budget, or remove an approved budget scheduled to start in the future. No resource name is expected for the new proposal.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AccountBudgetProposal"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__AccountBudgetProposalOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__RunOfflineUserDataJobRequest": {
      "description": "Request message for OfflineUserDataJobService.RunOfflineUserDataJob.",
      "properties": {
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__RunOfflineUserDataJobRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common_LineupAttributeMetadata_SampleChannel": {
      "id": "GoogleAdsGoogleadsV24Common_LineupAttributeMetadata_SampleChannel",
      "type": "object",
      "description": "A YouTube channel returned as an example of the content in a lineup.",
      "properties": {
        "youtubeChannelMetadata": {
          "description": "Metadata for the sample channel.",
          "$ref": "GoogleAdsGoogleadsV24Common__YouTubeChannelAttributeMetadata"
        },
        "displayName": {
          "type": "string",
          "description": "The name of the sample channel."
        },
        "youtubeChannel": {
          "description": "A YouTube channel.",
          "$ref": "GoogleAdsGoogleadsV24Common__YouTubeChannelInfo"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__CustomizerAttributeOperation": {
      "description": "A single operation (create, remove) on a customizer attribute.",
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new customizer attribute",
          "$ref": "GoogleAdsGoogleadsV24Resources__CustomizerAttribute"
        },
        "updateMask": {
          "type": "string",
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask"
        },
        "remove": {
          "description": "Remove operation: A resource name for the removed customizer attribute is expected, in this format: `customers/{customer_id}/customizerAttributes/{customizer_attribute_id}`",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__CustomizerAttributeOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__MetricGoal": {
      "id": "GoogleAdsGoogleadsV24Common__MetricGoal",
      "type": "object",
      "description": "A metric goal for an experiment.",
      "properties": {
        "metric": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CLICKS",
            "IMPRESSIONS",
            "COST",
            "CONVERSIONS_PER_INTERACTION_RATE",
            "COST_PER_CONVERSION",
            "CONVERSIONS_VALUE_PER_COST",
            "AVERAGE_CPC",
            "CTR",
            "INCREMENTAL_CONVERSIONS",
            "COMPLETED_VIDEO_VIEWS",
            "CUSTOM_ALGORITHMS",
            "CONVERSIONS",
            "CONVERSION_VALUE"
          ],
          "description": "The metric of the goal. For example, clicks, impressions, cost, conversions, etc.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "The goal of the experiment is clicks.",
            "The goal of the experiment is impressions.",
            "The goal of the experiment is cost.",
            "The goal of the experiment is conversion rate.",
            "The goal of the experiment is cost per conversion.",
            "The goal of the experiment is conversion value per cost.",
            "The goal of the experiment is avg cpc.",
            "The goal of the experiment is ctr.",
            "The goal of the experiment is incremental conversions.",
            "The goal of the experiment is completed video views.",
            "The goal of the experiment is custom algorithms.",
            "The goal of the experiment is conversions.",
            "The goal of the experiment is conversion value."
          ],
          "type": "string"
        },
        "direction": {
          "description": "The metric direction of the goal. For example, increase, decrease, no change.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "The goal of the experiment is to not change the metric.",
            "The goal of the experiment is to increate the metric.",
            "The goal of the experiment is to decrease the metric.",
            "The goal of the experiment is to either not change or increase the metric.",
            "The goal of the experiment is to either not change or decrease the metric."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NO_CHANGE",
            "INCREASE",
            "DECREASE",
            "NO_CHANGE_OR_INCREASE",
            "NO_CHANGE_OR_DECREASE"
          ],
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__RemoveCampaignAutomaticallyCreatedAssetResponse": {
      "id": "GoogleAdsGoogleadsV24Services__RemoveCampaignAutomaticallyCreatedAssetResponse",
      "type": "object",
      "description": "Response message for AutomaticallyCreatedAssetRemovalService.RemoveCampaignAutomaticallyCreatedAsset.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to AutomaticallyCreatedAssetRemoval failures in the partial failure mode. Returned when all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), RPC level error will be returned. See https://developers.google.com/google-ads/api/docs/best-practices/partial-failures for more information about partial failure.",
          "$ref": "GoogleRpc__Status"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__ListBenchmarksLocationsResponse": {
      "description": "Response message for BenchmarksService.ListBenchmarksLocations.",
      "properties": {
        "benchmarksLocations": {
          "type": "array",
          "description": "The list of locations supported for benchmarks data.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__BenchmarksLocation"
          }
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__ListBenchmarksLocationsResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_Campaign_GeoTargetTypeSetting": {
      "id": "GoogleAdsGoogleadsV24Resources_Campaign_GeoTargetTypeSetting",
      "type": "object",
      "description": "Represents a collection of settings related to ads geotargeting.",
      "properties": {
        "negativeGeoTargetType": {
          "type": "string",
          "description": "The setting used for negative geotargeting in this particular campaign.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Specifies that a user is excluded from seeing the ad if they are in, or show interest in, advertiser's excluded locations.",
            "Specifies that a user is excluded from seeing the ad if they are in advertiser's excluded locations."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PRESENCE_OR_INTEREST",
            "PRESENCE"
          ]
        },
        "positiveGeoTargetType": {
          "type": "string",
          "description": "The setting used for positive geotargeting in this particular campaign.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Specifies that an ad is triggered if the user is in, or shows interest in, advertiser's targeted locations.",
            "Specifies that an ad is triggered if the user searches for advertiser's targeted locations. This can only be used with Search and standard Shopping campaigns.",
            "Specifies that an ad is triggered if the user is in or regularly in advertiser's targeted locations."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PRESENCE_OR_INTEREST",
            "SEARCH_INTEREST",
            "PRESENCE"
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateGoalsResponse": {
      "description": "Response message for a goal mutate.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateGoalResult"
          },
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateGoalsResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateAdsRequest": {
      "id": "GoogleAdsGoogleadsV24Services__MutateAdsRequest",
      "type": "object",
      "description": "Request message for AdService.MutateAds.",
      "properties": {
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "operations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__AdOperation"
          },
          "description": "Required. The list of operations to perform on individual ads.",
          "type": "array"
        },
        "responseContentType": {
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "type": "string"
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__CriterionCategoryAvailability": {
      "id": "GoogleAdsGoogleadsV24Common__CriterionCategoryAvailability",
      "type": "object",
      "description": "Information of category availability, per advertising channel.",
      "properties": {
        "channel": {
          "description": "Channel types and subtypes that are available to the category.",
          "$ref": "GoogleAdsGoogleadsV24Common__CriterionCategoryChannelAvailability"
        },
        "locale": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__CriterionCategoryLocaleAvailability"
          },
          "description": "Locales that are available to the category for the channel.",
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__EnablePMaxBrandGuidelinesRequest": {
      "id": "GoogleAdsGoogleadsV24Services__EnablePMaxBrandGuidelinesRequest",
      "type": "object",
      "description": "Request to enable Brand Guidelines for a Performance Max campaign.",
      "properties": {
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__EnableOperation"
          },
          "description": "Required. The list of individual campaign operations. A maximum of 10 enable operations can be executed in a request."
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__ListingScopeInfo": {
      "description": "A listing scope criterion.",
      "properties": {
        "dimensions": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__ListingDimensionInfo"
          },
          "description": "Scope of the campaign criterion.",
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__ListingScopeInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__CampaignThirdPartyBrandSafetyIntegrationPartner": {
      "description": "Container for third party brand safety integration data for Campaign.",
      "properties": {
        "brandSafetyIntegrationPartner": {
          "type": "string",
          "description": "Allowed third party integration partners for brand safety verification.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "DoubleVerify.",
            "Integral Ad Science.",
            "Zefr."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DOUBLE_VERIFY",
            "INTEGRAL_AD_SCIENCE",
            "ZEFR"
          ]
        },
        "brandSafetyIntegrationPartnerData": {
          "description": "Third party partner data for YouTube brand safety verification. This is optional metadata for partners to join or attach data to Ads campaigns.",
          "$ref": "GoogleAdsGoogleadsV24Common__ThirdPartyIntegrationPartnerData"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__CampaignThirdPartyBrandSafetyIntegrationPartner",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__MediaAudio": {
      "id": "GoogleAdsGoogleadsV24Resources__MediaAudio",
      "type": "object",
      "description": "Encapsulates an Audio.",
      "properties": {
        "adDurationMillis": {
          "type": "string",
          "description": "Output only. The duration of the Audio in milliseconds.",
          "readOnly": true,
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateAdParametersResponse": {
      "description": "Response message for an ad parameter mutate.",
      "properties": {
        "results": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateAdParameterResult"
          },
          "description": "All results for the mutate.",
          "type": "array"
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateAdParametersResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__ConversionGoalCampaignConfig": {
      "description": "Conversion goal settings for a Campaign.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the conversion goal campaign config. Conversion goal campaign config resource names have the form: `customers/{customer_id}/conversionGoalCampaignConfigs/{campaign_id}`"
        },
        "goalConfigLevel": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CUSTOMER",
            "CAMPAIGN"
          ],
          "description": "The level of goal config the campaign is using.",
          "enumDescriptions": [
            "The goal config level has not been specified.",
            "The goal config level is not known in this version.",
            "The goal config is defined at the customer level.",
            "The goal config is defined at the campaign level."
          ]
        },
        "customConversionGoal": {
          "type": "string",
          "description": "The custom conversion goal the campaign is using for optimization."
        },
        "campaign": {
          "type": "string",
          "description": "Immutable. The campaign with which this conversion goal campaign config is associated."
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__ConversionGoalCampaignConfig",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__GenerateRecommendationsRequest": {
      "description": "Request message for RecommendationService.GenerateRecommendations.",
      "properties": {
        "targetContentNetwork": {
          "type": "boolean",
          "description": "Optional. If true, the campaign is opted into serving ads on specified placements in the Google Display Network. This field is optional for the following recommendation_types: CAMPAIGN_BUDGET"
        },
        "languageCodes": {
          "items": {
            "type": "string"
          },
          "description": "Optional. Current campaign language codes. This field is required for the following recommendation_types: CAMPAIGN_BUDGET if AdvertisingChannelType is SEARCH",
          "type": "array"
        },
        "budgetInfo": {
          "description": "Optional. Current budget information. This field is optional for the following recommendation_types: CAMPAIGN_BUDGET",
          "$ref": "GoogleAdsGoogleadsV24Services_GenerateRecommendationsRequest_BudgetInfo"
        },
        "campaignCallAssetCount": {
          "type": "integer",
          "description": "Optional. Current campaign call asset count. This field is optional for the following recommendation_types: CAMPAIGN_BUDGET",
          "format": "int32"
        },
        "assetGroupInfo": {
          "type": "array",
          "description": "Optional. Current AssetGroup Information. This field is required for the following recommendation_types: CAMPAIGN_BUDGET",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services_GenerateRecommendationsRequest_AssetGroupInfo"
          }
        },
        "adGroupInfo": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services_GenerateRecommendationsRequest_AdGroupInfo"
          },
          "description": "Optional. Current AdGroup Information. Supports information from a single AdGroup. This field is optional for the following recommendation_types: KEYWORD This field is required for the following recommendation_types: CAMPAIGN_BUDGET if AdvertisingChannelType is SEARCH"
        },
        "campaignSitelinkCount": {
          "type": "integer",
          "description": "Optional. Number of sitelinks on the campaign. This field is necessary for the following recommendation_types: SITELINK_ASSET",
          "format": "int32"
        },
        "conversionTrackingStatus": {
          "type": "string",
          "description": "Optional. Current conversion tracking status. This field is necessary for the following recommendation_types: MAXIMIZE_CLICKS_OPT_IN, MAXIMIZE_CONVERSIONS_OPT_IN, MAXIMIZE_CONVERSION_VALUE_OPT_IN, SET_TARGET_CPA, SET_TARGET_ROAS, TARGET_CPA_OPT_IN, TARGET_ROAS_OPT_IN",
          "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"
          ]
        },
        "merchantCenterAccountId": {
          "description": "Optional. Merchant Center account ID. This field should only be set when advertising_channel_type is PERFORMANCE_MAX. Setting this field causes RecommendationService to generate recommendations for Performance Max for retail instead of standard Performance Max. This field is optional for the following recommendation_types: CAMPAIGN_BUDGET",
          "format": "int64",
          "type": "string"
        },
        "targetPartnerSearchNetwork": {
          "type": "boolean",
          "description": "Optional. If true, the campaign is opted into serving ads on the Google Partner Network. This field is optional for the following recommendation_types: CAMPAIGN_BUDGET"
        },
        "advertisingChannelType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SEARCH",
            "DISPLAY",
            "SHOPPING",
            "HOTEL",
            "VIDEO",
            "MULTI_CHANNEL",
            "LOCAL",
            "SMART",
            "PERFORMANCE_MAX",
            "LOCAL_SERVICES",
            "TRAVEL",
            "DEMAND_GEN"
          ],
          "description": "Required. Advertising channel type of the campaign. The following advertising_channel_types are supported for recommendation generation: PERFORMANCE_MAX and SEARCH",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Search Network. Includes display bundled, and Search+ campaigns.",
            "Google Display Network only.",
            "Shopping campaigns serve on the shopping property and on google.com search results.",
            "Hotel Ads campaigns.",
            "Video campaigns.",
            "App Campaigns, and App Campaigns for Engagement, that run across multiple channels.",
            "Local ads campaigns.",
            "Smart campaigns.",
            "Performance Max campaigns.",
            "Local services campaigns.",
            "Travel campaigns.",
            "Demand Gen campaigns."
          ],
          "type": "string"
        },
        "campaignImageAssetCount": {
          "description": "Optional. Current campaign image asset count. This field is optional for the following recommendation_types: CAMPAIGN_BUDGET",
          "format": "int32",
          "type": "integer"
        },
        "isNewCustomer": {
          "type": "boolean",
          "description": "Optional. Whether or not this customer should be treated as a \"new\" customer (that is, a customer who has not yet created a campaign). Setting this to `true` will cause the backend to generate recommendations using a dedicated recommendation model for onboarding new customers, as opposed to the default model for existing customers. This is only recommended for customers with 0 campaigns. This field is optional for the following recommendation_types: CAMPAIGN_BUDGET"
        },
        "recommendationTypes": {
          "items": {
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "CAMPAIGN_BUDGET",
              "KEYWORD",
              "TEXT_AD",
              "TARGET_CPA_OPT_IN",
              "MAXIMIZE_CONVERSIONS_OPT_IN",
              "ENHANCED_CPC_OPT_IN",
              "SEARCH_PARTNERS_OPT_IN",
              "MAXIMIZE_CLICKS_OPT_IN",
              "OPTIMIZE_AD_ROTATION",
              "KEYWORD_MATCH_TYPE",
              "MOVE_UNUSED_BUDGET",
              "FORECASTING_CAMPAIGN_BUDGET",
              "TARGET_ROAS_OPT_IN",
              "RESPONSIVE_SEARCH_AD",
              "MARGINAL_ROI_CAMPAIGN_BUDGET",
              "USE_BROAD_MATCH_KEYWORD",
              "RESPONSIVE_SEARCH_AD_ASSET",
              "UPGRADE_SMART_SHOPPING_CAMPAIGN_TO_PERFORMANCE_MAX",
              "RESPONSIVE_SEARCH_AD_IMPROVE_AD_STRENGTH",
              "DISPLAY_EXPANSION_OPT_IN",
              "UPGRADE_LOCAL_CAMPAIGN_TO_PERFORMANCE_MAX",
              "RAISE_TARGET_CPA_BID_TOO_LOW",
              "FORECASTING_SET_TARGET_ROAS",
              "CALLOUT_ASSET",
              "SITELINK_ASSET",
              "CALL_ASSET",
              "SHOPPING_ADD_AGE_GROUP",
              "SHOPPING_ADD_COLOR",
              "SHOPPING_ADD_GENDER",
              "SHOPPING_ADD_GTIN",
              "SHOPPING_ADD_MORE_IDENTIFIERS",
              "SHOPPING_ADD_SIZE",
              "SHOPPING_ADD_PRODUCTS_TO_CAMPAIGN",
              "SHOPPING_FIX_DISAPPROVED_PRODUCTS",
              "SHOPPING_TARGET_ALL_OFFERS",
              "SHOPPING_FIX_SUSPENDED_MERCHANT_CENTER_ACCOUNT",
              "SHOPPING_FIX_MERCHANT_CENTER_ACCOUNT_SUSPENSION_WARNING",
              "SHOPPING_MIGRATE_REGULAR_SHOPPING_CAMPAIGN_OFFERS_TO_PERFORMANCE_MAX",
              "DYNAMIC_IMAGE_EXTENSION_OPT_IN",
              "RAISE_TARGET_CPA",
              "LOWER_TARGET_ROAS",
              "PERFORMANCE_MAX_OPT_IN",
              "IMPROVE_PERFORMANCE_MAX_AD_STRENGTH",
              "MIGRATE_DYNAMIC_SEARCH_ADS_CAMPAIGN_TO_PERFORMANCE_MAX",
              "FORECASTING_SET_TARGET_CPA",
              "SET_TARGET_CPA",
              "SET_TARGET_ROAS",
              "MAXIMIZE_CONVERSION_VALUE_OPT_IN",
              "IMPROVE_GOOGLE_TAG_COVERAGE",
              "PERFORMANCE_MAX_FINAL_URL_OPT_IN",
              "REFRESH_CUSTOMER_MATCH_LIST",
              "CUSTOM_AUDIENCE_OPT_IN",
              "LEAD_FORM_ASSET",
              "IMPROVE_DEMAND_GEN_AD_STRENGTH"
            ],
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "Provides optimized budget recommendations for campaigns.",
              "Keyword recommendation.",
              "Recommendation to add a new text ad.",
              "Recommendation to update a campaign to use a Target CPA bidding strategy.",
              "Recommendation to update a campaign to use the Maximize Conversions bidding strategy.",
              "Recommendation to enable Enhanced Cost Per Click for a campaign.",
              "Recommendation to start showing your campaign's ads on Google Search Partners Websites.",
              "Recommendation to update a campaign to use a Maximize Clicks bidding strategy.",
              "Recommendation to start using the \"Optimize\" ad rotation setting for the given ad group.",
              "Recommendation to change an existing keyword from one match type to a broader match type.",
              "Recommendation to move unused budget from one budget to a constrained budget.",
              "Budget recommendation for campaigns that are expected to become budget-constrained in the future (as opposed to the CAMPAIGN_BUDGET recommendation, which applies to campaigns that are currently budget-constrained).",
              "Recommendation to update a campaign to use a Target ROAS bidding strategy.",
              "Recommendation to add a new responsive search ad.",
              "Budget recommendation for campaigns whose ROI is predicted to increase with a budget adjustment.",
              "Recommendation to add broad match versions of keywords for fully automated conversion-based bidding campaigns.",
              "Recommendation to add new responsive search ad assets.",
              "Recommendation to upgrade a Smart Shopping campaign to a Performance Max campaign.",
              "Recommendation to improve strength of responsive search ad.",
              "Recommendation to update a campaign to use Display Expansion.",
              "Recommendation to upgrade a Local campaign to a Performance Max campaign.",
              "Recommendation to raise target CPA when it is too low and there are very few or no conversions. It is applied asynchronously and can take minutes depending on the number of ad groups there are in the related campaign.",
              "Recommendation to raise the budget in advance of a seasonal event that is forecasted to increase traffic, and change bidding strategy from maximize conversion value to target ROAS.",
              "Recommendation to add callout assets to campaign or customer level.",
              "Recommendation to add sitelink assets to campaign or customer level.",
              "Recommendation to add call assets to campaign or customer level.",
              "Recommendation to add the age group attribute to offers that are demoted because of a missing age group.",
              "Recommendation to add a color to offers that are demoted because of a missing color.",
              "Recommendation to add a gender to offers that are demoted because of a missing gender.",
              "Recommendation to add a GTIN (Global Trade Item Number) to offers that are demoted because of a missing GTIN.",
              "Recommendation to add more identifiers to offers that are demoted because of missing identifiers.",
              "Recommendation to add the size to offers that are demoted because of a missing size.",
              "Recommendation informing a customer about a campaign that cannot serve because no products are being targeted.",
              "The shopping recommendation informing a customer about campaign with a high percentage of disapproved products.",
              "Recommendation to create a catch-all campaign that targets all offers.",
              "Recommendation to fix Merchant Center account suspension issues.",
              "Recommendation to fix Merchant Center account suspension warning issues.",
              "Recommendation to migrate offers targeted by Regular Shopping Campaigns to existing Performance Max campaigns.",
              "Recommendation to enable dynamic image extensions on the account, allowing Google to find the best images from ad landing pages and complement text ads.",
              "Recommendation to raise Target CPA based on Google predictions modeled from past conversions. It is applied asynchronously and can take minutes depending on the number of ad groups there are in the related campaign.",
              "Recommendation to lower Target ROAS.",
              "Recommendation to opt into Performance Max campaigns.",
              "Recommendation to improve the asset group strength of a Performance Max campaign to an \"Excellent\" rating.",
              "Recommendation to migrate Dynamic Search Ads to Performance Max campaigns.",
              "Recommendation to set a target CPA for campaigns that do not have one specified, in advance of a seasonal event that is forecasted to increase traffic.",
              "Recommendation to set a target CPA for campaigns that do not have one specified.",
              "Recommendation to set a target ROAS for campaigns that do not have one specified.",
              "Recommendation to update a campaign to use the Maximize Conversion Value bidding strategy.",
              "Recommendation to deploy Google Tag on more pages.",
              "Recommendation to turn on Final URL expansion for your Performance Max campaigns.",
              "Recommendation to update a customer list that hasn't been updated in the last 90 days.",
              "Recommendation to create a custom audience.",
              "Recommendation to add lead form assets to campaign or customer level.",
              "Recommendation to improve the strength of ads in Demand Gen campaigns."
            ],
            "type": "string"
          },
          "description": "Required. List of eligible recommendation_types to generate. If the uploaded criteria isn't sufficient to make a recommendation, or the campaign is already in the recommended state, no recommendation will be returned for that type. Generally, a recommendation is returned if all required fields for that recommendation_type are uploaded, but there are cases where this is still not sufficient. The following recommendation_types are supported for recommendation generation: CAMPAIGN_BUDGET, KEYWORD, MAXIMIZE_CLICKS_OPT_IN, MAXIMIZE_CONVERSIONS_OPT_IN, MAXIMIZE_CONVERSION_VALUE_OPT_IN, SET_TARGET_CPA, SET_TARGET_ROAS, SITELINK_ASSET, TARGET_CPA_OPT_IN, TARGET_ROAS_OPT_IN",
          "type": "array"
        },
        "countryCodes": {
          "items": {
            "type": "string"
          },
          "description": "Optional. Current campaign country codes. This field is required for the following recommendation_types: CAMPAIGN_BUDGET if AdvertisingChannelType is SEARCH",
          "type": "array"
        },
        "negativeLocationsIds": {
          "items": {
            "type": "string",
            "format": "int64"
          },
          "description": "Optional. Current campaign negative location ids. One of this field OR positive_location_ids is required for the following recommendation_types: CAMPAIGN_BUDGET if AdvertisingChannelType is SEARCH",
          "type": "array"
        },
        "seedInfo": {
          "description": "Optional. Seed information for Keywords. This field is necessary for the following recommendation_types: KEYWORD",
          "$ref": "GoogleAdsGoogleadsV24Services_GenerateRecommendationsRequest_SeedInfo"
        },
        "biddingInfo": {
          "description": "Optional. Current bidding information of the campaign. This field is necessary for the following recommendation_types: CAMPAIGN_BUDGET, MAXIMIZE_CLICKS_OPT_IN, MAXIMIZE_CONVERSIONS_OPT_IN, MAXIMIZE_CONVERSION_VALUE_OPT_IN, SET_TARGET_CPA, SET_TARGET_ROAS, TARGET_CPA_OPT_IN, TARGET_ROAS_OPT_IN",
          "$ref": "GoogleAdsGoogleadsV24Services_GenerateRecommendationsRequest_BiddingInfo"
        },
        "positiveLocationsIds": {
          "items": {
            "format": "int64",
            "type": "string"
          },
          "description": "Optional. Current campaign positive location ids. One of this field OR negative_location_ids is required for the following recommendation_types: CAMPAIGN_BUDGET if AdvertisingChannelType is SEARCH",
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__GenerateRecommendationsRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__UserListCustomerType": {
      "description": "A user list customer type",
      "properties": {
        "customerTypeCategory": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ALL_CUSTOMERS",
            "PURCHASERS",
            "HIGH_VALUE_CUSTOMERS",
            "DISENGAGED_CUSTOMERS",
            "QUALIFIED_LEADS",
            "CONVERTED_LEADS",
            "PAID_SUBSCRIBERS",
            "CART_ABANDONERS",
            "LOYALTY_TIER_1_MEMBERS",
            "LOYALTY_TIER_2_MEMBERS",
            "LOYALTY_TIER_3_MEMBERS",
            "LOYALTY_TIER_4_MEMBERS",
            "LOYALTY_TIER_5_MEMBERS",
            "LOYALTY_TIER_6_MEMBERS",
            "LOYALTY_TIER_7_MEMBERS"
          ],
          "description": "Immutable. The user list customer type category",
          "enumDescriptions": [
            "Not specified.",
            "Unknown type.",
            "Customer type category for all customers.",
            "Customer type category for all purchasers.",
            "Customer type category for high value purchasers.",
            "Customer type category for disengaged purchasers.",
            "Customer type category for qualified leads.",
            "Customer type category for converted leads.",
            "Customer type category for paid subscribers.",
            "Customer type category for cart abandoners.",
            "Customer type category for loyalty tier 1 members.",
            "Customer type category for loyalty tier 2 members.",
            "Customer type category for loyalty tier 3 members.",
            "Customer type category for loyalty tier 4 members.",
            "Customer type category for loyalty tier 5 members.",
            "Customer type category for loyalty tier 6 members.",
            "Customer type category for loyalty tier 7 members."
          ],
          "type": "string"
        },
        "userList": {
          "description": "Immutable. The resource name for the user list this user list customer type is associated with",
          "type": "string"
        },
        "resourceName": {
          "description": "Immutable. The resource name of the user list customer type User list customer type resource names have the form: `customers/{customer_id}/userListCustomerTypes/{user_list_id}~{customer_type_category}`",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__UserListCustomerType",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__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.",
      "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"
        },
        "status": {
          "description": "Output only. The status of the ad group asset set. Read-only.",
          "readOnly": true,
          "enumDescriptions": [
            "The status has not been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The linkage between asset set and its container is enabled.",
            "The linkage between asset set and its container is removed."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "type": "string"
        },
        "assetSet": {
          "description": "Immutable. The asset set which is linked to the ad group.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__AdGroupAssetSet",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__HotelPropertyAsset": {
      "id": "GoogleAdsGoogleadsV24Common__HotelPropertyAsset",
      "type": "object",
      "description": "A hotel property asset.",
      "properties": {
        "hotelAddress": {
          "type": "string",
          "description": "Address of the hotel. Read-only."
        },
        "placeId": {
          "type": "string",
          "description": "Place IDs uniquely identify a place in the Google Places database and on Google Maps. See https://developers.google.com/places/web-service/place-id to learn more."
        },
        "hotelName": {
          "description": "Name of the hotel. Read-only.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__MerchantCenterIdentifier": {
      "description": "The identifier for Google Merchant Center account",
      "properties": {
        "merchantCenterId": {
          "description": "Immutable. The customer ID of the Google Merchant Center account. This field is required and should not be empty when creating a new Merchant Center link. It is unable to be modified after the creation of the link.",
          "format": "int64",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__MerchantCenterIdentifier",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__MaximizeConversionValue": {
      "id": "GoogleAdsGoogleadsV24Common__MaximizeConversionValue",
      "type": "object",
      "description": "An automated bidding strategy to help get the most conversion value for your campaigns while spending your budget.",
      "properties": {
        "cpcBidFloorMicros": {
          "description": "Minimum bid limit that can be set by the bid strategy. The limit applies to all keywords managed by the strategy. Mutable for portfolio bidding strategies only.",
          "format": "int64",
          "type": "string"
        },
        "targetRoas": {
          "type": "number",
          "description": "The target return on ad spend (ROAS) option. If set, the bid strategy will maximize revenue while averaging the target return on ad spend. If the target ROAS is high, the bid strategy may not be able to spend the full budget. If the target ROAS is not set, the bid strategy will aim to achieve the highest possible ROAS for the budget.",
          "format": "double"
        },
        "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.",
          "format": "int64",
          "type": "string"
        },
        "targetRoasTolerancePercentMillis": {
          "description": "The percent of ROAS(return on advertising spend) degradation tolerance allowed to increase traffic diversity and conversion volume, specified in millis (for example, 10,000 = 10%). A value of 10,000 means that the advertiser can expect ROAS degradation of up to 10% of the specified target ROAS.",
          "format": "int64",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__KeywordPlanOperation": {
      "description": "A single operation (create, update, remove) on a keyword plan.",
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new keyword plan.",
          "$ref": "GoogleAdsGoogleadsV24Resources__KeywordPlan"
        },
        "update": {
          "description": "Update operation: The keyword plan is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV24Resources__KeywordPlan"
        },
        "remove": {
          "description": "Remove operation: A resource name for the removed keyword plan is expected in this format: `customers/{customer_id}/keywordPlans/{keyword_plan_id}`",
          "type": "string"
        },
        "updateMask": {
          "description": "The FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__KeywordPlanOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_ListingGroupFilterDimension_ProductItemId": {
      "id": "GoogleAdsGoogleadsV24Resources_ListingGroupFilterDimension_ProductItemId",
      "type": "object",
      "description": "Item id of a product offer.",
      "properties": {
        "value": {
          "type": "string",
          "description": "Value of the id."
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_PostbackMapping": {
      "description": "Mappings for each postback in multiple conversion windows.",
      "properties": {
        "coarseGrainedConversionValueMappings": {
          "description": "Output only. Conversion value mappings for all coarse grained conversion values.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_CoarseGrainedConversionValueMappings"
        },
        "lockWindowCoarseConversionValue": {
          "type": "string",
          "description": "Output only. Coarse grained conversion value that triggers conversion window lock.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "The value was not present in the postback or we do not have this data for other reasons.",
            "A low coarse conversion value.",
            "A medium coarse conversion value.",
            "A high coarse conversion value.",
            "A coarse conversion value was not configured."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "UNAVAILABLE",
            "LOW",
            "MEDIUM",
            "HIGH",
            "NONE"
          ]
        },
        "lockWindowEvent": {
          "type": "string",
          "description": "Output only. Event name that triggers conversion window lock.",
          "readOnly": true
        },
        "postbackSequenceIndex": {
          "type": "integer",
          "description": "Output only. 0-based index that indicates the order of postback. Valid values are in the inclusive range [0,2].",
          "readOnly": true,
          "format": "int32"
        },
        "lockWindowFineConversionValue": {
          "description": "Output only. Fine grained conversion value that triggers conversion window lock.",
          "readOnly": true,
          "format": "int32",
          "type": "integer"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_PostbackMapping",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_Campaign_VideoCampaignSettings": {
      "id": "GoogleAdsGoogleadsV24Resources_Campaign_VideoCampaignSettings",
      "type": "object",
      "description": "Settings for Video campaign.",
      "properties": {
        "videoAdFormatControl": {
          "description": "Format-restricting control enabling usage of video responsive ads in format defined Video campaigns (for example, non-skippable).",
          "$ref": "GoogleAdsGoogleadsV24Resources_CampaignVideoCampaignSettings_VideoAdFormatControl"
        },
        "videoAdSequence": {
          "description": "Container for video ads sequencing definition.",
          "$ref": "GoogleAdsGoogleadsV24Resources_CampaignVideoCampaignSettings_VideoAdSequence"
        },
        "videoAdInventoryControl": {
          "description": "Inventory control for video responsive ads in reach campaigns.",
          "$ref": "GoogleAdsGoogleadsV24Resources_CampaignVideoCampaignSettings_VideoAdInventoryControl"
        },
        "bookingDetails": {
          "description": "Output only. Booking information for campaigns with the FIXED_CPM or FIXED_SHARE_OF_VOICE bidding strategies.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_CampaignVideoCampaignSettings_BookingDetails"
        },
        "reservationAdCategorySelfDisclosure": {
          "description": "Ad category self-disclosure for campaigns with the FIXED_CPM or FIXED_SHARE_OF_VOICE bidding strategies.",
          "$ref": "GoogleAdsGoogleadsV24Resources_CampaignVideoCampaignSettings_ReservationAdCategorySelfDisclosure"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__LanguageInfo": {
      "id": "GoogleAdsGoogleadsV24Common__LanguageInfo",
      "type": "object",
      "description": "A language criterion.",
      "properties": {
        "languageConstant": {
          "type": "string",
          "description": "The language constant resource name."
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_ConversionAction_AttributionModelSettings": {
      "description": "Settings related to this conversion action's attribution model.",
      "properties": {
        "attributionModel": {
          "description": "The attribution model type of this conversion action.",
          "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"
          ],
          "type": "string"
        },
        "dataDrivenModelStatus": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AVAILABLE",
            "STALE",
            "EXPIRED",
            "NEVER_GENERATED"
          ],
          "description": "Output only. The status of the data-driven attribution model for the conversion action.",
          "readOnly": true,
          "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."
          ]
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_ConversionAction_AttributionModelSettings",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__ResponsiveDisplayAdInfo": {
      "id": "GoogleAdsGoogleadsV24Common__ResponsiveDisplayAdInfo",
      "type": "object",
      "description": "A responsive display ad.",
      "properties": {
        "headlines": {
          "type": "array",
          "description": "Short format headlines for the ad. The maximum length is 30 characters. At least 1 and max 5 headlines can be specified.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdTextAsset"
          }
        },
        "youtubeVideos": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdVideoAsset"
          },
          "description": "Optional YouTube videos for the ad. A maximum of 5 videos can be specified."
        },
        "callToActionText": {
          "description": "The call-to-action text for the ad. Maximum display width is 30.",
          "type": "string"
        },
        "logoImages": {
          "type": "array",
          "description": "Logo images to be used in the ad. Valid image types are GIF, JPEG, and PNG. The minimum size is 512x128 and the aspect ratio must be 4:1 (+-1%). Combined with `square_logo_images`, the maximum is 5.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdImageAsset"
          }
        },
        "formatSetting": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ALL_FORMATS",
            "NON_NATIVE",
            "NATIVE"
          ],
          "description": "Specifies which format the ad will be served in. Default is ALL_FORMATS.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Text, image and native formats.",
            "Text and image formats.",
            "Native format, for example, the format rendering is controlled by the publisher and not by Google."
          ]
        },
        "squareMarketingImages": {
          "description": "Square marketing images to be used in the ad. Valid image types are GIF, JPEG, and PNG. The minimum size is 300x300 and the aspect ratio must be 1:1 (+-1%). At least one square `marketing_image` is required. Combined with `marketing_images`, the maximum is 15.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdImageAsset"
          },
          "type": "array"
        },
        "descriptions": {
          "description": "Descriptive texts for the ad. The maximum length is 90 characters. At least 1 and max 5 headlines can be specified.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdTextAsset"
          },
          "type": "array"
        },
        "promoText": {
          "type": "string",
          "description": "Promotion text used for dynamic formats of responsive ads. For example 'Free two-day shipping'."
        },
        "marketingImages": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdImageAsset"
          },
          "description": "Marketing images to be used in the ad. Valid image types are GIF, JPEG, and PNG. The minimum size is 600x314 and the aspect ratio must be 1.91:1 (+-1%). At least one `marketing_image` is required. Combined with `square_marketing_images`, the maximum is 15.",
          "type": "array"
        },
        "allowFlexibleColor": {
          "type": "boolean",
          "description": "Advertiser's consent to allow flexible color. When true, the ad may be served with different color if necessary. When false, the ad will be served with the specified colors or a neutral color. The default value is `true`. Must be true if `main_color` and `accent_color` are not set."
        },
        "squareLogoImages": {
          "type": "array",
          "description": "Square logo images to be used in the ad. Valid image types are GIF, JPEG, and PNG. The minimum size is 128x128 and the aspect ratio must be 1:1 (+-1%). Combined with `logo_images`, the maximum is 5.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdImageAsset"
          }
        },
        "accentColor": {
          "description": "The accent color of the ad in hexadecimal, for example, #ffffff for white. If one of `main_color` and `accent_color` is set, the other is required as well.",
          "type": "string"
        },
        "controlSpec": {
          "description": "Specification for various creative controls.",
          "$ref": "GoogleAdsGoogleadsV24Common__ResponsiveDisplayAdControlSpec"
        },
        "pricePrefix": {
          "type": "string",
          "description": "Prefix before price. For example, 'as low as'."
        },
        "businessName": {
          "type": "string",
          "description": "The advertiser/brand name. Maximum display width is 25."
        },
        "longHeadline": {
          "description": "A required long format headline. The maximum length is 90 characters.",
          "$ref": "GoogleAdsGoogleadsV24Common__AdTextAsset"
        },
        "mainColor": {
          "description": "The main color of the ad in hexadecimal, for example, #ffffff for white. If one of `main_color` and `accent_color` is set, the other is required as well.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__ListPlannableUserInterestsResponse": {
      "id": "GoogleAdsGoogleadsV24Services__ListPlannableUserInterestsResponse",
      "type": "object",
      "description": "Response message for ReachPlanService.ListPlannableUserInterests.",
      "properties": {
        "plannableUserInterests": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__PlannableUserInterest"
          },
          "description": "The list of plannable user interests.",
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__GeoTargetConstantSuggestion": {
      "description": "A geo target constant suggestion.",
      "properties": {
        "reach": {
          "description": "Approximate user population that will be targeted, rounded to the nearest 100.",
          "format": "int64",
          "type": "string"
        },
        "locale": {
          "type": "string",
          "description": "The language this GeoTargetConstantSuggestion is currently translated to. It affects the name of geo target fields. For example, if locale=en, then name=Spain. If locale=es, then name=España. The default locale will be returned if no translation exists for the locale in the request."
        },
        "searchTerm": {
          "type": "string",
          "description": "If the request searched by location name, this is the location name that matched the geo target."
        },
        "geoTargetConstant": {
          "description": "The GeoTargetConstant result.",
          "$ref": "GoogleAdsGoogleadsV24Resources__GeoTargetConstant"
        },
        "geoTargetConstantParents": {
          "description": "The list of parents of the geo target constant.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Resources__GeoTargetConstant"
          },
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__GeoTargetConstantSuggestion",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__SuggestGeoTargetConstantsResponse": {
      "description": "Response message for GeoTargetConstantService.SuggestGeoTargetConstants.",
      "properties": {
        "geoTargetConstantSuggestions": {
          "type": "array",
          "description": "Geo target constant suggestions.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__GeoTargetConstantSuggestion"
          }
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__SuggestGeoTargetConstantsResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__LineupAttributeMetadata": {
      "id": "GoogleAdsGoogleadsV24Common__LineupAttributeMetadata",
      "type": "object",
      "description": "Metadata associated with a Lineup attribute.",
      "properties": {
        "sampleChannels": {
          "type": "array",
          "description": "Examples of channels that are included in the lineup.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common_LineupAttributeMetadata_SampleChannel"
          }
        },
        "channelCountUpperBound": {
          "type": "string",
          "description": "The upper end of a range containing the number of channels in the lineup.",
          "format": "int64"
        },
        "inventoryCountry": {
          "description": "The national market associated with the lineup.",
          "$ref": "GoogleAdsGoogleadsV24Common__LocationInfo"
        },
        "medianMonthlyInventory": {
          "description": "The median number of impressions per month on this lineup.",
          "format": "int64",
          "type": "string"
        },
        "channelCountLowerBound": {
          "type": "string",
          "description": "The lower end of a range containing the number of channels in the lineup.",
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__StoreSalesThirdPartyMetadata": {
      "id": "GoogleAdsGoogleadsV24Common__StoreSalesThirdPartyMetadata",
      "type": "object",
      "description": "Metadata for a third party Store Sales. This product is only for customers on the allow-list. Contact your Google business development representative for details on the upload configuration.",
      "properties": {
        "advertiserUploadDateTime": {
          "type": "string",
          "description": "Time the advertiser uploaded the data to the partner. Required. The format is \"YYYY-MM-DD HH:MM:SS\". Examples: \"2018-03-05 09:15:00\" or \"2018-02-01 14:34:30\""
        },
        "partnerMatchFraction": {
          "description": "The fraction of valid transactions that are matched to a third party assigned user ID on the partner side. Required. The fraction needs to be between 0 and 1 (excluding 0).",
          "format": "double",
          "type": "number"
        },
        "validTransactionFraction": {
          "type": "number",
          "description": "The fraction of transactions that are valid. Invalid transactions may include invalid formats or values. Required. The fraction needs to be between 0 and 1 (excluding 0).",
          "format": "double"
        },
        "partnerId": {
          "type": "string",
          "description": "ID of the third party partner updating the transaction feed.",
          "format": "int64"
        },
        "bridgeMapVersionId": {
          "description": "Version of partner IDs to be used for uploads. Required.",
          "type": "string"
        },
        "partnerUploadFraction": {
          "type": "number",
          "description": "The fraction of valid transactions that are uploaded by the partner to Google. Required. The fraction needs to be between 0 and 1 (excluding 0).",
          "format": "double"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__ImageDimension": {
      "id": "GoogleAdsGoogleadsV24Common__ImageDimension",
      "type": "object",
      "description": "Metadata for an image at a certain size, either original or resized.",
      "properties": {
        "url": {
          "type": "string",
          "description": "A URL that returns the image with this height and width."
        },
        "heightPixels": {
          "type": "string",
          "description": "Height of the image.",
          "format": "int64"
        },
        "widthPixels": {
          "type": "string",
          "description": "Width of the image.",
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateCustomizerAttributeResult": {
      "description": "The result for the customizer attribute mutate.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        },
        "customizerAttribute": {
          "description": "The mutated CustomizerAttribute with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV24Resources__CustomizerAttribute"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateCustomizerAttributeResult",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateExperimentArmsResponse": {
      "description": "Response message for experiment arm mutate.",
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateExperimentArmResult"
          },
          "description": "All results for the mutate."
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateExperimentArmsResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_ChangeEvent_ChangedResource": {
      "id": "GoogleAdsGoogleadsV24Resources_ChangeEvent_ChangedResource",
      "type": "object",
      "description": "A wrapper proto presenting all supported resources. Only the resource of the change_resource_type will be set.",
      "properties": {
        "campaign": {
          "description": "Output only. Set if change_resource_type == CAMPAIGN.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources__Campaign"
        },
        "adGroupBidModifier": {
          "description": "Output only. Set if change_resource_type == AD_GROUP_BID_MODIFIER.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources__AdGroupBidModifier"
        },
        "ad": {
          "description": "Output only. Set if change_resource_type == AD.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources__Ad"
        },
        "adGroupCriterion": {
          "description": "Output only. Set if change_resource_type == AD_GROUP_CRITERION.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources__AdGroupCriterion"
        },
        "assetSet": {
          "description": "Output only. Set if change_resource_type == ASSET_SET.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources__AssetSet"
        },
        "campaignAsset": {
          "description": "Output only. Set if change_resource_type == CAMPAIGN_ASSET.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources__CampaignAsset"
        },
        "campaignAssetSet": {
          "description": "Output only. Set if change_resource_type == CAMPAIGN_ASSET_SET.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources__CampaignAssetSet"
        },
        "campaignCriterion": {
          "description": "Output only. Set if change_resource_type == CAMPAIGN_CRITERION.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources__CampaignCriterion"
        },
        "adGroup": {
          "description": "Output only. Set if change_resource_type == AD_GROUP.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources__AdGroup"
        },
        "campaignBudget": {
          "description": "Output only. Set if change_resource_type == CAMPAIGN_BUDGET.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources__CampaignBudget"
        },
        "asset": {
          "description": "Output only. Set if change_resource_type == ASSET.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources__Asset"
        },
        "adGroupAd": {
          "description": "Output only. Set if change_resource_type == AD_GROUP_AD.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources__AdGroupAd"
        },
        "adGroupAsset": {
          "description": "Output only. Set if change_resource_type == AD_GROUP_ASSET.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources__AdGroupAsset"
        },
        "assetSetAsset": {
          "description": "Output only. Set if change_resource_type == ASSET_SET_ASSET.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources__AssetSetAsset"
        },
        "customerAsset": {
          "description": "Output only. Set if change_resource_type == CUSTOMER_ASSET.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources__CustomerAsset"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateCustomerNegativeCriteriaResponse": {
      "description": "Response message for customer negative criterion mutate.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomerNegativeCriteriaResult"
          },
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateCustomerNegativeCriteriaResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__BackgroundCheckVerificationArtifact": {
      "id": "GoogleAdsGoogleadsV24Resources__BackgroundCheckVerificationArtifact",
      "type": "object",
      "description": "A proto holding information specific to local services background check.",
      "properties": {
        "caseUrl": {
          "type": "string",
          "description": "Output only. URL to access background case.",
          "readOnly": true
        },
        "finalAdjudicationDateTime": {
          "type": "string",
          "description": "Output only. The timestamp when this background check case result was adjudicated. The format is \"YYYY-MM-DD HH:MM:SS\" in the Google Ads account's timezone. Examples: \"2018-03-05 09:15:00\" or \"2018-02-01 14:34:30\"",
          "readOnly": true
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__GenerateKeywordIdeaResponse": {
      "id": "GoogleAdsGoogleadsV24Services__GenerateKeywordIdeaResponse",
      "type": "object",
      "description": "Response message for KeywordPlanIdeaService.GenerateKeywordIdeas.",
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__GenerateKeywordIdeaResult"
          },
          "description": "Results of generating keyword ideas."
        },
        "aggregateMetricResults": {
          "description": "The aggregate metrics for all keyword ideas.",
          "$ref": "GoogleAdsGoogleadsV24Common__KeywordPlanAggregateMetricResults"
        },
        "nextPageToken": {
          "description": "Pagination token used to retrieve the next page of results. Pass the content of this string as the `page_token` attribute of the next request. `next_page_token` is not returned for the last page.",
          "type": "string"
        },
        "totalSize": {
          "type": "string",
          "description": "Total number of results available.",
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateAssetGroupAssetResult": {
      "description": "The result for the asset group asset mutate.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateAssetGroupAssetResult",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__CriterionCategoryLocaleAvailability": {
      "description": "Information about which locales a category is available in.",
      "properties": {
        "availabilityMode": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ALL_LOCALES",
            "COUNTRY_AND_ALL_LANGUAGES",
            "LANGUAGE_AND_ALL_COUNTRIES",
            "COUNTRY_AND_LANGUAGE"
          ],
          "description": "Format of the locale availability. Can be LAUNCHED_TO_ALL (both country and language will be empty), COUNTRY (only country will be set), LANGUAGE (only language wil be set), COUNTRY_AND_LANGUAGE (both country and language will be set).",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The category is available to campaigns of all locales.",
            "The category is available to campaigns within a list of countries, regardless of language.",
            "The category is available to campaigns within a list of languages, regardless of country.",
            "The category is available to campaigns within a list of country, language pairs."
          ]
        },
        "languageCode": {
          "type": "string",
          "description": "ISO 639-1 code of the language associated with the category."
        },
        "countryCode": {
          "type": "string",
          "description": "The ISO-3166-1 alpha-2 country code associated with the category."
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__CriterionCategoryLocaleAvailability",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__CustomerSkAdNetworkConversionValueSchema": {
      "description": "A CustomerSkAdNetworkConversionValueSchema.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the schema. CustomerSkAdNetworkConversionValueSchema resource names have the form: customers/{customer_id}/customerSkAdNetworkConversionValueSchemas/{account_link_id}",
          "readOnly": true
        },
        "schema": {
          "description": "Output only. The schema for the specified resource.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_CustomerSkAdNetworkConversionValueSchema_SkAdNetworkConversionValueSchema"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__CustomerSkAdNetworkConversionValueSchema",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__CampaignThirdPartyIntegrationPartners": {
      "description": "Container for Campaign level third party integration partners.",
      "properties": {
        "viewabilityIntegrationPartners": {
          "type": "array",
          "description": "Third party integration partners for YouTube viewability verification for this Campaign.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__CampaignThirdPartyViewabilityIntegrationPartner"
          }
        },
        "brandSafetyIntegrationPartners": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__CampaignThirdPartyBrandSafetyIntegrationPartner"
          },
          "description": "Third party integration partners for brand safety verification for this Campaign."
        },
        "reachIntegrationPartners": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__CampaignThirdPartyReachIntegrationPartner"
          },
          "description": "Third party integration partners for reach verification for this Campaign.",
          "type": "array"
        },
        "brandLiftIntegrationPartners": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__CampaignThirdPartyBrandLiftIntegrationPartner"
          },
          "description": "Third party integration partners for Brand Lift verification for this Campaign."
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__CampaignThirdPartyIntegrationPartners",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__ListPlannableLocationsRequest": {
      "description": "Request message for ReachPlanService.ListPlannableLocations.",
      "properties": {
        "reachApplicationInfo": {
          "description": "Optional. Additional information on the application issuing the request.",
          "$ref": "GoogleAdsGoogleadsV24Common__AdditionalApplicationInfo"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__ListPlannableLocationsRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateLabelResult": {
      "description": "The result for a label mutate.",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        },
        "label": {
          "description": "The mutated label with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV24Resources__Label"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateLabelResult",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__Residency": {
      "id": "GoogleAdsGoogleadsV24Resources__Residency",
      "type": "object",
      "description": "Details about the employee's medical residency. Residency is a stage of graduate medical education in which a qualified medical professional practices under the supervision of a senior clinician.",
      "properties": {
        "institutionName": {
          "description": "Output only. Name of the institution at which the residency was completed.",
          "readOnly": true,
          "type": "string"
        },
        "completionYear": {
          "type": "integer",
          "description": "Output only. Year of completion.",
          "readOnly": true,
          "format": "int32"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__StoreAttribute": {
      "id": "GoogleAdsGoogleadsV24Common__StoreAttribute",
      "type": "object",
      "description": "Store attributes of the transaction.",
      "properties": {
        "storeCode": {
          "description": "Store code from https://support.google.com/business/answer/3370250#storecode",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__UnknownListingDimensionInfo": {
      "id": "GoogleAdsGoogleadsV24Common__UnknownListingDimensionInfo",
      "type": "object",
      "description": "Unknown listing dimension.",
      "properties": {}
    },
    "GoogleLongrunning__WaitOperationRequest": {
      "description": "The request message for Operations.WaitOperation.",
      "properties": {
        "timeout": {
          "description": "The maximum duration to wait before timing out. If left blank, the wait will be at most the time permitted by the underlying HTTP/RPC protocol. If RPC context deadline is also specified, the shorter one will be used.",
          "format": "google-duration",
          "type": "string"
        }
      },
      "id": "GoogleLongrunning__WaitOperationRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__GenderInfo": {
      "description": "A gender criterion.",
      "properties": {
        "type": {
          "type": "string",
          "description": "Type of the gender.",
          "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": "GoogleAdsGoogleadsV24Common__GenderInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateAssetGroupSignalsRequest": {
      "description": "Request message for AssetGroupSignalService.MutateAssetGroupSignals.",
      "properties": {
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__AssetGroupSignalOperation"
          },
          "description": "Required. The list of operations to perform on individual asset group signals."
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "responseContentType": {
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateAssetGroupSignalsRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__RunBatchJobRequest": {
      "id": "GoogleAdsGoogleadsV24Services__RunBatchJobRequest",
      "type": "object",
      "description": "Request message for BatchJobService.RunBatchJob.",
      "properties": {}
    },
    "GoogleAdsGoogleadsV24Services__YouTubeChannelInsights": {
      "description": "YouTube Channel insights, and its metadata (such as channel name and channel ID), returned for a creator insights response.",
      "properties": {
        "channelType": {
          "type": "string",
          "description": "Metadata string associated with the type of channel."
        },
        "channelDescription": {
          "type": "string",
          "description": "Description of the channel."
        },
        "publishDate": {
          "description": "The date that the channel was created. Formatted as \"yyyy-mm-dd\".",
          "type": "string"
        },
        "youtubeChannel": {
          "description": "The YouTube Channel ID.",
          "$ref": "GoogleAdsGoogleadsV24Common__YouTubeChannelInfo"
        },
        "displayName": {
          "description": "The name of the YouTube Channel.",
          "type": "string"
        },
        "relevanceScore": {
          "description": "The relevance score of the channel to the topic being searched for weighted by views. The value is between 0 and 1, with 1 being the most relevant. Only populated for trends using search_topics.",
          "format": "double",
          "type": "number"
        },
        "countryLocation": {
          "description": "The country with which the channel is associated.",
          "$ref": "GoogleAdsGoogleadsV24Common__LocationInfo"
        },
        "channelAudienceAttributes": {
          "description": "The types of audiences and demographics linked to the channel's main audience. Audiences and demographics have a breakdown of subscriber share across dimensions of the same value, such as Age Range, Gender, and User Interest.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AudienceInsightsAttributeMetadata"
          },
          "type": "array"
        },
        "channelMetrics": {
          "description": "The metrics for a YouTube Channel.",
          "$ref": "GoogleAdsGoogleadsV24Services__YouTubeMetrics"
        },
        "handle": {
          "description": "The unique, short, and user-visible identifier for the channel starting with an \"@\" symbol (such as \"@youtubecreators\"). See https://support.google.com/youtube/answer/11585688 for more information.",
          "type": "string"
        },
        "languageDistributions": {
          "type": "array",
          "description": "The languages associated with the content made by a channel.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__LanguageDistribution"
          }
        },
        "channelAttributes": {
          "type": "array",
          "description": "The attributes associated with the content made by a channel.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AudienceInsightsAttributeMetadata"
          }
        },
        "channelUrl": {
          "type": "string",
          "description": "URL for the channel in the form of https://www.youtube.com/channel/{channel_id}."
        },
        "thumbnailUrl": {
          "description": "URL for a 240px by 240px thumbnail image of the channel.",
          "type": "string"
        },
        "topVideos": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AudienceInsightsAttributeMetadata"
          },
          "description": "The top 10 videos for the channel.",
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__YouTubeChannelInsights",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateAssetGroupResult": {
      "id": "GoogleAdsGoogleadsV24Services__MutateAssetGroupResult",
      "type": "object",
      "description": "The result for the asset group mutate.",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_CoarseGrainedConversionValueMappings": {
      "description": "Mappings for coarse grained conversion values.",
      "properties": {
        "mediumConversionValueMapping": {
          "description": "Output only. Mapping for \"medium\" coarse conversion value.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_ConversionValueMapping"
        },
        "lowConversionValueMapping": {
          "description": "Output only. Mapping for \"low\" coarse conversion value.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_ConversionValueMapping"
        },
        "highConversionValueMapping": {
          "description": "Output only. Mapping for \"high\" coarse conversion value.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_ConversionValueMapping"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_CoarseGrainedConversionValueMappings",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__CampaignSimulation": {
      "description": "A campaign simulation. Supported combinations of advertising channel type, simulation type and simulation modification method is detailed below respectively. * SEARCH - CPC_BID - UNIFORM * SEARCH - CPC_BID - SCALING * SEARCH - TARGET_CPA - UNIFORM * SEARCH - TARGET_CPA - SCALING * SEARCH - TARGET_ROAS - UNIFORM * SEARCH - TARGET_IMPRESSION_SHARE - UNIFORM * SEARCH - BUDGET - UNIFORM * SHOPPING - BUDGET - UNIFORM * SHOPPING - TARGET_ROAS - UNIFORM * MULTI_CHANNEL - TARGET_CPA - UNIFORM * MULTI_CHANNEL - TARGET_ROAS - UNIFORM * DEMAND_GEN - TARGET_CPA - DEFAULT * DISPLAY - TARGET_CPA - UNIFORM * PERFORMANCE_MAX - TARGET_CPA - UNIFORM * PERFORMANCE_MAX - TARGET_ROAS - UNIFORM * PERFORMANCE_MAX - BUDGET - UNIFORM",
      "properties": {
        "modificationMethod": {
          "type": "string",
          "description": "Output only. How the simulation modifies the field.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The values in a simulation were applied to all children of a given resource uniformly. Overrides on child resources were not respected.",
            "The values in a simulation were applied to the given resource. Overrides on child resources were respected, and traffic estimates do not include these resources.",
            "The values in a simulation were all scaled by the same factor. For example, in a simulated TargetCpa campaign, the campaign target and all ad group targets were scaled by a factor of X."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "UNIFORM",
            "DEFAULT",
            "SCALING"
          ]
        },
        "cpcBidPointList": {
          "description": "Output only. Simulation points if the simulation type is CPC_BID.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Common__CpcBidSimulationPointList"
        },
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the campaign simulation. Campaign simulation resource names have the form: `customers/{customer_id}/campaignSimulations/{campaign_id}~{type}~{modification_method}~{start_date}~{end_date}`",
          "readOnly": true
        },
        "endDate": {
          "description": "Output only. Last day on which the simulation is based, in YYYY-MM-DD format",
          "readOnly": true,
          "type": "string"
        },
        "targetCpaPointList": {
          "description": "Output only. Simulation points if the simulation type is TARGET_CPA.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Common__TargetCpaSimulationPointList"
        },
        "targetRoasPointList": {
          "description": "Output only. Simulation points if the simulation type is TARGET_ROAS.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Common__TargetRoasSimulationPointList"
        },
        "campaignId": {
          "description": "Output only. Campaign id of the simulation.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "budgetPointList": {
          "description": "Output only. Simulation points if the simulation type is BUDGET.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Common__BudgetSimulationPointList"
        },
        "startDate": {
          "type": "string",
          "description": "Output only. First day on which the simulation is based, in YYYY-MM-DD format.",
          "readOnly": true
        },
        "targetImpressionSharePointList": {
          "description": "Output only. Simulation points if the simulation type is TARGET_IMPRESSION_SHARE.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Common__TargetImpressionShareSimulationPointList"
        },
        "type": {
          "description": "Output only. The field that the simulation modifies.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The simulation is for a CPC bid.",
            "The simulation is for a CPV bid.",
            "The simulation is for a CPA target.",
            "The simulation is for a bid modifier.",
            "The simulation is for a ROAS target.",
            "The simulation is for a percent CPC bid.",
            "The simulation is for an impression share target.",
            "The simulation is for a budget."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CPC_BID",
            "CPV_BID",
            "TARGET_CPA",
            "BID_MODIFIER",
            "TARGET_ROAS",
            "PERCENT_CPC_BID",
            "TARGET_IMPRESSION_SHARE",
            "BUDGET"
          ],
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__CampaignSimulation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__AdTextAsset": {
      "description": "A text asset used inside an ad.",
      "properties": {
        "text": {
          "description": "Asset text.",
          "type": "string"
        },
        "assetPerformanceLabel": {
          "type": "string",
          "description": "The performance label of this text asset.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "This asset does not yet have any performance informantion. This may be because it is still under review.",
            "The asset has started getting impressions but the stats are not statistically significant enough to get an asset performance label.",
            "Worst performing assets.",
            "Good performing assets.",
            "Best performing assets.",
            "Performance label cannot be assigned to this asset. This may be because it's not used by asset based creatives."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PENDING",
            "LEARNING",
            "LOW",
            "GOOD",
            "BEST",
            "NOT_APPLICABLE"
          ]
        },
        "policySummaryInfo": {
          "description": "The policy summary of this text asset.",
          "$ref": "GoogleAdsGoogleadsV24Common__AdAssetPolicySummary"
        },
        "pinnedField": {
          "type": "string",
          "description": "The pinned field of the asset. This restricts the asset to only serve within this field. Multiple assets can be pinned to the same field. An asset that is unpinned or pinned to a different field will not serve in a field where some other asset has been pinned.",
          "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"
          ]
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__AdTextAsset",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__AdGroup": {
      "id": "GoogleAdsGoogleadsV24Resources__AdGroup",
      "type": "object",
      "description": "An ad group.",
      "properties": {
        "trackingUrlTemplate": {
          "description": "The URL template for constructing a tracking URL.",
          "type": "string"
        },
        "targetingSetting": {
          "description": "Setting for targeting related features.",
          "$ref": "GoogleAdsGoogleadsV24Common__TargetingSetting"
        },
        "effectiveTargetCpaSource": {
          "description": "Output only. Source of the effective target CPA. This field is read-only.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Effective bid or target is inherited from campaign bidding strategy.",
            "The bid or target is defined on the ad group.",
            "The bid or target is defined on the ad group criterion."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CAMPAIGN_BIDDING_STRATEGY",
            "AD_GROUP",
            "AD_GROUP_CRITERION"
          ],
          "type": "string"
        },
        "verticalAdsFormatSetting": {
          "description": "Vertical ads setting feature to enable/disable ad group format controls in search campaigns. This setting requires AiMaxAdGroupSetting to be enabled and a travel feed to be attached to the campaign.",
          "$ref": "GoogleAdsGoogleadsV24Resources_AdGroup_VerticalAdsFormatSetting"
        },
        "adRotationMode": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "OPTIMIZE",
            "ROTATE_FOREVER"
          ],
          "description": "The ad rotation mode of the ad group.",
          "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."
          ]
        },
        "baseAdGroup": {
          "type": "string",
          "description": "Output only. For draft or experiment ad groups, this field is the resource name of the base ad group from which this ad group was created. If a draft or experiment ad group does not have a base ad group, then this field is null. For base ad groups, this field equals the ad group resource name. This field is read-only.",
          "readOnly": true
        },
        "type": {
          "type": "string",
          "description": "Immutable. The type of the ad group.",
          "enumDescriptions": [
            "The type has not been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The default ad group type for Search campaigns.",
            "The default ad group type for Display campaigns.",
            "The ad group type for Shopping campaigns serving standard product ads.",
            "The default ad group type for Hotel campaigns.",
            "The type for ad groups in Smart Shopping campaigns.",
            "Short unskippable in-stream video ads.",
            "TrueView (skippable) in-stream video ads.",
            "TrueView in-display video ads.",
            "Unskippable in-stream video ads.",
            "Ad group type for Dynamic Search Ads ad groups.",
            "The type for ad groups in Shopping Comparison Listing campaigns.",
            "The ad group type for Promoted Hotel ad groups.",
            "Video responsive ad groups.",
            "Video efficient reach ad groups.",
            "Ad group type for Smart campaigns.",
            "Ad group type for Travel campaigns.",
            "Ad group type for YouTube Audio campaigns."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SEARCH_STANDARD",
            "DISPLAY_STANDARD",
            "SHOPPING_PRODUCT_ADS",
            "HOTEL_ADS",
            "SHOPPING_SMART_ADS",
            "VIDEO_BUMPER",
            "VIDEO_TRUE_VIEW_IN_STREAM",
            "VIDEO_TRUE_VIEW_IN_DISPLAY",
            "VIDEO_NON_SKIPPABLE_IN_STREAM",
            "SEARCH_DYNAMIC_ADS",
            "SHOPPING_COMPARISON_LISTING_ADS",
            "PROMOTED_HOTEL_ADS",
            "VIDEO_RESPONSIVE",
            "VIDEO_EFFICIENT_REACH",
            "SMART_CAMPAIGN_ADS",
            "TRAVEL_ADS",
            "YOUTUBE_AUDIO"
          ]
        },
        "percentCpcBidMicros": {
          "type": "string",
          "description": "The percent cpc bid amount, expressed as a fraction of the advertised price for some good or service. The valid range for the fraction is [0,1) and the value stored here is 1,000,000 * [fraction].",
          "format": "int64"
        },
        "labels": {
          "description": "Output only. The resource names of labels attached to this ad group.",
          "readOnly": true,
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "excludedParentAssetFieldTypes": {
          "type": "array",
          "description": "The asset field types that should be excluded from this ad group. Asset links with these field types will not be inherited by this ad group from the upper levels.",
          "items": {
            "type": "string",
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "HEADLINE",
              "DESCRIPTION",
              "MANDATORY_AD_TEXT",
              "MARKETING_IMAGE",
              "MEDIA_BUNDLE",
              "YOUTUBE_VIDEO",
              "BOOK_ON_GOOGLE",
              "LEAD_FORM",
              "PROMOTION",
              "CALLOUT",
              "STRUCTURED_SNIPPET",
              "SITELINK",
              "MOBILE_APP",
              "HOTEL_CALLOUT",
              "CALL",
              "PRICE",
              "LONG_HEADLINE",
              "BUSINESS_NAME",
              "SQUARE_MARKETING_IMAGE",
              "PORTRAIT_MARKETING_IMAGE",
              "LOGO",
              "LANDSCAPE_LOGO",
              "VIDEO",
              "CALL_TO_ACTION_SELECTION",
              "AD_IMAGE",
              "BUSINESS_LOGO",
              "HOTEL_PROPERTY",
              "DEMAND_GEN_CAROUSEL_CARD",
              "BUSINESS_MESSAGE",
              "TALL_PORTRAIT_MARKETING_IMAGE",
              "RELATED_YOUTUBE_VIDEOS",
              "LANDING_PAGE_PREVIEW",
              "LONG_DESCRIPTION",
              "CALL_TO_ACTION"
            ],
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "The asset is linked for use as a headline.",
              "The asset is linked for use as a description.",
              "The asset is linked for use as mandatory ad text.",
              "The asset is linked for use as a marketing image.",
              "The asset is linked for use as a media bundle.",
              "The asset is linked for use as a YouTube video.",
              "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
              "The asset is linked for use as a Lead Form extension.",
              "The asset is linked for use as a Promotion extension.",
              "The asset is linked for use as a Callout extension.",
              "The asset is linked for use as a Structured Snippet extension.",
              "The asset is linked for use as a Sitelink.",
              "The asset is linked for use as a Mobile App extension.",
              "The asset is linked for use as a Hotel Callout extension.",
              "The asset is linked for use as a Call extension.",
              "The asset is linked for use as a Price extension.",
              "The asset is linked for use as a long headline.",
              "The asset is linked for use as a business name.",
              "The asset is linked for use as a square marketing image.",
              "The asset is linked for use as a portrait marketing image.",
              "The asset is linked for use as a logo.",
              "The asset is linked for use as a landscape logo.",
              "The asset is linked for use as a non YouTube logo.",
              "The asset is linked for use to select a call-to-action.",
              "The asset is linked for use to select an ad image.",
              "The asset is linked for use as a business logo.",
              "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
              "The asset is linked for use as a Demand Gen carousel card.",
              "The asset is linked for use as a Business Message.",
              "The asset is linked for use as a tall portrait marketing image.",
              "The asset is linked for use as related YouTube videos.",
              "The asset is linked for use as a landing page preview image.",
              "The asset is linked for use as a long description.",
              "The asset is linked for use as a call-to-action."
            ]
          }
        },
        "displayCustomBidDimension": {
          "type": "string",
          "description": "Lets advertisers specify a targeting dimension on which to place absolute bids. This is only applicable for campaigns that target only the display network and not search.",
          "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"
          ]
        },
        "effectiveTargetRoas": {
          "type": "number",
          "description": "Output only. The effective target ROAS (return-on-ad-spend). This field is read-only.",
          "readOnly": true,
          "format": "double"
        },
        "excludeDemographicExpansion": {
          "description": "When this value is true, demographics will be excluded from the types of targeting which are expanded when optimized_targeting_enabled is true. When optimized_targeting_enabled is false, this field is ignored. Default is false.",
          "type": "boolean"
        },
        "effectiveTargetCpc": {
          "type": "string",
          "description": "Output only. The effective target CPC (cost-per-click). This field is read-only.",
          "readOnly": true,
          "format": "int64"
        },
        "status": {
          "description": "The status of the ad group.",
          "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"
          ],
          "type": "string"
        },
        "campaign": {
          "type": "string",
          "description": "Immutable. The campaign to which the ad group belongs."
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the ad group. Ad group resource names have the form: `customers/{customer_id}/adGroups/{ad_group_id}`"
        },
        "fixedCpmMicros": {
          "type": "string",
          "description": "The fixed amount in micros that the advertiser pays for every thousand impressions of the ad.",
          "format": "int64"
        },
        "optimizedTargetingEnabled": {
          "description": "True if optimized targeting is enabled. Optimized Targeting is the replacement for Audience Expansion.",
          "type": "boolean"
        },
        "videoAdGroupSettings": {
          "description": "Settings for video ad groups.",
          "$ref": "GoogleAdsGoogleadsV24Resources_AdGroup_VideoAdGroupSettings"
        },
        "urlCustomParameters": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__CustomParameter"
          },
          "description": "The list of mappings used to substitute custom parameter tags in a `tracking_url_template`, `final_urls`, or `mobile_final_urls`."
        },
        "cpcBidMicros": {
          "description": "The maximum CPC (cost-per-click) bid. This field is used when the ad group's effective bidding strategy is Manual CPC. This field is not applicable and will be ignored if the ad group's campaign is using a portfolio bidding strategy.",
          "format": "int64",
          "type": "string"
        },
        "targetCpvMicros": {
          "description": "Average amount in micros that the advertiser is willing to pay for every ad view.",
          "format": "int64",
          "type": "string"
        },
        "cpvBidMicros": {
          "description": "The CPV (cost-per-view) bid.",
          "format": "int64",
          "type": "string"
        },
        "id": {
          "description": "Output only. The ID of the ad group.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "targetCpaMicros": {
          "description": "The target CPA (cost-per-acquisition). If the ad group's campaign bidding strategy is TargetCpa or MaximizeConversions (with its target_cpa field set), then this field overrides the target CPA specified in the campaign's bidding strategy. Otherwise, this value is ignored.",
          "format": "int64",
          "type": "string"
        },
        "targetRoas": {
          "type": "number",
          "description": "The target ROAS (return-on-ad-spend) for this ad group. This field lets you override the target ROAS specified in the campaign's bidding strategy, but only if the campaign is using a standard (not portfolio) `TargetRoas` strategy or a standard `MaximizeConversionValue` strategy with its `target_roas` field set. If the campaign is using a portfolio bidding strategy, this field cannot be set and attempting to do so will result in an error. For any other bidding strategies, this value is ignored. To see the actual target ROAS being used by the ad group, considering potential overrides, query the `effective_target_roas` and `effective_target_roas_source` fields.",
          "format": "double"
        },
        "finalUrlSuffix": {
          "description": "URL template for appending params to Final URL.",
          "type": "string"
        },
        "cpmBidMicros": {
          "type": "string",
          "description": "The maximum CPM (cost-per-thousand viewable impressions) bid.",
          "format": "int64"
        },
        "excludedParentAssetSetTypes": {
          "items": {
            "type": "string",
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "PAGE_FEED",
              "DYNAMIC_EDUCATION",
              "MERCHANT_CENTER_FEED",
              "DYNAMIC_REAL_ESTATE",
              "DYNAMIC_CUSTOM",
              "DYNAMIC_HOTELS_AND_RENTALS",
              "DYNAMIC_FLIGHTS",
              "DYNAMIC_TRAVEL",
              "DYNAMIC_LOCAL",
              "DYNAMIC_JOBS",
              "LOCATION_SYNC",
              "BUSINESS_PROFILE_DYNAMIC_LOCATION_GROUP",
              "CHAIN_DYNAMIC_LOCATION_GROUP",
              "STATIC_LOCATION_GROUP",
              "HOTEL_PROPERTY",
              "TRAVEL_FEED"
            ],
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "Page asset set.",
              "Dynamic education asset set.",
              "Google Merchant Center asset set.",
              "Dynamic real estate asset set.",
              "Dynamic custom asset set.",
              "Dynamic hotels and rentals asset set.",
              "Dynamic flights asset set.",
              "Dynamic travel asset set.",
              "Dynamic local asset set.",
              "Dynamic jobs asset set.",
              "Location sync level asset set.",
              "Business Profile location group asset set.",
              "Chain location group asset set which can be used for both owned locations and affiliate locations.",
              "Static location group asset set which can be used for both owned locations and affiliate locations.",
              "Hotel Property asset set which is used to link a hotel property feed to Performance Max for travel goals campaigns.",
              "Travel Feed asset set type. Can represent either a Hotel feed or a Things to Do (activities) feed."
            ]
          },
          "description": "The asset set types that should be excluded from this ad group. Asset set links with these types will not be inherited by this ad group from the upper levels. Location group types (GMB_DYNAMIC_LOCATION_GROUP, CHAIN_DYNAMIC_LOCATION_GROUP, and STATIC_LOCATION_GROUP) are child types of LOCATION_SYNC. Therefore, if LOCATION_SYNC is set for this field, all location group asset sets are not allowed to be linked to this ad group, and all Location Extension (LE) and Affiliate Location Extensions (ALE) will not be served under this ad group. Only LOCATION_SYNC is currently supported.",
          "type": "array"
        },
        "aiMaxAdGroupSetting": {
          "description": "Settings for AI Max feature in standard search adgroups.",
          "$ref": "GoogleAdsGoogleadsV24Resources_AdGroup_AiMaxAdGroupSetting"
        },
        "effectiveTargetCpaMicros": {
          "type": "string",
          "description": "Output only. The effective target CPA (cost-per-acquisition). This field is read-only.",
          "readOnly": true,
          "format": "int64"
        },
        "name": {
          "type": "string",
          "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."
        },
        "targetCpcMicros": {
          "type": "string",
          "description": "Average amount in micros that the advertiser is willing to pay for every ad click. Overrides the target CPC configured at the campaign level.",
          "format": "int64"
        },
        "primaryStatusReasons": {
          "items": {
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "The user-specified campaign status is removed. Contributes to AdGroupPrimaryStatus.NOT_ELIGIBLE.",
              "The user-specified campaign status is paused. Contributes to AdGroupPrimaryStatus.NOT_ELIGIBLE.",
              "The user-specified time for this campaign to start is in the future. Contributes to AdGroupPrimaryStatus.NOT_ELIGIBLE",
              "The user-specified time for this campaign to end has passed. Contributes to AdGroupPrimaryStatus.NOT_ELIGIBLE.",
              "The user-specified ad group status is paused. Contributes to AdGroupPrimaryStatus.PAUSED.",
              "The user-specified ad group status is removed. Contributes to AdGroupPrimaryStatus.REMOVED.",
              "The construction of this ad group is not yet complete. Contributes to AdGroupPrimaryStatus.NOT_ELIGIBLE.",
              "The user-specified keyword statuses in this ad group are all paused. Contributes to AdGroupPrimaryStatus.NOT_ELIGIBLE.",
              "No eligible keywords exist in this ad group. Contributes to AdGroupPrimaryStatus.NOT_ELIGIBLE.",
              "The user-specified ad group ads statuses in this ad group are all paused. Contributes to AdGroupPrimaryStatus.NOT_ELIGIBLE.",
              "No eligible ad group ads exist in this ad group. Contributes to AdGroupPrimaryStatus.NOT_ELIGIBLE.",
              "Policy status reason when at least one ad is disapproved. Contributes to multiple AdGroupPrimaryStatus.",
              "Policy status reason when at least one ad is limited by policy. Contributes to multiple AdGroupPrimaryStatus.",
              "Policy status reason when most ads are pending review. Contributes to AdGroupPrimaryStatus.PENDING.",
              "The AdGroup belongs to a Draft campaign. Contributes to AdGroupPrimaryStatus.NOT_ELIGIBLE.",
              "Ad group has been paused due to prolonged low activity in serving. Contributes to AdGroupPrimaryStatus.PAUSED."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "CAMPAIGN_REMOVED",
              "CAMPAIGN_PAUSED",
              "CAMPAIGN_PENDING",
              "CAMPAIGN_ENDED",
              "AD_GROUP_PAUSED",
              "AD_GROUP_REMOVED",
              "AD_GROUP_INCOMPLETE",
              "KEYWORDS_PAUSED",
              "NO_KEYWORDS",
              "AD_GROUP_ADS_PAUSED",
              "NO_AD_GROUP_ADS",
              "HAS_ADS_DISAPPROVED",
              "HAS_ADS_LIMITED_BY_POLICY",
              "MOST_ADS_UNDER_REVIEW",
              "CAMPAIGN_DRAFT",
              "AD_GROUP_PAUSED_DUE_TO_LOW_ACTIVITY"
            ],
            "type": "string"
          },
          "description": "Output only. Provides reasons for why an ad group is not serving or not serving optimally.",
          "readOnly": true,
          "type": "array"
        },
        "effectiveCpcBidMicros": {
          "type": "string",
          "description": "Output only. Value will be same as that of the CPC (cost-per-click) bid value when the bidding strategy is one of manual cpc, enhanced cpc, page one promoted or target outrank share, otherwise the value will be null.",
          "readOnly": true,
          "format": "int64"
        },
        "targetCpmMicros": {
          "type": "string",
          "description": "Average amount in micros that the advertiser is willing to pay for every thousand times the ad is shown.",
          "format": "int64"
        },
        "effectiveTargetCpcSource": {
          "type": "string",
          "description": "Output only. Source of the effective target CPC. This field is read-only.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Effective bid or target is inherited from campaign bidding strategy.",
            "The bid or target is defined on the ad group.",
            "The bid or target is defined on the ad group criterion."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CAMPAIGN_BIDDING_STRATEGY",
            "AD_GROUP",
            "AD_GROUP_CRITERION"
          ]
        },
        "effectiveTargetRoasSource": {
          "description": "Output only. Source of the effective target ROAS. This field is read-only.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Effective bid or target is inherited from campaign bidding strategy.",
            "The bid or target is defined on the ad group.",
            "The bid or target is defined on the ad group criterion."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CAMPAIGN_BIDDING_STRATEGY",
            "AD_GROUP",
            "AD_GROUP_CRITERION"
          ],
          "type": "string"
        },
        "audienceSetting": {
          "description": "Immutable. Setting for audience related features.",
          "$ref": "GoogleAdsGoogleadsV24Resources_AdGroup_AudienceSetting"
        },
        "primaryStatus": {
          "description": "Output only. Provides aggregated view into why an ad group is not serving or not serving optimally.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The ad group is eligible to serve.",
            "The ad group is paused.",
            "The ad group is removed.",
            "The ad group may serve in the future.",
            "The ad group is not eligible to serve.",
            "The ad group has limited servability."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ELIGIBLE",
            "PAUSED",
            "REMOVED",
            "PENDING",
            "NOT_ELIGIBLE",
            "LIMITED"
          ],
          "type": "string"
        },
        "demandGenAdGroupSettings": {
          "description": "Settings for Demand Gen ad groups.",
          "$ref": "GoogleAdsGoogleadsV24Resources_AdGroup_DemandGenAdGroupSettings"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__ProductMetadata": {
      "description": "The metadata associated with an available plannable product.",
      "properties": {
        "plannableTargeting": {
          "description": "The allowed plannable targeting for this product.",
          "$ref": "GoogleAdsGoogleadsV24Services__PlannableTargeting"
        },
        "plannableProductName": {
          "description": "The name associated with the ad product. For example: \"Video View Campaign\".",
          "type": "string"
        },
        "plannableProductDescription": {
          "type": "string",
          "description": "The plain-text description of the ad product. For example: \"Video view campaign allows you to plan for a configurable mix of skippable in-stream, in-feed, and Shorts video ads in a single campaign designed to drive more views.\""
        },
        "plannableProductCode": {
          "description": "The code associated with the ad product. For example: \"VIDEO_VIEW_CAMPAIGN\". To list the available plannable product codes use ReachPlanService.ListPlannableProducts.",
          "type": "string"
        },
        "plannableProductCoreAttributes": {
          "description": "Descriptive attributes of the ad product to further describe its capabilities.",
          "$ref": "GoogleAdsGoogleadsV24Services__ProductCoreAttributes"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__ProductMetadata",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__TargetRoas": {
      "id": "GoogleAdsGoogleadsV24Common__TargetRoas",
      "type": "object",
      "description": "An automated bidding strategy that helps you maximize revenue while averaging a specific target return on ad spend (ROAS).",
      "properties": {
        "cpcBidFloorMicros": {
          "type": "string",
          "description": "Minimum bid limit that can be set by the bid strategy. The limit applies to all keywords managed by the strategy. This should only be set for portfolio bid strategies.",
          "format": "int64"
        },
        "targetRoas": {
          "type": "number",
          "description": "Required. The chosen revenue (based on conversion data) per unit of spend. Value must be between 0.01 and 1000.0, inclusive.",
          "format": "double"
        },
        "cpcBidCeilingMicros": {
          "description": "Maximum bid limit that can be set by the bid strategy. The limit applies to all keywords managed by the strategy. This should only be set for portfolio bid strategies.",
          "format": "int64",
          "type": "string"
        },
        "targetRoasTolerancePercentMillis": {
          "description": "The percent of ROAS(return on advertising spend) degradation tolerance allowed to increase traffic diversity and conversion volume, specified in millis (for example, 10,000 = 10%). A value of 10,000 means that the advertiser can expect ROAS degradation of up to 10% of the specified target ROAS. This field is only mutable for portfolio bidding strategies.",
          "format": "int64",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__AppTopCombinationView": {
      "id": "GoogleAdsGoogleadsV24Resources__AppTopCombinationView",
      "type": "object",
      "description": "A view resource in the App Top Combination Report.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the app top combination view. App Top Combination view resource names have the form: `customers/{customer_id}/appTopCombinationViews/{ad_group_id}~{ad_id}~{asset_combination_category}`",
          "readOnly": true
        },
        "adGroupTopCombinations": {
          "description": "Output only. The top combinations of assets that served together.",
          "readOnly": true,
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Resources__AdGroupCreativeAssetCombinationData"
          },
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateSharedCriteriaRequest": {
      "description": "Request message for SharedCriterionService.MutateSharedCriteria.",
      "properties": {
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "operations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__SharedCriterionOperation"
          },
          "description": "Required. The list of operations to perform on individual shared criteria.",
          "type": "array"
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "responseContentType": {
          "type": "string",
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ]
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateSharedCriteriaRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateOperationResponse": {
      "description": "Response message for the resource mutate or action.",
      "properties": {
        "assetGroupAssetResult": {
          "description": "The result for the asset group asset mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateAssetGroupAssetResult"
        },
        "conversionActionResult": {
          "description": "The result for the conversion action mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateConversionActionResult"
        },
        "adGroupResult": {
          "description": "The result for the ad group mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateAdGroupResult"
        },
        "keywordPlanCampaignResult": {
          "description": "The result for the keyword plan campaign mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateKeywordPlanCampaignResult"
        },
        "biddingSeasonalityAdjustmentResult": {
          "description": "The result for the bidding seasonality adjustment mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateBiddingSeasonalityAdjustmentsResult"
        },
        "remarketingActionResult": {
          "description": "The result for the remarketing action mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateRemarketingActionResult"
        },
        "customerNegativeCriterionResult": {
          "description": "The result for the customer negative criterion mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomerNegativeCriteriaResult"
        },
        "campaignCustomizerResult": {
          "description": "The result for the campaign customizer mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateCampaignCustomizerResult"
        },
        "adGroupBidModifierResult": {
          "description": "The result for the ad group bid modifier mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateAdGroupBidModifierResult"
        },
        "campaignSharedSetResult": {
          "description": "The result for the campaign shared set mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateCampaignSharedSetResult"
        },
        "adGroupCriterionLabelResult": {
          "description": "The result for the ad group criterion label mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateAdGroupCriterionLabelResult"
        },
        "assetSetResult": {
          "description": "The result for the asset set mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateAssetSetResult"
        },
        "labelResult": {
          "description": "The result for the label mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateLabelResult"
        },
        "customerResult": {
          "description": "The result for the customer mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomerResult"
        },
        "customerConversionGoalResult": {
          "description": "The result for the customer conversion goal mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomerConversionGoalResult"
        },
        "sharedCriterionResult": {
          "description": "The result for the shared criterion mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateSharedCriterionResult"
        },
        "adParameterResult": {
          "description": "The result for the ad parameter mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateAdParameterResult"
        },
        "assetGroupResult": {
          "description": "The result for the asset group mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateAssetGroupResult"
        },
        "adGroupAdResult": {
          "description": "The result for the ad group ad mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateAdGroupAdResult"
        },
        "conversionValueRuleResult": {
          "description": "The result for the conversion value rule mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateConversionValueRuleResult"
        },
        "audienceResult": {
          "description": "The result for the audience mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateAudienceResult"
        },
        "adGroupCriterionResult": {
          "description": "The result for the ad group criterion mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateAdGroupCriterionResult"
        },
        "campaignBidModifierResult": {
          "description": "The result for the campaign bid modifier mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateCampaignBidModifierResult"
        },
        "adResult": {
          "description": "The result for the ad mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateAdResult"
        },
        "experimentResult": {
          "description": "The result for the experiment mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateExperimentResult"
        },
        "smartCampaignSettingResult": {
          "description": "The result for the Smart campaign setting mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateSmartCampaignSettingResult"
        },
        "recommendationSubscriptionResult": {
          "description": "The result for the recommendation subscription mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateRecommendationSubscriptionResult"
        },
        "customerLabelResult": {
          "description": "The result for the customer label mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomerLabelResult"
        },
        "campaignGroupResult": {
          "description": "The result for the campaign group mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateCampaignGroupResult"
        },
        "keywordPlanResult": {
          "description": "The result for the keyword plan mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateKeywordPlansResult"
        },
        "adGroupAssetResult": {
          "description": "The result for the ad group asset mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateAdGroupAssetResult"
        },
        "conversionValueRuleSetResult": {
          "description": "The result for the conversion value rule set mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateConversionValueRuleSetResult"
        },
        "campaignBudgetResult": {
          "description": "The result for the campaign budget mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateCampaignBudgetResult"
        },
        "customerAssetResult": {
          "description": "The result for the customer asset mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomerAssetResult"
        },
        "keywordPlanAdGroupResult": {
          "description": "The result for the keyword plan ad group mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateKeywordPlanAdGroupResult"
        },
        "assetGroupListingGroupFilterResult": {
          "description": "The result for the asset group listing group filter mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateAssetGroupListingGroupFilterResult"
        },
        "assetSetAssetResult": {
          "description": "The result for the asset set asset mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateAssetSetAssetResult"
        },
        "experimentArmResult": {
          "description": "The result for the experiment arm mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateExperimentArmResult"
        },
        "campaignAssetSetResult": {
          "description": "The result for the campaign asset set mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateCampaignAssetSetResult"
        },
        "campaignResult": {
          "description": "The result for the campaign mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateCampaignResult"
        },
        "adGroupCustomizerResult": {
          "description": "The result for the ad group customizer mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateAdGroupCustomizerResult"
        },
        "customizerAttributeResult": {
          "description": "The result for the customizer attribute mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomizerAttributeResult"
        },
        "customConversionGoalResult": {
          "description": "The result for the custom conversion goal mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomConversionGoalResult"
        },
        "biddingDataExclusionResult": {
          "description": "The result for the bidding data exclusion mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateBiddingDataExclusionsResult"
        },
        "adGroupAdLabelResult": {
          "description": "The result for the ad group ad label mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateAdGroupAdLabelResult"
        },
        "conversionCustomVariableResult": {
          "description": "The result for the conversion custom variable mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateConversionCustomVariableResult"
        },
        "assetResult": {
          "description": "The result for the asset mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateAssetResult"
        },
        "keywordPlanCampaignKeywordResult": {
          "description": "The result for the keyword plan campaign keyword mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateKeywordPlanCampaignKeywordResult"
        },
        "customerCustomizerResult": {
          "description": "The result for the customer customizer mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomerCustomizerResult"
        },
        "campaignAssetResult": {
          "description": "The result for the campaign asset mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateCampaignAssetResult"
        },
        "userListResult": {
          "description": "The result for the user list mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateUserListResult"
        },
        "biddingStrategyResult": {
          "description": "The result for the bidding strategy mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateBiddingStrategyResult"
        },
        "campaignDraftResult": {
          "description": "The result for the campaign draft mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateCampaignDraftResult"
        },
        "conversionGoalCampaignConfigResult": {
          "description": "The result for the conversion goal campaign config mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateConversionGoalCampaignConfigResult"
        },
        "quoteCampaignsResult": {
          "description": "The result for the QuoteCampaigns action.",
          "$ref": "GoogleAdsGoogleadsV24Actions__QuoteCampaignsResult"
        },
        "assetGroupSignalResult": {
          "description": "The result for the asset group signal mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateAssetGroupSignalResult"
        },
        "bookCampaignsResult": {
          "description": "The result for the BookCampaigns action.",
          "$ref": "GoogleAdsGoogleadsV24Actions__BookCampaignsResult"
        },
        "keywordPlanAdGroupKeywordResult": {
          "description": "The result for the keyword plan ad group keyword mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateKeywordPlanAdGroupKeywordResult"
        },
        "campaignConversionGoalResult": {
          "description": "The result for the campaign conversion goal mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateCampaignConversionGoalResult"
        },
        "campaignLabelResult": {
          "description": "The result for the campaign label mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateCampaignLabelResult"
        },
        "sharedSetResult": {
          "description": "The result for the shared set mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateSharedSetResult"
        },
        "adGroupLabelResult": {
          "description": "The result for the ad group label mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateAdGroupLabelResult"
        },
        "adGroupCriterionCustomizerResult": {
          "description": "The result for the ad group criterion customizer mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateAdGroupCriterionCustomizerResult"
        },
        "campaignCriterionResult": {
          "description": "The result for the campaign criterion mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateCampaignCriterionResult"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateOperationResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__AssetGroupTopCombinationView": {
      "description": "A view on the usage of asset group asset top combinations.",
      "properties": {
        "assetGroupTopCombinations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Resources__AssetGroupAssetCombinationData"
          },
          "description": "Output only. The top combinations of assets that served together.",
          "readOnly": true,
          "type": "array"
        },
        "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"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__AssetGroupTopCombinationView",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateCustomizerAttributesRequest": {
      "id": "GoogleAdsGoogleadsV24Services__MutateCustomizerAttributesRequest",
      "type": "object",
      "description": "Request message for CustomizerAttributeService.MutateCustomizerAttributes.",
      "properties": {
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "operations": {
          "description": "Required. The list of operations to perform on individual customizer attributes.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__CustomizerAttributeOperation"
          },
          "type": "array"
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "responseContentType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__LocationGroupInfo": {
      "description": "A radius around a list of locations specified through a feed or assetSet.",
      "properties": {
        "radiusUnits": {
          "type": "string",
          "description": "Unit of the radius. Miles and meters are supported for geo target constants. Milli miles and meters are supported for feed item sets and asset sets. This is required and must be set in CREATE operations.",
          "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"
          ]
        },
        "radius": {
          "description": "Distance in units specifying the radius around targeted locations. This is required and must be set in CREATE operations.",
          "format": "int64",
          "type": "string"
        },
        "enableCustomerLevelLocationAssetSet": {
          "type": "boolean",
          "description": "Denotes that the latest customer level asset set is used for targeting. Used with radius and radius_units. Cannot be used with feed, geo target constants or feed item sets. When using asset sets, either this field or location_group_asset_sets should be specified. Both cannot be used at the same time. This can only be set in CREATE operations."
        },
        "geoTargetConstants": {
          "type": "array",
          "description": "Geo target constant(s) restricting the scope of the geographic area within the feed. Currently only one geo target constant is allowed. Cannot be set with AssetSet fields.",
          "items": {
            "type": "string"
          }
        },
        "locationGroupAssetSets": {
          "description": "AssetSets whose Assets are targeted. If multiple IDs are specified, then all items that appear in at least one set are targeted. This field cannot be used with feed, geo target constants or feed item sets. When using asset sets, either this field or enable_customer_level_location_asset_set should be specified. Both cannot be used at the same time. This can only be set in CREATE operations.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "feedItemSets": {
          "items": {
            "type": "string"
          },
          "description": "FeedItemSets whose FeedItems are targeted. If multiple IDs are specified, then all items that appear in at least one set are targeted. This field cannot be used with geo_target_constants. This is optional and can only be set in CREATE operations. Cannot be set with AssetSet fields.",
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__LocationGroupInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateRemarketingActionResult": {
      "id": "GoogleAdsGoogleadsV24Services__MutateRemarketingActionResult",
      "type": "object",
      "description": "The result for the remarketing action mutate.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__TargetCpa": {
      "id": "GoogleAdsGoogleadsV24Common__TargetCpa",
      "type": "object",
      "description": "An automated bid strategy that sets bids to help get as many conversions as possible at the target cost-per-acquisition (CPA) you set.",
      "properties": {
        "targetCpaMicros": {
          "type": "string",
          "description": "Average CPA target. This target should be greater than or equal to minimum billable unit based on the currency for the account.",
          "format": "int64"
        },
        "cpcBidFloorMicros": {
          "description": "Minimum bid limit that can be set by the bid strategy. The limit applies to all keywords managed by the strategy. This should only be set for portfolio bid strategies.",
          "format": "int64",
          "type": "string"
        },
        "cpcBidCeilingMicros": {
          "description": "Maximum bid limit that can be set by the bid strategy. The limit applies to all keywords managed by the strategy. This should only be set for portfolio bid strategies.",
          "format": "int64",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__GroupPlacementView": {
      "description": "A group placement view.",
      "properties": {
        "displayName": {
          "description": "Output only. Domain name for websites and YouTube channel name for YouTube channels.",
          "readOnly": true,
          "type": "string"
        },
        "placementType": {
          "type": "string",
          "description": "Output only. Type of the placement, for example, Website, YouTube Channel, Mobile Application.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Websites(for example, 'www.flowers4sale.com').",
            "Mobile application categories(for example, 'Games').",
            "mobile applications(for example, 'mobileapp::2-com.whatsthewordanswers').",
            "YouTube videos(for example, 'youtube.com/video/wtLJPvx7-ys').",
            "YouTube channels(for example, 'youtube.com::L8ZULXASCc1I_oaOT0NaOQ').",
            "Surfaces owned and operated by Google(for example, 'tv.google.com')."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "WEBSITE",
            "MOBILE_APP_CATEGORY",
            "MOBILE_APPLICATION",
            "YOUTUBE_VIDEO",
            "YOUTUBE_CHANNEL",
            "GOOGLE_PRODUCTS"
          ]
        },
        "targetUrl": {
          "description": "Output only. URL of the group placement, for example, domain, link to the mobile application in app store, or a YouTube channel URL.",
          "readOnly": true,
          "type": "string"
        },
        "placement": {
          "description": "Output only. The automatic placement string at group level, e. g. web domain, mobile app ID, or a YouTube channel ID.",
          "readOnly": true,
          "type": "string"
        },
        "resourceName": {
          "description": "Output only. The resource name of the group placement view. Group placement view resource names have the form: `customers/{customer_id}/groupPlacementViews/{ad_group_id}~{base64_placement}`",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__GroupPlacementView",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__KeywordAnnotations": {
      "id": "GoogleAdsGoogleadsV24Common__KeywordAnnotations",
      "type": "object",
      "description": "The annotations for the keyword plan keywords.",
      "properties": {
        "concepts": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__KeywordConcept"
          },
          "description": "The list of concepts for the keyword.",
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__AdGroupCustomizer": {
      "description": "A customizer value for the associated CustomizerAttribute at the AdGroup level.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the ad group customizer. Ad group customizer resource names have the form: `customers/{customer_id}/adGroupCustomizers/{ad_group_id}~{customizer_attribute_id}`"
        },
        "customizerAttribute": {
          "description": "Required. Immutable. The customizer attribute which is linked to the ad group.",
          "type": "string"
        },
        "value": {
          "description": "Required. The value to associate with the customizer attribute at this level. The value must be of the type specified for the CustomizerAttribute.",
          "$ref": "GoogleAdsGoogleadsV24Common__CustomizerValue"
        },
        "status": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "description": "Output only. The status of the ad group customizer.",
          "readOnly": true,
          "enumDescriptions": [
            "The status has not been specified.",
            "The received value is not known in this version.",
            "The customizer value is enabled.",
            "The customizer value is removed."
          ],
          "type": "string"
        },
        "adGroup": {
          "type": "string",
          "description": "Immutable. The ad group to which the customizer attribute is linked."
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__AdGroupCustomizer",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__CustomerSkAdNetworkConversionValueSchemaOperation": {
      "description": "A single update operation for a CustomerSkAdNetworkConversionValueSchema.",
      "properties": {
        "update": {
          "description": "Update operation: The schema is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CustomerSkAdNetworkConversionValueSchema"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__CustomerSkAdNetworkConversionValueSchemaOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__AdGroupBidModifier": {
      "id": "GoogleAdsGoogleadsV24Resources__AdGroupBidModifier",
      "type": "object",
      "description": "Represents an ad group bid modifier.",
      "properties": {
        "hotelDateSelectionType": {
          "description": "Immutable. Criterion for hotel date selection (default dates versus user selected).",
          "$ref": "GoogleAdsGoogleadsV24Common__HotelDateSelectionTypeInfo"
        },
        "bidModifierSource": {
          "type": "string",
          "description": "Output only. Bid modifier source.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The bid modifier is specified at the campaign level, on the campaign level criterion.",
            "The bid modifier is specified (overridden) at the ad group level."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CAMPAIGN",
            "AD_GROUP"
          ]
        },
        "hotelCheckInDateRange": {
          "description": "Immutable. Criterion for a hotel check-in date range.",
          "$ref": "GoogleAdsGoogleadsV24Common__HotelCheckInDateRangeInfo"
        },
        "adGroup": {
          "description": "Immutable. The ad group to which this criterion belongs.",
          "type": "string"
        },
        "hotelAdvanceBookingWindow": {
          "description": "Immutable. Criterion for number of days prior to the stay the booking is being made.",
          "$ref": "GoogleAdsGoogleadsV24Common__HotelAdvanceBookingWindowInfo"
        },
        "bidModifier": {
          "type": "number",
          "description": "The modifier for the bid when the criterion matches. The modifier must be in the range: 0.1 - 10.0. Use 0 to opt out of a Device type.",
          "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"
        },
        "baseAdGroup": {
          "description": "Output only. The base ad group from which this draft/trial adgroup bid modifier was created. If ad_group is a base ad group then this field will be equal to ad_group. If the ad group was created in the draft or trial and has no corresponding base ad group, then this field will be null. This field is readonly.",
          "readOnly": true,
          "type": "string"
        },
        "criterionId": {
          "type": "string",
          "description": "Output only. The ID of the criterion to bid modify. This field is ignored for mutates.",
          "readOnly": true,
          "format": "int64"
        },
        "device": {
          "description": "Immutable. A device criterion.",
          "$ref": "GoogleAdsGoogleadsV24Common__DeviceInfo"
        },
        "hotelCheckInDay": {
          "description": "Immutable. Criterion for day of the week the booking is for.",
          "$ref": "GoogleAdsGoogleadsV24Common__HotelCheckInDayInfo"
        },
        "hotelLengthOfStay": {
          "description": "Immutable. Criterion for length of hotel stay in nights.",
          "$ref": "GoogleAdsGoogleadsV24Common__HotelLengthOfStayInfo"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__LocationAttributeMetadata": {
      "description": "Metadata associated with a Location attribute.",
      "properties": {
        "countryLocation": {
          "description": "The country location that this attribute’s sub country location is located in.",
          "$ref": "GoogleAdsGoogleadsV24Common__LocationInfo"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__LocationAttributeMetadata",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateKeywordPlanCampaignKeywordsResponse": {
      "id": "GoogleAdsGoogleadsV24Services__MutateKeywordPlanCampaignKeywordsResponse",
      "type": "object",
      "description": "Response message for a Keyword Plan campaign keyword mutate.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "type": "array",
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateKeywordPlanCampaignKeywordResult"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_Recommendation_PerformanceMaxOptInRecommendation": {
      "id": "GoogleAdsGoogleadsV24Resources_Recommendation_PerformanceMaxOptInRecommendation",
      "type": "object",
      "description": "The Performance Max Opt In recommendation.",
      "properties": {}
    },
    "GoogleAdsGoogleadsV24Services__CreateYouTubeVideoUploadRequest": {
      "id": "GoogleAdsGoogleadsV24Services__CreateYouTubeVideoUploadRequest",
      "type": "object",
      "description": "Request message for YouTubeVideoUploadService.CreateYouTubeVideoUpload.",
      "properties": {
        "youTubeVideoUpload": {
          "description": "Required. The initial details of the video to upload. Required.",
          "$ref": "GoogleAdsGoogleadsV24Resources__YouTubeVideoUpload"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateUserListsRequest": {
      "description": "Request message for UserListService.MutateUserLists.",
      "properties": {
        "operations": {
          "description": "Required. The list of operations to perform on individual user lists.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__UserListOperation"
          },
          "type": "array"
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateUserListsRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateKeywordPlanCampaignKeywordsRequest": {
      "description": "Request message for KeywordPlanCampaignKeywordService.MutateKeywordPlanCampaignKeywords.",
      "properties": {
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__KeywordPlanCampaignKeywordOperation"
          },
          "description": "Required. The list of operations to perform on individual Keyword Plan campaign keywords."
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateKeywordPlanCampaignKeywordsRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__ActivityRatingInfo": {
      "id": "GoogleAdsGoogleadsV24Common__ActivityRatingInfo",
      "type": "object",
      "description": "Rating of the activity as a number 1 to 5, where 5 is the best.",
      "properties": {
        "value": {
          "type": "string",
          "description": "Long value of the activity rating.",
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__ListPlannableUserInterestsRequest": {
      "id": "GoogleAdsGoogleadsV24Services__ListPlannableUserInterestsRequest",
      "type": "object",
      "description": "Request message for ReachPlanService.ListPlannableUserInterests.",
      "properties": {
        "reachApplicationInfo": {
          "description": "Optional. Additional information on the application issuing the request.",
          "$ref": "GoogleAdsGoogleadsV24Common__AdditionalApplicationInfo"
        },
        "userInterestTaxonomyTypes": {
          "items": {
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "The affinity for this user interest.",
              "The market for this user interest.",
              "Users known to have installed applications in the specified categories.",
              "The geographical location of the interest-based vertical.",
              "User interest criteria for new smart phone users."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "AFFINITY",
              "IN_MARKET",
              "MOBILE_APP_INSTALL_USER",
              "VERTICAL_GEO",
              "NEW_SMART_PHONE_USER"
            ],
            "type": "string"
          },
          "description": "Optional. A filter by user interest type. If set, only user interests with a type listed in the filter will be returned. If not set, user interests of all supported types will be returned. Supported user interest types are AFFINITY and IN_MARKET. Each type must be specified at most once.",
          "type": "array"
        },
        "pathQuery": {
          "type": "string",
          "description": "A filter by user interest path. If set, only user interests with a path containing the literal string (case insensitive) in the filter will be returned. Maximum length is 200 characters."
        },
        "customerId": {
          "description": "Required. The ID of the customer.",
          "type": "string"
        },
        "nameQuery": {
          "description": "A filter by user interest name. If set, only user interests with a name containing the literal string (case insensitive) in the filter will be returned. Maximum length is 200 characters.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateAdGroupAssetSetsRequest": {
      "id": "GoogleAdsGoogleadsV24Services__MutateAdGroupAssetSetsRequest",
      "type": "object",
      "description": "Request message for AdGroupAssetSetService.MutateAdGroupAssetSets.",
      "properties": {
        "operations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__AdGroupAssetSetOperation"
          },
          "description": "Required. The list of operations to perform on individual ad group asset sets.",
          "type": "array"
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "responseContentType": {
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "type": "string"
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateSharedSetResult": {
      "id": "GoogleAdsGoogleadsV24Services__MutateSharedSetResult",
      "type": "object",
      "description": "The result for the shared set mutate.",
      "properties": {
        "sharedSet": {
          "description": "The mutated shared set with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV24Resources__SharedSet"
        },
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateCustomInterestsRequest": {
      "id": "GoogleAdsGoogleadsV24Services__MutateCustomInterestsRequest",
      "type": "object",
      "description": "Request message for CustomInterestService.MutateCustomInterests.",
      "properties": {
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__CustomInterestOperation"
          },
          "description": "Required. The list of operations to perform on individual custom interests."
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__PolicyTopicEvidence": {
      "description": "Additional information that explains a policy finding.",
      "properties": {
        "websiteList": {
          "description": "List of websites linked with this resource.",
          "$ref": "GoogleAdsGoogleadsV24Common_PolicyTopicEvidence_WebsiteList"
        },
        "destinationMismatch": {
          "description": "Mismatch between the destinations of a resource's URLs.",
          "$ref": "GoogleAdsGoogleadsV24Common_PolicyTopicEvidence_DestinationMismatch"
        },
        "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": "GoogleAdsGoogleadsV24Common_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": "GoogleAdsGoogleadsV24Common_PolicyTopicEvidence_DestinationNotWorking"
        },
        "destinationTextList": {
          "description": "The text in the destination of the resource that is causing a policy finding.",
          "$ref": "GoogleAdsGoogleadsV24Common_PolicyTopicEvidence_DestinationTextList"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__PolicyTopicEvidence",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__CustomerThirdPartyBrandSafetyIntegrationPartner": {
      "description": "Container for third party brand safety integration data for Customer.",
      "properties": {
        "brandSafetyIntegrationPartner": {
          "description": "Allowed third party integration partners for brand safety verification.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "DoubleVerify.",
            "Integral Ad Science.",
            "Zefr."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DOUBLE_VERIFY",
            "INTEGRAL_AD_SCIENCE",
            "ZEFR"
          ],
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__CustomerThirdPartyBrandSafetyIntegrationPartner",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__KeywordAndUrlSeed": {
      "description": "Keyword And Url Seed",
      "properties": {
        "url": {
          "description": "The URL to crawl in order to generate keyword ideas.",
          "type": "string"
        },
        "keywords": {
          "type": "array",
          "description": "Requires at least one keyword and no more than 20 keywords.",
          "items": {
            "type": "string"
          }
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__KeywordAndUrlSeed",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__AdGroupAdLabelOperation": {
      "description": "A single operation (create, remove) on an ad group ad label.",
      "properties": {
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the ad group ad label being removed, in this format: `customers/{customer_id}/adGroupAdLabels/{ad_group_id}~{ad_id}~{label_id}`"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new ad group ad label.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AdGroupAdLabel"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__AdGroupAdLabelOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__ApplyIncentiveRequest": {
      "description": "Request message for applying an incentive.",
      "properties": {
        "countryCode": {
          "description": "Required. User's country code. Required. This field must be equal to the Google Ads account's billing country. Incentive eligibility, terms of service, and reward values are often country-specific. This country code is used to ensure the selected incentive is applicable to the user. Possible country codes: https://developers.google.com/google-ads/api/data/codes-formats#country_codes",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__ApplyIncentiveRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__VideoResponsiveAdInfo": {
      "description": "A video responsive ad.",
      "properties": {
        "headlines": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdTextAsset"
          },
          "description": "List of text assets used for the short headline. Currently, only a single value for the short headline is supported.",
          "type": "array"
        },
        "longHeadlines": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdTextAsset"
          },
          "description": "List of text assets used for the long headline. Currently, only a single value for the long headline is supported."
        },
        "logoImages": {
          "description": "Required. Logo image to be used in the ad. The minimum size is 128x128 and the aspect ratio must be 1:1(+-1%).",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdImageAsset"
          },
          "type": "array"
        },
        "breadcrumb1": {
          "description": "First part of text that appears in the ad with the displayed URL.",
          "type": "string"
        },
        "companionBanners": {
          "description": "List of image assets used for the companion banner. Currently, only a single value for the companion banner asset is supported.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdImageAsset"
          },
          "type": "array"
        },
        "videos": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdVideoAsset"
          },
          "description": "Required. List of YouTube video assets used for the ad. Currently, only a single value for the YouTube video asset is supported."
        },
        "businessName": {
          "description": "Required. Advertiser/brand name. Maximum display width is 25 characters.",
          "$ref": "GoogleAdsGoogleadsV24Common__AdTextAsset"
        },
        "descriptions": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdTextAsset"
          },
          "description": "List of text assets used for the description. Currently, only a single value for the description is supported."
        },
        "callToActions": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdTextAsset"
          },
          "description": "List of text assets used for the button, for example, the \"Call To Action\" button. Currently, only a single value for the button is supported."
        },
        "breadcrumb2": {
          "description": "Second part of text that appears in the ad with the displayed URL.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__VideoResponsiveAdInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_CallExtensionParameters": {
      "id": "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_CallExtensionParameters",
      "type": "object",
      "description": "Parameters to use when applying call extension recommendation.",
      "properties": {
        "callExtensions": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__CallFeedItem"
          },
          "description": "Call extensions to be added. This is a required field.",
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__CustomLeadFormSubmissionField": {
      "id": "GoogleAdsGoogleadsV24Resources__CustomLeadFormSubmissionField",
      "type": "object",
      "description": "Fields in the submitted custom question",
      "properties": {
        "questionText": {
          "description": "Output only. Question text for custom question, maximum number of characters is 300.",
          "readOnly": true,
          "type": "string"
        },
        "fieldValue": {
          "description": "Output only. Field value for custom question response, maximum number of characters is 70.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateAdGroupAdsRequest": {
      "id": "GoogleAdsGoogleadsV24Services__MutateAdGroupAdsRequest",
      "type": "object",
      "description": "Request message for AdGroupAdService.MutateAdGroupAds.",
      "properties": {
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "operations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__AdGroupAdOperation"
          },
          "description": "Required. The list of operations to perform on individual ads.",
          "type": "array"
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "responseContentType": {
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__AudienceCompositionAttributeCluster": {
      "description": "A collection of related attributes, with metadata and metrics, in an audience composition insights report.",
      "properties": {
        "clusterMetrics": {
          "description": "If the dimension associated with this cluster is YOUTUBE_CHANNEL, then cluster_metrics are metrics associated with the cluster as a whole. For other dimensions, this field is unset.",
          "$ref": "GoogleAdsGoogleadsV24Services__AudienceCompositionMetrics"
        },
        "attributes": {
          "description": "The individual attributes that make up this cluster, with metadata and metrics.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__AudienceCompositionAttribute"
          },
          "type": "array"
        },
        "clusterDisplayName": {
          "type": "string",
          "description": "The name of this cluster of attributes"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__AudienceCompositionAttributeCluster",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__Forecast": {
      "id": "GoogleAdsGoogleadsV24Services__Forecast",
      "type": "object",
      "description": "Forecasted traffic metrics for the planned products and targeting.",
      "properties": {
        "trueviewViews": {
          "type": "string",
          "description": "Number of ad views forecasted for the specified product and targeting. A TrueView View is counted when a viewer views a larger portion or the entirety of an ad beyond an impression. See https://support.google.com/google-ads/answer/2375431 for more information on TrueView Views.",
          "format": "int64"
        },
        "viewableImpressions": {
          "description": "Number of times the ad's impressions were considered viewable. See https://support.google.com/google-ads/answer/7029393 for more information about what makes an ad viewable and how viewability is measured.",
          "format": "int64",
          "type": "string"
        },
        "totalCoviewReach": {
          "type": "string",
          "description": "Number of unique people reached including co-viewers. This includes people that may fall outside the specified Targeting.",
          "format": "int64"
        },
        "clicks": {
          "type": "string",
          "description": "The number of clicks, which is the main user action associated with an ad format of bid type CPC (Cost-Per-Click). See https://support.google.com/google-ads/answer/31799 for more information on clicks.",
          "format": "int64"
        },
        "onTargetImpressions": {
          "type": "string",
          "description": "Number of ad impressions that exactly matches the Targeting.",
          "format": "int64"
        },
        "totalImpressions": {
          "type": "string",
          "description": "Total number of ad impressions. This includes impressions that may fall outside the specified Targeting, due to insufficient information on signed-in users.",
          "format": "int64"
        },
        "onTargetCoviewImpressions": {
          "type": "string",
          "description": "Number of ad impressions that exactly matches the Targeting including co-viewers.",
          "format": "int64"
        },
        "totalCoviewImpressions": {
          "description": "Total number of ad impressions including co-viewers. This includes impressions that may fall outside the specified Targeting, due to insufficient information on signed-in users.",
          "format": "int64",
          "type": "string"
        },
        "effectiveFrequencyBreakdowns": {
          "description": "A list of effective frequency forecasts. The list is ordered starting with 1+ and ending with the value set in GenerateReachForecastRequest.effective_frequency_limit. If no effective_frequency_limit was set, this list will be empty.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__EffectiveFrequencyBreakdown"
          },
          "type": "array"
        },
        "onTargetReach": {
          "description": "Number of unique people reached at least GenerateReachForecastRequest.min_effective_frequency or GenerateReachForecastRequest.effective_frequency_limit times that exactly matches the Targeting. Note that a minimum number of unique people must be reached in order for data to be reported. If the minimum number is not met, the on_target_reach value will be rounded to 0.",
          "format": "int64",
          "type": "string"
        },
        "conversions": {
          "description": "The number of conversions. This metric is only available for DEMAND_GEN plannable products. See https://support.google.com/google-ads/answer/2375431 for more information on conversions.",
          "format": "double",
          "type": "number"
        },
        "totalReach": {
          "type": "string",
          "description": "Total number of unique people reached at least GenerateReachForecastRequest.min_effective_frequency or GenerateReachForecastRequest.effective_frequency_limit times. This includes people that may fall outside the specified Targeting. Note that a minimum number of unique people must be reached in order for data to be reported. If the minimum number is not met, the total_reach value will be rounded to 0.",
          "format": "int64"
        },
        "onTargetCoviewReach": {
          "description": "Number of unique people reached that exactly matches the Targeting including co-viewers.",
          "format": "int64",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_Recommendation_MerchantInfo": {
      "description": "The Merchant Center account details.",
      "properties": {
        "multiClient": {
          "type": "boolean",
          "description": "Output only. Whether the Merchant Center account is a Multi-Client account (MCA).",
          "readOnly": true
        },
        "name": {
          "description": "Output only. The name of the Merchant Center account.",
          "readOnly": true,
          "type": "string"
        },
        "id": {
          "type": "string",
          "description": "Output only. The Merchant Center account ID.",
          "readOnly": true,
          "format": "int64"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_Recommendation_MerchantInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__Note": {
      "id": "GoogleAdsGoogleadsV24Resources__Note",
      "type": "object",
      "description": "Represents a note added to a lead by the advertiser. Advertisers can edit notes, which will reset edit time and change description.",
      "properties": {
        "editDateTime": {
          "type": "string",
          "description": "Output only. The date time when lead note was edited. The format is \"YYYY-MM-DD HH:MM:SS\" in the Google Ads account's timezone. Examples: \"2018-03-05 09:15:00\" or \"2018-02-01 14:34:30\"",
          "readOnly": true
        },
        "description": {
          "description": "Output only. Content of lead note.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_ListingGroupFilterDimension_ProductBrand": {
      "description": "Brand of the product.",
      "properties": {
        "value": {
          "description": "String value of the product brand.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_ListingGroupFilterDimension_ProductBrand",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_Recommendation_PerformanceMaxFinalUrlOptInRecommendation": {
      "id": "GoogleAdsGoogleadsV24Resources_Recommendation_PerformanceMaxFinalUrlOptInRecommendation",
      "type": "object",
      "description": "Recommendation to turn on Final URL expansion for your Performance Max campaigns.",
      "properties": {}
    },
    "GoogleAdsGoogleadsV24Common__VideoBumperInStreamAdInfo": {
      "description": "Representation of video bumper in-stream ad format (very short in-stream non-skippable video ad).",
      "properties": {
        "actionButtonLabel": {
          "type": "string",
          "description": "Label on the \"Call To Action\" button taking the user to the video ad's final URL."
        },
        "companionBanner": {
          "description": "The image assets of the companion banner used with the ad.",
          "$ref": "GoogleAdsGoogleadsV24Common__AdImageAsset"
        },
        "actionHeadline": {
          "description": "Additional text displayed with the CTA (call-to-action) button to give context and encourage clicking on the button.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__VideoBumperInStreamAdInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__Consent": {
      "id": "GoogleAdsGoogleadsV24Common__Consent",
      "type": "object",
      "description": "Consent",
      "properties": {
        "adUserData": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "GRANTED",
            "DENIED"
          ],
          "description": "This represents consent for ad user data.",
          "enumDescriptions": [
            "Not specified.",
            "Output-only. Represents a format not yet defined in this enum.",
            "Granted.",
            "Denied."
          ]
        },
        "adPersonalization": {
          "type": "string",
          "description": "This represents consent for ad personalization. This can only be set for OfflineUserDataJobService and UserDataService.",
          "enumDescriptions": [
            "Not specified.",
            "Output-only. Represents a format not yet defined in this enum.",
            "Granted.",
            "Denied."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "GRANTED",
            "DENIED"
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__PromoteExperimentRequest": {
      "id": "GoogleAdsGoogleadsV24Services__PromoteExperimentRequest",
      "type": "object",
      "description": "Request message for ExperimentService.PromoteExperiment.",
      "properties": {
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__CampaignOperation": {
      "description": "A single operation (create, update, remove) on a campaign.",
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new campaign.",
          "$ref": "GoogleAdsGoogleadsV24Resources__Campaign"
        },
        "update": {
          "description": "Update operation: The campaign is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV24Resources__Campaign"
        },
        "remove": {
          "description": "Remove operation: A resource name for the removed campaign is expected, in this format: `customers/{customer_id}/campaigns/{campaign_id}`",
          "type": "string"
        },
        "updateMask": {
          "type": "string",
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__CampaignOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services_SmartCampaignSuggestionInfo_LocationList": {
      "id": "GoogleAdsGoogleadsV24Services_SmartCampaignSuggestionInfo_LocationList",
      "type": "object",
      "description": "A list of locations.",
      "properties": {
        "locations": {
          "description": "Required. Locations.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__LocationInfo"
          },
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateExperimentsResponse": {
      "id": "GoogleAdsGoogleadsV24Services__MutateExperimentsResponse",
      "type": "object",
      "description": "Response message for experiment mutate.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "type": "array",
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateExperimentResult"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__ProvideLeadFeedbackResponse": {
      "id": "GoogleAdsGoogleadsV24Services__ProvideLeadFeedbackResponse",
      "type": "object",
      "description": "Response message for LocalServicesLeadService.ProvideLeadFeedback.",
      "properties": {
        "creditIssuanceDecision": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SUCCESS_NOT_REACHED_THRESHOLD",
            "SUCCESS_REACHED_THRESHOLD",
            "FAIL_OVER_THRESHOLD",
            "FAIL_NOT_ELIGIBLE"
          ],
          "description": "Required. Decision of bonus credit issued or rejected. If a bonus credit is issued, it will be available for use in about two months.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Bonus credit is issued successfully and bonus credit cap has not reached the threshold after issuing this bonus credit.",
            "Bonus credit is issued successfully and bonus credit cap has reached the threshold after issuing this bonus credit.",
            "Bonus credit is not issued because the provider has reached the bonus credit cap.",
            "Bonus credit is not issued because this lead is not eligible for bonus credit."
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__LeadFormAsset": {
      "description": "A Lead Form asset.",
      "properties": {
        "desiredIntent": {
          "type": "string",
          "description": "Chosen intent for the lead form, for example, more volume or more qualified.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Deliver more leads at a potentially lower quality.",
            "Deliver leads that are more qualified."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "LOW_INTENT",
            "HIGH_INTENT"
          ]
        },
        "callToActionType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "LEARN_MORE",
            "GET_QUOTE",
            "APPLY_NOW",
            "SIGN_UP",
            "CONTACT_US",
            "SUBSCRIBE",
            "DOWNLOAD",
            "BOOK_NOW",
            "GET_OFFER",
            "REGISTER",
            "GET_INFO",
            "REQUEST_DEMO",
            "JOIN_NOW",
            "GET_STARTED"
          ],
          "description": "Required. Pre-defined display text that encourages user to expand the form.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Learn more.",
            "Get quote.",
            "Apply now.",
            "Sign Up.",
            "Contact us.",
            "Subscribe.",
            "Download.",
            "Book now.",
            "Get offer.",
            "Register.",
            "Get info.",
            "Request a demo.",
            "Join now.",
            "Get started."
          ]
        },
        "postSubmitHeadline": {
          "description": "Headline of text shown after form submission that describes how the advertiser will follow up with the user.",
          "type": "string"
        },
        "headline": {
          "description": "Required. Headline of the expanded form to describe what the form is asking for or facilitating.",
          "type": "string"
        },
        "customDisclosure": {
          "description": "Custom disclosure shown along with Google disclaimer on the lead form. Accessible to allowed customers only.",
          "type": "string"
        },
        "customQuestionFields": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__LeadFormCustomQuestionField"
          },
          "description": "Ordered list of custom question fields. This field is subject to a limit of 5 qualifying questions per form.",
          "type": "array"
        },
        "callToActionDescription": {
          "description": "Required. Text giving a clear value proposition of what users expect once they expand the form.",
          "type": "string"
        },
        "description": {
          "description": "Required. Detailed description of the expanded form to describe what the form is asking for or facilitating.",
          "type": "string"
        },
        "businessName": {
          "type": "string",
          "description": "Required. The name of the business being advertised."
        },
        "privacyPolicyUrl": {
          "type": "string",
          "description": "Required. Link to a page describing the policy on how the collected data is handled by the advertiser/business."
        },
        "postSubmitDescription": {
          "type": "string",
          "description": "Detailed description shown after form submission that describes how the advertiser will follow up with the user."
        },
        "fields": {
          "description": "Ordered list of input fields. This field can be updated by reordering questions, but not by adding or removing questions.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__LeadFormField"
          },
          "type": "array"
        },
        "backgroundImageAsset": {
          "type": "string",
          "description": "Asset resource name of the background image. The image dimensions must be exactly 1200x628."
        },
        "deliveryMethods": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__LeadFormDeliveryMethod"
          },
          "description": "Configured methods for collected lead data to be delivered to advertiser. Only one method typed as WebhookDelivery can be configured.",
          "type": "array"
        },
        "postSubmitCallToActionType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "VISIT_SITE",
            "DOWNLOAD",
            "LEARN_MORE",
            "SHOP_NOW"
          ],
          "description": "Pre-defined display text that encourages user action after the form is submitted.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Visit site.",
            "Download.",
            "Learn more.",
            "Shop now."
          ]
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__LeadFormAsset",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__Keyword": {
      "description": "A Keyword criterion segment.",
      "properties": {
        "info": {
          "description": "Keyword info.",
          "$ref": "GoogleAdsGoogleadsV24Common__KeywordInfo"
        },
        "adGroupCriterion": {
          "type": "string",
          "description": "The AdGroupCriterion resource name."
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__Keyword",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__RemoveAutomaticallyCreatedAssetsRequest": {
      "id": "GoogleAdsGoogleadsV24Services__RemoveAutomaticallyCreatedAssetsRequest",
      "type": "object",
      "description": "Request message for AdGroupAdService.RemoveAutomaticallyCreatedAssets.",
      "properties": {
        "assetsWithFieldType": {
          "type": "array",
          "description": "Required. List of assets with field type to be removed from the AdGroupAd.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__AssetsWithFieldType"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__UploadCallConversionsResponse": {
      "description": "Response message for ConversionUploadService.UploadCallConversions.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to conversion failures in the partial failure mode. Returned when all errors occur inside the conversions. If any errors occur outside the conversions (for example, auth errors), we return an RPC level error. See [Best practices for partial failures](/google-ads/api/docs/best-practices/partial-failures).",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__CallConversionResult"
          },
          "description": "Returned for successfully processed conversions. Proto will be empty for rows that received an error. Results are not returned when `validate_only` is `true`.",
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__UploadCallConversionsResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateBiddingDataExclusionsResult": {
      "id": "GoogleAdsGoogleadsV24Services__MutateBiddingDataExclusionsResult",
      "type": "object",
      "description": "The result for the data exclusion mutate.",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        },
        "biddingDataExclusion": {
          "description": "The mutated bidding data exclusion with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV24Resources__BiddingDataExclusion"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__ReachCurve": {
      "description": "The reach curve for the planned products.",
      "properties": {
        "reachForecasts": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__ReachForecast"
          },
          "description": "All points on the reach curve."
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__ReachCurve",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateAccountBudgetProposalResponse": {
      "id": "GoogleAdsGoogleadsV24Services__MutateAccountBudgetProposalResponse",
      "type": "object",
      "description": "Response message for account-level budget mutate operations.",
      "properties": {
        "result": {
          "description": "The result of the mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateAccountBudgetProposalResult"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__ProductLegacyConditionInfo": {
      "description": "Legacy condition of a product offer. This listing dimension is deprecated and it is supported only in Display campaigns.",
      "properties": {
        "value": {
          "description": "String value of the product legacy condition.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__ProductLegacyConditionInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__ThirdPartyIntegrationPartnerData": {
      "id": "GoogleAdsGoogleadsV24Common__ThirdPartyIntegrationPartnerData",
      "type": "object",
      "description": "Contains third party measurement partner related data for video campaigns.",
      "properties": {
        "clientId": {
          "type": "string",
          "description": "The client ID that allows the measurement partner to join multiple campaigns for a particular advertiser."
        },
        "thirdPartyPlacementId": {
          "description": "The third party placement ID that maps the measurement partner data with a campaign (or a group of related campaigns) specific data.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__CustomerAgreementSetting": {
      "description": "Customer Agreement Setting for a customer.",
      "properties": {
        "acceptedLeadFormTerms": {
          "description": "Output only. Whether the customer has accepted lead form term of service.",
          "readOnly": true,
          "type": "boolean"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__CustomerAgreementSetting",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__DynamicCustomAsset": {
      "description": "A dynamic custom asset.",
      "properties": {
        "imageUrl": {
          "type": "string",
          "description": "Image URL, for example, http://www.example.com/image.png. The image will not be uploaded as image asset."
        },
        "salePrice": {
          "description": "Sale price which can be number followed by the alphabetic currency code, ISO 4217 standard. Use '.' as the decimal mark, for example, 15,000.00 USD. Must be less than the 'price' field.",
          "type": "string"
        },
        "contextualKeywords": {
          "description": "Contextual keywords, for example, Sedans, 4 door sedans.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "iosAppStoreId": {
          "type": "string",
          "description": "iOS app store ID. This is used to check if the user has the app installed on their device before deep linking. If this field is set, then the ios_app_link field must also be present.",
          "format": "int64"
        },
        "itemAddress": {
          "type": "string",
          "description": "Item address which can be specified in one of the following formats. (1) City, state, code, country, for example, Mountain View, CA, USA. (2) Full address, for example, 123 Boulevard St, Mountain View, CA 94043. (3) Latitude-longitude in the DDD format, for example, 41.40338, 2.17403"
        },
        "itemCategory": {
          "description": "Item category, for example, Sedans.",
          "type": "string"
        },
        "iosAppLink": {
          "description": "iOS deep link, for example, exampleApp://content/page.",
          "type": "string"
        },
        "itemDescription": {
          "type": "string",
          "description": "Item description, for example, Best selling mid-size car."
        },
        "id": {
          "description": "Required. ID which can be any sequence of letters and digits, and must be unique and match the values of remarketing tag, for example, sedan. Required.",
          "type": "string"
        },
        "similarIds": {
          "items": {
            "type": "string"
          },
          "description": "Similar IDs.",
          "type": "array"
        },
        "price": {
          "type": "string",
          "description": "Price which can be number followed by the alphabetic currency code, ISO 4217 standard. Use '.' as the decimal mark, for example, 20,000.00 USD."
        },
        "formattedPrice": {
          "description": "Formatted price which can be any characters. If set, this attribute will be used instead of 'price', for example, Starting at $20,000.00.",
          "type": "string"
        },
        "id2": {
          "type": "string",
          "description": "ID2 which can be any sequence of letters and digits, for example, red. ID sequence (ID + ID2) must be unique."
        },
        "itemTitle": {
          "type": "string",
          "description": "Required. Item title, for example, Mid-size sedan. Required."
        },
        "itemSubtitle": {
          "description": "Item subtitle, for example, At your Mountain View dealership.",
          "type": "string"
        },
        "formattedSalePrice": {
          "description": "Formatted sale price which can be any characters. If set, this attribute will be used instead of 'sale price', for example, On sale for $15,000.00.",
          "type": "string"
        },
        "androidAppLink": {
          "description": "Android deep link, for example, android-app://com.example.android/http/example.com/gizmos?1234.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__DynamicCustomAsset",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__HotelCountryRegionInfo": {
      "id": "GoogleAdsGoogleadsV24Common__HotelCountryRegionInfo",
      "type": "object",
      "description": "Country or Region the hotel is located in.",
      "properties": {
        "countryRegionCriterion": {
          "description": "The Geo Target Constant resource name.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__FetchIncentiveResponse": {
      "id": "GoogleAdsGoogleadsV24Services__FetchIncentiveResponse",
      "type": "object",
      "description": "Response from getting the acquisition incentive for a user when they visit a specific marketing page.",
      "properties": {
        "incentiveOffer": {
          "description": "Required. The acquisition incentive offer for the user.",
          "$ref": "GoogleAdsGoogleadsV24Services__IncentiveOffer"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateCustomerAssetsRequest": {
      "description": "Request message for CustomerAssetService.MutateCustomerAssets.",
      "properties": {
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "operations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__CustomerAssetOperation"
          },
          "description": "Required. The list of operations to perform on individual customer assets.",
          "type": "array"
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "responseContentType": {
          "type": "string",
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ]
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateCustomerAssetsRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_Recommendation_ForecastingSetTargetCpaRecommendation": {
      "id": "GoogleAdsGoogleadsV24Resources_Recommendation_ForecastingSetTargetCpaRecommendation",
      "type": "object",
      "description": "The set target CPA recommendations.",
      "properties": {
        "recommendedTargetCpaMicros": {
          "type": "string",
          "description": "Output only. The recommended target CPA.",
          "readOnly": true,
          "format": "int64"
        },
        "campaignBudget": {
          "description": "Output only. The campaign budget.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_CampaignBudget"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__LeadFormField": {
      "id": "GoogleAdsGoogleadsV24Common__LeadFormField",
      "type": "object",
      "description": "One input field instance within a form.",
      "properties": {
        "singleChoiceAnswers": {
          "description": "Answer configuration for a single choice question. Can be set only for pre-vetted question fields. Minimum of 2 answers required and maximum of 12 allowed.",
          "$ref": "GoogleAdsGoogleadsV24Common__LeadFormSingleChoiceAnswers"
        },
        "hasLocationAnswer": {
          "description": "Answer configuration for location question. If true, campaign/account level location data (state, city, business name etc) will be rendered on the Lead Form. Starting V13.1, has_location_answer can only be set for \"What is your preferred dealership?\" question, for advertisers with Location Assets setup at campaign/account level.",
          "type": "boolean"
        },
        "inputType": {
          "type": "string",
          "description": "Describes the input type, which may be a predefined type such as \"full name\" or a pre-vetted question like \"What kind of vehicle do you have?\".",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The user will be asked to fill in their given and family name. This field cannot be set at the same time as GIVEN_NAME or FAMILY_NAME.",
            "The user will be asked to fill in their email address.",
            "The user will be asked to fill in their phone number.",
            "The user will be asked to fill in their zip code.",
            "The user will be asked to fill in their street address.",
            "The user will be asked to fill in their city.",
            "The user will be asked to fill in their region part of the address (for example, state for US, province for Canada).",
            "The user will be asked to fill in their country.",
            "The user will be asked to fill in their work email address.",
            "The user will be asked to fill in their company name.",
            "The user will be asked to fill in their work phone.",
            "The user will be asked to fill in their job title.",
            "The user will be asked to fill in their CPF for Brazil users.",
            "The user will be asked to fill in their DNI for Argentina users.",
            "The user will be asked to fill in their DNI for Peru users.",
            "The user will be asked to fill in their RUT for Chile users.",
            "The user will be asked to fill in their CC for Colombia users.",
            "The user will be asked to fill in their CI for Ecuador users.",
            "The user will be asked to fill in their RFC for Mexico users.",
            "The user will be asked to fill in their first name. This field can not be set at the same time as FULL_NAME.",
            "The user will be asked to fill in their last name. This field can not be set at the same time as FULL_NAME.",
            "Question: \"Which model are you interested in?\" Category: \"Auto\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Which type of vehicle are you interested in?\" Category: \"Auto\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your preferred dealership?\" Category: \"Auto\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"When do you plan on purchasing a vehicle?\" Category: \"Auto\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Do you own a vehicle?\" Category: \"Auto\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What vehicle ownership option are you interested in?\" Category: \"Auto\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What type of vehicle condition are you interested in?\" Category: \"Auto\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What size is your company?\" Category: \"Business\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your annual sales volume?\" Category: \"Business\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"How many years have you been in business?\" Category: \"Business\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your job department?\" Category: \"Business\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your job role?\" Category: \"Business\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 18 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 19 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 20 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 21 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 22 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 23 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 24 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 25 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 26 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 27 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 28 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 29 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 30 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 31 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 32 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 33 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 34 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 35 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 36 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 37 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 38 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 39 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 40 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 41 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 42 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 43 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 44 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 45 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 46 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 47 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 48 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 49 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 50 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 51 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 52 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 53 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 54 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 55 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 56 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 57 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 58 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 59 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 60 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 61 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 62 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 63 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 64 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 65 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Which program are you interested in?\" Category: \"Education\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Which course are you interested in?\" Category: \"Education\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Which product are you interested in?\" Category: \"General\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Which service are you interested in?\" Category: \"General\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Which offer are you interested in?\" Category: \"General\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Which category are you interested in?\" Category: \"General\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your preferred method of contact?\" Category: \"General\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your preferred location?\" Category: \"General\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is the best time to contact you?\" Category: \"General\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"When are you looking to make a purchase?\" Category: \"General\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"How many years of work experience do you have?\" Category: \"Jobs\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What industry do you work in?\" Category: \"Jobs\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your highest level of education?\" Category: \"Jobs\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What type of property are you looking for?\" Category: \"Real Estate\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What do you need a realtor's help with?\" Category: \"Real Estate\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What neighborhood are you interested in?\" Category: \"Real Estate\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What price range are you looking for?\" Category: \"Real Estate\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"How many bedrooms are you looking for?\" Category: \"Real Estate\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you looking for a fully furnished property?\" Category: \"Real Estate\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you looking for properties that allow pets?\" Category: \"Real Estate\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is the next product you plan to purchase?\" Category: \"Retail\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Would you like to sign up for an event?\" Category: \"Retail\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Where are you interested in shopping?\" Category: \"Retail\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your favorite brand?\" Category: \"Retail\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Which type of valid commercial license do you have?\" Category: \"Transportation\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Interested in booking an event?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your destination country?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your destination city?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your departure country?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your departure city?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your departure date?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your return date?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"How many people are you traveling with?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your travel budget?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Where do you want to stay during your travel?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "FULL_NAME",
            "EMAIL",
            "PHONE_NUMBER",
            "POSTAL_CODE",
            "STREET_ADDRESS",
            "CITY",
            "REGION",
            "COUNTRY",
            "WORK_EMAIL",
            "COMPANY_NAME",
            "WORK_PHONE",
            "JOB_TITLE",
            "GOVERNMENT_ISSUED_ID_CPF_BR",
            "GOVERNMENT_ISSUED_ID_DNI_AR",
            "GOVERNMENT_ISSUED_ID_DNI_PE",
            "GOVERNMENT_ISSUED_ID_RUT_CL",
            "GOVERNMENT_ISSUED_ID_CC_CO",
            "GOVERNMENT_ISSUED_ID_CI_EC",
            "GOVERNMENT_ISSUED_ID_RFC_MX",
            "FIRST_NAME",
            "LAST_NAME",
            "VEHICLE_MODEL",
            "VEHICLE_TYPE",
            "PREFERRED_DEALERSHIP",
            "VEHICLE_PURCHASE_TIMELINE",
            "VEHICLE_OWNERSHIP",
            "VEHICLE_PAYMENT_TYPE",
            "VEHICLE_CONDITION",
            "COMPANY_SIZE",
            "ANNUAL_SALES",
            "YEARS_IN_BUSINESS",
            "JOB_DEPARTMENT",
            "JOB_ROLE",
            "OVER_18_AGE",
            "OVER_19_AGE",
            "OVER_20_AGE",
            "OVER_21_AGE",
            "OVER_22_AGE",
            "OVER_23_AGE",
            "OVER_24_AGE",
            "OVER_25_AGE",
            "OVER_26_AGE",
            "OVER_27_AGE",
            "OVER_28_AGE",
            "OVER_29_AGE",
            "OVER_30_AGE",
            "OVER_31_AGE",
            "OVER_32_AGE",
            "OVER_33_AGE",
            "OVER_34_AGE",
            "OVER_35_AGE",
            "OVER_36_AGE",
            "OVER_37_AGE",
            "OVER_38_AGE",
            "OVER_39_AGE",
            "OVER_40_AGE",
            "OVER_41_AGE",
            "OVER_42_AGE",
            "OVER_43_AGE",
            "OVER_44_AGE",
            "OVER_45_AGE",
            "OVER_46_AGE",
            "OVER_47_AGE",
            "OVER_48_AGE",
            "OVER_49_AGE",
            "OVER_50_AGE",
            "OVER_51_AGE",
            "OVER_52_AGE",
            "OVER_53_AGE",
            "OVER_54_AGE",
            "OVER_55_AGE",
            "OVER_56_AGE",
            "OVER_57_AGE",
            "OVER_58_AGE",
            "OVER_59_AGE",
            "OVER_60_AGE",
            "OVER_61_AGE",
            "OVER_62_AGE",
            "OVER_63_AGE",
            "OVER_64_AGE",
            "OVER_65_AGE",
            "EDUCATION_PROGRAM",
            "EDUCATION_COURSE",
            "PRODUCT",
            "SERVICE",
            "OFFER",
            "CATEGORY",
            "PREFERRED_CONTACT_METHOD",
            "PREFERRED_LOCATION",
            "PREFERRED_CONTACT_TIME",
            "PURCHASE_TIMELINE",
            "YEARS_OF_EXPERIENCE",
            "JOB_INDUSTRY",
            "LEVEL_OF_EDUCATION",
            "PROPERTY_TYPE",
            "REALTOR_HELP_GOAL",
            "PROPERTY_COMMUNITY",
            "PRICE_RANGE",
            "NUMBER_OF_BEDROOMS",
            "FURNISHED_PROPERTY",
            "PETS_ALLOWED_PROPERTY",
            "NEXT_PLANNED_PURCHASE",
            "EVENT_SIGNUP_INTEREST",
            "PREFERRED_SHOPPING_PLACES",
            "FAVORITE_BRAND",
            "TRANSPORTATION_COMMERCIAL_LICENSE_TYPE",
            "EVENT_BOOKING_INTEREST",
            "DESTINATION_COUNTRY",
            "DESTINATION_CITY",
            "DEPARTURE_COUNTRY",
            "DEPARTURE_CITY",
            "DEPARTURE_DATE",
            "RETURN_DATE",
            "NUMBER_OF_TRAVELERS",
            "TRAVEL_BUDGET",
            "TRAVEL_ACCOMMODATION"
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__GenerateImagesRequest": {
      "id": "GoogleAdsGoogleadsV24Services__GenerateImagesRequest",
      "type": "object",
      "description": "Request message for AssetGenerationService.GenerateImages",
      "properties": {
        "assetFieldTypes": {
          "type": "array",
          "items": {
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "The asset is linked for use as a headline.",
              "The asset is linked for use as a description.",
              "The asset is linked for use as mandatory ad text.",
              "The asset is linked for use as a marketing image.",
              "The asset is linked for use as a media bundle.",
              "The asset is linked for use as a YouTube video.",
              "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
              "The asset is linked for use as a Lead Form extension.",
              "The asset is linked for use as a Promotion extension.",
              "The asset is linked for use as a Callout extension.",
              "The asset is linked for use as a Structured Snippet extension.",
              "The asset is linked for use as a Sitelink.",
              "The asset is linked for use as a Mobile App extension.",
              "The asset is linked for use as a Hotel Callout extension.",
              "The asset is linked for use as a Call extension.",
              "The asset is linked for use as a Price extension.",
              "The asset is linked for use as a long headline.",
              "The asset is linked for use as a business name.",
              "The asset is linked for use as a square marketing image.",
              "The asset is linked for use as a portrait marketing image.",
              "The asset is linked for use as a logo.",
              "The asset is linked for use as a landscape logo.",
              "The asset is linked for use as a non YouTube logo.",
              "The asset is linked for use to select a call-to-action.",
              "The asset is linked for use to select an ad image.",
              "The asset is linked for use as a business logo.",
              "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
              "The asset is linked for use as a Demand Gen carousel card.",
              "The asset is linked for use as a Business Message.",
              "The asset is linked for use as a tall portrait marketing image.",
              "The asset is linked for use as related YouTube videos.",
              "The asset is linked for use as a landing page preview image.",
              "The asset is linked for use as a long description.",
              "The asset is linked for use as a call-to-action."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "HEADLINE",
              "DESCRIPTION",
              "MANDATORY_AD_TEXT",
              "MARKETING_IMAGE",
              "MEDIA_BUNDLE",
              "YOUTUBE_VIDEO",
              "BOOK_ON_GOOGLE",
              "LEAD_FORM",
              "PROMOTION",
              "CALLOUT",
              "STRUCTURED_SNIPPET",
              "SITELINK",
              "MOBILE_APP",
              "HOTEL_CALLOUT",
              "CALL",
              "PRICE",
              "LONG_HEADLINE",
              "BUSINESS_NAME",
              "SQUARE_MARKETING_IMAGE",
              "PORTRAIT_MARKETING_IMAGE",
              "LOGO",
              "LANDSCAPE_LOGO",
              "VIDEO",
              "CALL_TO_ACTION_SELECTION",
              "AD_IMAGE",
              "BUSINESS_LOGO",
              "HOTEL_PROPERTY",
              "DEMAND_GEN_CAROUSEL_CARD",
              "BUSINESS_MESSAGE",
              "TALL_PORTRAIT_MARKETING_IMAGE",
              "RELATED_YOUTUBE_VIDEOS",
              "LANDING_PAGE_PREVIEW",
              "LONG_DESCRIPTION",
              "CALL_TO_ACTION"
            ],
            "type": "string"
          },
          "description": "Optional. Output field types for generated images. Supported values are MARKETING_IMAGE, SQUARE_MARKETING_IMAGE, PORTRAIT_MARKETING_IMAGE, and TALL_PORTRAIT_MARKETING_IMAGE. All specified field types must be compatible with the `advertising_channel_type` or `existing_generation_context` (whichever is set). If no field types are provided, images will be generated for all compatible field types."
        },
        "advertisingChannelType": {
          "description": "Optional. The advertising channel type for which the images are being generated. This field is required if `existing_generation_context` is not provided. Supported channel types include SEARCH, PERFORMANCE_MAX, DISPLAY, and DEMAND_GEN.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Search Network. Includes display bundled, and Search+ campaigns.",
            "Google Display Network only.",
            "Shopping campaigns serve on the shopping property and on google.com search results.",
            "Hotel Ads campaigns.",
            "Video campaigns.",
            "App Campaigns, and App Campaigns for Engagement, that run across multiple channels.",
            "Local ads campaigns.",
            "Smart campaigns.",
            "Performance Max campaigns.",
            "Local services campaigns.",
            "Travel campaigns.",
            "Demand Gen campaigns."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SEARCH",
            "DISPLAY",
            "SHOPPING",
            "HOTEL",
            "VIDEO",
            "MULTI_CHANNEL",
            "LOCAL",
            "SMART",
            "PERFORMANCE_MAX",
            "LOCAL_SERVICES",
            "TRAVEL",
            "DEMAND_GEN"
          ],
          "type": "string"
        },
        "finalUrlGeneration": {
          "description": "Optional. Generate images from a final url.",
          "$ref": "GoogleAdsGoogleadsV24Services__FinalUrlImageGenerationInput"
        },
        "freeformGeneration": {
          "description": "Optional. Generate images from a freeform prompt.",
          "$ref": "GoogleAdsGoogleadsV24Services__FreeformImageGenerationInput"
        },
        "productRecontextGeneration": {
          "description": "Optional. Generate new images by recontextualizing existing product images.",
          "$ref": "GoogleAdsGoogleadsV24Services__ProductRecontextGenerationImageInput"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__KeywordPlanForecastPeriod": {
      "id": "GoogleAdsGoogleadsV24Resources__KeywordPlanForecastPeriod",
      "type": "object",
      "description": "The forecasting period associated with the keyword plan.",
      "properties": {
        "dateRange": {
          "description": "The custom date range used for forecasting. It cannot be greater than a year. The start and end dates must be in the future. Otherwise, an error will be returned when the forecasting action is performed. The start and end dates are inclusive.",
          "$ref": "GoogleAdsGoogleadsV24Common__DateRange"
        },
        "dateInterval": {
          "description": "A future date range relative to the current date used for forecasting.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "The next week date range for keyword plan. The next week is based on the default locale of the user's account and is mostly SUN-SAT or MON-SUN. This can be different from next-7 days.",
            "The next month date range for keyword plan.",
            "The next quarter date range for keyword plan."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NEXT_WEEK",
            "NEXT_MONTH",
            "NEXT_QUARTER"
          ],
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateCustomerLabelsRequest": {
      "id": "GoogleAdsGoogleadsV24Services__MutateCustomerLabelsRequest",
      "type": "object",
      "description": "Request message for CustomerLabelService.MutateCustomerLabels. A single `MutateCustomerLabelsRequest` can only modify labels for the single customer account specified in the request. To apply a label to multiple different accounts, separate `MutateCustomerLabelsRequest` calls must be made.",
      "properties": {
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__CustomerLabelOperation"
          },
          "description": "Required. The list of operations to perform on customer-label relationships."
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateAdGroupAdLabelsRequest": {
      "id": "GoogleAdsGoogleadsV24Services__MutateAdGroupAdLabelsRequest",
      "type": "object",
      "description": "Request message for AdGroupAdLabelService.MutateAdGroupAdLabels.",
      "properties": {
        "operations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__AdGroupAdLabelOperation"
          },
          "description": "Required. The list of operations to perform on ad group ad labels.",
          "type": "array"
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__GenerateTrendingInsightsResponse": {
      "id": "GoogleAdsGoogleadsV24Services__GenerateTrendingInsightsResponse",
      "type": "object",
      "description": "Response message for ContentCreatorInsightsService.GenerateTrendingInsights.",
      "properties": {
        "trendInsights": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__TrendInsight"
          },
          "description": "The list of trending insights for the given criteria."
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__PercentCpcBidSimulationPoint": {
      "description": "Projected metrics for a specific percent CPC amount. Only Hotel advertising channel type supports this field.",
      "properties": {
        "clicks": {
          "type": "string",
          "description": "Projected number of clicks.",
          "format": "int64"
        },
        "costMicros": {
          "description": "Projected cost in micros.",
          "format": "int64",
          "type": "string"
        },
        "biddableConversionsValue": {
          "type": "number",
          "description": "Projected total value of biddable conversions in local currency.",
          "format": "double"
        },
        "impressions": {
          "type": "string",
          "description": "Projected number of impressions.",
          "format": "int64"
        },
        "percentCpcBidMicros": {
          "type": "string",
          "description": "The simulated percent CPC upon which projected metrics are based. Percent CPC expressed as fraction of the advertised price for some good or service. The value stored here is 1,000,000 * [fraction].",
          "format": "int64"
        },
        "biddableConversions": {
          "type": "number",
          "description": "Projected number of biddable conversions.",
          "format": "double"
        },
        "topSlotImpressions": {
          "type": "string",
          "description": "Projected number of top slot impressions.",
          "format": "int64"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__PercentCpcBidSimulationPoint",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__CustomInterest": {
      "description": "A custom interest. This is a list of users by interest.",
      "properties": {
        "status": {
          "type": "string",
          "description": "Status of this custom interest. Indicates whether the custom interest is enabled or removed.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Enabled status - custom interest is enabled and can be targeted to.",
            "Removed status - custom interest is removed and cannot be used for targeting."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ]
        },
        "description": {
          "type": "string",
          "description": "Description of this custom interest audience."
        },
        "resourceName": {
          "description": "Immutable. The resource name of the custom interest. Custom interest resource names have the form: `customers/{customer_id}/customInterests/{custom_interest_id}`",
          "type": "string"
        },
        "id": {
          "description": "Output only. Id of the custom interest.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "name": {
          "description": "Name of the custom interest. It should be unique across the same custom affinity audience. This field is required for create operations.",
          "type": "string"
        },
        "members": {
          "type": "array",
          "description": "List of custom interest members that this custom interest is composed of. Members can be added during CustomInterest creation. If members are presented in UPDATE operation, existing members will be overridden.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Resources__CustomInterestMember"
          }
        },
        "type": {
          "type": "string",
          "description": "Type of the custom interest, CUSTOM_AFFINITY or CUSTOM_INTENT. By default the type is set to CUSTOM_AFFINITY.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Allows brand advertisers to define custom affinity audience lists.",
            "Allows advertisers to define custom intent audience lists."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CUSTOM_AFFINITY",
            "CUSTOM_INTENT"
          ]
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__CustomInterest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services_ProductFilter_ProductList": {
      "description": "The list of products to generate benchmarks metrics for.",
      "properties": {
        "productCodes": {
          "description": "Required. Products to generate benchmarks metrics for.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services_ProductFilter_ProductList",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__WebpageConditionInfo": {
      "description": "Logical expression for targeting webpages of an advertiser's website.",
      "properties": {
        "operand": {
          "type": "string",
          "description": "Operand of webpage targeting condition.",
          "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"
          ]
        },
        "operator": {
          "description": "Operator of webpage targeting condition.",
          "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"
          ],
          "type": "string"
        },
        "argument": {
          "description": "Argument of webpage targeting condition.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__WebpageConditionInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__HotelAdvanceBookingWindowInfo": {
      "description": "Criterion for number of days prior to the stay the booking is being made.",
      "properties": {
        "maxDays": {
          "type": "string",
          "description": "High end of the number of days prior to the stay.",
          "format": "int64"
        },
        "minDays": {
          "description": "Low end of the number of days prior to the stay.",
          "format": "int64",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__HotelAdvanceBookingWindowInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__BusinessRegistrationDocument": {
      "description": "A proto holding information specific to a local services business registration document.",
      "properties": {
        "documentReadonly": {
          "description": "Output only. The readonly field containing the information for an uploaded business registration document.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Common__LocalServicesDocumentReadOnly"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__BusinessRegistrationDocument",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__CreateCustomerClientResponse": {
      "id": "GoogleAdsGoogleadsV24Services__CreateCustomerClientResponse",
      "type": "object",
      "description": "Response message for CreateCustomerClient mutate.",
      "properties": {
        "resourceName": {
          "description": "The resource name of the newly created customer. Customer resource names have the form: `customers/{customer_id}`.",
          "type": "string"
        },
        "invitationLink": {
          "description": "Link for inviting user to access the created customer. Accessible to allowlisted customers only.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__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.",
      "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"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__AdGroupAudienceView",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__CampaignBidModifierOperation": {
      "id": "GoogleAdsGoogleadsV24Services__CampaignBidModifierOperation",
      "type": "object",
      "description": "A single operation (create, remove, update) on a campaign bid modifier.",
      "properties": {
        "update": {
          "description": "Update operation: The campaign bid modifier is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CampaignBidModifier"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed campaign bid modifier is expected, in this format: `customers/{customer_id}/CampaignBidModifiers/{campaign_id}~{criterion_id}`"
        },
        "updateMask": {
          "type": "string",
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new campaign bid modifier.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CampaignBidModifier"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__UserListActionInfo": {
      "description": "Represents an action type used for building remarketing user lists.",
      "properties": {
        "conversionAction": {
          "description": "A conversion action that's not generated from remarketing.",
          "type": "string"
        },
        "remarketingAction": {
          "description": "A remarketing action.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__UserListActionInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__AppDeepLinkAsset": {
      "description": "An app deep link asset",
      "properties": {
        "appDeepLinkUri": {
          "description": "The uri for the app deep link, The uri can be either a custom scheme uri (e.g. mystore://shoes) or universal uri (e.g. http://www.mystore.com/shoes).",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__AppDeepLinkAsset",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__DetailedDemographicSegment": {
      "description": "Detailed demographic segment.",
      "properties": {
        "detailedDemographic": {
          "description": "The detailed demographic resource.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__DetailedDemographicSegment",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__GclidDateTimePair": {
      "description": "Uniquely identifies a conversion that was reported without an order ID specified.",
      "properties": {
        "gclid": {
          "description": "Google click ID (gclid) associated with the original conversion for this adjustment.",
          "type": "string"
        },
        "conversionDateTime": {
          "type": "string",
          "description": "The date time at which the original conversion for this adjustment occurred. The timezone must be specified. The format is \"yyyy-mm-dd hh:mm:ss+|-hh:mm\", for example, \"2019-01-01 12:32:45-08:00\"."
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__GclidDateTimePair",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__FixedCpm": {
      "id": "GoogleAdsGoogleadsV24Common__FixedCpm",
      "type": "object",
      "description": "Fixed CPM (cost per thousand impression) bidding strategy. A manual bidding strategy with a fixed CPM.",
      "properties": {
        "goal": {
          "type": "string",
          "description": "Fixed CPM bidding goal. Determines the exact bidding optimization parameters.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Maximize reach, that is the number of users who saw the ads in this campaign.",
            "Target Frequency CPM bidder. Optimize bidding to reach a single user with the requested frequency."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "REACH",
            "TARGET_FREQUENCY"
          ]
        },
        "targetFrequencyInfo": {
          "description": "Target frequency bidding goal details.",
          "$ref": "GoogleAdsGoogleadsV24Common__FixedCpmTargetFrequencyGoalInfo"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__CallReportingSetting": {
      "description": "Call reporting setting for a customer. Only mutable in an `update` operation.",
      "properties": {
        "callConversionReportingEnabled": {
          "description": "Whether to enable call conversion reporting.",
          "type": "boolean"
        },
        "callConversionAction": {
          "type": "string",
          "description": "Customer-level call conversion action to attribute a call conversion to. If not set a default conversion action is used. Only in effect when call_conversion_reporting_enabled is set to true."
        },
        "callReportingEnabled": {
          "type": "boolean",
          "description": "Enable reporting of phone call events by redirecting them through Google System."
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__CallReportingSetting",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_RecommendationTargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption": {
      "description": "The Target CPA opt-in option with impact estimate.",
      "properties": {
        "impact": {
          "description": "Output only. The impact estimate if this option is selected.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_RecommendationImpact"
        },
        "goal": {
          "type": "string",
          "description": "Output only. The goal achieved by this option.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Recommendation to set Target CPA to maintain the same cost.",
            "Recommendation to set Target CPA to maintain the same conversions.",
            "Recommendation to set Target CPA to maintain the same CPA.",
            "Recommendation to set Target CPA to a value that is as close as possible to, yet lower than, the actual CPA (computed for past 28 days)."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SAME_COST",
            "SAME_CONVERSIONS",
            "SAME_CPA",
            "CLOSEST_CPA"
          ]
        },
        "requiredCampaignBudgetAmountMicros": {
          "description": "Output only. The minimum campaign budget, in local currency for the account, required to achieve the target CPA. Amount is specified in micros, where one million is equivalent to one currency unit.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "targetCpaMicros": {
          "type": "string",
          "description": "Output only. Average CPA target.",
          "readOnly": true,
          "format": "int64"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_RecommendationTargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__CampaignSharedSetOperation": {
      "description": "A single operation (create, remove) on a campaign shared set.",
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new campaign shared set.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CampaignSharedSet"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed campaign shared set is expected, in this format: `customers/{customer_id}/campaignSharedSets/{campaign_id}~{shared_set_id}`"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__CampaignSharedSetOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__AudienceExclusionDimension": {
      "id": "GoogleAdsGoogleadsV24Common__AudienceExclusionDimension",
      "type": "object",
      "description": "Negative dimension specifying users to exclude from the audience.",
      "properties": {
        "exclusions": {
          "type": "array",
          "description": "Audience segment to be excluded.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__ExclusionSegment"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_CampaignVideoCampaignSettings_VideoAdFormatControl": {
      "id": "GoogleAdsGoogleadsV24Resources_CampaignVideoCampaignSettings_VideoAdFormatControl",
      "type": "object",
      "description": "Format-restricting control enabling usage of video responsive ads in format defined Video campaigns (for example, non-skippable).",
      "properties": {
        "nonSkippableInStreamRestrictions": {
          "description": "Restrictions for non-skippable format.",
          "$ref": "GoogleAdsGoogleadsV24Resources_CampaignVideoCampaignSettings_NonSkippableInStreamRestrictions"
        },
        "formatRestriction": {
          "type": "string",
          "description": "All contained responsive ads are expected to respect this restriction.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Non-skippable in-stream video responsive ad."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NON_SKIPPABLE_IN_STREAM"
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__AssetCoverage": {
      "id": "GoogleAdsGoogleadsV24Resources__AssetCoverage",
      "type": "object",
      "description": "Information about the asset coverage of an asset group.",
      "properties": {
        "adStrengthActionItems": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Resources__AdStrengthActionItem"
          },
          "description": "Output only. A list of action items to improve the ad strength of an asset group.",
          "readOnly": true
        }
      }
    },
    "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_LowerTargetRoasParameters": {
      "description": "Parameters to use when applying lower Target ROAS recommendations.",
      "properties": {
        "targetRoasMultiplier": {
          "description": "Required. Target to set ROAS multiplier to. This is a required field.",
          "format": "double",
          "type": "number"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_LowerTargetRoasParameters",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateConversionValueRuleSetsRequest": {
      "description": "Request message for ConversionValueRuleSetService.MutateConversionValueRuleSets.",
      "properties": {
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "operations": {
          "type": "array",
          "description": "Required. The list of operations to perform on individual conversion value rule sets.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__ConversionValueRuleSetOperation"
          }
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "responseContentType": {
          "type": "string",
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ]
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateConversionValueRuleSetsRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__TargetFrequencySettings": {
      "id": "GoogleAdsGoogleadsV24Services__TargetFrequencySettings",
      "type": "object",
      "description": "Target Frequency settings for a supported product.",
      "properties": {
        "timeUnit": {
          "description": "Required. The time unit used to describe the time frame for target_frequency.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Optimize bidding to reach Target Frequency in a week.",
            "Optimize bidding to reach Target Frequency in a month."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "WEEKLY",
            "MONTHLY"
          ],
          "type": "string"
        },
        "targetFrequency": {
          "description": "Required. The target frequency goal per selected time unit.",
          "format": "int32",
          "type": "integer"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__ListAudienceInsightsAttributesResponse": {
      "id": "GoogleAdsGoogleadsV24Services__ListAudienceInsightsAttributesResponse",
      "type": "object",
      "description": "Response message for AudienceInsightsService.ListAudienceInsightsAttributes.",
      "properties": {
        "attributes": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AudienceInsightsAttributeMetadata"
          },
          "description": "The attributes matching the search query."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateKeywordPlanCampaignKeywordResult": {
      "id": "GoogleAdsGoogleadsV24Services__MutateKeywordPlanCampaignKeywordResult",
      "type": "object",
      "description": "The result for the Keyword Plan campaign keyword mutate.",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateAssetsRequest": {
      "id": "GoogleAdsGoogleadsV24Services__MutateAssetsRequest",
      "type": "object",
      "description": "Request message for AssetService.MutateAssets",
      "properties": {
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__AssetOperation"
          },
          "description": "Required. The list of operations to perform on individual assets."
        },
        "responseContentType": {
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "type": "string"
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__SurfaceTargeting": {
      "id": "GoogleAdsGoogleadsV24Services__SurfaceTargeting",
      "type": "object",
      "description": "Container for surfaces for a product. Surfaces refer to the available types of ad inventories such as In-Feed, In-Stream, and Shorts.",
      "properties": {
        "surfaces": {
          "type": "array",
          "description": "List of surfaces available to target.",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "The value is unknown in this version.",
              "Discover feed ad surface.",
              "Gmail ad surface.",
              "In-Feed ad surface.",
              "In-Stream bumper ad surface.",
              "In-Stream non-skippable ad surface.",
              "In-Stream skippable ad surface.",
              "Shorts ad surface.",
              "Google Display Network ad surface.",
              "In-Stream non-skippable (30 seconds) ad surface."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "DISCOVER_FEED",
              "GMAIL",
              "IN_FEED",
              "IN_STREAM_BUMPER",
              "IN_STREAM_NON_SKIPPABLE",
              "IN_STREAM_SKIPPABLE",
              "SHORTS",
              "GOOGLE_DISPLAY_NETWORK",
              "IN_STREAM_NON_SKIPPABLE_THIRTY_SECONDS"
            ]
          }
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__GenerateAudienceOverlapInsightsRequest": {
      "description": "Request message for AudienceInsightsService.GenerateAudienceOverlapInsights.",
      "properties": {
        "insightsApplicationInfo": {
          "description": "Optional. Additional information on the application issuing the request.",
          "$ref": "GoogleAdsGoogleadsV24Common__AdditionalApplicationInfo"
        },
        "customerInsightsGroup": {
          "type": "string",
          "description": "The name of the customer being planned for. This is a user-defined value."
        },
        "primaryAttribute": {
          "description": "Required. The audience attribute that should be intersected with all other eligible audiences. This must be an Affinity or In-Market UserInterest, an AgeRange or a Gender.",
          "$ref": "GoogleAdsGoogleadsV24Common__AudienceInsightsAttribute"
        },
        "dimensions": {
          "type": "array",
          "description": "Required. The types of attributes of which to calculate the overlap with the primary_attribute. The values must be a subset of AFFINITY_USER_INTEREST, IN_MARKET_USER_INTEREST, AGE_RANGE and GENDER.",
          "items": {
            "type": "string",
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "CATEGORY",
              "KNOWLEDGE_GRAPH",
              "GEO_TARGET_COUNTRY",
              "SUB_COUNTRY_LOCATION",
              "YOUTUBE_CHANNEL",
              "AFFINITY_USER_INTEREST",
              "IN_MARKET_USER_INTEREST",
              "PARENTAL_STATUS",
              "INCOME_RANGE",
              "AGE_RANGE",
              "GENDER",
              "YOUTUBE_VIDEO",
              "DEVICE",
              "YOUTUBE_LINEUP",
              "USER_LIST",
              "LIFE_EVENT_USER_INTEREST"
            ],
            "enumDescriptions": [
              "Not specified.",
              "The value is unknown in this version.",
              "A Product & Service category.",
              "A Knowledge Graph entity.",
              "A country, represented by a geo target.",
              "A geographic location within a country.",
              "A YouTube channel.",
              "An Affinity UserInterest.",
              "An In-Market UserInterest.",
              "A Parental Status value (parent, or not a parent).",
              "A household income percentile range.",
              "An age range.",
              "A gender.",
              "A YouTube video.",
              "A device type, such as Mobile, Desktop, Tablet, and Connected TV.",
              "A YouTube Lineup.",
              "A User List.",
              "A Life Event UserInterest."
            ]
          }
        },
        "countryLocation": {
          "description": "Required. The country in which to calculate the sizes and overlaps of audiences.",
          "$ref": "GoogleAdsGoogleadsV24Common__LocationInfo"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__GenerateAudienceOverlapInsightsRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__ProductTypeFullInfo": {
      "description": "Full type of a product offer. This listing dimension is deprecated and it is supported only in Display campaigns.",
      "properties": {
        "value": {
          "type": "string",
          "description": "String value of the product full type."
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__ProductTypeFullInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__YearMonth": {
      "id": "GoogleAdsGoogleadsV24Common__YearMonth",
      "type": "object",
      "description": "Year month.",
      "properties": {
        "year": {
          "description": "The year (for example, 2020).",
          "format": "int64",
          "type": "string"
        },
        "month": {
          "description": "The month of the year. (for example, FEBRUARY).",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "January.",
            "February.",
            "March.",
            "April.",
            "May.",
            "June.",
            "July.",
            "August.",
            "September.",
            "October.",
            "November.",
            "December."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "JANUARY",
            "FEBRUARY",
            "MARCH",
            "APRIL",
            "MAY",
            "JUNE",
            "JULY",
            "AUGUST",
            "SEPTEMBER",
            "OCTOBER",
            "NOVEMBER",
            "DECEMBER"
          ],
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__CpcBidSimulationPoint": {
      "id": "GoogleAdsGoogleadsV24Common__CpcBidSimulationPoint",
      "type": "object",
      "description": "Projected metrics for a specific CPC bid amount.",
      "properties": {
        "requiredBudgetAmountMicros": {
          "type": "string",
          "description": "Projected required daily budget that the advertiser must set in order to receive the estimated traffic, in micros of advertiser currency.",
          "format": "int64"
        },
        "biddableConversions": {
          "type": "number",
          "description": "Projected number of biddable conversions.",
          "format": "double"
        },
        "impressions": {
          "description": "Projected number of impressions.",
          "format": "int64",
          "type": "string"
        },
        "cpcBidMicros": {
          "description": "The simulated CPC bid upon which projected metrics are based.",
          "format": "int64",
          "type": "string"
        },
        "cpcBidScalingModifier": {
          "type": "number",
          "description": "The simulated scaling modifier upon which projected metrics are based. All CPC bids relevant to the simulated entity are scaled by this modifier.",
          "format": "double"
        },
        "costMicros": {
          "description": "Projected cost in micros.",
          "format": "int64",
          "type": "string"
        },
        "topSlotImpressions": {
          "type": "string",
          "description": "Projected number of top slot impressions. Only search advertising channel type supports this field.",
          "format": "int64"
        },
        "biddableConversionsValue": {
          "description": "Projected total value of biddable conversions.",
          "format": "double",
          "type": "number"
        },
        "clicks": {
          "type": "string",
          "description": "Projected number of clicks.",
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__DismissRecommendationRequest": {
      "id": "GoogleAdsGoogleadsV24Services__DismissRecommendationRequest",
      "type": "object",
      "description": "Request message for RecommendationService.DismissRecommendation.",
      "properties": {
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, operations will be carried in a single transaction if and only if they are all valid. Default is false."
        },
        "operations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services_DismissRecommendationRequest_DismissRecommendationOperation"
          },
          "description": "Required. The list of operations to dismiss recommendations. If partial_failure=false all recommendations should be of the same type There is a limit of 100 operations per request.",
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateAssetSetAssetsRequest": {
      "id": "GoogleAdsGoogleadsV24Services__MutateAssetSetAssetsRequest",
      "type": "object",
      "description": "Request message for AssetSetAssetService.MutateAssetSetAssets.",
      "properties": {
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__AssetSetAssetOperation"
          },
          "description": "Required. The list of operations to perform on individual asset set assets."
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "responseContentType": {
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "type": "string"
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_ConversionValueRule_ValueRuleItineraryCondition": {
      "description": "Condition on Itinerary dimension.",
      "properties": {
        "advanceBookingWindow": {
          "description": "Range for the number of days between the date of the booking and the start of the itinerary.",
          "$ref": "GoogleAdsGoogleadsV24Resources_ConversionValueRule_ValueRuleItineraryAdvanceBookingWindow"
        },
        "travelLength": {
          "description": "Range for the itinerary length in number of nights.",
          "$ref": "GoogleAdsGoogleadsV24Resources_ConversionValueRule_ValueRuleItineraryTravelLength"
        },
        "travelStartDay": {
          "description": "The days of the week on which this itinerary's travel can start.",
          "$ref": "GoogleAdsGoogleadsV24Resources_ConversionValueRule_ValueRuleItineraryTravelStartDay"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_ConversionValueRule_ValueRuleItineraryCondition",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__ListBenchmarksProductsRequest": {
      "id": "GoogleAdsGoogleadsV24Services__ListBenchmarksProductsRequest",
      "type": "object",
      "description": "Request message for BenchmarksService.ListBenchmarksProducts.",
      "properties": {
        "applicationInfo": {
          "description": "Additional information on the application issuing the request.",
          "$ref": "GoogleAdsGoogleadsV24Common__AdditionalApplicationInfo"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__BusinessProfileLocationSet": {
      "description": "Data used to configure a location set populated from Google Business Profile locations. Different types of filters are AND'ed together, if they are specified.",
      "properties": {
        "businessNameFilter": {
          "description": "Used to filter Google Business Profile listings by business name. If businessNameFilter is set, only listings with a matching business name are candidates to be sync'd into Assets.",
          "type": "string"
        },
        "listingIdFilters": {
          "items": {
            "type": "string",
            "format": "int64"
          },
          "description": "Used to filter Google Business Profile listings by listing id. If entries exist in listingIdFilters, only listings specified by the filters are candidates to be synchronized into Assets. If no entries exist in listingIdFilters, then all listings are candidates for syncing. Listing ID filters are OR'ed together.",
          "type": "array"
        },
        "httpAuthorizationToken": {
          "description": "Required. Immutable. The HTTP authorization token used to obtain authorization.",
          "type": "string"
        },
        "labelFilters": {
          "description": "Used to filter Google Business Profile listings by labels. If entries exist in labelFilters, only listings that have any of the labels set are candidates to be synchronized into Assets. If no entries exist in labelFilters, then all listings are candidates for syncing. Label filters are OR'ed together.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "businessAccountId": {
          "description": "Immutable. The account ID of the managed business whose locations are to be used. If this field is not set, then all businesses accessible by the user (specified by the emailAddress) are used.",
          "type": "string"
        },
        "emailAddress": {
          "description": "Required. Immutable. Email address of a Google Business Profile account or email address of a manager of the Google Business Profile account.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__BusinessProfileLocationSet",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__GenerateKeywordIdeaResult": {
      "id": "GoogleAdsGoogleadsV24Services__GenerateKeywordIdeaResult",
      "type": "object",
      "description": "The result of generating keyword ideas.",
      "properties": {
        "text": {
          "description": "Text of the keyword idea. As in Keyword Plan historical metrics, this text may not be an actual keyword, but the canonical form of multiple keywords. See KeywordPlanKeywordHistoricalMetrics message in KeywordPlanService.",
          "type": "string"
        },
        "keywordAnnotations": {
          "description": "The annotations for the keyword. The annotation data is only provided if requested.",
          "$ref": "GoogleAdsGoogleadsV24Common__KeywordAnnotations"
        },
        "keywordIdeaMetrics": {
          "description": "The historical metrics for the keyword.",
          "$ref": "GoogleAdsGoogleadsV24Common__KeywordPlanHistoricalMetrics"
        },
        "closeVariants": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The list of close variants from the requested keywords that are combined into this GenerateKeywordIdeaResult. See https://support.google.com/google-ads/answer/9342105 for the definition of \"close variants\"."
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__ProductLinkInvitation": {
      "id": "GoogleAdsGoogleadsV24Resources__ProductLinkInvitation",
      "type": "object",
      "description": "Represents an invitation for data sharing connection between a Google Ads account and another account.",
      "properties": {
        "merchantCenter": {
          "description": "Output only. Merchant Center link invitation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources__MerchantCenterLinkInvitationIdentifier"
        },
        "advertisingPartnerProperties": {
          "description": "Output only. Advertising Partner link invitation properties. These properties are only applicable when the link is for an Advertising Partner.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources__AdvertisingPartnerLinkInvitationProperties"
        },
        "type": {
          "description": "Output only. The type of the invited account. This field is read only and can be used for filtering invitations with {@code GoogleAdsService.SearchGoogleAdsRequest}.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "A link to Data partner.",
            "A link to Google Ads.",
            "A link to Hotel Center.",
            "A link to Google Merchant Center.",
            "A link to the Google Ads account of the advertising partner."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DATA_PARTNER",
            "GOOGLE_ADS",
            "HOTEL_CENTER",
            "MERCHANT_CENTER",
            "ADVERTISING_PARTNER"
          ],
          "type": "string"
        },
        "status": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ACCEPTED",
            "REQUESTED",
            "PENDING_APPROVAL",
            "REVOKED",
            "REJECTED",
            "EXPIRED"
          ],
          "description": "Output only. The status of the product link invitation. This field is read only.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The invitation is accepted.",
            "An invitation has been sent to the other account. A user on the other account may now accept the invitation by setting the status to ACCEPTED.",
            "This invitation has been sent by a user on the other account. It may be accepted by a user on this account by setting the status to ACCEPTED.",
            "The invitation is revoked by the user who sent the invitation.",
            "The invitation has been rejected by the invitee.",
            "The invitation has timed out before being accepted by the invitee."
          ],
          "type": "string"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of a product link invitation. Product link invitation resource names have the form: `customers/{customer_id}/productLinkInvitations/{product_link_invitation_id}`"
        },
        "productLinkInvitationId": {
          "description": "Output only. The ID of the product link invitation. This field is read only.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "hotelCenter": {
          "description": "Output only. Hotel link invitation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources__HotelCenterLinkInvitationIdentifier"
        },
        "advertisingPartner": {
          "description": "Output only. Advertising Partner link invitation.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources__AdvertisingPartnerLinkInvitationIdentifier"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__ListBatchJobResultsResponse": {
      "id": "GoogleAdsGoogleadsV24Services__ListBatchJobResultsResponse",
      "type": "object",
      "description": "Response message for BatchJobService.ListBatchJobResults.",
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__BatchJobResult"
          },
          "description": "The list of rows that matched the query."
        },
        "nextPageToken": {
          "type": "string",
          "description": "Pagination token used to retrieve the next page of results. Pass the content of this string as the `page_token` attribute of the next request. `next_page_token` is not returned for the last page."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateConversionCustomVariablesResponse": {
      "id": "GoogleAdsGoogleadsV24Services__MutateConversionCustomVariablesResponse",
      "type": "object",
      "description": "Response message for ConversionCustomVariableService.MutateConversionCustomVariables.",
      "properties": {
        "results": {
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateConversionCustomVariableResult"
          },
          "type": "array"
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__ProductChannelInfo": {
      "id": "GoogleAdsGoogleadsV24Common__ProductChannelInfo",
      "type": "object",
      "description": "Locality of a product offer.",
      "properties": {
        "channel": {
          "type": "string",
          "description": "Value of the locality.",
          "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"
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__CustomAffinityInfo": {
      "id": "GoogleAdsGoogleadsV24Common__CustomAffinityInfo",
      "type": "object",
      "description": "A custom affinity criterion. A criterion of this type is only targetable.",
      "properties": {
        "customAffinity": {
          "description": "The CustomInterest resource name.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_ConversionValueRule_ValueRuleAction": {
      "id": "GoogleAdsGoogleadsV24Resources_ConversionValueRule_ValueRuleAction",
      "type": "object",
      "description": "Action applied when rule is applied.",
      "properties": {
        "value": {
          "type": "number",
          "description": "Specifies applied value.",
          "format": "double"
        },
        "operation": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADD",
            "MULTIPLY",
            "SET"
          ],
          "description": "Specifies applied operation.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Add provided value to conversion value.",
            "Multiply conversion value by provided value.",
            "Set conversion value to provided value."
          ],
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_ResponsiveSearchAdAssetParameters": {
      "description": "Parameters to use when applying a responsive search ad asset recommendation.",
      "properties": {
        "updatedAd": {
          "description": "Updated ad. The current ad's content will be replaced.",
          "$ref": "GoogleAdsGoogleadsV24Resources__Ad"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_ResponsiveSearchAdAssetParameters",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__AdGroupAdLabel": {
      "description": "A relationship between an ad group ad and a label.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the ad group ad label. Ad group ad label resource names have the form: `customers/{customer_id}/adGroupAdLabels/{ad_group_id}~{ad_id}~{label_id}`"
        },
        "adGroupAd": {
          "type": "string",
          "description": "Immutable. The ad group ad to which the label is attached."
        },
        "label": {
          "type": "string",
          "description": "Immutable. The label assigned to the ad group ad."
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__AdGroupAdLabel",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_Recommendation_ImproveGoogleTagCoverageRecommendation": {
      "description": "Recommendation to deploy Google Tag on more pages.",
      "properties": {},
      "id": "GoogleAdsGoogleadsV24Resources_Recommendation_ImproveGoogleTagCoverageRecommendation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_MoveUnusedBudgetParameters": {
      "description": "Parameters to use when applying move unused budget recommendation.",
      "properties": {
        "budgetMicrosToMove": {
          "type": "string",
          "description": "Budget amount to move from excess budget to constrained budget. This is a required field.",
          "format": "int64"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services_ApplyRecommendationOperation_MoveUnusedBudgetParameters",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__DetailPlacementView": {
      "description": "A view with metrics aggregated by ad group and URL or YouTube video. This view primarily surfaces placement data from the Google Display Network. While you can select segments like `segments.ad_network_type`, this view generally does not include placement data from other networks, such as the Search Partners network. To understand performance on Search Partners, consider other reports and segmentations.",
      "properties": {
        "displayName": {
          "type": "string",
          "description": "Output only. The display name is URL name for websites, YouTube video name for YouTube videos, and translated mobile app name for mobile apps.",
          "readOnly": true
        },
        "groupPlacementTargetUrl": {
          "type": "string",
          "description": "Output only. URL of the group placement, for example, domain, link to the mobile application in app store, or a YouTube channel URL.",
          "readOnly": true
        },
        "placementType": {
          "type": "string",
          "description": "Output only. Type of the placement, for example, Website, YouTube Video, and Mobile Application.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Websites(for example, 'www.flowers4sale.com').",
            "Mobile application categories(for example, 'Games').",
            "mobile applications(for example, 'mobileapp::2-com.whatsthewordanswers').",
            "YouTube videos(for example, 'youtube.com/video/wtLJPvx7-ys').",
            "YouTube channels(for example, 'youtube.com::L8ZULXASCc1I_oaOT0NaOQ').",
            "Surfaces owned and operated by Google(for example, 'tv.google.com')."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "WEBSITE",
            "MOBILE_APP_CATEGORY",
            "MOBILE_APPLICATION",
            "YOUTUBE_VIDEO",
            "YOUTUBE_CHANNEL",
            "GOOGLE_PRODUCTS"
          ]
        },
        "targetUrl": {
          "description": "Output only. URL of the placement, for example, website, link to the mobile application in app store, or a YouTube video URL.",
          "readOnly": true,
          "type": "string"
        },
        "resourceName": {
          "description": "Output only. The resource name of the detail placement view. Detail placement view resource names have the form: `customers/{customer_id}/detailPlacementViews/{ad_group_id}~{base64_placement}`",
          "readOnly": true,
          "type": "string"
        },
        "placement": {
          "type": "string",
          "description": "Output only. The automatic placement string at detail level, e. g. website URL, mobile application ID, or a YouTube video ID.",
          "readOnly": true
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__DetailPlacementView",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__DisplayKeywordView": {
      "id": "GoogleAdsGoogleadsV24Resources__DisplayKeywordView",
      "type": "object",
      "description": "A display keyword view. Provides performance data for keywords used in Display Network campaigns. This view lets you analyze how your display keywords are performing across various segments. This view is primarily used to track the effectiveness of keyword targeting within your Display campaigns. To understand which network the metrics apply to, you can select the `segments.ad_network_type` field in your query. This field will segment the data by networks such as the Google Display Network, YouTube, Gmail, and so on. You can select fields from this resource along with metrics like impressions, clicks, and conversions to gauge performance. Attributed resources like `ad_group` and `campaign` can also be selected without segmenting metrics.",
      "properties": {
        "resourceName": {
          "description": "Output only. The resource name of the display keyword view. Display Keyword view resource names have the form: `customers/{customer_id}/displayKeywordViews/{ad_group_id}~{criterion_id}`",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateAdGroupAssetSetResult": {
      "description": "The result for the ad group asset set mutate.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        },
        "adGroupAssetSet": {
          "description": "The mutated ad group asset set with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV24Resources__AdGroupAssetSet"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateAdGroupAssetSetResult",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Errors__ErrorDetails": {
      "description": "Additional error details.",
      "properties": {
        "resourceCountDetails": {
          "description": "Details for a resource count limit exceeded error.",
          "$ref": "GoogleAdsGoogleadsV24Errors__ResourceCountDetails"
        },
        "reservationErrorDetails": {
          "description": "Details for a reservation error.",
          "$ref": "GoogleAdsGoogleadsV24Errors__ReservationErrorDetails"
        },
        "unpublishedErrorCode": {
          "type": "string",
          "description": "The error code that should have been returned, but wasn't. This is used when the error code is not published in the client specified version."
        },
        "policyFindingDetails": {
          "description": "Describes policy violation findings.",
          "$ref": "GoogleAdsGoogleadsV24Errors__PolicyFindingDetails"
        },
        "quotaErrorDetails": {
          "description": "Details on the quota error, including the scope (account or developer), the rate bucket name and the retry delay.",
          "$ref": "GoogleAdsGoogleadsV24Errors__QuotaErrorDetails"
        },
        "budgetPerDayMinimumErrorDetails": {
          "description": "Details for a budget below per-day minimum error.",
          "$ref": "GoogleAdsGoogleadsV24Errors__BudgetPerDayMinimumErrorDetails"
        },
        "policyViolationDetails": {
          "description": "Describes an ad policy violation.",
          "$ref": "GoogleAdsGoogleadsV24Errors__PolicyViolationDetails"
        }
      },
      "id": "GoogleAdsGoogleadsV24Errors__ErrorDetails",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__CustomParameter": {
      "id": "GoogleAdsGoogleadsV24Common__CustomParameter",
      "type": "object",
      "description": "A mapping that can be used by custom parameter tags in a `tracking_url_template`, `final_urls`, or `mobile_final_urls`.",
      "properties": {
        "key": {
          "description": "The key matching the parameter tag name.",
          "type": "string"
        },
        "value": {
          "type": "string",
          "description": "The value to be substituted."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateExperimentArmsRequest": {
      "description": "Request message for ExperimentArmService.MutateExperimentArms.",
      "properties": {
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__ExperimentArmOperation"
          },
          "description": "Required. The list of operations to perform on individual experiment arm."
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "responseContentType": {
          "type": "string",
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ]
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateExperimentArmsRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__CrmBasedUserListInfo": {
      "id": "GoogleAdsGoogleadsV24Common__CrmBasedUserListInfo",
      "type": "object",
      "description": "UserList of CRM users provided by the advertiser.",
      "properties": {
        "appId": {
          "type": "string",
          "description": "A string that uniquely identifies a mobile application from which the data was collected. For iOS, the ID string is the 9 digit string that appears at the end of an App Store URL (for example, \"476943146\" for \"Flood-It! 2\" whose App Store link is http://itunes.apple.com/us/app/flood-it!-2/id476943146). For Android, the ID string is the application's package name (for example, \"com.labpixies.colordrips\" for \"Color Drips\" given Google Play link https://play.google.com/store/apps/details?id=com.labpixies.colordrips). Required when creating CrmBasedUserList for uploading mobile advertising IDs."
        },
        "uploadKeyType": {
          "description": "Matching key type of the list. Mixed data types are not allowed on the same list. This field is required for an ADD operation.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Members are matched from customer info such as email address, phone number or physical address.",
            "Members are matched from a user id generated and assigned by the advertiser.",
            "Members are matched from mobile advertising ids."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CONTACT_INFO",
            "CRM_ID",
            "MOBILE_ADVERTISING_ID"
          ],
          "type": "string"
        },
        "dataSourceType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "FIRST_PARTY",
            "THIRD_PARTY_CREDIT_BUREAU",
            "THIRD_PARTY_VOTER_FILE",
            "THIRD_PARTY_PARTNER_DATA"
          ],
          "description": "Data source of the list. Default value is FIRST_PARTY. Only customers on the allow-list can create third-party sourced CRM lists.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The uploaded data is first-party data.",
            "The uploaded data is from a third-party credit bureau.",
            "The uploaded data is from a third-party voter file.",
            "The uploaded data is third party partner data."
          ],
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__ProductTypeInfo": {
      "id": "GoogleAdsGoogleadsV24Common__ProductTypeInfo",
      "type": "object",
      "description": "Type of a product offer.",
      "properties": {
        "value": {
          "description": "Value of the type.",
          "type": "string"
        },
        "level": {
          "type": "string",
          "description": "Level of the type.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Level 1.",
            "Level 2.",
            "Level 3.",
            "Level 4.",
            "Level 5."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "LEVEL1",
            "LEVEL2",
            "LEVEL3",
            "LEVEL4",
            "LEVEL5"
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__CustomerOperation": {
      "id": "GoogleAdsGoogleadsV24Services__CustomerOperation",
      "type": "object",
      "description": "A single update on a customer.",
      "properties": {
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask",
          "type": "string"
        },
        "update": {
          "description": "Mutate operation. Only updates are supported for customer.",
          "$ref": "GoogleAdsGoogleadsV24Resources__Customer"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__UniversityDegree": {
      "id": "GoogleAdsGoogleadsV24Resources__UniversityDegree",
      "type": "object",
      "description": "A list of degrees this employee has obtained, and wants to feature.",
      "properties": {
        "degree": {
          "description": "Output only. Name of the degree obtained.",
          "readOnly": true,
          "type": "string"
        },
        "graduationYear": {
          "type": "integer",
          "description": "Output only. Year of graduation.",
          "readOnly": true,
          "format": "int32"
        },
        "institutionName": {
          "description": "Output only. Name of the university at which the degree was obtained.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__KeywordView": {
      "id": "GoogleAdsGoogleadsV24Resources__KeywordView",
      "type": "object",
      "description": "A keyword view.",
      "properties": {
        "resourceName": {
          "type": "string",
          "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
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__WebpageView": {
      "id": "GoogleAdsGoogleadsV24Resources__WebpageView",
      "type": "object",
      "description": "A webpage view.",
      "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"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateAccountLinkResponse": {
      "id": "GoogleAdsGoogleadsV24Services__MutateAccountLinkResponse",
      "type": "object",
      "description": "Response message for account link mutate.",
      "properties": {
        "result": {
          "description": "Result for the mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateAccountLinkResult"
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__InsightsAudienceDefinition": {
      "description": "A structured definition of the audience of interest for which insights are being requested in AudienceInsightsService.",
      "properties": {
        "baselineAudience": {
          "description": "Optional. The baseline audience. The default, if unspecified, is all people in the same country as the audience of interest.",
          "$ref": "GoogleAdsGoogleadsV24Services__InsightsAudience"
        },
        "audience": {
          "description": "Required. The audience of interest for which insights are being requested.",
          "$ref": "GoogleAdsGoogleadsV24Services__InsightsAudience"
        },
        "dataMonth": {
          "type": "string",
          "description": "Optional. The one-month range of historical data to use for insights, in the format \"yyyy-mm\". If unset, insights will be returned for the last thirty days of data."
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__InsightsAudienceDefinition",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_Recommendation_RecommendationImpact": {
      "description": "The impact of making the change as described in the recommendation. Some types of recommendations may not have impact information.",
      "properties": {
        "baseMetrics": {
          "description": "Output only. Base metrics at the time the recommendation was generated.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_RecommendationMetrics"
        },
        "potentialMetrics": {
          "description": "Output only. Estimated metrics if the recommendation is applied.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_RecommendationMetrics"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_Recommendation_RecommendationImpact",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services_GenerateRecommendationsRequest_SeedInfo": {
      "description": "A keyword seed and a specific url to generate keywords from.",
      "properties": {
        "urlSeed": {
          "type": "string",
          "description": "A specific url to generate ideas from, for example: www.example.com/cars."
        },
        "keywordSeeds": {
          "items": {
            "type": "string"
          },
          "description": "Optional. Keywords or phrases to generate ideas from, for example: cars or \"car dealership near me\".",
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services_GenerateRecommendationsRequest_SeedInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_Recommendation_TextAdRecommendation": {
      "id": "GoogleAdsGoogleadsV24Resources_Recommendation_TextAdRecommendation",
      "type": "object",
      "description": "The text ad recommendation.",
      "properties": {
        "autoApplyDate": {
          "type": "string",
          "description": "Output only. Date, if present, is the earliest when the recommendation will be auto applied. YYYY-MM-DD format, for example, 2018-04-17.",
          "readOnly": true
        },
        "creationDate": {
          "type": "string",
          "description": "Output only. Creation date of the recommended ad. YYYY-MM-DD format, for example, 2018-04-17.",
          "readOnly": true
        },
        "ad": {
          "description": "Output only. Recommended ad.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources__Ad"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__DemandGenProductAdInfo": {
      "id": "GoogleAdsGoogleadsV24Common__DemandGenProductAdInfo",
      "type": "object",
      "description": "A Demand Gen product ad.",
      "properties": {
        "description": {
          "description": "Required. Text asset used for the description.",
          "$ref": "GoogleAdsGoogleadsV24Common__AdTextAsset"
        },
        "headline": {
          "description": "Required. Text asset used for the short headline.",
          "$ref": "GoogleAdsGoogleadsV24Common__AdTextAsset"
        },
        "logoImage": {
          "description": "Required. Logo image to be used in the ad. Valid image types are GIF, JPEG, and PNG. The minimum size is 128x128 and the aspect ratio must be 1:1 (+-1%).",
          "$ref": "GoogleAdsGoogleadsV24Common__AdImageAsset"
        },
        "breadcrumb2": {
          "description": "Second part of text that appears in the ad with the displayed URL.",
          "type": "string"
        },
        "breadcrumb1": {
          "description": "First part of text that appears in the ad with the displayed URL.",
          "type": "string"
        },
        "businessName": {
          "description": "Required. The advertiser/brand name.",
          "$ref": "GoogleAdsGoogleadsV24Common__AdTextAsset"
        },
        "callToAction": {
          "description": "Asset of type CallToActionAsset used for the \"Call To Action\" button.",
          "$ref": "GoogleAdsGoogleadsV24Common__AdCallToActionAsset"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__OfflineUserDataJobMetadata": {
      "id": "GoogleAdsGoogleadsV24Resources__OfflineUserDataJobMetadata",
      "type": "object",
      "description": "Metadata of offline user data job.",
      "properties": {
        "matchRateRange": {
          "type": "string",
          "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\".",
          "readOnly": true,
          "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"
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_Campaign_BrandGuidelines": {
      "description": "Settings that control the visual appearance of your brand in a campaign's automatically generated assets and formats. Only applicable to Performance Max campaigns.",
      "properties": {
        "accentColor": {
          "description": "The accent brand color, entered as a hex code (e.g., #00ff00). You must provide the accent_color if you provide a main_color.",
          "type": "string"
        },
        "mainColor": {
          "type": "string",
          "description": "The main brand color, entered as a hex code (e.g., #00ff00). You must provide the main_color if you provide an accent_color."
        },
        "predefinedFontFamily": {
          "description": "The brand's font family. Must be one of the following Google Fonts (case sensitive): Open Sans, Roboto, Montserrat, Poppins, Lato, Oswald, Playfair Display, Roboto Slab.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_Campaign_BrandGuidelines",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__EventAttribute": {
      "id": "GoogleAdsGoogleadsV24Common__EventAttribute",
      "type": "object",
      "description": "Advertiser defined events and their attributes. All the values in the nested fields are required.",
      "properties": {
        "eventDateTime": {
          "type": "string",
          "description": "Required. Timestamp at which the event happened. The format is YYYY-MM-DD HH:MM:SS[+/-HH:MM], where [+/-HH:MM] is an optional timezone offset from UTC. If the offset is absent, the API will use the account's timezone as default."
        },
        "itemAttribute": {
          "description": "Required. Item attributes of the event.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__EventItemAttribute"
          },
          "type": "array"
        },
        "event": {
          "description": "Required. Advertiser defined event to be used for remarketing. The accepted values are \"Viewed\", \"Cart\", \"Purchased\" and \"Recommended\".",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__YouTubeMetrics": {
      "description": "YouTube Channel metrics.",
      "properties": {
        "partnershipOpportunities": {
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Default value. This value is equivalent to null.",
              "Output-only. Represents a format not yet defined in this enum.",
              "A partnership opportunity that allows advertisers to partner with YouTube creators on sponsored content that mentions a brand or product. See https://support.google.com/google-ads/answer/15471603 to learn more.",
              "A partnership opportunity that gives brands exclusive access to all ad slots on channels of top creators.",
              "A partnership opportunity that enables brands to use YouTube creator videos in their ad campaigns. See https://support.google.com/google-ads/answer/15223349 to learn more.",
              "A partnership opportunity that allows advertisers to buy specific ad placements on a reservation basis to target among the top 1% of popular channels on YouTube. See https://support.google.com/google-ads/answer/6030919 to learn more."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "CREATOR_PARTNERSHIPS",
              "CREATOR_TAKEOVER",
              "PARTNERSHIP_ADS",
              "YOUTUBE_SELECT_LINEUPS"
            ]
          },
          "description": "Partnership opportunities available for this creator.",
          "type": "array"
        },
        "averageSharesPerVideo": {
          "type": "number",
          "description": "The average number of shares per video in the last 28 days.",
          "format": "double"
        },
        "viewsCount": {
          "type": "string",
          "description": "The total number of views.",
          "format": "int64"
        },
        "isActiveShortsCreator": {
          "type": "boolean",
          "description": "When true, this channel has published a Shorts video in the last 90 days."
        },
        "isActiveLiveStreamCreator": {
          "description": "When true, this channel has published a live stream in the last 90 days.",
          "type": "boolean"
        },
        "subscriberCount": {
          "description": "The number of subscribers.",
          "format": "int64",
          "type": "string"
        },
        "shortsViewsCount": {
          "type": "string",
          "description": "The total number of views across all Shorts videos of this channel.",
          "format": "int64"
        },
        "engagementRate": {
          "description": "The lifetime engagement rate of this channel. The value is computed as the total number of likes, shares, and comments across all videos divided by the total number of video views.",
          "format": "double",
          "type": "number"
        },
        "shortsVideoCount": {
          "description": "The total number of Shorts videos.",
          "format": "int64",
          "type": "string"
        },
        "sharesCount": {
          "description": "The total number of shares across all videos of this channel.",
          "format": "int64",
          "type": "string"
        },
        "commentsCount": {
          "type": "string",
          "description": "The total number of comments across all videos of this channel.",
          "format": "int64"
        },
        "averageCommentsPerVideo": {
          "description": "The average number of comments per video in the last 28 days.",
          "format": "double",
          "type": "number"
        },
        "likesCount": {
          "type": "string",
          "description": "The total number of likes across all videos of this channel.",
          "format": "int64"
        },
        "averageLikesPerVideo": {
          "description": "The average number of likes per video in the last 28 days.",
          "format": "double",
          "type": "number"
        },
        "averageViewsPerVideo": {
          "description": "The average number of views per video in the last 28 days.",
          "format": "double",
          "type": "number"
        },
        "videoCount": {
          "type": "string",
          "description": "The total number of videos.",
          "format": "int64"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__YouTubeMetrics",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__RuleBasedUserListInfo": {
      "description": "Representation of a userlist that is generated by a rule.",
      "properties": {
        "prepopulationStatus": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "REQUESTED",
            "FINISHED",
            "FAILED"
          ],
          "description": "The status of pre-population. The field is default to NONE if not set which means the previous users will not be considered. If set to REQUESTED, past site visitors or app users who match the list definition will be included in the list (works on the Display Network only). This will only add past users from within the last 30 days, depending on the list's membership duration and the date when the remarketing tag is added. The status will be updated to FINISHED once request is processed, or FAILED if the request fails.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Prepopoulation is being requested.",
            "Prepopulation is finished.",
            "Prepopulation failed."
          ]
        },
        "flexibleRuleUserList": {
          "description": "Flexible rule representation of visitors with one or multiple actions. The flexible user list is defined by two lists of operands – inclusive_operands and exclusive_operands; each operand represents a set of users based on actions they took in a given timeframe. These lists of operands are combined with the AND_NOT operator, so that users represented by the inclusive operands are included in the user list, minus the users represented by the exclusive operands.",
          "$ref": "GoogleAdsGoogleadsV24Common__FlexibleRuleUserListInfo"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__RuleBasedUserListInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateCustomConversionGoalsResponse": {
      "description": "Response message for a custom conversion goal mutate.",
      "properties": {
        "results": {
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomConversionGoalResult"
          },
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateCustomConversionGoalsResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__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.",
      "properties": {
        "dynamicFlightsAsset": {
          "description": "A dynamic flights asset.",
          "$ref": "GoogleAdsGoogleadsV24Common__DynamicFlightsAsset"
        },
        "policySummary": {
          "description": "Output only. Policy information for the asset.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources__AssetPolicySummary"
        },
        "mobileAppAsset": {
          "description": "A mobile app asset.",
          "$ref": "GoogleAdsGoogleadsV24Common__MobileAppAsset"
        },
        "resourceName": {
          "description": "Immutable. The resource name of the asset. Asset resource names have the form: `customers/{customer_id}/assets/{asset_id}`",
          "type": "string"
        },
        "fieldTypePolicySummaries": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Resources__AssetFieldTypePolicySummary"
          },
          "description": "Output only. Policy information for the asset for each FieldType.",
          "readOnly": true
        },
        "imageAsset": {
          "description": "Output only. An image asset.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Common__ImageAsset"
        },
        "businessMessageAsset": {
          "description": "A business message asset.",
          "$ref": "GoogleAdsGoogleadsV24Common__BusinessMessageAsset"
        },
        "priceAsset": {
          "description": "A price asset.",
          "$ref": "GoogleAdsGoogleadsV24Common__PriceAsset"
        },
        "callAsset": {
          "description": "A call asset.",
          "$ref": "GoogleAdsGoogleadsV24Common__CallAsset"
        },
        "trackingUrlTemplate": {
          "type": "string",
          "description": "URL template for constructing a tracking URL."
        },
        "source": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADVERTISER",
            "AUTOMATICALLY_CREATED"
          ],
          "description": "Output only. Source of the asset.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset or asset link is provided by advertiser.",
            "The asset or asset link is generated by Google."
          ]
        },
        "hotelPropertyAsset": {
          "description": "Immutable. A hotel property asset.",
          "$ref": "GoogleAdsGoogleadsV24Common__HotelPropertyAsset"
        },
        "type": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "YOUTUBE_VIDEO",
            "MEDIA_BUNDLE",
            "IMAGE",
            "TEXT",
            "LEAD_FORM",
            "BOOK_ON_GOOGLE",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "PAGE_FEED",
            "DYNAMIC_EDUCATION",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "CALL_TO_ACTION",
            "DYNAMIC_REAL_ESTATE",
            "DYNAMIC_CUSTOM",
            "DYNAMIC_HOTELS_AND_RENTALS",
            "DYNAMIC_FLIGHTS",
            "DYNAMIC_TRAVEL",
            "DYNAMIC_LOCAL",
            "DYNAMIC_JOBS",
            "LOCATION",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "APP_DEEP_LINK",
            "YOUTUBE_VIDEO_LIST"
          ],
          "description": "Output only. Type of the asset.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "YouTube video asset.",
            "Media bundle asset.",
            "Image asset.",
            "Text asset.",
            "Lead form asset.",
            "Book on Google asset.",
            "Promotion asset.",
            "Callout asset.",
            "Structured Snippet asset.",
            "Sitelink asset.",
            "Page Feed asset.",
            "Dynamic Education asset.",
            "Mobile app asset.",
            "Hotel callout asset.",
            "Call asset.",
            "Price asset.",
            "Call to action asset.",
            "Dynamic real estate asset.",
            "Dynamic custom asset.",
            "Dynamic hotels and rentals asset.",
            "Dynamic flights asset.",
            "Dynamic travel asset.",
            "Dynamic local asset.",
            "Dynamic jobs asset.",
            "Location asset.",
            "Hotel property asset.",
            "Demand Gen Carousel Card asset.",
            "Business message asset.",
            "App deep link asset.",
            "YouTube video list asset."
          ]
        },
        "locationAsset": {
          "description": "Output only. A location asset.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Common__LocationAsset"
        },
        "dynamicEducationAsset": {
          "description": "A dynamic education asset.",
          "$ref": "GoogleAdsGoogleadsV24Common__DynamicEducationAsset"
        },
        "textAsset": {
          "description": "Immutable. A text asset.",
          "$ref": "GoogleAdsGoogleadsV24Common__TextAsset"
        },
        "leadFormAsset": {
          "description": "A lead form asset.",
          "$ref": "GoogleAdsGoogleadsV24Common__LeadFormAsset"
        },
        "callToActionAsset": {
          "description": "Immutable. A call to action asset.",
          "$ref": "GoogleAdsGoogleadsV24Common__CallToActionAsset"
        },
        "dynamicCustomAsset": {
          "description": "A dynamic custom asset.",
          "$ref": "GoogleAdsGoogleadsV24Common__DynamicCustomAsset"
        },
        "sitelinkAsset": {
          "description": "A sitelink asset.",
          "$ref": "GoogleAdsGoogleadsV24Common__SitelinkAsset"
        },
        "structuredSnippetAsset": {
          "description": "A structured snippet asset.",
          "$ref": "GoogleAdsGoogleadsV24Common__StructuredSnippetAsset"
        },
        "dynamicTravelAsset": {
          "description": "A dynamic travel asset.",
          "$ref": "GoogleAdsGoogleadsV24Common__DynamicTravelAsset"
        },
        "hotelCalloutAsset": {
          "description": "A hotel callout asset.",
          "$ref": "GoogleAdsGoogleadsV24Common__HotelCalloutAsset"
        },
        "dynamicRealEstateAsset": {
          "description": "A dynamic real estate asset.",
          "$ref": "GoogleAdsGoogleadsV24Common__DynamicRealEstateAsset"
        },
        "orientation": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "LANDSCAPE",
            "PORTRAIT",
            "SQUARE"
          ],
          "description": "Output only. Orientation of the asset. This is only supported for image and video assets.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Landscape orientation.",
            "Portrait orientation.",
            "Square orientation."
          ],
          "type": "string"
        },
        "bookOnGoogleAsset": {
          "description": "A book on google asset.",
          "$ref": "GoogleAdsGoogleadsV24Common__BookOnGoogleAsset"
        },
        "appDeepLinkAsset": {
          "description": "Immutable. An app deep link asset.",
          "$ref": "GoogleAdsGoogleadsV24Common__AppDeepLinkAsset"
        },
        "calloutAsset": {
          "description": "A callout asset.",
          "$ref": "GoogleAdsGoogleadsV24Common__CalloutAsset"
        },
        "pageFeedAsset": {
          "description": "A page feed asset.",
          "$ref": "GoogleAdsGoogleadsV24Common__PageFeedAsset"
        },
        "urlCustomParameters": {
          "type": "array",
          "description": "A list of mappings to be used for substituting URL custom parameter tags in the tracking_url_template, final_urls, and/or final_mobile_urls.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__CustomParameter"
          }
        },
        "id": {
          "type": "string",
          "description": "Output only. The ID of the asset.",
          "readOnly": true,
          "format": "int64"
        },
        "promotionAsset": {
          "description": "A promotion asset.",
          "$ref": "GoogleAdsGoogleadsV24Common__PromotionAsset"
        },
        "demandGenCarouselCardAsset": {
          "description": "Immutable. A Demand Gen carousel card asset.",
          "$ref": "GoogleAdsGoogleadsV24Common__DemandGenCarouselCardAsset"
        },
        "dynamicJobsAsset": {
          "description": "A dynamic jobs asset.",
          "$ref": "GoogleAdsGoogleadsV24Common__DynamicJobsAsset"
        },
        "finalUrlSuffix": {
          "type": "string",
          "description": "URL template for appending params to landing page URLs served with parallel tracking."
        },
        "youtubeVideoAsset": {
          "description": "Immutable. A YouTube video asset.",
          "$ref": "GoogleAdsGoogleadsV24Common__YoutubeVideoAsset"
        },
        "finalMobileUrls": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of possible final mobile URLs after all cross domain redirects."
        },
        "dynamicHotelsAndRentalsAsset": {
          "description": "A dynamic hotels and rentals asset.",
          "$ref": "GoogleAdsGoogleadsV24Common__DynamicHotelsAndRentalsAsset"
        },
        "finalUrls": {
          "description": "A list of possible final URLs after all cross domain redirects.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "mediaBundleAsset": {
          "description": "Immutable. A media bundle asset.",
          "$ref": "GoogleAdsGoogleadsV24Common__MediaBundleAsset"
        },
        "dynamicLocalAsset": {
          "description": "A dynamic local asset.",
          "$ref": "GoogleAdsGoogleadsV24Common__DynamicLocalAsset"
        },
        "name": {
          "type": "string",
          "description": "Optional name of the asset."
        },
        "youtubeVideoListAsset": {
          "description": "Immutable. A YouTube video list asset.",
          "$ref": "GoogleAdsGoogleadsV24Common__YouTubeVideoListAsset"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__Asset",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateRemarketingActionsResponse": {
      "id": "GoogleAdsGoogleadsV24Services__MutateRemarketingActionsResponse",
      "type": "object",
      "description": "Response message for remarketing action mutate.",
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateRemarketingActionResult"
          },
          "description": "All results for the mutate."
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__SkAdNetworkSourceApp": {
      "id": "GoogleAdsGoogleadsV24Common__SkAdNetworkSourceApp",
      "type": "object",
      "description": "A SkAdNetworkSourceApp segment.",
      "properties": {
        "skAdNetworkSourceAppId": {
          "type": "string",
          "description": "App id where the ad that drove the iOS Store Kit Ad Network install was shown."
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__HotelCityInfo": {
      "description": "City the hotel is located in.",
      "properties": {
        "cityCriterion": {
          "type": "string",
          "description": "The Geo Target Constant resource name."
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__HotelCityInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__RetailTag": {
      "id": "GoogleAdsGoogleadsV24Common__RetailTag",
      "type": "object",
      "description": "Represents a Retail Filter Tag.",
      "properties": {
        "expressionName": {
          "description": "The name of the expression this tag belongs to. If empty, the tag is a top-level condition.",
          "type": "string"
        },
        "value": {
          "type": "string",
          "description": "The value of the tag. It can contain at most 50 characters. All Unicode characters except comma and newline are allowed. This field is required."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__ListInsightsEligibleDatesRequest": {
      "description": "Request message for AudienceInsightsService.ListInsightsEligibleDates.",
      "properties": {
        "insightsApplicationInfo": {
          "description": "Optional. Additional information on the application issuing the request.",
          "$ref": "GoogleAdsGoogleadsV24Common__AdditionalApplicationInfo"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__ListInsightsEligibleDatesRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common_PolicyTopicEvidence_DestinationTextList": {
      "description": "A list of strings found in a destination page that caused a policy finding.",
      "properties": {
        "destinationTexts": {
          "type": "array",
          "description": "List of text found in the resource's destination page.",
          "items": {
            "type": "string"
          }
        }
      },
      "id": "GoogleAdsGoogleadsV24Common_PolicyTopicEvidence_DestinationTextList",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__BudgetCampaignAssociationStatus": {
      "id": "GoogleAdsGoogleadsV24Common__BudgetCampaignAssociationStatus",
      "type": "object",
      "description": "A BudgetCampaignAssociationStatus segment.",
      "properties": {
        "campaign": {
          "description": "The campaign resource name.",
          "type": "string"
        },
        "status": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "description": "Budget campaign association status.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The campaign is currently using the budget.",
            "The campaign is no longer using the budget."
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_Recommendation_ImprovePerformanceMaxAdStrengthRecommendation": {
      "id": "GoogleAdsGoogleadsV24Resources_Recommendation_ImprovePerformanceMaxAdStrengthRecommendation",
      "type": "object",
      "description": "Recommendation to improve the asset group strength of a Performance Max campaign to an \"Excellent\" rating.",
      "properties": {
        "assetGroup": {
          "description": "Output only. The asset group resource name.",
          "readOnly": true,
          "type": "string"
        },
        "adStrength": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PENDING",
            "NO_ADS",
            "POOR",
            "AVERAGE",
            "GOOD",
            "EXCELLENT"
          ],
          "description": "Output only. The current ad strength score of the asset group.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The ad strength is currently pending.",
            "No ads could be generated.",
            "Poor strength.",
            "Average strength.",
            "Good strength.",
            "Excellent strength."
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateCustomerUserAccessResponse": {
      "description": "Response message for customer user access mutate.",
      "properties": {
        "result": {
          "description": "Result for the mutate.",
          "$ref": "GoogleAdsGoogleadsV24Services__MutateCustomerUserAccessResult"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateCustomerUserAccessResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateAdGroupLabelsRequest": {
      "id": "GoogleAdsGoogleadsV24Services__MutateAdGroupLabelsRequest",
      "type": "object",
      "description": "Request message for AdGroupLabelService.MutateAdGroupLabels.",
      "properties": {
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "operations": {
          "description": "Required. The list of operations to perform on ad group labels.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__AdGroupLabelOperation"
          },
          "type": "array"
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__ProductCustomAttributeInfo": {
      "description": "Custom attribute of a product offer.",
      "properties": {
        "value": {
          "type": "string",
          "description": "String value of the product custom attribute."
        },
        "index": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INDEX0",
            "INDEX1",
            "INDEX2",
            "INDEX3",
            "INDEX4"
          ],
          "description": "Indicates the index of the custom attribute.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "First product custom attribute.",
            "Second product custom attribute.",
            "Third product custom attribute.",
            "Fourth product custom attribute.",
            "Fifth product custom attribute."
          ],
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__ProductCustomAttributeInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateAssetGroupsRequest": {
      "description": "Request message for AssetGroupService.MutateAssetGroups.",
      "properties": {
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__AssetGroupOperation"
          },
          "description": "Required. The list of operations to perform on individual asset groups."
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateAssetGroupsRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_Campaign_LocalCampaignSetting": {
      "id": "GoogleAdsGoogleadsV24Resources_Campaign_LocalCampaignSetting",
      "type": "object",
      "description": "Campaign setting for local campaigns.",
      "properties": {
        "locationSourceType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "GOOGLE_MY_BUSINESS",
            "AFFILIATE"
          ],
          "description": "The location source type for this local campaign.",
          "enumDescriptions": [
            "No value has been specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Locations associated with the customer's linked Business Profile.",
            "Affiliate (chain) store locations. For example, Best Buy store locations."
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__CustomAudienceOperation": {
      "description": "A single operation (create, update) on a custom audience.",
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new custom audience.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CustomAudience"
        },
        "update": {
          "description": "Update operation: The custom audience is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CustomAudience"
        },
        "remove": {
          "description": "Remove operation: A resource name for the removed custom audience is expected, in this format: `customers/{customer_id}/customAudiences/{custom_audience_id}`",
          "type": "string"
        },
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__CustomAudienceOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__TargetImpressionShareSimulationPoint": {
      "description": "Projected metrics for a specific target impression share value.",
      "properties": {
        "topSlotImpressions": {
          "type": "string",
          "description": "Projected number of top slot impressions. Only search advertising channel type supports this field.",
          "format": "int64"
        },
        "requiredCpcBidCeilingMicros": {
          "type": "string",
          "description": "Projected required daily cpc bid ceiling that the advertiser must set to realize this simulation, in micros of the advertiser currency.",
          "format": "int64"
        },
        "clicks": {
          "description": "Projected number of clicks.",
          "format": "int64",
          "type": "string"
        },
        "biddableConversionsValue": {
          "description": "Projected total value of biddable conversions.",
          "format": "double",
          "type": "number"
        },
        "absoluteTopImpressions": {
          "description": "Projected number of absolute top impressions. Only search advertising channel type supports this field.",
          "format": "int64",
          "type": "string"
        },
        "requiredBudgetAmountMicros": {
          "description": "Projected required daily budget that the advertiser must set in order to receive the estimated traffic, in micros of advertiser currency.",
          "format": "int64",
          "type": "string"
        },
        "targetImpressionShareMicros": {
          "type": "string",
          "description": "The simulated target impression share value (in micros) upon which projected metrics are based. For example, 10% impression share, which is equal to 0.1, is stored as 100_000. This value is validated and will not exceed 1M (100%).",
          "format": "int64"
        },
        "impressions": {
          "description": "Projected number of impressions.",
          "format": "int64",
          "type": "string"
        },
        "biddableConversions": {
          "description": "Projected number of biddable conversions.",
          "format": "double",
          "type": "number"
        },
        "costMicros": {
          "type": "string",
          "description": "Projected cost in micros.",
          "format": "int64"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__TargetImpressionShareSimulationPoint",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__PlannableUserListMetadata": {
      "id": "GoogleAdsGoogleadsV24Services__PlannableUserListMetadata",
      "type": "object",
      "description": "The metadata associated with a plannable user list.",
      "properties": {
        "userListCrmDataSourceType": {
          "type": "string",
          "description": "The data source type of a CRM based user list.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The uploaded data is first-party data.",
            "The uploaded data is from a third-party credit bureau.",
            "The uploaded data is from a third-party voter file.",
            "The uploaded data is third party partner data."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "FIRST_PARTY",
            "THIRD_PARTY_CREDIT_BUREAU",
            "THIRD_PARTY_VOTER_FILE",
            "THIRD_PARTY_PARTNER_DATA"
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_Recommendation_MigrateDynamicSearchAdsCampaignToPerformanceMaxRecommendation": {
      "description": "The Dynamic Search Ads to Performance Max migration recommendation.",
      "properties": {
        "applyLink": {
          "description": "Output only. A link to the Google Ads UI where the customer can manually apply the recommendation.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_Recommendation_MigrateDynamicSearchAdsCampaignToPerformanceMaxRecommendation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__CreateCustomerClientRequest": {
      "description": "Request message for CustomerService.CreateCustomerClient.",
      "properties": {
        "customerClient": {
          "description": "Required. The new client customer to create. The resource name on this customer will be ignored.",
          "$ref": "GoogleAdsGoogleadsV24Resources__Customer"
        },
        "accessRole": {
          "description": "The proposed role of user on the created client customer. Accessible only to customers on the allow-list.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Owns its account and can control the addition of other users.",
            "Can modify campaigns, but can't affect other users.",
            "Can view campaigns and account changes, but cannot make edits.",
            "Role for \\\"email only\\\" access. Represents an email recipient rather than a true User entity."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADMIN",
            "STANDARD",
            "READ_ONLY",
            "EMAIL_ONLY"
          ],
          "type": "string"
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "emailAddress": {
          "description": "Email address of the user who should be invited on the created client customer. Accessible only to customers on the allow-list.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__CreateCustomerClientRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_ListingGroupFilterDimension_RetailFilterBundle": {
      "id": "GoogleAdsGoogleadsV24Resources_ListingGroupFilterDimension_RetailFilterBundle",
      "type": "object",
      "description": "Dimension for Retail Product Tags.",
      "properties": {
        "sharedSet": {
          "description": "The RetailFilterBundle shared set resource name.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__ForecastAdGroup": {
      "id": "GoogleAdsGoogleadsV24Services__ForecastAdGroup",
      "type": "object",
      "description": "An ad group that is part of a campaign to be forecasted.",
      "properties": {
        "keywords": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__KeywordInfo"
          },
          "description": "Required. The list of keywords to be used in the ad group when doing the forecast. Requires at least one keyword."
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__AdGroupCriterionCustomizer": {
      "description": "A customizer value for the associated CustomizerAttribute at the AdGroupCriterion level.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the ad group criterion customizer. Ad group criterion customizer resource names have the form: `customers/{customer_id}/adGroupCriterionCustomizers/{ad_group_id}~{criterion_id}~{customizer_attribute_id}`"
        },
        "customizerAttribute": {
          "type": "string",
          "description": "Required. Immutable. The customizer attribute which is linked to the ad group criterion."
        },
        "value": {
          "description": "Required. The value to associate with the customizer attribute at this level. The value must be of the type specified for the CustomizerAttribute.",
          "$ref": "GoogleAdsGoogleadsV24Common__CustomizerValue"
        },
        "status": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "description": "Output only. The status of the ad group criterion customizer.",
          "readOnly": true,
          "enumDescriptions": [
            "The status has not been specified.",
            "The received value is not known in this version.",
            "The customizer value is enabled.",
            "The customizer value is removed."
          ],
          "type": "string"
        },
        "adGroupCriterion": {
          "description": "Immutable. The ad group criterion to which the customizer attribute is linked. It must be a keyword criterion.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__AdGroupCriterionCustomizer",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__GetIdentityVerificationResponse": {
      "description": "Response message for GetIdentityVerification.",
      "properties": {
        "identityVerification": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__IdentityVerification"
          },
          "description": "List of identity verifications for the customer.",
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__GetIdentityVerificationResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__TargetRoasSimulationPoint": {
      "description": "Projected metrics for a specific target ROAS amount.",
      "properties": {
        "biddableConversions": {
          "description": "Projected number of biddable conversions.",
          "format": "double",
          "type": "number"
        },
        "impressions": {
          "description": "Projected number of impressions.",
          "format": "int64",
          "type": "string"
        },
        "biddableConversionsValue": {
          "type": "number",
          "description": "Projected total value of biddable conversions.",
          "format": "double"
        },
        "clicks": {
          "type": "string",
          "description": "Projected number of clicks.",
          "format": "int64"
        },
        "costMicros": {
          "description": "Projected cost in micros.",
          "format": "int64",
          "type": "string"
        },
        "topSlotImpressions": {
          "description": "Projected number of top slot impressions. Only Search advertising channel type supports this field.",
          "format": "int64",
          "type": "string"
        },
        "requiredBudgetAmountMicros": {
          "description": "Projected required daily budget that the advertiser must set in order to receive the estimated traffic, in micros of advertiser currency.",
          "format": "int64",
          "type": "string"
        },
        "targetRoas": {
          "type": "number",
          "description": "The simulated target ROAS upon which projected metrics are based.",
          "format": "double"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__TargetRoasSimulationPoint",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_AdGroupCriterion_QualityInfo": {
      "id": "GoogleAdsGoogleadsV24Resources_AdGroupCriterion_QualityInfo",
      "type": "object",
      "description": "A container for ad group criterion quality information.",
      "properties": {
        "creativeQualityScore": {
          "description": "Output only. The performance of the ad compared to other advertisers.",
          "readOnly": true,
          "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"
          ],
          "type": "string"
        },
        "postClickQualityScore": {
          "description": "Output only. The quality score of the landing page.",
          "readOnly": true,
          "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"
          ],
          "type": "string"
        },
        "qualityScore": {
          "type": "integer",
          "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,
          "format": "int32"
        },
        "searchPredictedCtr": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BELOW_AVERAGE",
            "AVERAGE",
            "ABOVE_AVERAGE"
          ],
          "description": "Output only. The click-through rate compared to that of other advertisers.",
          "readOnly": true,
          "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."
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__ResponsiveDisplayAdControlSpec": {
      "id": "GoogleAdsGoogleadsV24Common__ResponsiveDisplayAdControlSpec",
      "type": "object",
      "description": "Specification for various creative controls for a responsive display ad.",
      "properties": {
        "enableAssetEnhancements": {
          "type": "boolean",
          "description": "Whether the advertiser has opted into the asset enhancements feature."
        },
        "enableAutogenVideo": {
          "description": "Whether the advertiser has opted into auto-gen video feature.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_ListingGroupFilterDimension_ProductType": {
      "id": "GoogleAdsGoogleadsV24Resources_ListingGroupFilterDimension_ProductType",
      "type": "object",
      "description": "Type of a product offer.",
      "properties": {
        "value": {
          "description": "Value of the type.",
          "type": "string"
        },
        "level": {
          "description": "Level of the type.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Level 1.",
            "Level 2.",
            "Level 3.",
            "Level 4.",
            "Level 5."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "LEVEL1",
            "LEVEL2",
            "LEVEL3",
            "LEVEL4",
            "LEVEL5"
          ],
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__CustomerAsset": {
      "description": "A link between a customer and an asset.",
      "properties": {
        "primaryStatusDetails": {
          "description": "Output only. Provides the details of the primary status and its associated reasons.",
          "readOnly": true,
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AssetLinkPrimaryStatusDetails"
          },
          "type": "array"
        },
        "asset": {
          "type": "string",
          "description": "Required. Immutable. The asset which is linked to the customer."
        },
        "primaryStatus": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ELIGIBLE",
            "PAUSED",
            "REMOVED",
            "PENDING",
            "LIMITED",
            "NOT_ELIGIBLE"
          ],
          "description": "Output only. Provides the PrimaryStatus of this asset link. Primary status is meant essentially to differentiate between the plain \"status\" field, which has advertiser set values of enabled, paused, or removed. The primary status takes into account other signals (for assets its mainly policy and quality approvals) to come up with a more comprehensive status to indicate its serving state.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is eligible to serve.",
            "The user-specified asset link status is paused.",
            "The user-specified asset link status is removed.",
            "The asset may serve in the future.",
            "The asset is serving in a partial capacity.",
            "The asset is not eligible to serve."
          ]
        },
        "primaryStatusReasons": {
          "description": "Output only. Provides a list of reasons for why an asset is not serving or not serving at full capacity.",
          "readOnly": true,
          "items": {
            "type": "string",
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "ASSET_LINK_PAUSED",
              "ASSET_LINK_REMOVED",
              "ASSET_DISAPPROVED",
              "ASSET_UNDER_REVIEW",
              "ASSET_APPROVED_LABELED"
            ],
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "The asset is paused for its linked rollup level. Contributes to a PrimaryStatus of PAUSED.",
              "The asset is removed for its linked rollup level. Contributes to a PrimaryStatus of REMOVED.",
              "The asset has been marked as disapproved. Contributes to a PrimaryStatus of NOT_ELIGIBLE",
              "The asset has not completed policy review. Contributes to a PrimaryStatus of PENDING.",
              "The asset is approved with policies applied. Contributes to a PrimaryStatus of LIMITED."
            ]
          },
          "type": "array"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the customer asset. CustomerAsset resource names have the form: `customers/{customer_id}/customerAssets/{asset_id}~{field_type}`"
        },
        "fieldType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE",
            "DESCRIPTION",
            "MANDATORY_AD_TEXT",
            "MARKETING_IMAGE",
            "MEDIA_BUNDLE",
            "YOUTUBE_VIDEO",
            "BOOK_ON_GOOGLE",
            "LEAD_FORM",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "LONG_HEADLINE",
            "BUSINESS_NAME",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "VIDEO",
            "CALL_TO_ACTION_SELECTION",
            "AD_IMAGE",
            "BUSINESS_LOGO",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "TALL_PORTRAIT_MARKETING_IMAGE",
            "RELATED_YOUTUBE_VIDEOS",
            "LANDING_PAGE_PREVIEW",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION"
          ],
          "description": "Required. Immutable. Role that the asset takes for the customer link.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is linked for use as a headline.",
            "The asset is linked for use as a description.",
            "The asset is linked for use as mandatory ad text.",
            "The asset is linked for use as a marketing image.",
            "The asset is linked for use as a media bundle.",
            "The asset is linked for use as a YouTube video.",
            "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
            "The asset is linked for use as a Lead Form extension.",
            "The asset is linked for use as a Promotion extension.",
            "The asset is linked for use as a Callout extension.",
            "The asset is linked for use as a Structured Snippet extension.",
            "The asset is linked for use as a Sitelink.",
            "The asset is linked for use as a Mobile App extension.",
            "The asset is linked for use as a Hotel Callout extension.",
            "The asset is linked for use as a Call extension.",
            "The asset is linked for use as a Price extension.",
            "The asset is linked for use as a long headline.",
            "The asset is linked for use as a business name.",
            "The asset is linked for use as a square marketing image.",
            "The asset is linked for use as a portrait marketing image.",
            "The asset is linked for use as a logo.",
            "The asset is linked for use as a landscape logo.",
            "The asset is linked for use as a non YouTube logo.",
            "The asset is linked for use to select a call-to-action.",
            "The asset is linked for use to select an ad image.",
            "The asset is linked for use as a business logo.",
            "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
            "The asset is linked for use as a Demand Gen carousel card.",
            "The asset is linked for use as a Business Message.",
            "The asset is linked for use as a tall portrait marketing image.",
            "The asset is linked for use as related YouTube videos.",
            "The asset is linked for use as a landing page preview image.",
            "The asset is linked for use as a long description.",
            "The asset is linked for use as a call-to-action."
          ],
          "type": "string"
        },
        "source": {
          "description": "Output only. Source of the customer asset link.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset or asset link is provided by advertiser.",
            "The asset or asset link is generated by Google."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADVERTISER",
            "AUTOMATICALLY_CREATED"
          ],
          "type": "string"
        },
        "status": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED",
            "PAUSED"
          ],
          "description": "Status of the customer asset.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Asset link is enabled.",
            "Asset link has been removed.",
            "Asset link is paused."
          ]
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__CustomerAsset",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__TargetingExpansionView": {
      "id": "GoogleAdsGoogleadsV24Resources__TargetingExpansionView",
      "type": "object",
      "description": "A targeting expansion view with metrics. Returns metrics for automated expansion over manual targeting.",
      "properties": {
        "resourceName": {
          "description": "Output only. The resource name of the targeting expansion view. Targeting expansion view resource names have the form: `customers/{customer_id}/targetingExpansionViews/{campaign_id}~{targeting_expansion_type}`",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateAdGroupAdResult": {
      "id": "GoogleAdsGoogleadsV24Services__MutateAdGroupAdResult",
      "type": "object",
      "description": "The result for the ad mutate.",
      "properties": {
        "adGroupAd": {
          "description": "The mutated ad group ad with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV24Resources__AdGroupAd"
        },
        "resourceName": {
          "description": "The resource name returned for successful operations.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__YouTubeCreatorInsights": {
      "id": "GoogleAdsGoogleadsV24Services__YouTubeCreatorInsights",
      "type": "object",
      "description": "A YouTube creator and the insights for this creator.",
      "properties": {
        "creatorChannels": {
          "type": "array",
          "description": "The list of YouTube Channels",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__YouTubeChannelInsights"
          }
        },
        "creatorName": {
          "type": "string",
          "description": "The name of the creator."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__AdParameterOperation": {
      "description": "A single operation (create, update, remove) on ad parameter.",
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new ad parameter.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AdParameter"
        },
        "updateMask": {
          "type": "string",
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask"
        },
        "update": {
          "description": "Update operation: The ad parameter is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AdParameter"
        },
        "remove": {
          "description": "Remove operation: A resource name for the ad parameter to remove is expected in this format: `customers/{customer_id}/adParameters/{ad_group_id}~{criterion_id}~{parameter_index}`",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__AdParameterOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__LicenseVerificationArtifact": {
      "description": "A proto holding information specific to a local services license.",
      "properties": {
        "licenseeFirstName": {
          "description": "Output only. First name of the licensee.",
          "readOnly": true,
          "type": "string"
        },
        "expirationDateTime": {
          "description": "Output only. The timestamp when this license expires. The format is \"YYYY-MM-DD HH:MM:SS\" in the Google Ads account's timezone. Examples: \"2018-03-05 09:15:00\" or \"2018-02-01 14:34:30\"",
          "readOnly": true,
          "type": "string"
        },
        "licenseNumber": {
          "type": "string",
          "description": "Output only. License number.",
          "readOnly": true
        },
        "licenseType": {
          "type": "string",
          "description": "Output only. License type / name.",
          "readOnly": true
        },
        "rejectionReason": {
          "description": "Output only. License rejection reason.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Business name doesn't match business name for the Local Services Ad.",
            "License is unauthorized or been revoked.",
            "License is expired.",
            "License is poor quality - blurry images, illegible, etc...",
            "License cannot be verified due to a not legitimate image.",
            "License is not the requested document type or contains an invalid ID.",
            "License has another flaw not listed explicitly."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BUSINESS_NAME_MISMATCH",
            "UNAUTHORIZED",
            "EXPIRED",
            "POOR_QUALITY",
            "UNVERIFIABLE",
            "WRONG_DOCUMENT_OR_ID",
            "OTHER"
          ],
          "type": "string"
        },
        "licenseDocumentReadonly": {
          "description": "Output only. The readonly field containing the information for an uploaded license document.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Common__LocalServicesDocumentReadOnly"
        },
        "licenseeLastName": {
          "type": "string",
          "description": "Output only. Last name of the licensee.",
          "readOnly": true
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__LicenseVerificationArtifact",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__HotelCenterLinkInvitationIdentifier": {
      "id": "GoogleAdsGoogleadsV24Resources__HotelCenterLinkInvitationIdentifier",
      "type": "object",
      "description": "The identifier for Hotel account.",
      "properties": {
        "hotelCenterId": {
          "type": "string",
          "description": "Output only. The hotel center id of the hotel account. This field is read only",
          "readOnly": true,
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__ConversionCustomVariable": {
      "id": "GoogleAdsGoogleadsV24Resources__ConversionCustomVariable",
      "type": "object",
      "description": "A conversion custom variable See \"About custom variables for conversions\" at https://support.google.com/google-ads/answer/9964350",
      "properties": {
        "name": {
          "type": "string",
          "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."
        },
        "tag": {
          "description": "Required. Immutable. The tag of the conversion custom variable. It is used in the event snippet and sent to Google Ads along with conversion pings. For conversion uploads in Google Ads API, the resource name of the conversion custom variable is used. Tag should be unique. The maximum size of tag is 100 bytes. There should not be any extra spaces before and after. Currently only lowercase letters, numbers and underscores are allowed in the tag.",
          "type": "string"
        },
        "ownerCustomer": {
          "description": "Output only. The resource name of the customer that owns the conversion custom variable.",
          "readOnly": true,
          "type": "string"
        },
        "status": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ACTIVATION_NEEDED",
            "ENABLED",
            "PAUSED"
          ],
          "description": "The status of the conversion custom variable for conversion event accrual.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The conversion custom variable is pending activation and will not accrue stats until set to ENABLED. This status can't be used in CREATE and UPDATE requests.",
            "The conversion custom variable is enabled and will accrue stats.",
            "The conversion custom variable is paused and will not accrue stats until set to ENABLED again."
          ],
          "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"
        },
        "id": {
          "type": "string",
          "description": "Output only. The ID of the conversion custom variable.",
          "readOnly": true,
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__AssetFieldTypePolicySummary": {
      "id": "GoogleAdsGoogleadsV24Resources__AssetFieldTypePolicySummary",
      "type": "object",
      "description": "Contains policy information for an asset under AssetFieldType context.",
      "properties": {
        "assetFieldType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE",
            "DESCRIPTION",
            "MANDATORY_AD_TEXT",
            "MARKETING_IMAGE",
            "MEDIA_BUNDLE",
            "YOUTUBE_VIDEO",
            "BOOK_ON_GOOGLE",
            "LEAD_FORM",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "LONG_HEADLINE",
            "BUSINESS_NAME",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "VIDEO",
            "CALL_TO_ACTION_SELECTION",
            "AD_IMAGE",
            "BUSINESS_LOGO",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "TALL_PORTRAIT_MARKETING_IMAGE",
            "RELATED_YOUTUBE_VIDEOS",
            "LANDING_PAGE_PREVIEW",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION"
          ],
          "description": "Output only. FieldType of this asset.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is linked for use as a headline.",
            "The asset is linked for use as a description.",
            "The asset is linked for use as mandatory ad text.",
            "The asset is linked for use as a marketing image.",
            "The asset is linked for use as a media bundle.",
            "The asset is linked for use as a YouTube video.",
            "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
            "The asset is linked for use as a Lead Form extension.",
            "The asset is linked for use as a Promotion extension.",
            "The asset is linked for use as a Callout extension.",
            "The asset is linked for use as a Structured Snippet extension.",
            "The asset is linked for use as a Sitelink.",
            "The asset is linked for use as a Mobile App extension.",
            "The asset is linked for use as a Hotel Callout extension.",
            "The asset is linked for use as a Call extension.",
            "The asset is linked for use as a Price extension.",
            "The asset is linked for use as a long headline.",
            "The asset is linked for use as a business name.",
            "The asset is linked for use as a square marketing image.",
            "The asset is linked for use as a portrait marketing image.",
            "The asset is linked for use as a logo.",
            "The asset is linked for use as a landscape logo.",
            "The asset is linked for use as a non YouTube logo.",
            "The asset is linked for use to select a call-to-action.",
            "The asset is linked for use to select an ad image.",
            "The asset is linked for use as a business logo.",
            "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
            "The asset is linked for use as a Demand Gen carousel card.",
            "The asset is linked for use as a Business Message.",
            "The asset is linked for use as a tall portrait marketing image.",
            "The asset is linked for use as related YouTube videos.",
            "The asset is linked for use as a landing page preview image.",
            "The asset is linked for use as a long description.",
            "The asset is linked for use as a call-to-action."
          ],
          "type": "string"
        },
        "assetSource": {
          "type": "string",
          "description": "Output only. Source of this asset.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset or asset link is provided by advertiser.",
            "The asset or asset link is generated by Google."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADVERTISER",
            "AUTOMATICALLY_CREATED"
          ]
        },
        "policySummaryInfo": {
          "description": "Output only. Policy summary.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources__AssetPolicySummary"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_Recommendation_ShoppingOfferAttributeRecommendation": {
      "id": "GoogleAdsGoogleadsV24Resources_Recommendation_ShoppingOfferAttributeRecommendation",
      "type": "object",
      "description": "The shopping recommendation to add an attribute to offers that are demoted because it is missing.",
      "properties": {
        "feedLabel": {
          "type": "string",
          "description": "Output only. The campaign feed label.",
          "readOnly": true
        },
        "offersCount": {
          "description": "Output only. The number of online, servable offers.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "merchant": {
          "description": "Output only. The details of the Merchant Center account.",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources_Recommendation_MerchantInfo"
        },
        "demotedOffersCount": {
          "description": "Output only. The number of online, servable offers that are demoted for missing attributes. Visit the Merchant Center for more details.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__KeywordPlanCampaignKeyword": {
      "id": "GoogleAdsGoogleadsV24Resources__KeywordPlanCampaignKeyword",
      "type": "object",
      "description": "A Keyword Plan Campaign keyword. Only negative keywords are supported for Campaign Keyword.",
      "properties": {
        "negative": {
          "type": "boolean",
          "description": "Immutable. If true, the keyword is negative. Must be set to true. Only negative campaign keywords are supported."
        },
        "keywordPlanCampaign": {
          "type": "string",
          "description": "The Keyword Plan campaign to which this negative keyword belongs."
        },
        "matchType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EXACT",
            "PHRASE",
            "BROAD"
          ],
          "description": "The keyword match type.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Exact match.",
            "Phrase match.",
            "Broad match."
          ]
        },
        "id": {
          "type": "string",
          "description": "Output only. The ID of the Keyword Plan negative keyword.",
          "readOnly": true,
          "format": "int64"
        },
        "resourceName": {
          "description": "Immutable. The resource name of the Keyword Plan Campaign keyword. KeywordPlanCampaignKeyword resource names have the form: `customers/{customer_id}/keywordPlanCampaignKeywords/{kp_campaign_keyword_id}`",
          "type": "string"
        },
        "text": {
          "type": "string",
          "description": "The keyword text."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__RestatementValue": {
      "id": "GoogleAdsGoogleadsV24Services__RestatementValue",
      "type": "object",
      "description": "Contains information needed to restate a conversion's value.",
      "properties": {
        "adjustedValue": {
          "type": "number",
          "description": "The restated conversion value. This is the value of the conversion after restatement. For example, to change the value of a conversion from 100 to 70, an adjusted value of 70 should be reported. NOTE: If you want to upload a second restatement with a different adjusted value, it must have a new, more recent, adjustment occurrence time. Otherwise, it will be treated as a duplicate of the previous restatement and ignored.",
          "format": "double"
        },
        "currencyCode": {
          "type": "string",
          "description": "The currency of the restated value. If not provided, then the default currency from the conversion action is used, and if that is not set then the account currency is used. This is the ISO 4217 3-character currency code for example, USD or EUR."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__CampaignDuration": {
      "description": "The duration of a planned campaign.",
      "properties": {
        "durationInDays": {
          "type": "integer",
          "description": "The duration value in days. This field cannot be combined with the date_range field.",
          "format": "int32"
        },
        "dateRange": {
          "description": "Date range of the campaign. Dates are in the yyyy-mm-dd format and inclusive. The end date must be \u003c 1 year in the future and the date range must be \u003c= 92 days long. This field cannot be combined with the duration_in_days field.",
          "$ref": "GoogleAdsGoogleadsV24Common__DateRange"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__CampaignDuration",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__MapsLocationInfo": {
      "description": "Wrapper for place ids",
      "properties": {
        "placeId": {
          "description": "Place ID of the Maps location.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__MapsLocationInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__UpdateDataLinkResponse": {
      "id": "GoogleAdsGoogleadsV24Services__UpdateDataLinkResponse",
      "type": "object",
      "description": "Response message for DataLinkService.UpdateDataLink.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations. Resource name of the data link."
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources_ConversionValueRule_ValueRuleAudienceCondition": {
      "id": "GoogleAdsGoogleadsV24Resources_ConversionValueRule_ValueRuleAudienceCondition",
      "type": "object",
      "description": "Condition on Audience dimension.",
      "properties": {
        "userLists": {
          "type": "array",
          "description": "User Lists.",
          "items": {
            "type": "string"
          }
        },
        "userInterests": {
          "type": "array",
          "description": "User Interests.",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__RemoveProductLinkInvitationRequest": {
      "id": "GoogleAdsGoogleadsV24Services__RemoveProductLinkInvitationRequest",
      "type": "object",
      "description": "Request message for ProductLinkInvitationService.RemoveProductLinkInvitation.",
      "properties": {
        "resourceName": {
          "description": "Required. The resource name of the product link invitation being removed. expected, in this format: `customers/{customer_id}/productLinkInvitations/{product_link_invitation_id} `",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__ExpandedDynamicSearchAdInfo": {
      "id": "GoogleAdsGoogleadsV24Common__ExpandedDynamicSearchAdInfo",
      "type": "object",
      "description": "An expanded dynamic search ad.",
      "properties": {
        "description": {
          "description": "The description of the ad.",
          "type": "string"
        },
        "description2": {
          "type": "string",
          "description": "The second description of the ad."
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__CustomerThirdPartyReachIntegrationPartner": {
      "description": "Container for third party reach integration data for Customer.",
      "properties": {
        "allowShareCost": {
          "description": "If true, cost data can be shared with this vendor.",
          "type": "boolean"
        },
        "reachIntegrationPartner": {
          "type": "string",
          "description": "Allowed Third Party integration partners for reach verification.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Nielsen.",
            "Comscore.",
            "Kantar.",
            "Video Research.",
            "Gemius.",
            "MediaScope.",
            "AudienceProject",
            "VideoAmp",
            "iSpot.tv"
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NIELSEN",
            "COMSCORE",
            "KANTAR_MILLWARD_BROWN",
            "VIDEO_RESEARCH",
            "GEMIUS",
            "MEDIA_SCOPE",
            "AUDIENCE_PROJECT",
            "VIDEO_AMP",
            "ISPOT_TV"
          ]
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__CustomerThirdPartyReachIntegrationPartner",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__DemandGenMultiAssetAdInfo": {
      "description": "A Demand Gen multi asset ad.",
      "properties": {
        "tallPortraitMarketingImages": {
          "type": "array",
          "description": "Tall portrait marketing image assets to be used in the ad. Valid image types are GIF, JPEG, and PNG. The minimum size is 600x1067 and the aspect ratio must be 9:16 (+-1%). Combined with `marketing_images`, `square_marketing_images`, and `portrait_marketing_images`, the maximum is 20.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdImageAsset"
          }
        },
        "portraitMarketingImages": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdImageAsset"
          },
          "description": "Portrait marketing image assets to be used in the ad. Valid image types are GIF, JPEG, and PNG. The minimum size is 480x600 and the aspect ratio must be 4:5 (+-1%). Combined with `marketing_images`, `square_marketing_images`, and `tall_portrait_marketing_images` the maximum is 20.",
          "type": "array"
        },
        "callToActionText": {
          "description": "Call to action text.",
          "type": "string"
        },
        "headlines": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdTextAsset"
          },
          "description": "Headline text asset of the ad. Maximum display width is 30. At least 1 and max 5 headlines can be specified."
        },
        "logoImages": {
          "type": "array",
          "description": "Logo image assets to be used in the ad. Valid image types are GIF, JPEG, and PNG. The minimum size is 128x128 and the aspect ratio must be 1:1 (+-1%). At least 1 and max 5 logo images can be specified.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdImageAsset"
          }
        },
        "marketingImages": {
          "description": "Marketing image assets to be used in the ad. Valid image types are GIF, JPEG, and PNG. The minimum size is 600x314 and the aspect ratio must be 1.91:1 (+-1%). Required if square_marketing_images is not present. Combined with `square_marketing_images`, `portrait_marketing_images`, and `tall_portrait_marketing_images` the maximum is 20.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdImageAsset"
          },
          "type": "array"
        },
        "squareMarketingImages": {
          "description": "Square marketing image assets to be used in the ad. Valid image types are GIF, JPEG, and PNG. The minimum size is 300x300 and the aspect ratio must be 1:1 (+-1%). Required if marketing_images is not present. Combined with `marketing_images`, `portrait_marketing_images`, and `tall_portrait_marketing_images` the maximum is 20.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdImageAsset"
          },
          "type": "array"
        },
        "businessName": {
          "type": "string",
          "description": "The Advertiser/brand name. Maximum display width is 25. Required."
        },
        "descriptions": {
          "type": "array",
          "description": "The descriptive text of the ad. Maximum display width is 90. At least 1 and max 5 descriptions can be specified.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdTextAsset"
          }
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__DemandGenMultiAssetAdInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateCustomerSkAdNetworkConversionValueSchemaRequest": {
      "description": "Request message for CustomerSkAdNetworkConversionValueSchemaService.MutateCustomerSkAdNetworkConversionValueSchema.",
      "properties": {
        "operation": {
          "description": "The operation to perform.",
          "$ref": "GoogleAdsGoogleadsV24Services__CustomerSkAdNetworkConversionValueSchemaOperation"
        },
        "enableWarnings": {
          "type": "boolean",
          "description": "Optional. If true, enables returning warnings. Warnings return error messages and error codes without blocking the execution of the mutate operation."
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateCustomerSkAdNetworkConversionValueSchemaRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateBiddingSeasonalityAdjustmentsResult": {
      "id": "GoogleAdsGoogleadsV24Services__MutateBiddingSeasonalityAdjustmentsResult",
      "type": "object",
      "description": "The result for the seasonality adjustment mutate.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        },
        "biddingSeasonalityAdjustment": {
          "description": "The mutated bidding seasonality adjustment with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV24Resources__BiddingSeasonalityAdjustment"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateLabelsResponse": {
      "description": "Response message for a labels mutate.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "type": "array",
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateLabelResult"
          }
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateLabelsResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__ConfigureCustomerLifecycleGoalsRequest": {
      "description": "Request message for CustomerLifecycleGoalService.ConfigureCustomerLifecycleGoals.",
      "properties": {
        "operation": {
          "description": "Required. The operation to perform customer lifecycle goal update.",
          "$ref": "GoogleAdsGoogleadsV24Services__CustomerLifecycleGoalOperation"
        },
        "validateOnly": {
          "type": "boolean",
          "description": "Optional. If true, the request is validated but not executed. Only errors are returned, not results."
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__ConfigureCustomerLifecycleGoalsRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__AdDemandGenCarouselCardAsset": {
      "description": "A Demand Gen carousel card asset used inside an ad.",
      "properties": {
        "asset": {
          "type": "string",
          "description": "The Asset resource name of this discovery carousel card."
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__AdDemandGenCarouselCardAsset",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateCampaignBidModifierResult": {
      "description": "The result for the criterion mutate.",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        },
        "campaignBidModifier": {
          "description": "The mutated campaign bid modifier with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV24Resources__CampaignBidModifier"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateCampaignBidModifierResult",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__RetailFilterBundle": {
      "id": "GoogleAdsGoogleadsV24Common__RetailFilterBundle",
      "type": "object",
      "description": "Represents a Retail Filter Bundle, used to link an ad group to a shared set containing retail filters.",
      "properties": {
        "sharedSet": {
          "type": "string",
          "description": "The resource name of the shared set that contains the retail filter. This field is required."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateAccountBudgetProposalRequest": {
      "description": "Request message for AccountBudgetProposalService.MutateAccountBudgetProposal.",
      "properties": {
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "operation": {
          "description": "Required. The operation to perform on an individual account-level budget proposal.",
          "$ref": "GoogleAdsGoogleadsV24Services__AccountBudgetProposalOperation"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateAccountBudgetProposalRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__TopicInfo": {
      "id": "GoogleAdsGoogleadsV24Common__TopicInfo",
      "type": "object",
      "description": "A topic criterion. Use topics to target or exclude placements in the Google Display Network based on the category into which the placement falls (for example, \"Pets & Animals/Pets/Dogs\").",
      "properties": {
        "topicConstant": {
          "type": "string",
          "description": "The Topic Constant resource name."
        },
        "path": {
          "type": "array",
          "description": "The category to target or exclude. Each subsequent element in the array describes a more specific sub-category. For example, \"Pets & Animals\", \"Pets\", \"Dogs\" represents the \"Pets & Animals/Pets/Dogs\" category.",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__RateMetrics": {
      "id": "GoogleAdsGoogleadsV24Services__RateMetrics",
      "type": "object",
      "description": "Average rate metrics. Metrics that represent monetary values are returned in USD by default, if unspecified in the request.",
      "properties": {
        "averageCpc": {
          "type": "number",
          "description": "The average cost-per-click (CPC) is defined by the total cost of all clicks divided by the total number of clicks received.",
          "format": "double"
        },
        "engagementRate": {
          "type": "number",
          "description": "How often people engage with your ad after it's shown to them. This is the number of ad expansions divided by the number of times your ad is shown.",
          "format": "double"
        },
        "videoCompletionP25Rate": {
          "type": "number",
          "description": "Percentage of impressions where the viewer watched 25% of your video.",
          "format": "double"
        },
        "trueviewAverageCpv": {
          "type": "number",
          "description": "The average TrueView cost-per-view (CPV) is defined by the total cost of all ad TrueView views divided by the number of TrueView views.",
          "format": "double"
        },
        "averageCpm": {
          "type": "number",
          "description": "Average cost-per-thousand impressions (CPM).",
          "format": "double"
        },
        "averageActiveViewCpm": {
          "type": "number",
          "description": "Average cost-per-thousand viewable impressions.",
          "format": "double"
        },
        "videoCompletionP75Rate": {
          "description": "Percentage of impressions where the viewer watched 75% of your video.",
          "format": "double",
          "type": "number"
        },
        "clickThroughRate": {
          "description": "The number of clicks your ad receives (Clicks) divided by the number of times your ad is shown (Impressions).",
          "format": "double",
          "type": "number"
        },
        "videoCompletionP100Rate": {
          "type": "number",
          "description": "Percentage of impressions where the viewer watched all of your video.",
          "format": "double"
        },
        "activeViewViewability": {
          "description": "The percentage of time when your ad appeared on an Active View enabled site (measurable impressions) and was viewable (viewable impressions).",
          "format": "double",
          "type": "number"
        },
        "averageCpe": {
          "type": "number",
          "description": "The average cost-per-engagement (CPE) is defined by the total cost of all ad engagements divided by the total number of ad engagements.",
          "format": "double"
        },
        "videoCompletionP50Rate": {
          "type": "number",
          "description": "Percentage of impressions where the viewer watched 50% of your video.",
          "format": "double"
        },
        "trueviewViewRate": {
          "type": "number",
          "description": "Number of completed TrueView views divided by the number of impressions.",
          "format": "double"
        },
        "averageCpi": {
          "description": "The average cost-per-interaction (CPI) is defined by the total cost of all interactions divided by the total number of interactions.",
          "format": "double",
          "type": "number"
        },
        "interactionRate": {
          "description": "How often people interact with your ad after it is shown to them. This is the number of interactions divided by the number of times your ad is shown.",
          "format": "double",
          "type": "number"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__AdVideoAssetLinkFeatureControl": {
      "id": "GoogleAdsGoogleadsV24Common__AdVideoAssetLinkFeatureControl",
      "type": "object",
      "description": "YouTube Video Asset feature controls.",
      "properties": {
        "allowYoutubeComments": {
          "description": "Defines if YouTube comments should be enabled for the creative using this YouTube video asset served on YouTube Shorts.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__AudienceOperation": {
      "description": "A single operation (create, update) on an audience.",
      "properties": {
        "update": {
          "description": "Update operation: The audience is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV24Resources__Audience"
        },
        "updateMask": {
          "type": "string",
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new audience",
          "$ref": "GoogleAdsGoogleadsV24Resources__Audience"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__AudienceOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__AgeDimension": {
      "id": "GoogleAdsGoogleadsV24Common__AgeDimension",
      "type": "object",
      "description": "Dimension specifying users by their age.",
      "properties": {
        "ageRanges": {
          "type": "array",
          "description": "Contiguous age range to be included in the dimension.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AgeSegment"
          }
        },
        "includeUndetermined": {
          "description": "Include users whose age is not determined.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__TargetImpressionShareSimulationPointList": {
      "description": "A container for simulation points for simulations of type TARGET_IMPRESSION_SHARE.",
      "properties": {
        "points": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__TargetImpressionShareSimulationPoint"
          },
          "description": "Projected metrics for a specific target impression share value.",
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__TargetImpressionShareSimulationPointList",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_Recommendation_CalloutAssetRecommendation": {
      "id": "GoogleAdsGoogleadsV24Resources_Recommendation_CalloutAssetRecommendation",
      "type": "object",
      "description": "The callout asset recommendation.",
      "properties": {
        "recommendedCampaignCalloutAssets": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Resources__Asset"
          },
          "description": "Output only. New callout extension assets recommended at the campaign level.",
          "readOnly": true
        },
        "recommendedCustomerCalloutAssets": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Resources__Asset"
          },
          "description": "Output only. New callout extension assets recommended at the customer level.",
          "readOnly": true
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__UserListSegment": {
      "description": "User list segment.",
      "properties": {
        "userList": {
          "description": "The user list resource.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__UserListSegment",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__CampaignLifecycleGoal": {
      "description": "Campaign level customer lifecycle goal settings.",
      "properties": {
        "campaign": {
          "description": "Output only. The campaign where the goal is attached.",
          "readOnly": true,
          "type": "string"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the customer lifecycle goal of a campaign. `customers/{customer_id}/campaignLifecycleGoal/{campaign_id}`"
        },
        "customerAcquisitionGoalSettings": {
          "description": "Output only. The customer acquisition goal settings for the campaign. The customer acquisition goal is described in this article: https://support.google.com/google-ads/answer/12080169",
          "readOnly": true,
          "$ref": "GoogleAdsGoogleadsV24Resources__CustomerAcquisitionGoalSettings"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__CampaignLifecycleGoal",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateCustomerSkAdNetworkConversionValueSchemaResult": {
      "description": "The result for the CustomerSkAdNetworkConversionValueSchema mutate.",
      "properties": {
        "appId": {
          "description": "App ID of the SkanConversionValue modified.",
          "type": "string"
        },
        "resourceName": {
          "description": "Resource name of the customer that was modified.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateCustomerSkAdNetworkConversionValueSchemaResult",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateAdGroupAssetsResponse": {
      "id": "GoogleAdsGoogleadsV24Services__MutateAdGroupAssetsResponse",
      "type": "object",
      "description": "Response message for an ad group asset mutate.",
      "properties": {
        "results": {
          "type": "array",
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateAdGroupAssetResult"
          }
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateExperimentResult": {
      "id": "GoogleAdsGoogleadsV24Services__MutateExperimentResult",
      "type": "object",
      "description": "The result for the campaign experiment mutate.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__UploadConversionAdjustmentsRequest": {
      "id": "GoogleAdsGoogleadsV24Services__UploadConversionAdjustmentsRequest",
      "type": "object",
      "description": "Request message for ConversionAdjustmentUploadService.UploadConversionAdjustments.",
      "properties": {
        "partialFailure": {
          "type": "boolean",
          "description": "Required. If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. This should always be set to true. See https://developers.google.com/google-ads/api/docs/best-practices/partial-failures for more information about partial failure."
        },
        "conversionAdjustments": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__ConversionAdjustment"
          },
          "description": "Required. The conversion adjustments that are being uploaded."
        },
        "jobId": {
          "description": "Optional. Optional input to set job ID. Must be a non-negative number that is less than 2^31 if provided. If this field is not provided, the API will generate a job ID in the range [2^31, (2^63)-1]. The API will return the value for this request in the `job_id` field of the `UploadConversionAdjustmentsResponse`.",
          "format": "int32",
          "type": "integer"
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__SuggestKeywordThemeConstantsRequest": {
      "description": "Request message for KeywordThemeConstantService.SuggestKeywordThemeConstants.",
      "properties": {
        "languageCode": {
          "description": "The two letter language code for get corresponding keyword theme for refining the scope of the query, default to 'en' if not set.",
          "type": "string"
        },
        "queryText": {
          "type": "string",
          "description": "The query text of a keyword theme that will be used to map to similar keyword themes. For example, \"plumber\" or \"roofer\"."
        },
        "countryCode": {
          "description": "Upper-case, two-letter country code as defined by ISO-3166. This for refining the scope of the query, default to 'US' if not set.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__SuggestKeywordThemeConstantsRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__CustomConversionGoal": {
      "description": "Custom conversion goal that can make arbitrary conversion actions biddable.",
      "properties": {
        "name": {
          "description": "The name for this custom conversion goal.",
          "type": "string"
        },
        "id": {
          "description": "Immutable. The ID for this custom conversion goal.",
          "format": "int64",
          "type": "string"
        },
        "conversionActions": {
          "description": "Conversion actions that the custom conversion goal makes biddable.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "status": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "description": "The status of the custom conversion goal.",
          "enumDescriptions": [
            "The status has not been specified.",
            "The received value is not known in this version.",
            "The custom conversion goal is enabled.",
            "The custom conversion goal is removed."
          ]
        },
        "resourceName": {
          "description": "Immutable. The resource name of the custom conversion goal. Custom conversion goal resource names have the form: `customers/{customer_id}/customConversionGoals/{goal_id}`",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__CustomConversionGoal",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__ConversionCustomVariableOperation": {
      "id": "GoogleAdsGoogleadsV24Services__ConversionCustomVariableOperation",
      "type": "object",
      "description": "A single operation (create, update) on a conversion custom variable.",
      "properties": {
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask",
          "type": "string"
        },
        "update": {
          "description": "Update operation: The conversion custom variable is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV24Resources__ConversionCustomVariable"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new conversion custom variable.",
          "$ref": "GoogleAdsGoogleadsV24Resources__ConversionCustomVariable"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__Conversation": {
      "description": "Details of the conversation that needs to be appended.",
      "properties": {
        "localServicesLead": {
          "description": "Required. The resource name of the local services lead that the conversation should be applied to.",
          "type": "string"
        },
        "text": {
          "description": "Required. Text message that user wanted to append to lead.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__Conversation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Actions__YouTubeLivePreviewResult": {
      "id": "GoogleAdsGoogleadsV24Actions__YouTubeLivePreviewResult",
      "type": "object",
      "description": "Message to hold a YouTube live preview result.",
      "properties": {
        "youtubeTvPreviewUrl": {
          "type": "string",
          "description": "The shareable preview URL for YouTube TV."
        },
        "youtubePreviewUrl": {
          "description": "The shareable preview URL for YouTube videos.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__UserInterestSegment": {
      "id": "GoogleAdsGoogleadsV24Common__UserInterestSegment",
      "type": "object",
      "description": "User interest segment.",
      "properties": {
        "userInterestCategory": {
          "description": "The user interest resource.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__AccountLinkOperation": {
      "id": "GoogleAdsGoogleadsV24Services__AccountLinkOperation",
      "type": "object",
      "description": "A single update on an account link.",
      "properties": {
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask",
          "type": "string"
        },
        "update": {
          "description": "Update operation: The account link is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AccountLink"
        },
        "remove": {
          "description": "Remove operation: A resource name for the account link to remove is expected, in this format: `customers/{customer_id}/accountLinks/{account_link_id}`",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__BookOnGoogleAsset": {
      "description": "A Book on Google asset. Used to redirect user to book through Google. Book on Google will change the redirect url to book directly through Google.",
      "properties": {},
      "id": "GoogleAdsGoogleadsV24Common__BookOnGoogleAsset",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__AppendLeadConversationResponse": {
      "id": "GoogleAdsGoogleadsV24Services__AppendLeadConversationResponse",
      "type": "object",
      "description": "Response message for LocalServicesLeadService.AppendLeadConversation.",
      "properties": {
        "responses": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__ConversationOrError"
          },
          "description": "Required. List of append conversation operation results."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateAdGroupCustomizerResult": {
      "description": "The result for the ad group customizer mutate.",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        },
        "adGroupCustomizer": {
          "description": "The mutated AdGroupCustomizer with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsGoogleadsV24Resources__AdGroupCustomizer"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateAdGroupCustomizerResult",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__ConfigureCampaignLifecycleGoalsResponse": {
      "id": "GoogleAdsGoogleadsV24Services__ConfigureCampaignLifecycleGoalsResponse",
      "type": "object",
      "description": "Response message for CampaignLifecycleGoalService.ConfigureCampaignLifecycleGoals.",
      "properties": {
        "result": {
          "description": "Result for the campaign lifecycle goal configuration.",
          "$ref": "GoogleAdsGoogleadsV24Services__ConfigureCampaignLifecycleGoalsResult"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__WebpageInfo": {
      "id": "GoogleAdsGoogleadsV24Common__WebpageInfo",
      "type": "object",
      "description": "Represents a criterion for targeting webpages of an advertiser's website.",
      "properties": {
        "sample": {
          "description": "List of sample urls that match the website target. This field is read-only.",
          "$ref": "GoogleAdsGoogleadsV24Common__WebpageSampleInfo"
        },
        "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.",
          "format": "double",
          "type": "number"
        },
        "criterionName": {
          "type": "string",
          "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."
        },
        "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.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__WebpageConditionInfo"
          },
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateAdGroupAssetsRequest": {
      "description": "Request message for AdGroupAssetService.MutateAdGroupAssets.",
      "properties": {
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "operations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__AdGroupAssetOperation"
          },
          "description": "Required. The list of operations to perform on individual ad group assets.",
          "type": "array"
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "responseContentType": {
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateAdGroupAssetsRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__InsightsAudienceAttributeGroup": {
      "description": "A list of AudienceInsightsAttributes.",
      "properties": {
        "attributes": {
          "type": "array",
          "description": "Required. A collection of audience attributes combined with logical OR. Attributes need not all be the same dimension. Only Knowledge Graph entities, Product & Service Categories, and user interests are supported in this context.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AudienceInsightsAttribute"
          }
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__InsightsAudienceAttributeGroup",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateKeywordPlanCampaignsRequest": {
      "description": "Request message for KeywordPlanCampaignService.MutateKeywordPlanCampaigns.",
      "properties": {
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "operations": {
          "type": "array",
          "description": "Required. The list of operations to perform on individual Keyword Plan campaigns.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__KeywordPlanCampaignOperation"
          }
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateKeywordPlanCampaignsRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_Recommendation_SitelinkAssetRecommendation": {
      "id": "GoogleAdsGoogleadsV24Resources_Recommendation_SitelinkAssetRecommendation",
      "type": "object",
      "description": "The sitelink asset recommendation.",
      "properties": {
        "recommendedCustomerSitelinkAssets": {
          "type": "array",
          "description": "Output only. New sitelink assets recommended at the customer level.",
          "readOnly": true,
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Resources__Asset"
          }
        },
        "recommendedCampaignSitelinkAssets": {
          "description": "Output only. New sitelink assets recommended at the campaign level.",
          "readOnly": true,
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Resources__Asset"
          },
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__MobileAppAsset": {
      "id": "GoogleAdsGoogleadsV24Common__MobileAppAsset",
      "type": "object",
      "description": "An asset representing a mobile app.",
      "properties": {
        "startDate": {
          "type": "string",
          "description": "Start date of when this asset is effective and can begin serving, in yyyy-MM-dd format."
        },
        "appStore": {
          "description": "Required. The application store that distributes this specific app.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Mobile app vendor for Apple app store.",
            "Mobile app vendor for Google app store."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "APPLE_APP_STORE",
            "GOOGLE_APP_STORE"
          ],
          "type": "string"
        },
        "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"
        },
        "endDate": {
          "type": "string",
          "description": "Last date of when this asset is effective and still serving, in yyyy-MM-dd format."
        },
        "linkText": {
          "description": "Required. The visible text displayed when the link is rendered in an ad. The length of this string should be between 1 and 25, inclusive.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__PhoneCallDetails": {
      "id": "GoogleAdsGoogleadsV24Resources__PhoneCallDetails",
      "type": "object",
      "description": "Represents details of a phone call conversation.",
      "properties": {
        "callDurationMillis": {
          "type": "string",
          "description": "Output only. The duration (in milliseconds) of the phone call (end to end).",
          "readOnly": true,
          "format": "int64"
        },
        "callRecordingUrl": {
          "type": "string",
          "description": "Output only. URL to the call recording audio file.",
          "readOnly": true
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__ListBenchmarksSourcesResponse": {
      "id": "GoogleAdsGoogleadsV24Services__ListBenchmarksSourcesResponse",
      "type": "object",
      "description": "Response message for BenchmarksService.ListBenchmarksSources.",
      "properties": {
        "benchmarksSources": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__BenchmarksSourceMetadata"
          },
          "description": "The list of available source used to generate benchmarks data for."
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__BillingSetup": {
      "description": "A billing setup, which associates a payments account and an advertiser. A billing setup is specific to one advertiser.",
      "properties": {
        "startTimeType": {
          "type": "string",
          "description": "Immutable. The start time as a type. Only NOW is allowed.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "As soon as possible.",
            "An infinite point in the future."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NOW",
            "FOREVER"
          ]
        },
        "paymentsAccount": {
          "type": "string",
          "description": "Immutable. The resource name of the payments account associated with this billing setup. Payments resource names have the form: `customers/{customer_id}/paymentsAccounts/{payments_account_id}` When setting up billing, this is used to signup with an existing payments account (and then payments_account_info should not be set). When getting a billing setup, this and payments_account_info will be populated."
        },
        "paymentsAccountInfo": {
          "description": "Immutable. The payments account information associated with this billing setup. When setting up billing, this is used to signup with a new payments account (and then payments_account should not be set). When getting a billing setup, this and payments_account will be populated.",
          "$ref": "GoogleAdsGoogleadsV24Resources_BillingSetup_PaymentsAccountInfo"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the billing setup. BillingSetup resource names have the form: `customers/{customer_id}/billingSetups/{billing_setup_id}`"
        },
        "status": {
          "description": "Output only. The status of the billing setup.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The billing setup is pending approval.",
            "The billing setup has been approved but the corresponding first budget has not. This can only occur for billing setups configured for monthly invoicing.",
            "The billing setup has been approved.",
            "The billing setup was cancelled by the user prior to approval."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PENDING",
            "APPROVED_HELD",
            "APPROVED",
            "CANCELLED"
          ],
          "type": "string"
        },
        "startDateTime": {
          "description": "Immutable. The start date time in yyyy-MM-dd or yyyy-MM-dd HH:mm:ss format. Only a future time is allowed.",
          "type": "string"
        },
        "id": {
          "type": "string",
          "description": "Output only. The ID of the billing setup.",
          "readOnly": true,
          "format": "int64"
        },
        "endDateTime": {
          "type": "string",
          "description": "Output only. The end date time in yyyy-MM-dd or yyyy-MM-dd HH:mm:ss format.",
          "readOnly": true
        },
        "endTimeType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NOW",
            "FOREVER"
          ],
          "description": "Output only. The end time as a type. The only possible value is FOREVER.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "As soon as possible.",
            "An infinite point in the future."
          ]
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__BillingSetup",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__DynamicJobsAsset": {
      "description": "A dynamic jobs asset.",
      "properties": {
        "jobSubtitle": {
          "type": "string",
          "description": "Job subtitle, for example, Level II."
        },
        "androidAppLink": {
          "description": "Android deep link, for example, android-app://com.example.android/http/example.com/gizmos?1234.",
          "type": "string"
        },
        "jobTitle": {
          "type": "string",
          "description": "Required. Job title, for example, Software engineer. Required."
        },
        "jobId": {
          "description": "Required. Job ID which can be any sequence of letters and digits, and must be unique and match the values of remarketing tag. Required.",
          "type": "string"
        },
        "salary": {
          "description": "Salary, for example, $100,000.",
          "type": "string"
        },
        "address": {
          "type": "string",
          "description": "Address which can be specified in one of the following formats. (1) City, state, code, country, for example, Mountain View, CA, USA. (2) Full address, for example, 123 Boulevard St, Mountain View, CA 94043. (3) Latitude-longitude in the DDD format, for example, 41.40338, 2.17403."
        },
        "description": {
          "type": "string",
          "description": "Description, for example, Apply your technical skills."
        },
        "jobCategory": {
          "type": "string",
          "description": "Job category, for example, Technical."
        },
        "iosAppStoreId": {
          "description": "iOS app store ID. This is used to check if the user has the app installed on their device before deep linking. If this field is set, then the ios_app_link field must also be present.",
          "format": "int64",
          "type": "string"
        },
        "iosAppLink": {
          "description": "iOS deep link, for example, exampleApp://content/page.",
          "type": "string"
        },
        "locationId": {
          "description": "Location ID which can be any sequence of letters and digits. The ID sequence (job ID + location ID) must be unique.",
          "type": "string"
        },
        "similarJobIds": {
          "type": "array",
          "description": "Similar job IDs, for example, 1275.",
          "items": {
            "type": "string"
          }
        },
        "contextualKeywords": {
          "type": "array",
          "description": "Contextual keywords, for example, Software engineering job.",
          "items": {
            "type": "string"
          }
        },
        "imageUrl": {
          "description": "Image URL, for example, http://www.example.com/image.png. The image will not be uploaded as image asset.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__DynamicJobsAsset",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__SuggestBrandsRequest": {
      "id": "GoogleAdsGoogleadsV24Services__SuggestBrandsRequest",
      "type": "object",
      "description": "Request message for BrandSuggestionService.SuggestBrands.",
      "properties": {
        "brandPrefix": {
          "type": "string",
          "description": "Required. The prefix of a brand name."
        },
        "selectedBrands": {
          "items": {
            "type": "string"
          },
          "description": "Optional. Ids of the brands already selected by advertisers. They will be excluded in response. These are expected to be brand ids not brand names.",
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__ProductLabelsInfo": {
      "id": "GoogleAdsGoogleadsV24Common__ProductLabelsInfo",
      "type": "object",
      "description": "Labels of a product offer. This listing dimension is deprecated and it is supported only in Display campaigns.",
      "properties": {
        "value": {
          "description": "String value of the product labels.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__CampaignDraft": {
      "description": "A campaign draft.",
      "properties": {
        "hasExperimentRunning": {
          "type": "boolean",
          "description": "Output only. Whether there is an experiment based on this draft currently serving.",
          "readOnly": true
        },
        "resourceName": {
          "description": "Immutable. The resource name of the campaign draft. Campaign draft resource names have the form: `customers/{customer_id}/campaignDrafts/{base_campaign_id}~{draft_id}`",
          "type": "string"
        },
        "baseCampaign": {
          "type": "string",
          "description": "Immutable. The base campaign to which the draft belongs."
        },
        "status": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PROPOSED",
            "REMOVED",
            "PROMOTING",
            "PROMOTED",
            "PROMOTE_FAILED"
          ],
          "description": "Output only. The status of the campaign draft. This field is read-only. When a new campaign draft is added, the status defaults to PROPOSED.",
          "readOnly": true,
          "enumDescriptions": [
            "The status has not been specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Initial state of the draft, the advertiser can start adding changes with no effect on serving.",
            "The campaign draft is removed.",
            "Advertiser requested to promote draft's changes back into the original campaign. Advertiser can poll the long running operation returned by the promote action to see the status of the promotion.",
            "The process to merge changes in the draft back to the original campaign has completed successfully.",
            "The promotion failed after it was partially applied. Promote cannot be attempted again safely, so the issue must be corrected in the original campaign."
          ]
        },
        "draftId": {
          "type": "string",
          "description": "Output only. The ID of the draft. This field is read-only.",
          "readOnly": true,
          "format": "int64"
        },
        "draftCampaign": {
          "type": "string",
          "description": "Output only. Resource name of the Campaign that results from overlaying the draft changes onto the base campaign. This field is read-only.",
          "readOnly": true
        },
        "name": {
          "description": "The name of the campaign draft. This field is required and should not be empty when creating new campaign drafts. It must not contain any null (code point 0x0), NL line feed (code point 0xA) or carriage return (code point 0xD) characters.",
          "type": "string"
        },
        "longRunningOperation": {
          "description": "Output only. The resource name of the long-running operation that can be used to poll for completion of draft promotion. This is only set if the draft promotion is in progress or finished.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__CampaignDraft",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__LocalServiceIdInfo": {
      "id": "GoogleAdsGoogleadsV24Common__LocalServiceIdInfo",
      "type": "object",
      "description": "A Local Services Ads service ID. Represents a service type (such as install_faucet) that a Local Services Campaign can target.",
      "properties": {
        "serviceId": {
          "type": "string",
          "description": "The criterion resource name."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateAudiencesResponse": {
      "description": "Response message for an audience mutate.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateAudienceResult"
          },
          "description": "All results for the mutate.",
          "type": "array"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateAudiencesResponse",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__InteractionTypeInfo": {
      "description": "Criterion for Interaction Type.",
      "properties": {
        "type": {
          "description": "The interaction type.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Calls."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CALLS"
          ],
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__InteractionTypeInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__AssetSetTypeView": {
      "description": "An asset set type view. This view reports non-overcounted metrics for each asset set type. Child asset set types are not included in this report. Their stats are aggregated under the parent asset set type.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the asset set type view. Asset set type view resource names have the form: `customers/{customer_id}/assetSetTypeViews/{asset_set_type}`",
          "readOnly": true
        },
        "assetSetType": {
          "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"
          ],
          "description": "Output only. The asset set type of the asset set type view.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Page asset set.",
            "Dynamic education asset set.",
            "Google Merchant Center asset set.",
            "Dynamic real estate asset set.",
            "Dynamic custom asset set.",
            "Dynamic hotels and rentals asset set.",
            "Dynamic flights asset set.",
            "Dynamic travel asset set.",
            "Dynamic local asset set.",
            "Dynamic jobs asset set.",
            "Location sync level asset set.",
            "Business Profile location group asset set.",
            "Chain location group asset set which can be used for both owned locations and affiliate locations.",
            "Static location group asset set which can be used for both owned locations and affiliate locations.",
            "Hotel Property asset set which is used to link a hotel property feed to Performance Max for travel goals campaigns.",
            "Travel Feed asset set type. Can represent either a Hotel feed or a Things to Do (activities) feed."
          ],
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__AssetSetTypeView",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__RegenerateShareableLinkIdRequest": {
      "description": "Request message for ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId.",
      "properties": {},
      "id": "GoogleAdsGoogleadsV24Services__RegenerateShareableLinkIdRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__UserListCustomerTypeOperation": {
      "description": "A single mutate operation on the user list customer type.",
      "properties": {
        "remove": {
          "description": "Remove an existing user list customer type. A resource name for the removed user list customer type is expected, in this format: `customers/{customer_id}/userListCustomerTypes/{user_list_id}~{customer_type_category}`",
          "type": "string"
        },
        "create": {
          "description": "Attach a user list customer type to a user list. No resource name is expected for the new user list customer type.",
          "$ref": "GoogleAdsGoogleadsV24Resources__UserListCustomerType"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__UserListCustomerTypeOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__ExpandedTextAdInfo": {
      "description": "An expanded text ad. Expanded text ads are deprecated.",
      "properties": {
        "headlinePart3": {
          "description": "The third part of the ad's headline.",
          "type": "string"
        },
        "path2": {
          "type": "string",
          "description": "Additional text that can appear alongside the ad's displayed URL."
        },
        "headlinePart2": {
          "type": "string",
          "description": "The second part of the ad's headline."
        },
        "description2": {
          "type": "string",
          "description": "The second description of the ad."
        },
        "description": {
          "type": "string",
          "description": "The description of the ad."
        },
        "headlinePart1": {
          "description": "The first part of the ad's headline.",
          "type": "string"
        },
        "path1": {
          "type": "string",
          "description": "The text that can appear alongside the ad's displayed URL."
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__ExpandedTextAdInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__AssetSetAssetOperation": {
      "description": "A single operation (create, remove) on an asset set asset.",
      "properties": {
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed asset set asset is expected, in this format: `customers/{customer_id}/assetSetAssets/{asset_set_id}~{asset_id}`"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new asset set asset",
          "$ref": "GoogleAdsGoogleadsV24Resources__AssetSetAsset"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__AssetSetAssetOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateSharedSetsRequest": {
      "description": "Request message for SharedSetService.MutateSharedSets.",
      "properties": {
        "operations": {
          "type": "array",
          "description": "Required. The list of operations to perform on individual shared sets.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__SharedSetOperation"
          }
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "responseContentType": {
          "type": "string",
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ]
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateSharedSetsRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__SmartCampaignSuggestionInfo": {
      "description": "Information needed to get suggestion for Smart Campaign. More information provided will help the system to derive better suggestions.",
      "properties": {
        "finalUrl": {
          "type": "string",
          "description": "Optional. Landing page URL of the campaign."
        },
        "adSchedules": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdScheduleInfo"
          },
          "description": "Optional. The business ad schedule."
        },
        "keywordThemes": {
          "description": "Optional. Smart campaign keyword themes. This field may greatly improve suggestion accuracy and we recommend always setting it if possible.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__KeywordThemeInfo"
          },
          "type": "array"
        },
        "proximity": {
          "description": "Optional. The targeting geo location by proximity.",
          "$ref": "GoogleAdsGoogleadsV24Common__ProximityInfo"
        },
        "businessContext": {
          "description": "Optional. Context describing the business to advertise.",
          "$ref": "GoogleAdsGoogleadsV24Services_SmartCampaignSuggestionInfo_BusinessContext"
        },
        "locationList": {
          "description": "Optional. The targeting geo location by locations.",
          "$ref": "GoogleAdsGoogleadsV24Services_SmartCampaignSuggestionInfo_LocationList"
        },
        "languageCode": {
          "type": "string",
          "description": "Optional. The two letter advertising language for the Smart campaign to be constructed, default to 'en' if not set."
        },
        "businessProfileLocation": {
          "description": "Optional. The resource name of a Business Profile location. Business Profile location resource names can be fetched through the Business Profile API and adhere to the following format: `locations/{locationId}`. See the [Business Profile API] (https://developers.google.com/my-business/reference/businessinformation/rest/v1/accounts.locations) for additional details.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__SmartCampaignSuggestionInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__YouTubeChannelInfo": {
      "description": "A YouTube Channel criterion.",
      "properties": {
        "channelId": {
          "description": "The YouTube uploader channel id or the channel code of a YouTube channel.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__YouTubeChannelInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__UserListAttributeMetadata": {
      "id": "GoogleAdsGoogleadsV24Common__UserListAttributeMetadata",
      "type": "object",
      "description": "Metadata associated with a User List attribute.",
      "properties": {
        "userListType": {
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "REMARKETING",
            "LOGICAL",
            "EXTERNAL_REMARKETING",
            "RULE_BASED",
            "SIMILAR",
            "CRM_BASED",
            "LOOKALIKE"
          ],
          "description": "The user list type.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "UserList represented as a collection of conversion types.",
            "UserList represented as a combination of other user lists/interests.",
            "UserList created in the Google Ad Manager platform.",
            "UserList associated with a rule.",
            "UserList with users similar to users of another UserList.",
            "UserList of first-party CRM data provided by advertiser in the form of emails or other formats.",
            "LookalikeUserlist, composed of users similar to those of a configurable seed (set of UserLists)"
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateSmartCampaignSettingsRequest": {
      "description": "Request message for SmartCampaignSettingService.MutateSmartCampaignSettings.",
      "properties": {
        "operations": {
          "description": "Required. The list of operations to perform on individual Smart campaign settings.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__SmartCampaignSettingOperation"
          },
          "type": "array"
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "responseContentType": {
          "type": "string",
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ]
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateSmartCampaignSettingsRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__SearchGoogleAdsStreamResponse": {
      "id": "GoogleAdsGoogleadsV24Services__SearchGoogleAdsStreamResponse",
      "type": "object",
      "description": "Response message for GoogleAdsService.SearchStream.",
      "properties": {
        "results": {
          "type": "array",
          "description": "The list of rows that matched the query.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__GoogleAdsRow"
          }
        },
        "queryResourceConsumption": {
          "type": "string",
          "description": "The amount of resources consumed to serve the query. query_resource_consumption for the Summary row and non-Summary responses are returned separately in their respective rows. query_resource_consumption for non-Summary responses is returned in the final batch of results.",
          "format": "int64"
        },
        "requestId": {
          "type": "string",
          "description": "The unique id of the request that is used for debugging purposes."
        },
        "fieldMask": {
          "type": "string",
          "description": "FieldMask that represents what fields were requested by the user.",
          "format": "google-fieldmask"
        },
        "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": "GoogleAdsGoogleadsV24Services__GoogleAdsRow"
        },
        "metricAttributes": {
          "description": "The metric attributes of the metrics in the results.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MetricAttributes"
          },
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateCampaignGoalConfigsResponse": {
      "id": "GoogleAdsGoogleadsV24Services__MutateCampaignGoalConfigsResponse",
      "type": "object",
      "description": "Response message for a campaign goal config mutate.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateCampaignGoalConfigResult"
          },
          "description": "All results for the mutate."
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__AdGroupOperation": {
      "description": "A single operation (create, update, remove) on an ad group.",
      "properties": {
        "update": {
          "description": "Update operation: The ad group is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AdGroup"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed ad group is expected, in this format: `customers/{customer_id}/adGroups/{ad_group_id}`"
        },
        "updateMask": {
          "type": "string",
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new ad group.",
          "$ref": "GoogleAdsGoogleadsV24Resources__AdGroup"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__AdGroupOperation",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__AgeSegment": {
      "description": "Contiguous age range.",
      "properties": {
        "maxAge": {
          "description": "Maximum age to include. A maximum age need not be specified. If specified, max_age must be greater than min_age, and allowed values are 24, 34, 44, 54, and 64.",
          "format": "int32",
          "type": "integer"
        },
        "minAge": {
          "type": "integer",
          "description": "Minimum age to include. A minimum age must be specified and must be at least 18. Allowed values are 18, 25, 35, 45, 55, and 65.",
          "format": "int32"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__AgeSegment",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateAdGroupCriteriaRequest": {
      "description": "Request message for AdGroupCriterionService.MutateAdGroupCriteria.",
      "properties": {
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__AdGroupCriterionOperation"
          },
          "description": "Required. The list of operations to perform on individual criteria."
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "responseContentType": {
          "type": "string",
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ]
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateAdGroupCriteriaRequest",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateCampaignBudgetsResponse": {
      "id": "GoogleAdsGoogleadsV24Services__MutateCampaignBudgetsResponse",
      "type": "object",
      "description": "Response message for campaign budget mutate.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "description": "All results for the mutate.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__MutateCampaignBudgetResult"
          },
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__TextAdInfo": {
      "description": "A text ad.",
      "properties": {
        "headline": {
          "description": "The headline of the ad.",
          "type": "string"
        },
        "description1": {
          "type": "string",
          "description": "The first line of the ad's description."
        },
        "description2": {
          "type": "string",
          "description": "The second line of the ad's description."
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__TextAdInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__HotelImageAsset": {
      "id": "GoogleAdsGoogleadsV24Services__HotelImageAsset",
      "type": "object",
      "description": "A single image asset suggestion for a hotel.",
      "properties": {
        "uri": {
          "description": "URI for the image.",
          "type": "string"
        },
        "assetFieldType": {
          "description": "The Image asset type. For example, MARKETING_IMAGE, PORTRAIT_MARKETING_IMAGE, etc.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is linked for use as a headline.",
            "The asset is linked for use as a description.",
            "The asset is linked for use as mandatory ad text.",
            "The asset is linked for use as a marketing image.",
            "The asset is linked for use as a media bundle.",
            "The asset is linked for use as a YouTube video.",
            "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
            "The asset is linked for use as a Lead Form extension.",
            "The asset is linked for use as a Promotion extension.",
            "The asset is linked for use as a Callout extension.",
            "The asset is linked for use as a Structured Snippet extension.",
            "The asset is linked for use as a Sitelink.",
            "The asset is linked for use as a Mobile App extension.",
            "The asset is linked for use as a Hotel Callout extension.",
            "The asset is linked for use as a Call extension.",
            "The asset is linked for use as a Price extension.",
            "The asset is linked for use as a long headline.",
            "The asset is linked for use as a business name.",
            "The asset is linked for use as a square marketing image.",
            "The asset is linked for use as a portrait marketing image.",
            "The asset is linked for use as a logo.",
            "The asset is linked for use as a landscape logo.",
            "The asset is linked for use as a non YouTube logo.",
            "The asset is linked for use to select a call-to-action.",
            "The asset is linked for use to select an ad image.",
            "The asset is linked for use as a business logo.",
            "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
            "The asset is linked for use as a Demand Gen carousel card.",
            "The asset is linked for use as a Business Message.",
            "The asset is linked for use as a tall portrait marketing image.",
            "The asset is linked for use as related YouTube videos.",
            "The asset is linked for use as a landing page preview image.",
            "The asset is linked for use as a long description.",
            "The asset is linked for use as a call-to-action."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE",
            "DESCRIPTION",
            "MANDATORY_AD_TEXT",
            "MARKETING_IMAGE",
            "MEDIA_BUNDLE",
            "YOUTUBE_VIDEO",
            "BOOK_ON_GOOGLE",
            "LEAD_FORM",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "LONG_HEADLINE",
            "BUSINESS_NAME",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "VIDEO",
            "CALL_TO_ACTION_SELECTION",
            "AD_IMAGE",
            "BUSINESS_LOGO",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "TALL_PORTRAIT_MARKETING_IMAGE",
            "RELATED_YOUTUBE_VIDEOS",
            "LANDING_PAGE_PREVIEW",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION"
          ],
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__DynamicTravelAsset": {
      "description": "A dynamic travel asset.",
      "properties": {
        "iosAppLink": {
          "description": "iOS deep link, for example, exampleApp://content/page.",
          "type": "string"
        },
        "title": {
          "description": "Required. Title, for example, Book your train ticket. Required.",
          "type": "string"
        },
        "iosAppStoreId": {
          "type": "string",
          "description": "iOS app store ID. This is used to check if the user has the app installed on their device before deep linking. If this field is set, then the ios_app_link field must also be present.",
          "format": "int64"
        },
        "similarDestinationIds": {
          "description": "Similar destination IDs, for example, NYC.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "salePrice": {
          "description": "Sale price which can be a number followed by the alphabetic currency code, ISO 4217 standard. Use '.' as the decimal mark, for example, 80.00 USD. Must be less than the 'price' field.",
          "type": "string"
        },
        "contextualKeywords": {
          "type": "array",
          "description": "Contextual keywords, for example, Paris trains.",
          "items": {
            "type": "string"
          }
        },
        "imageUrl": {
          "type": "string",
          "description": "Image URL, for example, http://www.example.com/image.png. The image will not be uploaded as image asset."
        },
        "originName": {
          "type": "string",
          "description": "Origin name, for example, London."
        },
        "formattedSalePrice": {
          "description": "Formatted sale price which can be any characters. If set, this attribute will be used instead of 'sale price', for example, On sale for $80.00.",
          "type": "string"
        },
        "androidAppLink": {
          "description": "Android deep link, for example, android-app://com.example.android/http/example.com/gizmos?1234.",
          "type": "string"
        },
        "formattedPrice": {
          "type": "string",
          "description": "Formatted price which can be any characters. If set, this attribute will be used instead of 'price', for example, Starting at $100.00."
        },
        "category": {
          "type": "string",
          "description": "Category, for example, Express."
        },
        "destinationName": {
          "description": "Destination name, for example, Paris.",
          "type": "string"
        },
        "destinationAddress": {
          "type": "string",
          "description": "Destination address which can be specified in one of the following formats. (1) City, state, code, country, for example, Mountain View, CA, USA. (2) Full address, for example, 123 Boulevard St, Mountain View, CA 94043. (3) Latitude-longitude in the DDD format, for example, 41.40338, 2.17403."
        },
        "price": {
          "type": "string",
          "description": "Price which can be a number followed by the alphabetic currency code, ISO 4217 standard. Use '.' as the decimal mark, for example, 100.00 USD."
        },
        "destinationId": {
          "type": "string",
          "description": "Required. Destination ID which can be any sequence of letters and digits, and must be unique and match the values of remarketing tag. Required."
        },
        "originId": {
          "type": "string",
          "description": "Origin ID which can be any sequence of letters and digits. The ID sequence (destination ID + origin ID) must be unique."
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__DynamicTravelAsset",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__PlacementListInfo": {
      "description": "A Placement List criterion. Represents a shared set of placements that can be excluded at the account-level.",
      "properties": {
        "sharedSet": {
          "type": "string",
          "description": "The PlacementListInfo shared set resource name."
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__PlacementListInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__GenerateAudienceDefinitionResponse": {
      "id": "GoogleAdsGoogleadsV24Services__GenerateAudienceDefinitionResponse",
      "type": "object",
      "description": "Response message for AudienceInsightsService.GenerateAudienceDefinition.",
      "properties": {
        "highRelevanceAttributes": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AudienceInsightsAttributeMetadata"
          },
          "description": "The attributes that make up the audience definition."
        },
        "mediumRelevanceAttributes": {
          "type": "array",
          "description": "Additional attributes that are less relevant but still related to the audience description. Use these attributes to broaden the audience definition to reach more users.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AudienceInsightsAttributeMetadata"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateCustomAudiencesRequest": {
      "id": "GoogleAdsGoogleadsV24Services__MutateCustomAudiencesRequest",
      "type": "object",
      "description": "Request message for CustomAudienceService.MutateCustomAudiences.",
      "properties": {
        "operations": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__CustomAudienceOperation"
          },
          "description": "Required. The list of operations to perform on individual custom audiences.",
          "type": "array"
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__ShoppingComparisonListingAdInfo": {
      "id": "GoogleAdsGoogleadsV24Common__ShoppingComparisonListingAdInfo",
      "type": "object",
      "description": "A Shopping Comparison Listing ad.",
      "properties": {
        "headline": {
          "type": "string",
          "description": "Headline of the ad. This field is required. Allowed length is between 25 and 45 characters."
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__KeywordPlanCampaign": {
      "description": "A Keyword Plan campaign. Max number of keyword plan campaigns per plan allowed: 1.",
      "properties": {
        "cpcBidMicros": {
          "description": "A default max cpc bid in micros, and in the account currency, for all ad groups under the campaign. This field is required and should not be empty when creating Keyword Plan campaigns.",
          "format": "int64",
          "type": "string"
        },
        "keywordPlan": {
          "description": "The keyword plan this campaign belongs to.",
          "type": "string"
        },
        "geoTargets": {
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Resources__KeywordPlanGeoTarget"
          },
          "description": "The geo targets. Max number allowed: 20.",
          "type": "array"
        },
        "name": {
          "description": "The name of the Keyword Plan campaign. This field is required and should not be empty when creating Keyword Plan campaigns.",
          "type": "string"
        },
        "id": {
          "description": "Output only. The ID of the Keyword Plan campaign.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "languageConstants": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The languages targeted for the Keyword Plan campaign. Max allowed: 1."
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the Keyword Plan campaign. KeywordPlanCampaign resource names have the form: `customers/{customer_id}/keywordPlanCampaigns/{kp_campaign_id}`"
        },
        "keywordPlanNetwork": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "GOOGLE_SEARCH",
            "GOOGLE_SEARCH_AND_PARTNERS"
          ],
          "description": "Targeting network. This field is required and should not be empty when creating Keyword Plan campaigns.",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Google Search.",
            "Google Search + Search partners."
          ],
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__KeywordPlanCampaign",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__ActivityCityInfo": {
      "description": "The city where the travel activity is available.",
      "properties": {
        "value": {
          "type": "string",
          "description": "String value of the activity city. The Geo Target Constant resource name."
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__ActivityCityInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_AdGroupVideoAdGroupSettings_VideoAdSequenceStepSetting": {
      "description": "The video ads sequence step settings containing step ID.",
      "properties": {
        "stepId": {
          "type": "string",
          "description": "The ID of this sequence step from an existing `campaign.video_campaign_settings.video_ad_sequence` definition. Only one Ad Group can point to a given `step_id`.",
          "format": "int64"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources_AdGroupVideoAdGroupSettings_VideoAdSequenceStepSetting",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__BiddingDataExclusionOperation": {
      "id": "GoogleAdsGoogleadsV24Services__BiddingDataExclusionOperation",
      "type": "object",
      "description": "A single operation (create, remove, update) on a data exclusion.",
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new data exclusion.",
          "$ref": "GoogleAdsGoogleadsV24Resources__BiddingDataExclusion"
        },
        "update": {
          "description": "Update operation: The data exclusion is expected to have a valid resource name.",
          "$ref": "GoogleAdsGoogleadsV24Resources__BiddingDataExclusion"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed data exclusion is expected, in this format: `customers/{customer_id}/biddingDataExclusions/{data_exclusion_id}`"
        },
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Services__MutateAccountBudgetProposalResult": {
      "description": "The result for the account budget proposal mutate.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__MutateAccountBudgetProposalResult",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources_Recommendation_OptimizeAdRotationRecommendation": {
      "id": "GoogleAdsGoogleadsV24Resources_Recommendation_OptimizeAdRotationRecommendation",
      "type": "object",
      "description": "The Optimize Ad Rotation recommendation.",
      "properties": {}
    },
    "GoogleAdsGoogleadsV24Services__CampaignAssetSetOperation": {
      "id": "GoogleAdsGoogleadsV24Services__CampaignAssetSetOperation",
      "type": "object",
      "description": "A single operation (create, remove) on a campaign asset set.",
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new campaign asset set.",
          "$ref": "GoogleAdsGoogleadsV24Resources__CampaignAssetSet"
        },
        "remove": {
          "description": "Remove operation: A resource name for the removed campaign asset set is expected, in this format: `customers/{customer_id}/campaignAssetSets/{campaign_id}~{asset_set_id}`",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__ResponsiveSearchAdInfo": {
      "id": "GoogleAdsGoogleadsV24Common__ResponsiveSearchAdInfo",
      "type": "object",
      "description": "A responsive search ad. Responsive search ads let you create an ad that adapts to show more text, and more relevant messages, to your customers. Enter multiple headlines and descriptions when creating a responsive search ad, and over time, Google Ads will automatically test different combinations and learn which combinations perform best. By adapting your ad's content to more closely match potential customers' search terms, responsive search ads may improve your campaign's performance. More information at https://support.google.com/google-ads/answer/7684791",
      "properties": {
        "path2": {
          "description": "Second part of text that can be appended to the URL in the ad. This field can only be set when `path1` is also set.",
          "type": "string"
        },
        "headlines": {
          "description": "List of text assets for headlines. When the ad serves the headlines will be selected from this list.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdTextAsset"
          },
          "type": "array"
        },
        "descriptions": {
          "description": "List of text assets for descriptions. When the ad serves the descriptions will be selected from this list.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__AdTextAsset"
          },
          "type": "array"
        },
        "path1": {
          "type": "string",
          "description": "First part of text that can be appended to the URL in the ad."
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__MediaVideo": {
      "description": "Encapsulates a Video.",
      "properties": {
        "adDurationMillis": {
          "type": "string",
          "description": "Output only. The duration of the Video in milliseconds.",
          "readOnly": true,
          "format": "int64"
        },
        "advertisingIdCode": {
          "type": "string",
          "description": "Output only. The Advertising Digital Identification code for this video, as defined by the American Association of Advertising Agencies, used mainly for television commercials.",
          "readOnly": true
        },
        "youtubeVideoId": {
          "type": "string",
          "description": "Immutable. The YouTube video ID (as seen in YouTube URLs). Adding prefix \"https://www.youtube.com/watch?v=\" to this ID will get the YouTube streaming URL for this video."
        },
        "isciCode": {
          "description": "Output only. The Industry Standard Commercial Identifier code for this video, used mainly for television commercials.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__MediaVideo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__BreakdownKey": {
      "description": "Dimensions by which the breakdown metrics are grouped by.",
      "properties": {
        "dates": {
          "description": "Dates used for the breakdown. For example, this represents the start and end dates of the week for a weekly breakdown.",
          "$ref": "GoogleAdsGoogleadsV24Common__DateRange"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__BreakdownKey",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__DomainCategory": {
      "description": "A category generated automatically by crawling a domain. If a campaign uses the DynamicSearchAdsSetting, then domain categories will be generated for the domain. The categories can be targeted using WebpageConditionInfo. See: https://support.google.com/google-ads/answer/2471185",
      "properties": {
        "campaign": {
          "type": "string",
          "description": "Output only. The campaign this category is recommended for.",
          "readOnly": true
        },
        "resourceName": {
          "description": "Output only. The resource name of the domain category. Domain category resource names have the form: `customers/{customer_id}/domainCategories/{campaign_id}~{category_base64}~{language_code}`",
          "readOnly": true,
          "type": "string"
        },
        "domain": {
          "description": "Output only. The domain for the website. The domain can be specified in the DynamicSearchAdsSetting required for dynamic search ads.",
          "readOnly": true,
          "type": "string"
        },
        "recommendedCpcBidMicros": {
          "type": "string",
          "description": "Output only. The recommended cost per click for the category.",
          "readOnly": true,
          "format": "int64"
        },
        "languageCode": {
          "description": "Output only. The language code specifying the language of the website, for example, \"en\" for English. The language can be specified in the DynamicSearchAdsSetting required for dynamic search ads. This is the language of the pages from your website that you want Google Ads to find, create ads for, and match searches with.",
          "readOnly": true,
          "type": "string"
        },
        "coverageFraction": {
          "description": "Output only. Fraction of pages on your site that this category matches.",
          "readOnly": true,
          "format": "double",
          "type": "number"
        },
        "categoryRank": {
          "type": "string",
          "description": "Output only. The position of this category in the set of categories. Lower numbers indicate a better match for the domain. null indicates not recommended.",
          "readOnly": true,
          "format": "int64"
        },
        "category": {
          "type": "string",
          "description": "Output only. Recommended category for the website domain, for example, if you have a website about electronics, the categories could be \"cameras\", \"televisions\", etc.",
          "readOnly": true
        },
        "hasChildren": {
          "description": "Output only. Indicates whether this category has sub-categories.",
          "readOnly": true,
          "type": "boolean"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__DomainCategory",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Common__NegativeKeywordListInfo": {
      "id": "GoogleAdsGoogleadsV24Common__NegativeKeywordListInfo",
      "type": "object",
      "description": "A Negative Keyword List criterion. Represents a shared set of negative keywords that can be excluded at the account-level. Only one negative keyword list criterion can be attached per account.",
      "properties": {
        "sharedSet": {
          "description": "The NegativeKeywordListInfo shared set resource name.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__UserListRuleItemGroupInfo": {
      "id": "GoogleAdsGoogleadsV24Common__UserListRuleItemGroupInfo",
      "type": "object",
      "description": "A group of rule items.",
      "properties": {
        "ruleItems": {
          "type": "array",
          "description": "Rule items that will be grouped together based on rule_type.",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Common__UserListRuleItemInfo"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV24Resources__GranularLicenseStatus": {
      "description": "License status at geo + vertical level.",
      "properties": {
        "verificationStatus": {
          "type": "string",
          "description": "Output only. Granular license status, per geo + vertical.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "Unknown verification status.",
            "Verification has started, but has not finished.",
            "Verification has failed.",
            "Verification has passed.",
            "Verification is not applicable.",
            "Verification is required but pending submission.",
            "Not all required verification has been submitted.",
            "Verification needs review by Local Services Ads Ops Specialist."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NEEDS_REVIEW",
            "FAILED",
            "PASSED",
            "NOT_APPLICABLE",
            "NO_SUBMISSION",
            "PARTIAL_SUBMISSION",
            "PENDING_ESCALATION"
          ]
        },
        "geoCriterionId": {
          "type": "string",
          "description": "Output only. Geotarget criterion ID associated with the status. Can be on country or state/province geo level, depending on requirements and location. See https://developers.google.com/google-ads/api/data/geotargets for more information.",
          "readOnly": true,
          "format": "int64"
        },
        "categoryId": {
          "description": "Output only. Service category associated with the status. For example, xcat:service_area_business_plumber. For more details see: https://developers.google.com/google-ads/api/data/codes-formats#local_services_ids",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__GranularLicenseStatus",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Resources__AndroidPrivacySharedKeyGoogleCampaign": {
      "description": "An Android privacy shared key view for Google campaign key.",
      "properties": {
        "campaignId": {
          "description": "Output only. The campaign ID used in the share key encoding.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "androidPrivacyInteractionType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CLICK",
            "ENGAGED_VIEW",
            "VIEW"
          ],
          "description": "Output only. The interaction type enum used in the share key encoding.",
          "readOnly": true,
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "The physical click interaction type.",
            "The 10 seconds engaged view interaction type.",
            "The view (ad impression) interaction type."
          ],
          "type": "string"
        },
        "sharedCampaignKey": {
          "type": "string",
          "description": "Output only. 128 bit hex string of the encoded shared campaign key, including a '0x' prefix. This key can be used to do a bitwise OR operator with the aggregate conversion key to create a full aggregation key to retrieve the Aggregate API Report in Android Privacy Sandbox.",
          "readOnly": true
        },
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the Android privacy shared key. Android privacy shared key resource names have the form: `customers/{customer_id}/androidPrivacySharedKeyGoogleCampaigns/{campaign_id}~{android_privacy_interaction_type}~{android_privacy_interaction_date(yyyy-mm-dd)}`",
          "readOnly": true
        },
        "androidPrivacyInteractionDate": {
          "type": "string",
          "description": "Output only. The interaction date used in the shared key encoding in the format of \"YYYY-MM-DD\" in UTC timezone.",
          "readOnly": true
        }
      },
      "id": "GoogleAdsGoogleadsV24Resources__AndroidPrivacySharedKeyGoogleCampaign",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__ConfigureCampaignLifecycleGoalsResult": {
      "description": "The result for the campaign lifecycle goal configuration.",
      "properties": {
        "resourceName": {
          "description": "Returned for the successful operation.",
          "type": "string"
        }
      },
      "id": "GoogleAdsGoogleadsV24Services__ConfigureCampaignLifecycleGoalsResult",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateCustomInterestResult": {
      "id": "GoogleAdsGoogleadsV24Services__MutateCustomInterestResult",
      "type": "object",
      "description": "The result for the custom interest mutate.",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV24Common__ListingGroupInfo": {
      "description": "A listing group criterion.",
      "properties": {
        "parentAdGroupCriterion": {
          "type": "string",
          "description": "Resource name of ad group criterion which is the parent listing group subdivision. Null for the root group."
        },
        "type": {
          "description": "Type of the listing group.",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Subdivision of products along some listing dimension. These nodes are not used by serving to target listing entries, but is purely to define the structure of the tree.",
            "Listing group unit that defines a bid."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SUBDIVISION",
            "UNIT"
          ],
          "type": "string"
        },
        "path": {
          "description": "The path of dimensions defining this listing group.",
          "$ref": "GoogleAdsGoogleadsV24Common__ListingDimensionPath"
        },
        "caseValue": {
          "description": "Dimension value with which this listing group is refining its parent. Undefined for the root group.",
          "$ref": "GoogleAdsGoogleadsV24Common__ListingDimensionInfo"
        }
      },
      "id": "GoogleAdsGoogleadsV24Common__ListingGroupInfo",
      "type": "object"
    },
    "GoogleAdsGoogleadsV24Services__MutateCampaignGoalConfigsRequest": {
      "id": "GoogleAdsGoogleadsV24Services__MutateCampaignGoalConfigsRequest",
      "type": "object",
      "description": "Request message for CampaignGoalConfigService.MutateCampaignGoalConfigs.",
      "properties": {
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsGoogleadsV24Services__CampaignGoalConfigOperation"
          },
          "description": "Required. The list of operations to perform on the campaign goal configs."
        },
        "validateOnly": {
          "description": "Optional. If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "partialFailure": {
          "type": "boolean",
          "description": "Optional. If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        }
      }
    }
  },
  "version": "v24",
  "auth": {
    "oauth2": {
      "scopes": {
        "https://www.googleapis.com/auth/adwords": {
          "description": "See, edit, create, and delete your Google Ads accounts and data."
        }
      }
    }
  }
}
