您可以使用 GoogleAdsService.Search 逐頁瀏覽擷取的結果,而不必一次下載整個結果集。如要瞭解如何使用 Google Ads API 產生報表,請參閱「報表總覽」。
Search 會傳回固定頁面,最多 10,000 列。在 SearchGoogleAdsRequest 中設定 page_size 的做法已淘汰,會傳回 RequestError.PAGE_SIZE_NOT_SUPPORTED 錯誤。
查詢和分頁範例
請參考下列查詢:
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
如果帳戶包含 50,000 個關鍵字,結果集會在第一個回應中包含 10,000 個 GoogleAdsRow 物件,以及 next_page_token。
如要擷取接下來的 10,000 列,請再次傳送要求,但將要求的 page_token 更新為回應的 next_page_token:
{
"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",
"pageToken": "CN3q9...example_token..."
}
請注意,在包含最後一批資料列的回應中,next_page_token 不會填入資料。
我們的用戶端程式庫會自動處理分頁。您只需要疊代回應的資料列。當目前頁面中的所有資料列都傳回後,用戶端程式庫會自動代表您擷取新的資料列頁面,直到擷取整個資料集為止。如果使用 REST 而非 gRPC,則必須明確要求每個新頁面。
快取和網頁權杖到期
Google Ads API 會在內部快取資料集,因此後續的網頁要求會比初始要求更快。請注意,next_page_token 值的存留時間 (TTL) 有限,如果未在短時間內 (約兩小時) 使用,就會過期。如果頁面權杖過期,API 會傳回錯誤,您必須重新查詢。
後續要求中的查詢必須保持不變,才能利用快取資料。後續的分頁要求不會計入探索存取權和基本存取權的每日作業配額。如果查詢不同,但與同一個頁面權杖一起傳送,系統就會傳回錯誤。