You can page through results retrieved with GoogleAdsService.Search
instead of downloading the entire result set at once. For an overview of
reporting with Google Ads API, check out the
Reporting guide.
Results are returned in pages of up to 10,000 rows. If page_size in
the request is not set, it defaults to 10,000. If page_size is set to a
value greater than 10,000, it still uses 10,000.
As an example, consider the following query:
SELECT
ad_group.id,
ad_group_criterion.type,
ad_group_criterion.criterion_id,
ad_group_criterion.keyword.text,
ad_group_criterion.keyword.match_type
FROM ad_group_criterion
WHERE ad_group_criterion.type = KEYWORD
If your account contains 50,000 keywords, the result set will contain 10,000
GoogleAdsRow objects in the first response, along with a
next_page_token.
To retrieve the next 10,000 rows, send the request again, but update the
request's page_token to the response's next_page_token. Note that
next_page_token is not populated in the response that contains the
last batch of rows.
Our client libraries handle paging automatically. You only have to iterate through the rows of the response. When all rows in the current page have been returned, the client library fetches a new page of rows automatically on your behalf until the entire dataset is retrieved. If using REST instead of gRPC, you must explicitly make a request for each new page.
The Google Ads API internally caches the entire dataset, so subsequent requests are faster than the initial one.
Your query must remain exactly the same in subsequent requests to take advantage of the cached data. The requests won't contribute towards your quota, particularly for Explorer Access level and Basic Access level. If the query differs and is sent along with the same page token, an error is returned.