0

在对 Adsense 管理 API 进行了几次查询以获取有关每个应用程序的每日信息后,我们收到了 servingLmitExceeded。我们正在连接 5 个帐户。

我们要做的是首先获取每个帐户运行最近 30 天报告的应用程序列表:

$start_date = 'today-30d';
$end_date = 'today-1d';

$options = array(
    'metric' => array('EARNINGS'),
    'dimension' => array('APP_ID','APP_NAME'),
);

然后,对于每个应用程序(如所有帐户中共有 36 个),我们运行以下报告:

$start_date = $today->format("Y-m-d");
$end_date = $today->format("Y-m-d");

$options = array(
    'metric' => array('EARNINGS','AD_REQUESTS','AD_REQUESTS_COVERAGE','AD_REQUESTS_CTR','AD_REQUESTS_RPM','CLICKS','COST_PER_CLICK'),
    'dimension' => array('APP_ID','COUNTRY_CODE'),
    'filter' => array('APP_ID=@'.$app),
    'sort' => '+APP_ID'
);

在几个应用程序之后,我们收到以下错误:

{
    "error": {
        "errors": [
            { 
                "domain": "usageLimits",
                "reason": "servingLimitExceeded",
                "message": "Serving Limit Exceeded"
            }
        ],
        "code": 403,
        "message": "Serving Limit Exceeded"
    }
}

我们认为我们没有达到此处显示的任何限制:https ://developers.google.com/adsense/management/appendix/limits

我们每天总共执行的请求少于 50 个,现在我们的限制是每个用户每 100 秒 100 个查询:

在此处输入图像描述

如果我们检查 Google APIs 控制台,错误似乎是由 adsense.accounts.list 引发的

在此处输入图像描述

有谁知道如何避免这个问题?

4

1 回答 1

1

API 调用的简单重试策略对我们有用。

如果我们以 30 秒的等待时间重试 2-3 次,通常会成功。

于 2017-01-17T19:49:53.140 回答