Stay organized with collectionsSave and categorize content based on your preferences.
You can useGoogleAdsFieldServiceto dynamically request the catalog for resources, resource's fields,
segmentation keys and metrics available in theGoogleAdsServiceSearchandSearchStreammethods. The catalog provides metadata that can be used by
Google Ads API clients for validation and construction of Google Ads Query Language statements.
Sample HTTP request and response
The request consists of anHTTP GETto the Google Ads API server at the following
URL:
Resources that can be implicitly joined to the resource in theFROMclause.
metrics
Metrics that are available to be selected with the resource in theFROMclause. Only populated for fields where thecategoryisRESOURCE.
segments
Segment keys that can be selected with the resource in theFROMclause.
These segment the metrics specified in the query. Only populated for fields
where thecategoryisRESOURCE.
selectableWith
Fields that can be selected alongside a given field, when not in theFROMclause. This attribute is only relevant when identifying resources or segments
that are able to be selected in a query where they are not included by the
resource in theFROMclause. As an example, if we are selectingad_group.idandsegments.datefromad_group, and we want to include attributes fromcampaign, we would need to check thatsegments.dateis in theselectableWithattribute for campaign, since it's being selected alongside
the existingsegments.datefield.
Metadata details
You can request the catalog using theGoogleAdsFieldServiceat these levels:
Resource
For example,googleAdsFields/campaign.
Resource's field
For example,googleAdsFields/campaign.name.
Segmentation field
For example,googleAdsFields/segments.ad_network_type.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-03 UTC."],[[["\u003cp\u003eUse \u003ccode\u003eGoogleAdsFieldService\u003c/code\u003e to retrieve metadata for resources, fields, segments, and metrics available in Google Ads API Search methods.\u003c/p\u003e\n"],["\u003cp\u003eThe catalog provides data for validation and Google Ads Query Language statement construction, useful for Google Ads API clients.\u003c/p\u003e\n"],["\u003cp\u003eRequest metadata details using resource, resource's field, segmentation field, or metric levels through \u003ccode\u003eGoogleAdsFieldService\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eImportant arrays include: \u003ccode\u003eattributeResources\u003c/code\u003e for implicit joins, \u003ccode\u003emetrics\u003c/code\u003e and \u003ccode\u003esegments\u003c/code\u003e available for selection, and \u003ccode\u003eselectableWith\u003c/code\u003e for fields selectable alongside others.\u003c/p\u003e\n"],["\u003cp\u003eWhile the example uses HTTP/JSON, using client libraries based on gRPC is recommended for submitting requests.\u003c/p\u003e\n"]]],[],null,["# Resource Metadata\n\nYou can use [`GoogleAdsFieldService`](/google-ads/api/reference/rpc/v21/GoogleAdsFieldService)\nto dynamically request the catalog for resources, resource's fields,\nsegmentation keys and metrics available in the\n[`GoogleAdsService`](/google-ads/api/reference/rpc/v21/GoogleAdsService) *Search* and\n*SearchStream* methods. The catalog provides metadata that can be used by\nGoogle Ads API clients for validation and construction of Google Ads Query Language statements.\n\nSample HTTP request and response\n--------------------------------\n\n| **Note:** The example shows the underlying HTTP/JSON request as a guide, but you are strongly encouraged to use one of the [client libraries](/google-ads/api/docs/client-libs) based on [gRPC](//grpc.io) to submit your requests.\n\nThe request consists of an `HTTP GET` to the Google Ads API server at the following\nURL: \n\n https://googleads.googleapis.com/v21/googleAdsFields/{resource_or_field}\n\nThe following example shows a request followed by the response returned from\n`GoogleAdsFieldService` for the **ad_group** resource:\n\n### Request\n\n https://googleads.googleapis.com/v21/googleAdsFields/ad_group\n\n### Response\n\n {\n \"resourceName\": \"googleAdsFields/ad_group\",\n \"name\": \"ad_group\",\n \"category\": \"RESOURCE\",\n \"selectable\": false,\n \"filterable\": false,\n \"sortable\": false,\n \"selectableWith\": [\n \"campaign\",\n \"customer\",\n \"metrics.average_cpc\",\n \"segments.device\",\n ...\n ],\n \"attributeResources\": [\n \"customer\",\n \"campaign\"\n ],\n\n \"metrics\": [\n \"metrics.conversions\",\n \"metrics.search_budget_lost_impression_share\",\n \"metrics.average_cost\",\n \"metrics.clicks\",\n ...\n ],\n \"segments\": [\n \"segments.date\",\n \"segments.ad_network_type\",\n \"segments.device\",\n ...\n ]\n }\n\nFor this example, the important arrays are:\n\n`attributeResources`\n: Resources that can be implicitly joined to the resource in the `FROM`\n clause.\n\n`metrics`\n: Metrics that are available to be selected with the resource in the `FROM`\n clause. Only populated for fields where the `category` is `RESOURCE`.\n\n`segments`\n: Segment keys that can be selected with the resource in the `FROM` clause.\n These segment the metrics specified in the query. Only populated for fields\n where the `category` is `RESOURCE`.\n\n`selectableWith`\n\n: Fields that can be selected alongside a given field, when not in the `FROM`\n clause. This attribute is only relevant when identifying resources or segments\n that are able to be selected in a query where they are not included by the\n resource in the `FROM` clause. As an example, if we are selecting `ad_group.id`\n and `segments.date` from `ad_group`, and we want to include attributes from\n `campaign`, we would need to check that `segments.date` is in the\n `selectableWith` attribute for campaign, since it's being selected alongside\n the existing `segments.date` field.\n\nMetadata details\n----------------\n\nYou can request the catalog using the `GoogleAdsFieldService` at these levels:\n\nResource\n: For example, `googleAdsFields/campaign`.\n\nResource's field\n: For example, `googleAdsFields/campaign.name`.\n\nSegmentation field\n: For example, `googleAdsFields/segments.ad_network_type`.\n\nMetric\n: For example, `googleAdsFields/metrics.clicks`."]]