查詢報表資料

reportData.query 方法提供同步方式來擷取報表資料。與產生檔案型報表 (CSV 或 Excel) 的標準 Reports 服務不同,這個方法會直接在回應中傳回結構化 JSON 資料。因此非常適合用於即時擷取和探索資料。Report

總覽

請詳閱本指南,熟悉如何使用這個端點查詢 Campaign Manager 360 報表資料。

準備要求

建構 ReportDataQueryRequest,指定維度、指標、日期範圍、篩選條件和排序條件。

REST

{
  "body": {
    "dateRange": "LAST_7_DAYS",
    "dimensionNames": [
      "advertiser",
      "campaign"
    ],
    "metricNames": [
      "impressions",
      "clicks"
    ],
    "sortBys": [
      {
        "name": "clicks",
        "sortOrder": "DESCENDING"
      }
    ],
    "maxResults": 100
  }
}
dateRange
DateRange 物件,用於指定查詢的時間範圍。這可以是自訂日期範圍或相對日期範圍。
dimensionNames
要分組的標準維度名稱清單。
metricNames
必要。要納入的標準指標名稱清單。
dimensionFilters
用於篩選報表資料的 DimensionValue 物件清單。使用這個參數,將查詢結果限制為特定維度的值。
sortBys
維度或指標的排序設定。每項設定都包含欄位名稱和排序順序。
maxResults
每頁傳回的列數上限 (預設值:100,上限:1000)。

分頁

maxResults 欄位會控管單一回應中傳回的結果數量。舉例來說,如果將 maxResults 設為 10,API 最多會傳回 10 個結果。如果符合要求結果少於 10 個,API 可能會傳回少於 10 個結果。

如有其他結果,回應會包含 nextPageToken。如要擷取下一頁結果,請再次傳送相同要求,並將 pageToken 欄位設為這個符記。其他所有要求參數則維持不變。

傳送要求

將 HTTP POST 要求傳送至 reportdata/query 端點:

POST https://dfareporting.googleapis.com/dfareporting/v5/userprofiles/{profileId}/reportdata/query

請確認要求已透過標準 OAuth 2.0 憑證和必要範圍完成驗證。詳情請參閱「授權要求」。

成功回應

如果查詢成功,系統會傳回 HTTP 200 OK 回應,其中包含含有 columnHeadersrowstotalRow 的 JSON 酬載。

{
  "columnHeaders": [
    { "name": "advertiser", "type": "DIMENSION" },
    { "name": "campaign", "type": "DIMENSION" },
    { "name": "impressions", "type": "METRIC" },
    { "name": "clicks", "type": "METRIC" }
  ],
  "rows": [
    {
      "values": [ "Test Advertiser", "Summer Campaign", "148672", "420" ]
    },
    {
      "values": [ "Test Advertiser", "Fall Campaign", "2159", "2" ]
    }
  ],
  "totalRow": {
    "values": [ "", "", "150831", "422" ]
  },
  "nextPageToken": "1234567890"
}
columnHeaders
傳回的欄位名稱和類型 (DIMENSIONMETRIC)。
rows
:包含查詢結果的 ReportDataRow 物件清單。每列中的字串值會依位置與 columnHeaders 對齊。
totalRow
單一匯總資料列,代表所有相符指標的總和。無法加總的維度欄位和指標 (例如觸及指標,如 uniqueReachTotalReach) 在這個資料列中會顯示空白 ("")。
nextPageToken
如果還有其他資料列,後續要求會使用這個符記擷取下一頁。

延遲和逾時

由於這是同步端點,查詢會立即執行,資料也會直接在回應中傳回 (最多為 maxResults 分頁限制)。查詢的執行時間上限為 60 秒。如果查詢超出這個限制,API 會終止作業並傳回 HTTP 503 Service Unavailable 錯誤。

如果遇到這個錯誤,請嘗試縮小日期範圍、縮小篩選器範圍 (例如依特定廣告主或廣告活動篩選),或減少要求的維度和指標數量。或者,您也可以使用 reports.run 執行 Report,以非同步方式產生可下載的報表檔案。

查詢限制和條件

reportdata.query 端點會強制執行多項限制,確保回覆內容可靠。如果要求違反這些限制,系統會拒絕要求並傳回 HTTP 400 Bad Request 回應。

日期範圍限制

  • 如果是自訂日期範圍,startDate必須在所要求報表資料類型的資料可用期間內。詳情請參閱「資料可用性」一節。

指標和維度限制

  • metricNames 中至少須提供一項指標。
  • metricNamesdimensionNames 清單中的指標和維度不得重複。
  • 標示為「僅供下載」的指標和維度無法用於這些查詢。

配額限制

向這個端點發出的要求會耗用下列配額:

  • 使用者速率限制:每位使用者每分鐘 120 個要求 (2 QPS)
  • 每項專案每日上限:每項專案每天 10,000 個要求

如果要求超出這些限制,就會失敗並出現 HTTP 429 Too Many Requests 錯誤。如果您逐頁瀏覽結果,則系統會將每項新頁面的要求 (使用 pageToken 參數) 視為個別查詢,並計入配額。