Generated by API Evangelist
Written by API Evangelist tooling for Google Ads's API. It is a proposal applied on top of the contract, not a document Google Ads publishes.
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for Google Ads Reporting API
version: 1.0.0
extends: openapi/google-ads-reporting-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-09-26'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 2
- target: $.paths['/v18/customers/{customerId}/googleAds:search'].post
update:
x-apievangelist-phrasing:
intent: Query reports with GAQL, page by page
effect: read
questions:
- How do I pull clicks and cost by campaign using a Google Ads Query Language query?
- Can I get the total number of matching rows along with a page of results?
- What's the page size limit when paging through report rows?
instructions:
- text: Run GAQL query {query} for account {customer}.
slots:
query: requestBody.query
customer: path.customerId
- text: Search account {customer} with {query} and return the total results count.
slots:
customer: path.customerId
query: requestBody.query
- text: Fetch the next page of {query} for account {customer} using token {token}.
slots:
query: requestBody.query
customer: path.customerId
token: requestBody.pageToken
method: generated
generated: '2026-09-26'
- target: $.paths['/v18/customers/{customerId}/googleAds:searchStream'].post
update:
x-apievangelist-phrasing:
intent: Stream a large GAQL report
effect: read
questions:
- What's the most efficient way to export a very large report?
- Can a streamed report include a totals row?
instructions:
- text: Stream all results of query {query} for account {customer}.
slots:
query: requestBody.query
customer: path.customerId
- text: Stream {query} from account {customer} with summary rows set to {summary}.
slots:
query: requestBody.query
customer: path.customerId
summary: requestBody.summaryRowSetting
method: generated
generated: '2026-09-26'
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.