Google Ads · Schema
SearchGoogleAdsResponse
AdvertisingCampaign ManagementDigital AdvertisingGoogleMarketingPPCGoogle AdsAdTech
Properties
| Name | Type | Description |
|---|---|---|
| results | array | List of rows matching the query. |
| nextPageToken | string | Token for retrieving the next page of results. |
| totalResultsCount | integer | Total number of results matching the query. |
| fieldMask | string | Fields requested in the query. |
| summaryRow | object |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/google-ads/json-schema/google-ads-search-google-ads-response-schema.json",
"title": "SearchGoogleAdsResponse",
"x-generated": "2026-11-04",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/google-ads-reporting-api-openapi.yml#/components/schemas/SearchGoogleAdsResponse",
"type": "object",
"properties": {
"results": {
"type": "array",
"description": "List of rows matching the query.",
"items": {
"$ref": "#/$defs/GoogleAdsRow"
}
},
"nextPageToken": {
"type": "string",
"description": "Token for retrieving the next page of results."
},
"totalResultsCount": {
"type": "integer",
"format": "int64",
"description": "Total number of results matching the query."
},
"fieldMask": {
"type": "string",
"description": "Fields requested in the query."
},
"summaryRow": {
"$ref": "#/$defs/GoogleAdsRow"
}
},
"$defs": {
"Ad": {
"type": "object",
"description": "The creative content of an ad.",
"properties": {
"resourceName": {
"type": "string",
"description": "Resource name of the ad."
},
"id": {
"type": "integer",
"format": "int64",
"description": "The unique ID of the ad."
},
"finalUrls": {
"type": "array",
"items": {
"type": "string",
"format": "uri"
},
"description": "The list of landing page URLs for the ad."
},
"finalMobileUrls": {
"type": "array",
"items": {
"type": "string",
"format": "uri"
},
"description": "Landing page URLs for mobile devices."
},
"trackingUrlTemplate": {
"type": "string",
"description": "URL template for tracking clicks."
},
"type": {
"type": "string",
"enum": [
"RESPONSIVE_SEARCH_AD",
"EXPANDED_TEXT_AD",
"RESPONSIVE_DISPLAY_AD",
"IMAGE_AD",
"VIDEO_AD",
"CALL_AD",
"APP_AD",
"SHOPPING_PRODUCT_AD",
"UNKNOWN",
"UNSPECIFIED"
],
"description": "The type of ad."
},
"responsiveSearchAd": {
"$ref": "#/$defs/ResponsiveSearchAdInfo"
},
"responsiveDisplayAd": {
"$ref": "#/$defs/ResponsiveDisplayAdInfo"
}
}
},
"AdGroup": {
"type": "object",
"description": "An ad group containing a set of ads and targeting criteria within a campaign.",
"properties": {
"resourceName": {
"type": "string",
"description": "Resource name of the ad group, e.g. customers/{customerId}/adGroups/{adGroupId}."
},
"id": {
"type": "integer",
"format": "int64",
"description": "The unique ID of the ad group."
},
"name": {
"type": "string",
"description": "The name of the ad group."
},
"status": {
"type": "string",
"enum": [
"ENABLED",
"PAUSED",
"REMOVED",
"UNKNOWN",
"UNSPECIFIED"
],
"description": "The status of the ad group."
},
"campaign": {
"type": "string",
"description": "Resource name of the campaign this ad group belongs to."
},
"type": {
"type": "string",
"enum": [
"SEARCH_STANDARD",
"DISPLAY_STANDARD",
"SHOPPING_PRODUCT_ADS",
"VIDEO_TRUE_VIEW_IN_STREAM",
"VIDEO_BUMPER",
"HOTEL_ADS",
"SHOPPING_SMART_ADS",
"SMART_CAMPAIGN_ADS",
"UNKNOWN",
"UNSPECIFIED"
],
"description": "The type of the ad group."
},
"cpcBidMicros": {
"type": "integer",
"format": "int64",
"description": "Maximum CPC bid in micros at the ad group level."
},
"cpmBidMicros": {
"type": "integer",
"format": "int64",
"description": "Maximum CPM bid in micros at the ad group level."
},
"targetCpaMicros": {
"type": "integer",
"format": "int64",
"description": "Target CPA in micros at the ad group level."
},
"effectiveTargetCpaMicros": {
"type": "integer",
"format": "int64",
"description": "Effective target CPA considering campaign-level settings."
},
"effectiveTargetRoas": {
"type": "number",
"description": "Effective target ROAS considering campaign-level settings."
},
"adRotationMode": {
"type": "string",
"enum": [
"OPTIMIZE",
"ROTATE_FOREVER",
"UNKNOWN",
"UNSPECIFIED"
],
"description": "Ad rotation mode for ads within this ad group."
}
}
},
"AdGroupAd": {
"type": "object",
"description": "An ad within an ad group.",
"properties": {
"resourceName": {
"type": "string",
"description": "Resource name of the ad group ad."
},
"status": {
"type": "string",
"enum": [
"ENABLED",
"PAUSED",
"REMOVED",
"UNKNOWN",
"UNSPECIFIED"
],
"description": "The status of the ad."
},
"adGroup": {
"type": "string",
"description": "Resource name of the ad group this ad belongs to."
},
"ad": {
"$ref": "#/$defs/Ad"
},
"policySummary": {
"$ref": "#/$defs/PolicySummary"
},
"adStrength": {
"type": "string",
"enum": [
"EXCELLENT",
"GOOD",
"AVERAGE",
"POOR",
"NO_ADS",
"UNKNOWN",
"UNSPECIFIED"
],
"description": "Overall ad strength rating for responsive search ads."
}
}
},
"AdGroupCriterion": {
"type": "object",
"description": "A targeting criterion within an ad group, such as a keyword.",
"properties": {
"resourceName": {
"type": "string",
"description": "Resource name of the ad group criterion."
},
"criterionId": {
"type": "integer",
"format": "int64",
"description": "The unique ID of the criterion."
},
"adGroup": {
"type": "string",
"description": "Resource name of the ad group this criterion belongs to."
},
"status": {
"type": "string",
"enum": [
"ENABLED",
"PAUSED",
"REMOVED",
"UNKNOWN",
"UNSPECIFIED"
],
"description": "The status of the criterion."
},
"type": {
"type": "string",
"enum": [
"KEYWORD",
"PLACEMENT",
"TOPIC",
"AGE_RANGE",
"GENDER",
"INCOME_RANGE",
"PARENTAL_STATUS",
"LISTING_GROUP",
"WEBPAGE",
"CUSTOM_AUDIENCE",
"AUDIENCE",
"UNKNOWN",
"UNSPECIFIED"
],
"description": "The type of criterion."
},
"keyword": {
"$ref": "#/$defs/KeywordInfo"
},
"qualityInfo": {
"$ref": "#/$defs/QualityInfo"
},
"cpcBidMicros": {
"type": "integer",
"format": "int64",
"description": "CPC bid override in micros for this criterion."
},
"effectiveCpcBidMicros": {
"type": "integer",
"format": "int64",
"description": "Effective CPC bid in micros after applying all adjustments."
},
"finalUrls": {
"type": "array",
"items": {
"type": "string",
"format": "uri"
},
"description": "Override landing page URLs for this keyword."
},
"negative": {
"type": "boolean",
"description": "Whether this is a negative criterion (excluded from targeting)."
}
}
},
"AdTextAsset": {
"type": "object",
"description": "A text asset used in responsive ads.",
"properties": {
"text": {
"type": "string",
"description": "The text content of the asset."
},
"pinnedField": {
"type": "string",
"enum": [
"HEADLINE_1",
"HEADLINE_2",
"HEADLINE_3",
"DESCRIPTION_1",
"DESCRIPTION_2",
"UNSPECIFIED"
],
"description": "Pin position for this text asset in ad rendering."
}
}
},
"Campaign": {
"type": "object",
"description": "A Google Ads campaign. Campaigns group ad groups and set budgets, bidding strategies, and targeting.",
"properties": {
"resourceName": {
"type": "string",
"description": "Resource name of the campaign, e.g. customers/{customerId}/campaigns/{campaignId}."
},
"id": {
"type": "integer",
"format": "int64",
"description": "The unique ID of the campaign."
},
"name": {
"type": "string",
"description": "The name of the campaign. Must be unique within the account."
},
"status": {
"type": "string",
"enum": [
"ENABLED",
"PAUSED",
"REMOVED",
"UNKNOWN",
"UNSPECIFIED"
],
"description": "The status of the campaign."
},
"advertisingChannelType": {
"type": "string",
"enum": [
"SEARCH",
"DISPLAY",
"SHOPPING",
"VIDEO",
"MULTI_CHANNEL",
"LOCAL",
"SMART",
"PERFORMANCE_MAX",
"DEMAND_GEN",
"TRAVEL",
"LOCAL_SERVICES",
"UNKNOWN",
"UNSPECIFIED"
],
"description": "The primary channel type for serving ads in this campaign."
},
"advertisingChannelSubType": {
"type": "string",
"description": "Optional refinement of the advertising channel type."
},
"biddingStrategyType": {
"type": "string",
"enum": [
"TARGET_CPA",
"TARGET_ROAS",
"TARGET_SPEND",
"MAXIMIZE_CONVERSIONS",
"MAXIMIZE_CONVERSION_VALUE",
"MANUAL_CPC",
"MANUAL_CPM",
"MANUAL_CPV",
"TARGET_IMPRESSION_SHARE",
"ENHANCED_CPC",
"UNKNOWN",
"UNSPECIFIED"
],
"description": "The type of bidding strategy used by the campaign."
},
"campaignBudget": {
"type": "string",
"description": "Resource name of the campaign budget."
},
"startDate": {
"type": "string",
"description": "Start date of the campaign in yyyy-MM-dd format."
},
"endDate": {
"type": "string",
"description": "End date of the campaign in yyyy-MM-dd format."
},
"networkSettings": {
"$ref": "#/$defs/NetworkSettings"
},
"targetCpa": {
"$ref": "#/$defs/TargetCpa"
},
"targetRoas": {
"$ref": "#/$defs/TargetRoas"
},
"maximizeConversions": {
"$ref": "#/$defs/MaximizeConversions"
},
"manualCpc": {
"$ref": "#/$defs/ManualCpc"
},
"geoTargetTypeSetting": {
"$ref": "#/$defs/GeoTargetTypeSetting"
}
}
},
"Customer": {
"type": "object",
"description": "A Google Ads customer account.",
"properties": {
"resourceName": {
"type": "string",
"description": "Resource name of the customer."
},
"id": {
"type": "integer",
"format": "int64",
"description": "The customer account ID."
},
"descriptiveName": {
"type": "string",
"description": "The descriptive name of the customer account."
},
"currencyCode": {
"type": "string",
"description": "ISO 4217 three-letter currency code for the account."
},
"timeZone": {
"type": "string",
"description": "IANA time zone ID for the account."
},
"manager": {
"type": "boolean",
"description": "Whether this is a manager account (MCC)."
},
"testAccount": {
"type": "boolean",
"description": "Whether this is a test account."
},
"autoTaggingEnabled": {
"type": "boolean",
"description": "Whether auto-tagging is enabled for the account."
},
"hasPartnersBadge": {
"type": "boolean",
"description": "Whether the account has a Google Partners badge."
}
}
},
"GeoTargetTypeSetting": {
"type": "object",
"description": "Geographic targeting settings for a campaign.",
"properties": {
"positiveGeoTargetType": {
"type": "string",
"enum": [
"PRESENCE_OR_INTEREST",
"SEARCH_INTEREST",
"PRESENCE"
],
"description": "How positive geo targeting is applied."
},
"negativeGeoTargetType": {
"type": "string",
"enum": [
"PRESENCE_OR_INTEREST",
"PRESENCE"
],
"description": "How negative geo targeting is applied."
}
}
},
"GoogleAdsRow": {
"type": "object",
"description": "A single row returned from a GAQL query containing resource fields, segments, and metrics.",
"properties": {
"campaign": {
"$ref": "#/$defs/Campaign"
},
"adGroup": {
"$ref": "#/$defs/AdGroup"
},
"adGroupAd": {
"$ref": "#/$defs/AdGroupAd"
},
"adGroupCriterion": {
"$ref": "#/$defs/AdGroupCriterion"
},
"customer": {
"$ref": "#/$defs/Customer"
},
"metrics": {
"$ref": "#/$defs/Metrics"
},
"segments": {
"$ref": "#/$defs/Segments"
}
}
},
"KeywordInfo": {
"type": "object",
"description": "Keyword targeting information.",
"properties": {
"text": {
"type": "string",
"description": "The keyword text."
},
"matchType": {
"type": "string",
"enum": [
"EXACT",
"PHRASE",
"BROAD",
"UNKNOWN",
"UNSPECIFIED"
],
"description": "The match type of the keyword."
}
}
},
"ManualCpc": {
"type": "object",
"description": "Manual CPC (cost per click) bidding strategy configuration.",
"properties": {
"enhancedCpcEnabled": {
"type": "boolean",
"description": "Whether Enhanced CPC is enabled for automatic bid adjustments."
}
}
},
"MaximizeConversions": {
"type": "object",
"description": "Maximize Conversions bidding strategy configuration.",
"properties": {
"targetCpaMicros": {
"type": "integer",
"format": "int64",
"description": "Optional target CPA in micros when using maximize conversions."
}
}
},
"Metrics": {
"type": "object",
"description": "Performance metrics returned in query results.",
"properties": {
"impressions": {
"type": "integer",
"format": "int64",
"description": "Number of times the ad was shown."
},
"clicks": {
"type": "integer",
"format": "int64",
"description": "Number of clicks on the ad."
},
"costMicros": {
"type": "integer",
"format": "int64",
"description": "Total cost in micros (1,000,000 micros = 1 unit of currency)."
},
"conversions": {
"type": "number",
"description": "Number of conversions."
},
"conversionsValue": {
"type": "number",
"description": "Total value of conversions."
},
"ctr": {
"type": "number",
"description": "Click-through rate (clicks / impressions)."
},
"averageCpc": {
"type": "integer",
"format": "int64",
"description": "Average cost per click in micros."
},
"averageCpm": {
"type": "number",
"description": "Average cost per thousand impressions in micros."
},
"costPerConversion": {
"type": "number",
"description": "Cost per conversion in micros."
},
"conversionRate": {
"type": "number",
"description": "Conversion rate (conversions / clicks)."
},
"searchImpressionShare": {
"type": "number",
"description": "Search impression share as a fraction."
},
"searchRankLostImpressionShare": {
"type": "number",
"description": "Search impression share lost due to ad rank."
},
"searchBudgetLostImpressionShare": {
"type": "number",
"description": "Search impression share lost due to budget."
},
"allConversions": {
"type": "number",
"description": "Total of all conversions including cross-device."
},
"viewThroughConversions": {
"type": "integer",
"format": "int64",
"description": "View-through conversions from display and video ads."
},
"interactionRate": {
"type": "number",
"description": "Interaction rate (interactions / impressions)."
},
"averageCost": {
"type": "integer",
"format": "int64",
"description": "Average cost per interaction in micros."
}
}
},
"NetworkSettings": {
"type": "object",
"description": "Network targeting settings for a campaign.",
"properties": {
"targetGoogleSearch": {
"type": "boolean",
"description": "Whether ads are served on the Google Search Network."
},
"targetSearchNetwork": {
"type": "boolean",
"description": "Whether ads are served on Google search partner sites."
},
"targetContentNetwork": {
"type": "boolean",
"description": "Whether ads are served on the Google Display Network."
},
"targetPartnerSearchNetwork": {
"type": "boolean",
"description": "Whether ads are served on the Google Partner Network."
}
}
},
"PolicySummary": {
"type": "object",
"description": "Policy review status and approval information.",
"properties": {
"approvalStatus": {
"type": "string",
"enum": [
"APPROVED",
"APPROVED_LIMITED",
"AREA_OF_INTEREST_ONLY",
"DISAPPROVED",
"UNKNOWN",
"UNSPECIFIED"
],
"description": "Overall approval status of the ad."
},
"reviewStatus": {
"type": "string",
"enum": [
"REVIEW_IN_PROGRESS",
"REVIEWED",
"UNDER_APPEAL",
"ELIGIBLE_MAY_SERVE",
"UNKNOWN",
"UNSPECIFIED"
],
"description": "Current review status of the ad."
},
"policyTopicEntries": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "The policy topic type."
},
"topic": {
"type": "string",
"description": "The policy topic name."
}
}
}
}
}
},
"QualityInfo": {
"type": "object",
"description": "Quality score and component metrics for a keyword.",
"properties": {
"qualityScore": {
"type": "integer",
"minimum": 1,
"maximum": 10,
"description": "Quality Score on a 1-10 scale."
},
"creativeQualityScore": {
"type": "string",
"enum": [
"ABOVE_AVERAGE",
"AVERAGE",
"BELOW_AVERAGE",
"UNKNOWN",
"UNSPECIFIED"
],
"description": "Ad relevance quality component."
},
"postClickQualityScore": {
"type": "string",
"enum": [
"ABOVE_AVERAGE",
"AVERAGE",
"BELOW_AVERAGE",
"UNKNOWN",
"UNSPECIFIED"
],
"description": "Landing page experience quality component."
},
"searchPredictedCtr": {
"type": "string",
"enum": [
"ABOVE_AVERAGE",
"AVERAGE",
"BELOW_AVERAGE",
"UNKNOWN",
"UNSPECIFIED"
],
"description": "Expected click-through rate quality component."
}
}
},
"ResponsiveDisplayAdInfo": {
"type": "object",
"description": "A responsive display ad that automatically adjusts size, appearance, and format.",
"properties": {
"headlines": {
"type": "array",
"items": {
"$ref": "#/$defs/AdTextAsset"
}
},
"longHeadline": {
"$ref": "#/$defs/AdTextAsset"
},
"descriptions": {
"type": "array",
"items": {
"$ref": "#/$defs/AdTextAsset"
}
},
"businessName": {
"type": "string",
"description": "The advertiser business name."
}
}
},
"ResponsiveSearchAdInfo": {
"type": "object",
"description": "A responsive search ad composed of multiple headlines and descriptions that Google optimizes.",
"properties": {
"headlines": {
"type": "array",
"description": "List of headline assets (minimum 3, maximum 15).",
"items": {
"$ref": "#/$defs/AdTextAsset"
}
},
"descriptions": {
"type": "array",
"description": "List of description assets (minimum 2, maximum 4).",
"items": {
"$ref": "#/$defs/AdTextAsset"
}
},
"path1": {
"type": "string",
"description": "First part of the display URL path appended to the domain."
},
"path2": {
"type": "string",
"description": "Second part of the display URL path."
}
}
},
"Segments": {
"type": "object",
"description": "Segment dimensions for slicing report data.",
"properties": {
"date": {
"type": "string",
"description": "Date in yyyy-MM-dd format."
},
"dayOfWeek": {
"type": "string",
"enum": [
"MONDAY",
"TUESDAY",
"WEDNESDAY",
"THURSDAY",
"FRIDAY",
"SATURDAY",
"SUNDAY",
"UNKNOWN",
"UNSPECIFIED"
],
"description": "Day of the week."
},
"device": {
"type": "string",
"enum": [
"MOBILE",
"TABLET",
"DESKTOP",
"CONNECTED_TV",
"OTHER",
"UNKNOWN",
"UNSPECIFIED"
],
"description": "Device type."
},
"adNetworkType": {
"type": "string",
"enum": [
"SEARCH",
"SEARCH_PARTNERS",
"CONTENT",
"YOUTUBE_SEARCH",
"YOUTUBE_WATCH",
"MIXED",
"UNKNOWN",
"UNSPECIFIED"
],
"description": "Ad network type."
},
"conversionAction": {
"type": "string",
"description": "Resource name of the conversion action."
},
"conversionActionCategory": {
"type": "string",
"description": "Category of the conversion action."
},
"quarter": {
"type": "string",
"description": "Quarter in yyyy-MM-dd format (first day of the quarter)."
},
"month": {
"type": "string",
"description": "Month in yyyy-MM-dd format (first day of the month)."
},
"week": {
"type": "string",
"description": "Week in yyyy-MM-dd format (Monday of the week)."
},
"year": {
"type": "integer",
"description": "Year as a four-digit integer."
},
"hour": {
"type": "integer",
"description": "Hour of the day (0-23)."
},
"keyword": {
"type": "object",
"properties": {
"info": {
"$ref": "#/$defs/KeywordInfo"
},
"adGroupCriterion": {
"type": "string",
"description": "Resource name of the keyword criterion."
}
}
}
}
},
"TargetCpa": {
"type": "object",
"description": "Target CPA (cost per acquisition) bidding strategy configuration.",
"properties": {
"targetCpaMicros": {
"type": "integer",
"format": "int64",
"description": "Target CPA amount in micros (1,000,000 micros = 1 unit of currency)."
}
}
},
"TargetRoas": {
"type": "object",
"description": "Target ROAS (return on ad spend) bidding strategy configuration.",
"properties": {
"targetRoas": {
"type": "number",
"description": "Target return on ad spend as a ratio, e.g. 3.5 means 350% ROAS."
}
}
}
}
}
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-search-google-ads-response"
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.