The Google Ads Query Language provides the flexibility to query the Google Ads API for:
Any resource or stat in
GoogleAdsService.Search. You would use Google Ads Query Language for these purposes:- To query multiple resources at a time because each of the services returns
only one resource at a time using the
Getmethod. - To query stats such as impressions and clicks. For a full list of metrics,
consult
Metrics.
- To query multiple resources at a time because each of the services returns
only one resource at a time using the
Query for metadata about the fields and resources available in
GoogleAdsFieldService. You would use this query language for the purpose of getting a catalog of what fields are available to query in the Google Ads API along with specifics about compatibility and types.
The result of GoogleAdsService queries is a list of
GoogleAdsRow instances.
Each GoogleAdsRow contains the resource. If metrics were requested,
then it would also includes metrics.
The result of GoogleAdsFieldService queries is a list of
GoogleAdsField instances.
Each GoogleAdsField contains details about the field that was requested.
Example
When querying for stats, you can also have the details of the associated
resources returned at the same time. You can then immediately take those
resources, modify them, and then send them back to the Mutate methods of
their services. This means that the following example workflow is possible:
- Query all the campaigns that are currently
PAUSEDand have impressions greater than 1000. - Process each
GoogleAdsRowreturned in the list, and retrieve the campaigns that are in eachGoogleAdsRow. - Change the status of each campaign from
PAUSEDtoENABLED. - Call
CampaignService.MutateCampaignswith the modified campaigns to update them.
Resources query
There are times when you may not care about the stats. Here's a query for campaigns showing how to get the campaign ID, name, and status, while ordering by campaign ID.
SELECT campaign.id, campaign.name, campaign.status
FROM campaign
ORDER BY campaign.id
To find out what other fields are available for campaign queries, consult
Campaign.
Each GoogleAdsRow has a campaign populated with the selected fields.
Stats query
When querying for stats, you can query for the resource and stats at the same
time. Here's a query for campaigns showing how to get the campaign ID, name,
status, and impressions. The query filters for only the campaigns that have
a status of PAUSED and have had greater than 1000 impressions while ordering
by campaign ID.
SELECT campaign.id, campaign.name, campaign.status, metrics.impressions
FROM campaign
WHERE campaign.status = 'PAUSED' AND metrics.impressions > 1000
ORDER BY campaign.id
To find out what other metrics are available, consult
Metrics.
Each GoogleAdsRow has a metrics populated with the selected metrics.
Fields metadata query
Queries can be used with the GoogleAdsFieldService to view field metadata.
Here's a query for getting the field metadata for campaign.id. You can
replace campaign.id in this query with either a resource (such as customer,
campaign) or a field (such as metrics.impressions or ad_group.id). Note
that there's no FROM clause in this query.
SELECT name, category, selectable, filterable, sortable, selectable_with,
data_type, is_repeated
WHERE name = campaign.id
To find out what other fields are available to query for field metadata, consult
GoogleAdsField.
Code examples
The client libraries have examples of using the
Google Ads Query Language in GoogleAdsService. The basic operations folder has
examples such as GetCampaigns, GetKeywords, and GetArtifactMetadata.
The reporting folder has a GetKeywordStats example.