常见问题

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

整理维度值

在请求与平台(桌面设备、高端移动设备)等相关的维度时,报告将仅显示发生活动的平台。如果指定的某天、某周或某月没有获得来自高端移动设备的访问,那么报告中将不会包含该类别的任何信息。

示例:

维度指标开始日期结束日期
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调用指定一个帐户ID。accounts.list调用会获取帐户列表,且系统应当向用户显示一个帐户选择器对话框。如果获取的帐户数量为1,则会跳过此对话框。

时区更改

AdSense发布商可以随时更改自己所在的时区,这会使报告中出现峰谷值。有关详情,请参阅本地时区报告的相关指南。

发送以下问题的反馈:

此网页
AdSense Management API
AdSense Management API