这是我第一次使用 Adwords API,我正在尝试设置一个调用,为一个帐户下载点击效果帐户。我得到了
"CUSTOMER_SERVING_TYPE_REPORT_MISMATCH">
当我拨打电话时出错,这似乎是因为该帐户是经理帐户,根据此处的文档,该帐户无法生成报告。到目前为止,我找到的所有帮助都说使用客户服务获取可用帐户的列表,然后使用其中一个非经理帐户发出报告请求。但是,当我尝试此操作时,我没有发现其他帐户 - 请参阅下面的代码:
Dim adw As New AdWordsUser
Dim service As CustomerService = CType(adw.GetService(AdWordsService.v201806.CustomerService), CustomerService)
Dim responses As New List(Of ReportResponse)
Dim customers As Customer() = service.getCustomers()
For Each c As Customer In customers
Dim config As New AdWordsAppConfig() With {.ClientCustomerId = c.customerId.ToString}
Dim user As New AdWordsUser(config)
Dim report As New ReportUtilities(user, definition)
responses.Add(report.GetResponse())
Next
当我中断 For 循环时,"客户"只有一个成员 - 经理帐户。我觉得我对帐号的运作方式有些误解 - 经理帐号无法生成报告似乎很奇怪。
我在这里错过了一些基本的东西吗?
编辑:我正在使用Adwords v201806
有点解决了,希望我的经验对有同样问题的人有用:
最终,我通过登录Adwords网站并在那里获取相关帐户的clientID,对其进行硬编码,并使用使用该clientID实例化的User对象进行API调用来解决此问题。
Vivek 的回答帮助我理解了为什么经理帐号无法拨打报告电话,但我仍然不知道为什么我的原始代码只找到了经理帐号,而没有找到我在 Adwords 网站上看到的任何广告客户帐号
您无法从经理帐号下载报告。
原因
首先,您需要知道什么是经理帐号?
- 它用于管理广告商帐户,以便于访问,合并账单,链接帐户的仪表板。
- 它不用于制作任何广告,而仅用于管理AdWords帐户。
由于没有与经理帐号关联的广告,因此您无法查询相同的报表,而是查询广告客户帐号的报表,并且
因此,您会收到CUSTOMER_SERVING_TYPE_REPORT_MISMATCH
错误,指示正在使用经理帐号提取报告。
溶液
- 使用
Customer
中的canManageClients
标志来验证帐号是否为经理帐号。 API 文档链接 - 链接广告客户帐户和查询报告相同。
(请参阅此处的官方文档(