在 PHP 中使用 AdWords BatchJob

Using AdWords BatchJob in PHP

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

文档说:

The good news is that your client library of choice will have a utility that handles constructing and sending the request for you. The example below uses the BatchJobHelper utility from the Java client library.

但是 PHP 库缺少该 Helper 以及应该执行该操作的任何方法...

有人使用 BatchJob 成功地向 API 发送了请求吗?我在任何地方都找不到任何工作示例。

谢谢!

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

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

在实验分支中,他们正在重写 API。似乎仍然缺少 BatchJobHelper(写这篇文章的当天),see my issue in github requesting it

要获取 BatchJobs,您应该使用从 adword 服务实例化的 BatchJobService class。这是一个示例片段:

$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';
}