GoogleAdsService.Search
では、リクエストで page_size
を指定することでページングがサポートされます。これにより、クエリの結果セットが複数のレスポンスに分割され、各レスポンスに最大 page_size
個のオブジェクトが含まれます。page_size
が指定されていない場合は、自動的に最大 10,000 行に設定されます。
たとえば、次のクエリの場合:
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 個のキーワードが含まれていて、page_size
が 1,000
に設定されている場合、結果セットには最初のレスポンスで 1,000 個の GoogleAdsRow
オブジェクトと next_page_token
が含まれます。
次の 1,000 行を取得するには、同じページサイズでリクエストを再度送信しますが、リクエストの page_token
をレスポンスの next_page_token
に更新します。後続のリクエストの page_size
の値は毎回異なる可能性があります。next_page_token
は、行の最後のバッチを含むレスポンスには挿入されません。
レスポンスの行を繰り返すだけで、自動的にページングが処理されます。現在のページのすべての行が返されると、データセット全体が取得されるまで、クライアント ライブラリが行の新しいページを自動的に取得します。gRPC の代わりに REST を使用する場合は、新しいページごとにリクエストを明示的に行う必要があります。
Google Ads API はデータセット全体を内部的にキャッシュに保存するため、後続のリクエストは最初のリクエストよりも高速になります。ユースケースに応じて、page_size
を 1 ~ 10,000 の任意の値に設定できます。一般に、全体的なパフォーマンスを高速化するには、より大きな page_size
を使用して往復回数を減らします。
キャッシュされたデータを利用するには、以降のリクエストでもクエリはまったく同じでなければなりません。特にベーシック アクセスでは、リクエストは割り当て量に加算されません。クエリが異なり、同じページトークンとともに送信された場合は、エラーが返されます。