Google AdWords API PHP ReportDefinitionService 选择器
Posted
技术标签:
【中文标题】Google AdWords API PHP ReportDefinitionService 选择器【英文标题】:Google AdWords API PHP ReportDefinitionService Selector 【发布时间】:2016-03-30 09:55:29 【问题描述】:我遇到了 ReportDefinitionService 的 Selector 类的问题。该类不存在。这是来自官方google示例的代码:
// Load the service, so that the required classes are available.
$user->LoadService('ReportDefinitionService', 'v201603');
// Optional: Set clientCustomerId to get reports of your child accounts
// $user->SetClientCustomerId('INSERT_CLIENT_CUSTOMER_ID_HERE');
// Create selector.
$selector = new Selector(); //The error happens here. Class 'Selector' isn't found
$selector->fields = array('CampaignId', 'AdGroupId', 'Id', 'Criteria','CriteriaType', 'Impressions', 'Clicks', 'Cost');
/vendor/googleads/googleads-php-lib/src/Google/Api/Ads/AdWords/v201603/ReportDefinitionService.php 文件中没有选择器定义,而在许多其他服务中定义了此类。
我正在尝试让它在 Laravel 5.1 上运行
如果我将目录 vendor/googleads/googleads-php-lib/src/Google/Api/Ads/AdWords/Util/v201603 添加到我的类图,错误就会消失:
"autoload":
"classmap": [
...
"vendor/googleads/googleads-php-lib/src/Google/Api/Ads/AdWords/Util/v201603"
],
...
但我不确定我是否可以这样做。知道出了什么问题吗?
【问题讨论】:
【参考方案1】:正如this section 中所述,您所做的是正确且符合预期的。
需要手动类映射,因为在src/Google/Api/Ads/AdWords/Util
下的每个版本目录中都声明了一些具有相同名称的类。
在DownloadCriteriaReport 示例中,我认为您已经在此处引入了其中的一些部分,ReportUtils.php 文件包含在第 29 行。 在 ReportUtils 中,当包含 ReportClasses 文件时声明类 Selector。
希望对您有所帮助。
塔内特, AdWords API 小组
【讨论】:
以上是关于Google AdWords API PHP ReportDefinitionService 选择器的主要内容,如果未能解决你的问题,请参考以下文章
如何在 php 中的 Google Adwords API 中设置多个 ClientCustomerId?
Google Adwords API 报告实用程序 - PHP - XML 无效?
Adparams 如何在 Google Adwords PHP api 中工作
如何获取 Google Adwords api 的 developerToken?
未捕获的异常 InvalidArgumentException,消息配置文件未按指定找到:adsapi_php.ini - Google Adwords API