GoogleAdsService を使用したストリーミングを報告する

Google Ads API のエンティティとレポートデータを取得するには、次のいずれかの方法を使用します。

2 つの方法の概要は次のとおりです。

GoogleAdsService.SearchStream GoogleAdsService.Search
本番環境コードに適している はい はい
サービス GoogleAdsService GoogleAdsService
シナリオ オブジェクトとレポートの取得 オブジェクトとレポートの取得
レスポンス GoogleAdsRow オブジェクトのストリーム GoogleAdsRow オブジェクトのページ
レスポンスのフィールド クエリで指定されたもののみ クエリで指定されたもののみ
1 日の使用上限 アクセスレベルに基づく 1 日あたりの上限 アクセスレベルに基づく 1 日あたりの上限

Search は複数のページネーション リクエストを送信してレポート全体をダウンロードできますが、SearchStream は 1 つのリクエストを送信し、レポートのサイズに関係なく Google 広告 API との永続接続を開始します。

SearchStream の場合、データパケットはすぐにダウンロードを開始し、結果全体がデータバッファにキャッシュに保存されます。ストリーム全体が完了するまで待たずに、バッファに格納されたデータを読み取ることができます。

Search レスポンスの各ページをリクエストするために必要なラウンドトリップ ネットワーク時間を排除することで、アプリによっては、特に大規模なレポートで、SearchStream はページングよりもパフォーマンスを向上させることができます。

この例では、100,000 行で構成されるレポートについて説明します。次の表に、2 つの方法の違いを示します。

SearchStream 検索
ページサイズ 該当なし 1 ページあたり 10,000 行
API リクエストの数 1 件のリクエスト 10 件のリクエスト
API レスポンス数 1 つの連続ストリーム 10 件の回答

パフォーマンスの要因

ほとんどのユースケースでは、次の理由から Search ではなく SearchStream を使用することをおすすめします。

  • 1 ページのレポート(10,000 行未満)の場合: 2 つの方法でパフォーマンスに大きな違いはありません。

  • 複数ページのレポートの場合: SearchStream は通常、複数の往復が回避され、ディスク キャッシュからの読み取りや書き込みがあまり影響しないため、高速です。

レート制限

どちらの方法でも、1 日あたりの上限は、開発者トークンの標準の上限とアクセス権に準拠しています。1 つのクエリまたはレポートは、結果がページングされるかストリーミングされるかにかかわらず、1 つのオペレーションとしてカウントされます。