結果のページング

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_size1,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 を使用して往復回数を減らします。

キャッシュされたデータを利用するには、以降のリクエストでもクエリはまったく同じでなければなりません。特にベーシック アクセスでは、リクエストは割り当て量に加算されません。クエリが異なり、同じページトークンとともに送信された場合は、エラーが返されます。