Google Ads · Schema
GoogleAdsGoogleadsV25Services__ApplyRecommendationRequest
Request message for RecommendationService.ApplyRecommendation.
AdvertisingCampaign ManagementDigital AdvertisingGoogleMarketingPPCGoogle AdsAdTech
Properties
| Name | Type | Description |
|---|---|---|
| partialFailure | boolean | If true, successful operations will be carried out and invalid operations will return errors. If false, operations will be carried out as a transaction if and only if they are all valid. Default is fa |
| operations | array | Required. The list of operations to apply recommendations. If partial_failure=false all recommendations should be of the same type There is a limit of 100 operations per request. |
JSON Schema
{
"$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-apply-recommendation-request-schema.json",
"title": "GoogleAdsGoogleadsV25Services__ApplyRecommendationRequest",
"description": "Request message for RecommendationService.ApplyRecommendation.",
"x-generated": "2026-11-04",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/google-ads-customers-recommendations-api-openapi.yml#/components/schemas/GoogleAdsGoogleadsV25Services__ApplyRecommendationRequest",
"type": "object",
"properties": {
"partialFailure": {
"type": "boolean",
"description": "If true, successful operations will be carried out and invalid operations will return errors. If false, operations will be carried out as a transaction if and only if they are all valid. Default is false."
},
"operations": {
"description": "Required. The list of operations to apply recommendations. If partial_failure=false all recommendations should be of the same type There is a limit of 100 operations per request.",
"items": {
"$ref": "#/$defs/GoogleAdsGoogleadsV25Services__ApplyRecommendationOperation"
},
"type": "array"
}
},
"$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__AdScheduleInfo": {
"type": "object",
"properties": {
"dayOfWeek": {
"description": "Day of the week the schedule applies to. This field is required for CREATE operations and is prohibited on UPDATE operations.",
"type": "string",
"x-enumDescriptions": [
"Not specified.",
"The value is unknown in this version.",
"Monday.",
"Tuesday.",
"Wednesday.",
"Thursday.",
"Friday.",
"Saturday.",
"Sunday."
],
"enum": [
"UNSPECIFIED",
"UNKNOWN",
"MONDAY",
"TUESDAY",
"WEDNESDAY",
"THURSDAY",
"FRIDAY",
"SATURDAY",
"SUNDAY"
]
},
"startHour": {
"type": "integer",
"description": "Starting hour in 24 hour time. This field must be between 0 and 23, inclusive. This field is required for CREATE operations and is prohibited on UPDATE operations.",
"format": "int32"
},
"endHour": {
"type": "integer",
"description": "Ending hour in 24 hour time; 24 signifies end of the day. This field must be between 0 and 24, inclusive. This field is required for CREATE operations and is prohibited on UPDATE operations.",
"format": "int32"
},
"endMinute": {
"type": "string",
"description": "Minutes after the end hour at which this schedule ends. The schedule is exclusive of the end minute. This field is required for CREATE operations and is prohibited on UPDATE operations.",
"x-enumDescriptions": [
"Not specified.",
"The value is unknown in this version.",
"Zero minutes past the hour.",
"Fifteen minutes past the hour.",
"Thirty minutes past the hour.",
"Forty-five minutes past the hour."
],
"enum": [
"UNSPECIFIED",
"UNKNOWN",
"ZERO",
"FIFTEEN",
"THIRTY",
"FORTY_FIVE"
]
},
"startMinute": {
"description": "Minutes after the start hour at which this schedule starts. This field is required for CREATE operations and is prohibited on UPDATE operations.",
"type": "string",
"x-enumDescriptions": [
"Not specified.",
"The value is unknown in this version.",
"Zero minutes past the hour.",
"Fifteen minutes past the hour.",
"Thirty minutes past the hour.",
"Forty-five minutes past the hour."
],
"enum": [
"UNSPECIFIED",
"UNKNOWN",
"ZERO",
"FIFTEEN",
"THIRTY",
"FORTY_FIVE"
]
}
},
"description": "Represents an AdSchedule criterion. AdSchedule is specified as the day of the week and a time interval within which ads will be shown. No more than six AdSchedules can be added for the same day."
},
"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__AppDeepLinkAsset": {
"type": "object",
"properties": {
"appDeepLinkUri": {
"description": "The uri for the app deep link. The uri can be either a custom scheme uri (e.g., `mystore://shoes`) or universal uri (e.g., `http://www.mystore.com/shoes`).",
"type": "string"
}
},
"description": "An app deep link asset"
},
"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__BookOnGoogleAsset": {
"description": "A Book on Google asset. Used to redirect user to book through Google. Book on Google will change the redirect url to book directly through Google.",
"type": "object",
"properties": {}
},
"GoogleAdsGoogleadsV25Common__BusinessMessageAsset": {
"type": "object",
"properties": {
"messageProvider": {
"x-enumDescriptions": [
"Not specified.",
"Used for return value only. Represents value unknown in this version.",
"WhatsApp message provider",
"Facebook Messenger message provider",
"Zalo message provider"
],
"enum": [
"UNSPECIFIED",
"UNKNOWN",
"WHATSAPP",
"FACEBOOK_MESSENGER",
"ZALO"
],
"description": "Required. Message provider of the business message asset.",
"type": "string"
},
"callToAction": {
"$ref": "#/$defs/GoogleAdsGoogleadsV25Common__BusinessMessageCallToActionInfo",
"description": "A call to action for the business message asset."
},
"whatsappInfo": {
"$ref": "#/$defs/GoogleAdsGoogleadsV25Common__WhatsappBusinessMessageInfo",
"description": "Whatsapp."
},
"zaloInfo": {
"$ref": "#/$defs/GoogleAdsGoogleadsV25Common__ZaloBusinessMessageInfo",
"description": "Zalo."
},
"facebookMessengerInfo": {
"description": "Facebook Messenger.",
"$ref": "#/$defs/GoogleAdsGoogleadsV25Common__FacebookMessengerBusinessMessageInfo"
},
"starterMessage": {
"description": "Required. A welcome message to prompt the user to initiate a conversation.",
"type": "string"
}
},
"description": "A business message asset."
},
"GoogleAdsGoogleadsV25Common__BusinessMessageCallToActionInfo": {
"type": "object",
"properties": {
"callToActionDescription": {
"description": "Required. Text providing a clear value proposition of what users expect once they take the action. Examples: 'Message us for a quote', 'Ask our expert team'.",
"type": "string"
},
"callToActionSelection": {
"x-enumDescriptions": [
"Not specified.",
"Used for return value only. Represents value unknown in this version.",
"Apply now.",
"Book now.",
"Contact us.",
"Get info.",
"Get offer.",
"Get quote.",
"Get started.",
"Learn more."
],
"enum": [
"UNSPECIFIED",
"UNKNOWN",
"APPLY_NOW",
"BOOK_NOW",
"CONTACT_US",
"GET_INFO",
"GET_OFFER",
"GET_QUOTE",
"GET_STARTED",
"LEARN_MORE"
],
"type": "string",
"description": "Required. Pre-defined call to action text."
}
},
"description": "Display information that encourages the user to take action."
},
"GoogleAdsGoogleadsV25Common__BusinessProfileLocation": {
"description": "Business Profile location data synced from the linked Business Profile account.",
"type": "object",
"properties": {
"storeCode": {
"type": "string",
"description": "Business Profile store code of this location. This is synced from the Business Profile account."
},
"labels": {
"description": "Advertiser specified label for the location on the Business Profile account. This is synced from the Business Profile account.",
"items": {
"type": "string"
},
"type": "array"
},
"listingId": {
"format": "int64",
"description": "Listing ID of this Business Profile location. This is synced from the linked Business Profile account.",
"type": "string"
}
}
},
"GoogleAdsGoogleadsV25Common__CallAsset": {
"description": "A Call asset.",
"type": "object",
"properties": {
"callConversionAction": {
"type": "string",
"description": "The conversion action to attribute a call conversion to. If not set, the default conversion action is used. This field only has effect if call_conversion_reporting_state is set to USE_RESOURCE_LEVEL_CALL_CONVERSION_ACTION."
},
"phoneNumber": {
"description": "Required. The advertiser's raw phone number. Examples: '1234567890', '(123
# --- truncated at 32 KB (231 KB total) ---
# Full source: https://artifacts.apis.io/google-ads/json-schema/google-ads-google-ads-googleads-v25-services-apply-recommendation-request-schema.json
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/google-ads-google-ads-googleads-v25-services-apply-recommendation-request"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.