報表串流

使用 Google Ads API 擷取實體和報表資料的方法有三種。

本指南主要著重於串流 GoogleAdsService 的資料。以下是三種資料擷取方法的高階差異:

GoogleAdsService.SearchStream GoogleAdsService.Search GET 要求
適用於正式版程式碼 (僅限偵錯)
服務 GoogleAdsService GoogleAdsService 資源專屬服務 (例如 CampaignService)
情境 擷取物件和報表 擷取物件和報表 正在擷取物件
回應 GoogleAdsRow 物件的串流 GoogleAdsRow 物件的頁面 一個物件 (例如 Campaign)
回應的欄位 僅限查詢中指定的 僅限查詢中指定的 已填入所有欄位
每日上限 存取層級為依據的每日上限 存取層級為依據的每日上限 每日 1,000 個要求

雖然 Search 可以傳送多個分頁要求來下載整份報表,但 SearchStream 只會傳送單一要求,並啟動與 Google Ads API 的永久連線,無論報表大小為何。

針對 SearchStream,資料封包會在資料緩衝區中快取完整結果,然後立即開始下載。您的程式碼不必等待整個串流完成,就能開始讀取緩衝的資料。

省去要求每個 Search 回應個別頁面的往返網路時間 (視應用程式而定),SearchStream 可以改善分頁效能,特別是在大型報表上。

範例

例如,請取得包含 100,000 列的報表。下表列出了這兩種方法之間的會計差異。

SearchStream 搜尋
頁面大小 不適用 每頁 10,000 列
API 要求數量 1 項要求 10 個要求
API 回應數量 1 部連續串流影片 10 則回應

效能因素

一般來說,我們建議採用 SearchStream 而非 Search,原因如下。

  • 單一頁面報表 (少於 10,000 列):這兩種方法沒有顯著的效能差異。

  • 針對多頁報表:SearchStream 通常速度會更快,因為避免多次往返讀取,且從磁碟快取讀取/寫入的因素較低。

頻率限制

這兩種方法的每日限制都必須符合開發人員權杖的標準限制和存取層級。無論結果經過分頁或串流處理,單一查詢或報表都會計為一次作業。