在PHP中使用AdWords BatchJob

时间:2015-11-06 09:07:43

标签: php google-api google-adwords

我正在尝试启动并运行新的BatchJob(https://developers.google.com/adwords/api/docs/guides/batch-jobs),但缺少一部分。

文档说:

  

好消息是您选择的客户端库将具有   处理构造和发送请求的实用程序。该   下面的示例使用Java客户端中的 BatchJobHelper 实用程序   库。

然而,PHP库缺少Helper和任何应该这样做的方法......

任何人都有幸使用BatchJob向API发送请求?我在任何地方都找不到任何有用的例子。

谢谢!

2 个答案:

答案 0 :(得分:1)

如果您使用composer加载新的v201603版本的adwords,您还需要调整您的composer文件以映射utils,因为它们由于某种原因在其他版本中重复。不确定为什么他们这样做。您应该能够通过以下路径找到所需的课程。希望这可以帮助。

{
"require": {
    "googleads/googleads-php-lib": "8.3.0"
 },
 "autoload": {
     "classmap": [
         "vendor/googleads/googleads-php-lib/src/Google/Api/Ads/AdWords/Util/v201601"
            ]
  }
}

答案 1 :(得分:1)

在分支实验中,他们正在重写API。似乎BatchJobHelper仍然缺失(当前写入此日期),see my issue in github requesting it

对于获取BatchJobs,您应该使用BatchJobService类,该类是从adword服务实例化的。这是一个示例代码段:

$batch_job_service = $adWordsServices->get($session, 'BatchJobService', 'v201605', 'cm');

try
{
    /** @var BatchJobReturnValue $result */
    $result = $batch_job_service->mutate($operations);
}
catch(ApiException $e)
{
    echo $e->getMessage() . PHP_EOL;
}

if(!empty($result) && $result instanceof Google\AdsApi\AdWords\v201605\cm\BatchJobReturnValue)
{
    $batch_job = reset($result->getValue());
}
else 
{
    echo 'Result is empty or no valid';
}