{
  "$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."
        }
      }
    }
  }
}