常見錯誤

AdSense API 可透過呼叫產生全新或已儲存的報表。報表非常靈活,可以只包含簡單的分析 (如每日收益),或包含非常複雜的點閱率表 (資料按各國家/地區的每個自訂管道劃分)。下面介紹幾個必須正確處理才能與 API 確實整合的案例。

報表結構

JSON 中的報表看起來會像這樣:

{
  "kind": "adsense#report",
  "totalMatchedRows": long,
  "headers": [
    {
      "name": string,
      "type": string,
      "currency": string
    }
  ],
  "rows": [
    [
      string
    ]
  ],
  "totals": [
    string
  ],
  "averages": [
    string
  ],
  "warnings": [
    string
  ],
  "startDate": string,
  "endDate": string
}

如需這些屬性的說明,請參閱 reports.generate 方法的說明文件。

使用時間維度:DATEWEEKMONTH

報表可以空白或包含間隔

如果請求指定期間內沒有任何活動,就不會產生廣告請求,報表服務也不會顯示這些期間的資料列。如果您要繪製圖表,就必須注意這一點。

詳情請參閱填入日期指南。

在同一份報表中請求 MONTHWEEK 維度

這份報表可能會產生負面或異常的結果。如果有一週橫跨兩個月份,該週就會顯示兩列,每個月一列。

範例:

維度指標開始日期結束日期
WEEK
MONTH
CLICKS2014-04-282014-05-03

傳回的結果:

MONTHWEEK*CLICKS
2014-042014-04-2750
2014-052014-04-2743
*一週的第一天

解決方案

移除報表中的 MONTH

WEEKCLICKS
2014-04-2793

核對維度值

請求相關維度 (例如 platforms (電腦、高階行動裝置...)) 時,系統只會顯示含有活動的平台。如果指定日期、週次或月份不含高階行動裝置帶來的造訪,就不會有該類別的資訊。

範例:

維度指標開始日期結束日期
PLATFORM_TYPE_NAME
MONTH
AD_REQUESTS2014-02-012014-03-31

傳回的結果:

MONTHPLATFORM_TYPE_NAMEAD_REQUESTS
2014-03桌機100
2014-03高階行動裝置5
2014-04桌機75

解決方案

處理報表結果時,將所有未顯示在結果中的維度值假設為零。

MONTHPLATFORM_TYPE_NAMEAD_REQUESTS
2014-03桌機100
2014-03高階行動裝置5
2014-04桌機75
2014-04高階行動裝置0

結合多份連續報表

如果報表太大,有時會無法一次全部產生,必須分開處理。如果您的應用程式出現這種情況,有幾點要注意:

  1. 如果您使用 WEEKMONTH 維度,且想要以某週或某月的中間點來劃分報表,各報表將會包含資料不同的重複項目。
  2. 所有報表都必須使用相同的指標和維度,否則可能無法以不同的維度來合併資料。

特殊帳戶

有些使用者的 AdSense 帳戶中可能含有您未預期或不瞭解的屬性。請務必考量這些情況:

  1. 擁有數千個網域或網站的發佈商
  2. 擁有數千個廣告單元或自訂管道的發佈商
  3. 想要針對多個廣告用戶端 (AdSense 搜尋廣告、AdSense 影片廣告等產品) 製作報表的發佈商。

多個帳戶

使用者可以存取多個 AdSense 帳戶。因此,每次呼叫 API 時都必須指定帳戶編號。呼叫 accounts.list 會擷取帳戶清單,而使用者應該會看到帳戶選擇器對話方塊。如果擷取的帳號數量為一,這個程序便可略過。

更改時區

AdSense 發佈商可隨時更改時區,這可能會導致報表數據產生起伏。

傳送您對下列選項的寶貴意見...

這個網頁
AdSense Host API
AdSense Host API