{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/google-ads/json-schema/google-ads-google-ads-googleads-v25-services-mutate-ads-request-schema.json",
  "title": "GoogleAdsGoogleadsV25Services__MutateAdsRequest",
  "description": "Request message for AdService.MutateAds.",
  "x-generated": "2026-11-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/google-ads-customers-ads-api-openapi.yml#/components/schemas/GoogleAdsGoogleadsV25Services__MutateAdsRequest",
  "type": "object",
  "properties": {
    "responseContentType": {
      "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
      "type": "string",
      "x-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"
      ]
    },
    "validateOnly": {
      "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
      "type": "boolean"
    },
    "operations": {
      "description": "Required. The list of operations to perform on individual ads.",
      "items": {
        "$ref": "#/$defs/GoogleAdsGoogleadsV25Services__AdOperation"
      },
      "type": "array"
    },
    "partialFailure": {
      "type": "boolean",
      "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
    }
  },
  "$defs": {
    "GoogleAdsGoogleadsV25Common_PolicyTopicConstraint_CountryConstraint": {
      "type": "object",
      "properties": {
        "countryCriterion": {
          "description": "Geo target constant resource name of the country in which serving is constrained.",
          "type": "string"
        }
      },
      "description": "Indicates that a resource's ability to serve in a particular country is constrained."
    },
    "GoogleAdsGoogleadsV25Common_PolicyTopicConstraint_CountryConstraintList": {
      "description": "A list of countries where a resource's serving is constrained.",
      "type": "object",
      "properties": {
        "totalTargetedCountries": {
          "format": "int32",
          "type": "integer",
          "description": "Total number of countries targeted by the resource."
        },
        "countries": {
          "type": "array",
          "description": "Countries in which serving is restricted.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common_PolicyTopicConstraint_CountryConstraint"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV25Common_PolicyTopicConstraint_ResellerConstraint": {
      "description": "Indicates that a policy topic was constrained due to disapproval of the website for reseller purposes.",
      "type": "object",
      "properties": {}
    },
    "GoogleAdsGoogleadsV25Common_PolicyTopicEvidence_DestinationMismatch": {
      "type": "object",
      "properties": {
        "urlTypes": {
          "type": "array",
          "description": "The set of URLs that did not match each other.",
          "items": {
            "x-enumDescriptions": [
              "No value has been specified.",
              "The received value is not known in this version. This is a response-only value.",
              "The display url.",
              "The final url.",
              "The final mobile url.",
              "The tracking url template, with substituted desktop url.",
              "The tracking url template, with substituted mobile url."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "DISPLAY_URL",
              "FINAL_URL",
              "FINAL_MOBILE_URL",
              "TRACKING_URL",
              "MOBILE_TRACKING_URL"
            ],
            "type": "string"
          }
        }
      },
      "description": "Evidence of mismatches between the URLs of a resource."
    },
    "GoogleAdsGoogleadsV25Common_PolicyTopicEvidence_DestinationNotWorking": {
      "type": "object",
      "properties": {
        "httpErrorCode": {
          "format": "int64",
          "type": "string",
          "description": "The HTTP error code."
        },
        "expandedUrl": {
          "type": "string",
          "description": "The full URL that didn't work."
        },
        "device": {
          "x-enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "Landing page doesn't work on desktop device.",
            "Landing page doesn't work on Android device.",
            "Landing page doesn't work on iOS device."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DESKTOP",
            "ANDROID",
            "IOS"
          ],
          "type": "string",
          "description": "The type of device that failed to load the URL."
        },
        "dnsErrorType": {
          "description": "The type of DNS error.",
          "type": "string",
          "x-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"
          ]
        },
        "lastCheckedDateTime": {
          "description": "The time the URL was last checked. The format is \"YYYY-MM-DD HH:MM:SS\". Examples: \"2018-03-05 09:15:00\" or \"2018-02-01 14:34:30\"",
          "type": "string"
        }
      },
      "description": "Evidence details when the destination is returning an HTTP error code or isn't functional in all locations for commonly used devices."
    },
    "GoogleAdsGoogleadsV25Common_PolicyTopicEvidence_DestinationTextList": {
      "type": "object",
      "properties": {
        "destinationTexts": {
          "type": "array",
          "description": "List of text found in the resource's destination page.",
          "items": {
            "type": "string"
          }
        }
      },
      "description": "A list of strings found in a destination page that caused a policy finding."
    },
    "GoogleAdsGoogleadsV25Common_PolicyTopicEvidence_TextList": {
      "type": "object",
      "properties": {
        "texts": {
          "description": "The fragments of text from the resource that caused the policy finding.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "description": "A list of fragments of text that violated a policy."
    },
    "GoogleAdsGoogleadsV25Common_PolicyTopicEvidence_WebsiteList": {
      "description": "A list of websites that caused a policy finding. Used for ONE_WEBSITE_PER_AD_GROUP policy topic, for example. In case there are more than five websites, only the top five (those that appear in resources the most) will be listed here.",
      "type": "object",
      "properties": {
        "websites": {
          "type": "array",
          "description": "Websites that caused the policy finding.",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__AdAppDeepLinkAsset": {
      "description": "An app deep link used inside an ad.",
      "type": "object",
      "properties": {
        "asset": {
          "type": "string",
          "description": "The Asset resource name of this app deep link asset."
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__AdAssetPolicySummary": {
      "type": "object",
      "properties": {
        "policyTopicEntries": {
          "description": "The list of policy findings for this asset.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__PolicyTopicEntry"
          },
          "type": "array"
        },
        "reviewStatus": {
          "description": "Where in the review process this asset.",
          "type": "string",
          "x-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"
          ]
        },
        "approvalStatus": {
          "x-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"
          ],
          "description": "The overall approval status of this asset, which is calculated based on the status of its individual policy topic entries.",
          "type": "string"
        }
      },
      "description": "Contains policy information for an asset inside an ad."
    },
    "GoogleAdsGoogleadsV25Common__AdCallToActionAsset": {
      "description": "A call to action asset used inside an ad.",
      "type": "object",
      "properties": {
        "asset": {
          "type": "string",
          "description": "The Asset resource name of this call to action asset."
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__AdDemandGenCarouselCardAsset": {
      "type": "object",
      "properties": {
        "asset": {
          "description": "The Asset resource name of this discovery carousel card.",
          "type": "string"
        }
      },
      "description": "A Demand Gen carousel card asset used inside an ad."
    },
    "GoogleAdsGoogleadsV25Common__AdImageAsset": {
      "type": "object",
      "properties": {
        "asset": {
          "description": "The Asset resource name of this image.",
          "type": "string"
        }
      },
      "description": "An image asset used inside an ad."
    },
    "GoogleAdsGoogleadsV25Common__AdMediaBundleAsset": {
      "description": "A media bundle asset used inside an ad.",
      "type": "object",
      "properties": {
        "asset": {
          "type": "string",
          "description": "The Asset resource name of this media bundle."
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__AdTextAsset": {
      "description": "A text asset used inside an ad.",
      "type": "object",
      "properties": {
        "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.",
          "x-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"
          ]
        },
        "assetPerformanceLabel": {
          "x-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"
          ],
          "type": "string",
          "description": "The performance label of this text asset."
        },
        "text": {
          "type": "string",
          "description": "Asset text."
        },
        "policySummaryInfo": {
          "description": "The policy summary of this text asset.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdAssetPolicySummary"
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__AdVideoAsset": {
      "description": "A video asset used inside an ad.",
      "type": "object",
      "properties": {
        "asset": {
          "type": "string",
          "description": "The Asset resource name of this video."
        },
        "adVideoAssetInfo": {
          "description": "Contains info fields for this AdVideoAsset.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdVideoAssetInfo"
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__AdVideoAssetInfo": {
      "description": "Contains info fields for AdVideoAssets.",
      "type": "object",
      "properties": {
        "adVideoAssetInventoryPreferences": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__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."
        },
        "adVideoAssetFeatureControl": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdVideoAssetLinkFeatureControl",
          "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."
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__AdVideoAssetInventoryPreferences": {
      "type": "object",
      "properties": {
        "inStreamPreference": {
          "description": "When true, YouTube Video Asset with this inventory preference will be preferred when choosing a video to serve In Stream.",
          "type": "boolean"
        },
        "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."
        },
        "inFeedPreference": {
          "description": "When true, YouTube Video Asset with this inventory preference will be preferred when choosing a video to serve In Feed.",
          "type": "boolean"
        }
      },
      "description": "YouTube Video Asset inventory preferences."
    },
    "GoogleAdsGoogleadsV25Common__AdVideoAssetLinkFeatureControl": {
      "type": "object",
      "properties": {
        "allowYoutubeComments": {
          "type": "boolean",
          "description": "Defines if YouTube comments should be enabled for the creative using this YouTube video asset served on YouTube Shorts."
        }
      },
      "description": "YouTube Video Asset feature controls."
    },
    "GoogleAdsGoogleadsV25Common__AppAdInfo": {
      "type": "object",
      "properties": {
        "mandatoryAdText": {
          "description": "Mandatory ad text.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
        },
        "youtubeVideos": {
          "type": "array",
          "description": "List of YouTube video assets that may be displayed with the ad.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdVideoAsset"
          }
        },
        "descriptions": {
          "description": "List of text assets for descriptions. When the ad serves the descriptions will be selected from this list.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
          },
          "type": "array"
        },
        "html5MediaBundles": {
          "type": "array",
          "description": "List of media bundle assets that may be used with the ad.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdMediaBundleAsset"
          }
        },
        "headlines": {
          "description": "List of text assets for headlines. When the ad serves the headlines will be selected from this list.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
          },
          "type": "array"
        },
        "appDeepLink": {
          "description": "An app deep link asset that may be used with the ad.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdAppDeepLinkAsset"
        },
        "images": {
          "type": "array",
          "description": "List of image assets that may be displayed with the ad.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdImageAsset"
          }
        }
      },
      "description": "An app ad."
    },
    "GoogleAdsGoogleadsV25Common__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.",
      "type": "object",
      "properties": {
        "descriptions": {
          "type": "array",
          "description": "List of text assets for descriptions. When the ad serves the descriptions will be selected from this list.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
          }
        },
        "headlines": {
          "description": "List of text assets for headlines. When the ad serves the headlines will be selected from this list.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
          },
          "type": "array"
        },
        "images": {
          "description": "List of image assets that may be displayed with the ad.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdImageAsset"
          },
          "type": "array"
        },
        "videos": {
          "type": "array",
          "description": "List of video assets that may be displayed with the ad.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdVideoAsset"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__AppPreRegistrationAdInfo": {
      "type": "object",
      "properties": {
        "headlines": {
          "description": "List of text assets for headlines. When the ad serves the headlines will be selected from this list.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
          },
          "type": "array"
        },
        "youtubeVideos": {
          "description": "List of YouTube video asset IDs whose videos may be displayed with the ad.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdVideoAsset"
          },
          "type": "array"
        },
        "images": {
          "type": "array",
          "description": "List of image asset IDs whose images may be displayed with the ad.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdImageAsset"
          }
        },
        "descriptions": {
          "type": "array",
          "description": "List of text assets for descriptions. When the ad serves the descriptions will be selected from this list.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
          }
        }
      },
      "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."
    },
    "GoogleAdsGoogleadsV25Common__CustomParameter": {
      "type": "object",
      "properties": {
        "key": {
          "description": "The key matching the parameter tag name.",
          "type": "string"
        },
        "value": {
          "type": "string",
          "description": "The value to be substituted."
        }
      },
      "description": "A mapping that can be used by custom parameter tags in a `tracking_url_template`, `final_urls`, or `mobile_final_urls`."
    },
    "GoogleAdsGoogleadsV25Common__DemandGenCarouselAdInfo": {
      "type": "object",
      "properties": {
        "carouselCards": {
          "description": "Required. Carousel cards that will display with the ad. Min 2 max 10.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdDemandGenCarouselCardAsset"
          },
          "type": "array"
        },
        "callToActionText": {
          "description": "Call to action text.",
          "type": "string"
        },
        "headline": {
          "description": "Required. Headline of the ad.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
        },
        "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": "#/$defs/GoogleAdsGoogleadsV25Common__AdImageAsset"
        },
        "description": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset",
          "description": "Required. The descriptive text of the ad."
        }
      },
      "description": "A Demand Gen carousel ad."
    },
    "GoogleAdsGoogleadsV25Common__DemandGenMultiAssetAdInfo": {
      "type": "object",
      "properties": {
        "portraitMarketingImages": {
          "type": "array",
          "description": "Portrait marketing image assets to be used in the ad. Valid image types are GIF, JPEG, and PNG. The minimum size is 480x600 and the aspect ratio must be 4:5 (+-1%). Combined with `marketing_images`, `square_marketing_images`, and `tall_portrait_marketing_images` the maximum is 20.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdImageAsset"
          }
        },
        "classicDisplayImages": {
          "type": "array",
          "description": "Classic display image assets to be used in the ad. Valid image types are GIF, JPEG, and PNG. At most 20 classic display images can be specified per ad.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdImageAsset"
          }
        },
        "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": "#/$defs/GoogleAdsGoogleadsV25Common__AdImageAsset"
          }
        },
        "businessName": {
          "type": "string",
          "description": "The Advertiser/brand name. Maximum display width is 25. Required."
        },
        "logoImages": {
          "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": "#/$defs/GoogleAdsGoogleadsV25Common__AdImageAsset"
          },
          "type": "array"
        },
        "descriptions": {
          "type": "array",
          "description": "The descriptive text of the ad. Maximum display width is 90. At least 1 and max 5 descriptions can be specified.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
          }
        },
        "callToActionText": {
          "type": "string",
          "description": "Call to action text."
        },
        "headlines": {
          "type": "array",
          "description": "Headline text asset of the ad. Maximum display width is 30. At least 1 and max 5 headlines can be specified.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
          }
        },
        "marketingImages": {
          "type": "array",
          "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": "#/$defs/GoogleAdsGoogleadsV25Common__AdImageAsset"
          }
        },
        "squareMarketingImages": {
          "type": "array",
          "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": "#/$defs/GoogleAdsGoogleadsV25Common__AdImageAsset"
          }
        }
      },
      "description": "A Demand Gen multi asset ad."
    },
    "GoogleAdsGoogleadsV25Common__DemandGenProductAdInfo": {
      "description": "A Demand Gen product ad.",
      "type": "object",
      "properties": {
        "description": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset",
          "description": "Required. Text asset used for the description."
        },
        "breadcrumb1": {
          "description": "First part of text that appears in the ad with the displayed URL.",
          "type": "string"
        },
        "breadcrumb2": {
          "description": "Second part of text that appears in the ad with the displayed URL.",
          "type": "string"
        },
        "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": "#/$defs/GoogleAdsGoogleadsV25Common__AdImageAsset"
        },
        "businessName": {
          "description": "Required. The advertiser/brand name.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
        },
        "callToAction": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdCallToActionAsset",
          "description": "Asset of type CallToActionAsset used for the \"Call To Action\" button."
        },
        "headline": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset",
          "description": "Required. Text asset used for the short headline."
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__DemandGenVideoResponsiveAdInfo": {
      "description": "A Demand Gen video responsive ad.",
      "type": "object",
      "properties": {
        "companionBanners": {
          "type": "array",
          "description": "List of image assets used for the companion banner. Currently, only a single value for the companion banner asset is supported.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdImageAsset"
          }
        },
        "longHeadlines": {
          "type": "array",
          "description": "List of text assets used for the long headline.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
          }
        },
        "videos": {
          "type": "array",
          "description": "Required. List of YouTube video assets used for the ad.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdVideoAsset"
          }
        },
        "breadcrumb1": {
          "description": "First part of text that appears in the ad with the displayed URL.",
          "type": "string"
        },
        "breadcrumb2": {
          "description": "Second part of text that appears in the ad with the displayed URL.",
          "type": "string"
        },
        "callToActions": {
          "description": "Assets of type CallToActionAsset used for the \"Call To Action\" button.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdCallToActionAsset"
          },
          "type": "array"
        },
        "businessName": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset",
          "description": "Required. The advertiser/brand name."
        },
        "headlines": {
          "type": "array",
          "description": "List of text assets used for the short headline.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
          }
        },
        "descriptions": {
          "type": "array",
          "description": "List of text assets used for the description.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
          }
        },
        "logoImages": {
          "type": "array",
          "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%).",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdImageAsset"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__DisplayUploadAdInfo": {
      "type": "object",
      "properties": {
        "displayUploadProductType": {
          "type": "string",
          "description": "The product type of this ad. See comments on the enum for details.",
          "x-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."
          ],
          "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"
          ]
        },
        "mediaBundle": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdMediaBundleAsset",
          "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."
        }
      },
      "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."
    },
    "GoogleAdsGoogleadsV25Common__ExpandedDynamicSearchAdInfo": {
      "type": "object",
      "properties": {
        "description": {
          "description": "The description of the ad.",
          "type": "string"
        },
        "description2": {
          "type": "string",
          "description": "The second description of the ad."
        }
      },
      "description": "An expanded dynamic search ad."
    },
    "GoogleAdsGoogleadsV25Common__ExpandedTextAdInfo": {
      "type": "object",
      "properties": {
        "headlinePart2": {
          "description": "The second part of the ad's headline.",
          "type": "string"
        },
        "description2": {
          "type": "string",
          "description": "The second description of the ad."
        },
        "headlinePart3": {
          "description": "The third part of the ad's headline.",
          "type": "string"
        },
        "description": {
          "description": "The description of the ad.",
          "type": "string"
        },
        "path1": {
          "type": "string",
          "description": "The text that can appear alongside the ad's displayed URL."
        },
        "headlinePart1": {
          "type": "string",
          "description": "The first part of the ad's headline."
        },
        "path2": {
          "description": "Additional text that can appear alongside the ad's displayed URL.",
          "type": "string"
        }
      },
      "description": "An expanded text ad. Expanded text ads are deprecated."
    },
    "GoogleAdsGoogleadsV25Common__FinalAppUrl": {
      "description": "A URL for deep linking into an app for the given operating system.",
      "type": "object",
      "properties": {
        "osType": {
          "x-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",
          "description": "The operating system targeted by this URL. Required."
        },
        "url": {
          "type": "string",
          "description": "The app deep link URL. Deep links specify a location in an app that corresponds to the content you'd like to show, and should be of the form {scheme}://{host_path} The scheme identifies which app to open. For your app, you can use a custom scheme that starts with the app's name. The host and path specify the unique location in the app where your content exists. Example: \"exampleapp://productid_1234\". Required."
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__HotelAdInfo": {
      "description": "A hotel ad.",
      "type": "object",
      "properties": {}
    },
    "GoogleAdsGoogleadsV25Common__ImageAdInfo": {
      "type": "object",
      "properties": {
        "imageAsset": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdImageAsset",
          "description": "The image assets used for the ad."
        },
        "pixelHeight": {
          "description": "Height in pixels of the full size image.",
          "type": "string",
          "format": "int64"
        },
        "adIdToCopyImageFrom": {
          "format": "int64",
          "description": "An ad ID to copy the image from.",
          "type": "string"
        },
        "imageUrl": {
          "description": "URL of the full size image.",
          "type": "string"
        },
        "pixelWidth": {
          "format": "int64",
          "type": "string",
          "description": "Width in pixels of the full size image."
        },
        "previewImageUrl": {
          "description": "URL of the preview size image.",
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "The name of the image. If the image was created from a MediaFile, this is the MediaFile's name. If the image was created from bytes, this is empty."
        },
        "previewPixelHeight": {
          "description": "Height in pixels of the preview size image.",
          "type": "string",
          "format": "int64"
        },
        "data": {
          "format": "byte",
          "type": "string",
          "description": "Raw image data as bytes."
        },
        "previewPixelWidth": {
          "description": "Width in pixels of the preview size image.",
          "type": "string",
          "format": "int64"
        },
        "mimeType": {
          "x-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",
          "description": "The mime type of the image."
        }
      },
      "description": "An image ad."
    },
    "GoogleAdsGoogleadsV25Common__InFeedVideoAdInfo": {
      "type": "object",
      "properties": {
        "headline": {
          "description": "The headline of the ad.",
          "type": "string"
        },
        "description1": {
          "type": "string",
          "description": "First text line for the ad."
        },
        "description2": {
          "description": "Second text line for the ad.",
          "type": "string"
        },
        "thumbnail": {
          "x-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",
          "description": "Video thumbnail image to use."
        }
      },
      "description": "Representation of In-feed video ad format."
    },
    "GoogleAdsGoogleadsV25Common__LegacyAppInstallAdInfo": {
      "description": "A legacy app install ad that only can be used by a few select customers.",
      "type": "object",
      "properties": {
        "appStore": {
          "description": "The app store the mobile app is available in.",
          "type": "string",
          "x-enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Apple iTunes.",
            "Google Play.",
            "Windows Store.",
            "Windows Phone Store.",
            "The app is hosted in a Chinese app store."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "APPLE_APP_STORE",
            "GOOGLE_PLAY",
            "WINDOWS_STORE",
            "WINDOWS_PHONE_STORE",
            "CN_APP_STORE"
          ]
        },
        "description1": {
          "type": "string",
          "description": "The first description line of the ad."
        },
        "description2": {
          "type": "string",
          "description": "The second description line of the ad."
        },
        "headline": {
          "type": "string",
          "description": "The headline of the ad."
        },
        "appId": {
          "description": "The ID of the mobile app.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__LegacyResponsiveDisplayAdInfo": {
      "description": "A legacy responsive display ad. Ads of this type are labeled 'Responsive ads' in the Google Ads UI.",
      "type": "object",
      "properties": {
        "allowFlexibleColor": {
          "description": "Advertiser's consent to allow flexible color. When true, the ad may be served with different color if necessary. When false, the ad will be served with the specified colors or a neutral color. The default value is `true`. Must be true if `main_color` and `accent_color` are not set.",
          "type": "boolean"
        },
        "callToActionText": {
          "description": "The call-to-action text for the ad.",
          "type": "string"
        },
        "squareLogoImage": {
          "type": "string",
          "description": "The MediaFile resource name of the square logo image used in the ad."
        },
        "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."
        },
        "marketingImage": {
          "description": "The MediaFile resource name of the marketing image used in the ad.",
          "type": "string"
        },
        "squareMarketingImage": {
          "description": "The MediaFile resource name of the square marketing image used in the ad.",
          "type": "string"
        },
        "shortHeadline": {
          "type": "string",
          "description": "The short version of the ad's headline."
        },
        "description": {
          "description": "The description of the ad.",
          "type": "string"
        },
        "longHeadline": {
          "type": "string",
          "description": "The long version of the ad's headline."
        },
        "businessName": {
          "type": "string",
          "description": "The business name in the ad."
        },
        "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"
        },
        "formatSetting": {
          "x-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"
          ],
          "type": "string",
          "description": "Specifies which format the ad will be served in. Default is ALL_FORMATS."
        },
        "pricePrefix": {
          "type": "string",
          "description": "Prefix before price. For example, 'as low as'."
        },
        "promoText": {
          "type": "string",
          "description": "Promotion text used for dynamic formats of responsive ads. For example 'Free two-day shipping'."
        },
        "logoImage": {
          "description": "The MediaFile resource name of the logo image used in the ad.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__LocalAdInfo": {
      "type": "object",
      "properties": {
        "callToActions": {
          "type": "array",
          "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": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
          }
        },
        "path1": {
          "type": "string",
          "description": "First part of optional text that can be appended to the URL in the ad."
        },
        "path2": {
          "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.",
          "type": "string"
        },
        "descriptions": {
          "description": "List of text assets for descriptions. When the ad serves the descriptions will be selected from this list. At least 1 and at most 5 descriptions must be specified.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
          },
          "type": "array"
        },
        "logoImages": {
          "type": "array",
          "description": "List of logo image assets that may be displayed with the ad. The images must be 128x128 pixels and not larger than 120KB. At least 1 and at most 5 image assets must be specified.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdImageAsset"
          }
        },
        "headlines": {
          "type": "array",
          "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.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
          }
        },
        "marketingImages": {
          "type": "array",
          "description": "List of marketing image assets that may be displayed with the ad. The images must be 314x600 pixels or 320x320 pixels. At least 1 and at most 20 image assets must be specified.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdImageAsset"
          }
        },
        "videos": {
          "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.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdVideoAsset"
          },
          "type": "array"
        }
      },
      "description": "A local ad."
    },
    "GoogleAdsGoogleadsV25Common__PolicyTopicConstraint": {
      "type": "object",
      "properties": {
        "resellerConstraint": {
          "description": "Reseller constraint.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common_PolicyTopicConstraint_ResellerConstraint"
        },
        "certificateMissingInCountryList": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common_PolicyTopicConstraint_CountryConstraintList",
          "description": "Countries where a certificate is required for serving."
        },
        "countryConstraintList": {
          "description": "Countries where the resource cannot serve.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common_PolicyTopicConstraint_CountryConstraintList"
        },
        "certificateDomainMismatchInCountryList": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common_PolicyTopicConstraint_CountryConstraintList",
          "description": "Countries where the resource's domain is not covered by the certificates associated with it."
        }
      },
      "description": "Describes the effect on serving that a policy topic entry will have."
    },
    "GoogleAdsGoogleadsV25Common__PolicyTopicEntry": {
      "type": "object",
      "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.",
          "x-enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The resource will not be served.",
            "The resource will not be served under some circumstances.",
            "The resource cannot serve at all because of the current targeting criteria.",
            "May be of interest, but does not limit how the resource is served.",
            "Could increase coverage beyond normal.",
            "Constrained for all targeted countries, but may serve in other countries through area of interest."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PROHIBITED",
            "LIMITED",
            "FULLY_LIMITED",
            "DESCRIPTIVE",
            "BROADENING",
            "AREA_OF_INTEREST_ONLY"
          ]
        },
        "constraints": {
          "description": "Indicates how serving of this resource may be affected (for example, not serving in a country).",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__PolicyTopicConstraint"
          },
          "type": "array"
        },
        "evidences": {
          "type": "array",
          "description": "Additional information that explains policy finding (for example, the brand name for a trademark finding).",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__PolicyTopicEvidence"
          }
        }
      },
      "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."
    },
    "GoogleAdsGoogleadsV25Common__PolicyTopicEvidence": {
      "description": "Additional information that explains a policy finding.",
      "type": "object",
      "properties": {
        "websiteList": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common_PolicyTopicEvidence_WebsiteList",
          "description": "List of websites linked with this resource."
        },
        "languageCode": {
          "description": "The language the resource was detected to be written in. This is an IETF language tag such as \"en-US\".",
          "type": "string"
        },
        "destinationTextList": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common_PolicyTopicEvidence_DestinationTextList",
          "description": "The text in the destination of the resource that is causing a policy finding."
        },
        "destinationMismatch": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common_PolicyTopicEvidence_DestinationMismatch",
          "description": "Mismatch between the destinations of a resource's URLs."
        },
        "destinationNotWorking": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common_PolicyTopicEvidence_DestinationNotWorking",
          "description": "Details when the destination is returning an HTTP error code or isn't functional in all locations for commonly used devices."
        },
        "textList": {
          "description": "List of evidence found in the text of a resource.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common_PolicyTopicEvidence_TextList"
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__PolicyValidationParameter": {
      "description": "Parameter for controlling how policy exemption is done.",
      "type": "object",
      "properties": {
        "ignorablePolicyTopics": {
          "type": "array",
          "description": "The list of policy topics that should not cause a `PolicyFindingError` to be reported. This field is used for ad policy exemptions. It corresponds to the `PolicyTopicEntry.topic` field. If this field is populated, then `exempt_policy_violation_keys` must be empty. Resources that violate these policies will be saved, but will not be eligible to serve. They may begin serving at a later time due to a change in policies, re-review of the resource, or a change in advertiser certificates.",
          "items": {
            "type": "string"
          }
        },
        "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": "#/$defs/GoogleAdsGoogleadsV25Common__PolicyViolationKey"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__PolicyViolationKey": {
      "type": "object",
      "properties": {
        "violatingText": {
          "description": "The text that violates the policy if specified. Otherwise, refers to the policy in general (for example, when requesting to be exempt from the whole policy). If not specified for criterion exemptions, the whole policy is implied. Must be specified for ad exemptions.",
          "type": "string"
        },
        "policyName": {
          "description": "Unique ID of the violated policy.",
          "type": "string"
        }
      },
      "description": "Key of the violation. The key is used for referring to a violation when filing an exemption request."
    },
    "GoogleAdsGoogleadsV25Common__ResponsiveDisplayAdControlSpec": {
      "description": "Specification for various creative controls for a responsive display ad.",
      "type": "object",
      "properties": {
        "enableAutogenVideo": {
          "description": "Whether the advertiser has opted into auto-gen video feature.",
          "type": "boolean"
        },
        "enableAssetEnhancements": {
          "description": "Whether the advertiser has opted into the asset enhancements feature.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__ResponsiveDisplayAdInfo": {
      "description": "A responsive display ad.",
      "type": "object",
      "properties": {
        "promoText": {
          "description": "Promotion text used for dynamic formats of responsive ads. For example 'Free two-day shipping'.",
          "type": "string"
        },
        "pricePrefix": {
          "type": "string",
          "description": "Prefix before price. For example, 'as low as'."
        },
        "formatSetting": {
          "type": "string",
          "description": "Specifies which format the ad will be served in. Default is ALL_FORMATS.",
          "x-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"
          ]
        },
        "youtubeVideos": {
          "description": "Optional YouTube videos for the ad. A maximum of 5 videos can be specified.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdVideoAsset"
          },
          "type": "array"
        },
        "controlSpec": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__ResponsiveDisplayAdControlSpec",
          "description": "Specification for various creative controls."
        },
        "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": "#/$defs/GoogleAdsGoogleadsV25Common__AdImageAsset"
          }
        },
        "descriptions": {
          "type": "array",
          "description": "Descriptive texts for the ad. The maximum length is 90 characters. At least 1 and max 5 headlines can be specified.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
          }
        },
        "allowFlexibleColor": {
          "description": "Advertiser's consent to allow flexible color. When true, the ad may be served with different color if necessary. When false, the ad will be served with the specified colors or a neutral color. The default value is `true`. Must be true if `main_color` and `accent_color` are not set.",
          "type": "boolean"
        },
        "callToActionText": {
          "description": "The call-to-action text for the ad. Maximum display width is 30.",
          "type": "string"
        },
        "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": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
          }
        },
        "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."
        },
        "marketingImages": {
          "type": "array",
          "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.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdImageAsset"
          }
        },
        "squareMarketingImages": {
          "type": "array",
          "description": "Square marketing images to be used in the ad. Valid image types are GIF, JPEG, and PNG. The minimum size is 300x300 and the aspect ratio must be 1:1 (+-1%). At least one square `marketing_image` is required. Combined with `marketing_images`, the maximum is 15.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdImageAsset"
          }
        },
        "longHeadline": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset",
          "description": "A required long format headline. The maximum length is 90 characters."
        },
        "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"
        },
        "squareLogoImages": {
          "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": "#/$defs/GoogleAdsGoogleadsV25Common__AdImageAsset"
          },
          "type": "array"
        },
        "businessName": {
          "type": "string",
          "description": "The advertiser/brand name. Maximum display width is 25."
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__ResponsiveSearchAdInfo": {
      "type": "object",
      "properties": {
        "headlines": {
          "description": "List of text assets for headlines. When the ad serves the headlines will be selected from this list.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
          },
          "type": "array"
        },
        "path1": {
          "description": "First part of text that can be appended to the URL in the ad.",
          "type": "string"
        },
        "path2": {
          "type": "string",
          "description": "Second part of text that can be appended to the URL in the ad. This field can only be set when `path1` is also set."
        },
        "descriptions": {
          "type": "array",
          "description": "List of text assets for descriptions. When the ad serves the descriptions will be selected from this list.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
          }
        }
      },
      "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"
    },
    "GoogleAdsGoogleadsV25Common__ShoppingComparisonListingAdInfo": {
      "type": "object",
      "properties": {
        "headline": {
          "type": "string",
          "description": "Headline of the ad. This field is required. Allowed length is between 25 and 45 characters."
        }
      },
      "description": "A Shopping Comparison Listing ad."
    },
    "GoogleAdsGoogleadsV25Common__ShoppingProductAdInfo": {
      "type": "object",
      "properties": {},
      "description": "A standard Shopping ad."
    },
    "GoogleAdsGoogleadsV25Common__ShoppingSmartAdInfo": {
      "type": "object",
      "properties": {},
      "description": "A Smart Shopping ad."
    },
    "GoogleAdsGoogleadsV25Common__SmartCampaignAdInfo": {
      "type": "object",
      "properties": {
        "headlines": {
          "type": "array",
          "description": "List of text assets, each of which corresponds to a headline when the ad serves. This list consists of a minimum of 3 and up to 15 text assets.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
          }
        },
        "descriptions": {
          "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.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
          },
          "type": "array"
        }
      },
      "description": "A Smart campaign ad."
    },
    "GoogleAdsGoogleadsV25Common__SyntheticContentAttestation": {
      "description": "Represents an attestation about synthetic content from a single source.",
      "type": "object",
      "properties": {
        "source": {
          "x-enumDescriptions": [
            "Not specified.",
            "Used for return values only. Represents value unknown in this version.",
            "Attestation provided by the advertiser.",
            "Google-generated content with advertiser review or input.",
            "Google-autogenerated content without advertiser review."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADVERTISER_ATTESTED",
            "GOOGLE_GENERATED_ADVERTISER_REVIEWED",
            "GOOGLE_GENERATED_FULLY_AUTOMATED"
          ],
          "type": "string",
          "description": "The source of the synthetic content attestation."
        },
        "status": {
          "description": "Indicates whether the content is considered synthetic by this source.",
          "type": "string",
          "x-enumDescriptions": [
            "Not specified.",
            "Used for return values only. Represents value unknown in this version.",
            "The content is attested as not synthetic.",
            "The content is attested as synthetic."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NOT_SYNTHETIC",
            "IS_SYNTHETIC"
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__SyntheticContentInfo": {
      "description": "Container for synthetic content attestations from different sources, such as the advertiser and Google systems.",
      "type": "object",
      "properties": {
        "systemAttestation": {
          "description": "Output only. Information about synthetic content generated by Google's systems.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__SyntheticContentAttestation"
        },
        "advertiserAttestation": {
          "description": "Input provided by the advertiser.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__SyntheticContentAttestation"
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__TextAdInfo": {
      "type": "object",
      "properties": {
        "description1": {
          "type": "string",
          "description": "The first line of the ad's description."
        },
        "description2": {
          "description": "The second line of the ad's description.",
          "type": "string"
        },
        "headline": {
          "type": "string",
          "description": "The headline of the ad."
        }
      },
      "description": "A text ad."
    },
    "GoogleAdsGoogleadsV25Common__TravelAdInfo": {
      "description": "A travel ad.",
      "type": "object",
      "properties": {}
    },
    "GoogleAdsGoogleadsV25Common__UrlCollection": {
      "description": "Collection of urls that is tagged with a unique identifier.",
      "type": "object",
      "properties": {
        "urlCollectionId": {
          "type": "string",
          "description": "Unique identifier for this UrlCollection instance."
        },
        "trackingUrlTemplate": {
          "type": "string",
          "description": "URL template for constructing a tracking URL."
        },
        "finalUrls": {
          "type": "array",
          "description": "A list of possible final URLs.",
          "items": {
            "type": "string"
          }
        },
        "finalMobileUrls": {
          "description": "A list of possible final mobile URLs.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__VideoAdInfo": {
      "type": "object",
      "properties": {
        "video": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdVideoAsset",
          "description": "The YouTube video assets used for the ad."
        },
        "inStream": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__VideoTrueViewInStreamAdInfo",
          "description": "Video TrueView in-stream ad format."
        },
        "nonSkippable": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__VideoNonSkippableInStreamAdInfo",
          "description": "Video non-skippable in-stream ad format."
        },
        "bumper": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__VideoBumperInStreamAdInfo",
          "description": "Video bumper in-stream ad format."
        },
        "outStream": {
          "description": "Video out-stream ad format.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__VideoOutstreamAdInfo"
        },
        "inFeed": {
          "description": "In-feed video ad format.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__InFeedVideoAdInfo"
        },
        "audio": {
          "description": "YouTube Audio ad format.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__YouTubeAudioAdInfo"
        }
      },
      "description": "A video ad."
    },
    "GoogleAdsGoogleadsV25Common__VideoBumperInStreamAdInfo": {
      "type": "object",
      "properties": {
        "actionButtonLabel": {
          "description": "Label on the \"Call To Action\" button taking the user to the video ad's final URL.",
          "type": "string"
        },
        "actionHeadline": {
          "type": "string",
          "description": "Additional text displayed with the CTA (call-to-action) button to give context and encourage clicking on the button."
        },
        "companionBanner": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdImageAsset",
          "description": "The image assets of the companion banner used with the ad."
        }
      },
      "description": "Representation of video bumper in-stream ad format (very short in-stream non-skippable video ad)."
    },
    "GoogleAdsGoogleadsV25Common__VideoNonSkippableInStreamAdInfo": {
      "description": "Representation of video non-skippable in-stream ad format (15 second in-stream non-skippable video ad).",
      "type": "object",
      "properties": {
        "actionButtonLabel": {
          "type": "string",
          "description": "Label on the \"Call To Action\" button taking the user to the video ad's final URL."
        },
        "actionHeadline": {
          "type": "string",
          "description": "Additional text displayed with the \"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": "#/$defs/GoogleAdsGoogleadsV25Common__AdImageAsset"
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__VideoOutstreamAdInfo": {
      "description": "Representation of video out-stream ad format (ad shown alongside a feed with automatic playback, without sound).",
      "type": "object",
      "properties": {
        "headline": {
          "description": "The headline of the ad.",
          "type": "string"
        },
        "description": {
          "type": "string",
          "description": "The description line."
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__VideoResponsiveAdInfo": {
      "type": "object",
      "properties": {
        "businessName": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset",
          "description": "Required. Advertiser/brand name. Maximum display width is 25 characters."
        },
        "callToActions": {
          "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.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
          },
          "type": "array"
        },
        "breadcrumb1": {
          "description": "First part of text that appears in the ad with the displayed URL.",
          "type": "string"
        },
        "breadcrumb2": {
          "type": "string",
          "description": "Second part of text that appears in the ad with the displayed URL."
        },
        "longHeadlines": {
          "description": "List of text assets used for the long headline. Currently, only a single value for the long headline is supported.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
          },
          "type": "array"
        },
        "videos": {
          "type": "array",
          "description": "Required. List of YouTube video assets used for the ad. Currently, only a single value for the YouTube video asset is supported.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdVideoAsset"
          }
        },
        "companionBanners": {
          "type": "array",
          "description": "List of image assets used for the companion banner. Currently, only a single value for the companion banner asset is supported.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdImageAsset"
          }
        },
        "descriptions": {
          "description": "List of text assets used for the description. Currently, only a single value for the description is supported.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
          },
          "type": "array"
        },
        "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": "#/$defs/GoogleAdsGoogleadsV25Common__AdImageAsset"
          },
          "type": "array"
        },
        "headlines": {
          "description": "List of text assets used for the short headline. Currently, only a single value for the short headline is supported.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
          },
          "type": "array"
        }
      },
      "description": "A video responsive ad."
    },
    "GoogleAdsGoogleadsV25Common__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).",
      "type": "object",
      "properties": {
        "actionHeadline": {
          "description": "Additional text displayed with the CTA (call-to-action) button to give context and encourage clicking on the button.",
          "type": "string"
        },
        "actionButtonLabel": {
          "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.",
          "type": "string"
        },
        "companionBanner": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdImageAsset",
          "description": "The image assets of the companion banner used with the ad."
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__YouTubeAudioAdInfo": {
      "type": "object",
      "properties": {},
      "description": "Representation of YouTube Audio ad format."
    },
    "GoogleAdsGoogleadsV25Resources__Ad": {
      "type": "object",
      "properties": {
        "appPreRegistrationAd": {
          "description": "Details pertaining to an app pre-registration ad.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AppPreRegistrationAdInfo"
        },
        "smartCampaignAd": {
          "description": "Details pertaining to a Smart campaign ad.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__SmartCampaignAdInfo"
        },
        "appEngagementAd": {
          "description": "Details pertaining to an app engagement ad.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AppEngagementAdInfo"
        },
        "syntheticContentInfo": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__SyntheticContentInfo",
          "description": "Synthetic content info for the ad."
        },
        "displayUrl": {
          "type": "string",
          "description": "The URL that appears in the ad description for some ad formats."
        },
        "responsiveDisplayAd": {
          "description": "Details pertaining to a responsive display ad.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__ResponsiveDisplayAdInfo"
        },
        "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": "#/$defs/GoogleAdsGoogleadsV25Common__ExpandedDynamicSearchAdInfo"
        },
        "finalUrlSuffix": {
          "description": "The suffix to use when constructing a final URL.",
          "type": "string"
        },
        "imageAd": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__ImageAdInfo",
          "description": "Immutable. Details pertaining to an Image ad."
        },
        "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.",
          "type": "boolean"
        },
        "responsiveSearchAd": {
          "description": "Details pertaining to a responsive search ad.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__ResponsiveSearchAdInfo"
        },
        "expandedTextAd": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__ExpandedTextAdInfo",
          "description": "Details pertaining to an expanded text ad. Expanded text ads are deprecated. Use `ResponsiveSearchAd` instead."
        },
        "type": {
          "x-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",
          "description": "Output only. The type of ad.",
          "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"
          ]
        },
        "shoppingProductAd": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__ShoppingProductAdInfo",
          "description": "Details pertaining to a Shopping product ad."
        },
        "displayUploadAd": {
          "description": "Details pertaining to a display upload ad.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__DisplayUploadAdInfo"
        },
        "finalAppUrls": {
          "description": "A list of final app URLs that will be used on mobile if the user has the specific app installed.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__FinalAppUrl"
          },
          "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.",
          "type": "string",
          "x-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"
          ]
        },
        "travelAd": {
          "description": "Details pertaining to a travel ad.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__TravelAdInfo"
        },
        "appAd": {
          "description": "Details pertaining to an app ad.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AppAdInfo"
        },
        "finalMobileUrls": {
          "type": "array",
          "description": "The list of possible final mobile URLs after all cross-domain redirects for the ad.",
          "items": {
            "type": "string"
          }
        },
        "shoppingSmartAd": {
          "description": "Details pertaining to a Smart Shopping ad.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__ShoppingSmartAdInfo"
        },
        "textAd": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__TextAdInfo",
          "description": "Immutable. Details pertaining to a text ad."
        },
        "legacyAppInstallAd": {
          "description": "Immutable. Details pertaining to a legacy app install ad.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__LegacyAppInstallAdInfo"
        },
        "demandGenMultiAssetAd": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__DemandGenMultiAssetAdInfo",
          "description": "Details pertaining to a Demand Gen multi asset ad."
        },
        "videoAd": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__VideoAdInfo",
          "description": "Details pertaining to a Video ad."
        },
        "urlCustomParameters": {
          "type": "array",
          "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.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__CustomParameter"
          }
        },
        "systemManagedResourceSource": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AD_VARIATIONS"
          ],
          "description": "Output only. If this ad is system managed, then this field will indicate the source. This field is read-only.",
          "type": "string",
          "x-enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Generated ad variations experiment ad."
          ]
        },
        "videoResponsiveAd": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__VideoResponsiveAdInfo",
          "description": "Details pertaining to a Video responsive ad."
        },
        "shoppingComparisonListingAd": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__ShoppingComparisonListingAdInfo",
          "description": "Details pertaining to a Shopping Comparison Listing ad."
        },
        "legacyResponsiveDisplayAd": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__LegacyResponsiveDisplayAdInfo",
          "description": "Details pertaining to a legacy responsive display ad."
        },
        "demandGenVideoResponsiveAd": {
          "description": "Details pertaining to a Demand Gen video responsive ad.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__DemandGenVideoResponsiveAdInfo"
        },
        "localAd": {
          "description": "Details pertaining to a local ad.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__LocalAdInfo"
        },
        "demandGenProductAd": {
          "description": "Details pertaining to a Demand Gen product ad.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__DemandGenProductAdInfo"
        },
        "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"
        },
        "urlCollections": {
          "type": "array",
          "description": "Additional URLs for the ad that are tagged with a unique identifier that can be referenced from other fields in the ad.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__UrlCollection"
          }
        },
        "id": {
          "type": "string",
          "description": "Output only. The ID of the ad.",
          "format": "int64"
        },
        "finalUrls": {
          "type": "array",
          "description": "The list of possible final URLs after all cross-domain redirects for the ad.",
          "items": {
            "type": "string"
          }
        },
        "demandGenCarouselAd": {
          "description": "Details pertaining to a Demand Gen carousel ad.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__DemandGenCarouselAdInfo"
        },
        "resourceName": {
          "description": "Immutable. The resource name of the ad. Ad resource names have the form: `customers/{customer_id}/ads/{ad_id}`",
          "type": "string"
        },
        "hotelAd": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__HotelAdInfo",
          "description": "Details pertaining to a hotel ad."
        },
        "trackingUrlTemplate": {
          "type": "string",
          "description": "The URL template for constructing a tracking URL."
        }
      },
      "description": "An ad."
    },
    "GoogleAdsGoogleadsV25Services__AdOperation": {
      "type": "object",
      "properties": {
        "policyValidationParameter": {
          "description": "Configuration for how policies are validated.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__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": "#/$defs/GoogleAdsGoogleadsV25Resources__Ad"
        },
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string",
          "format": "google-fieldmask"
        }
      },
      "description": "A single update operation on an ad."
    }
  }
}