【问题标题】:Google Ads API: Access with service accountGoogle Ads API:使用服务帐号访问
【发布时间】:2021-01-17 04:15:02
【问题描述】:

我正在尝试使用服务帐户连接到 google ads api。对于分析,有一篇名为 Hello Analytics API: Java quickstart for service accounts 的好文章解释了如何设置它。对于 Google 广告,我在网上找不到任何文档。

所以我的两个问题是:

  1. 是否可以使用服务帐户访问 Google Ads API?
  2. 如果是这样,是否有类似于 Hello Ads API:服务帐户的 Java 快速入门页面,其中包含有关如何使用服务帐户连接到 API 的信息?

2/10 更新

我成功通过了身份验证。尝试从 API 获取数据时确实出现错误。

curl.exe --request POST "https://googleads.googleapis.com/v5/customers/******/googleAds:searchStream"
--header "Content-Type: application/json" 
--header "Authorization: Bearer ******" 
--header "developer-token: ******" 
--data "{'query': 'SELECT * FROM campaign WHERE segments.date DURING YESTERDAY'}"

[{
  "error": {
    "code": 401,
    "message": "Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.",
    "status": "UNAUTHENTICATED",
    "details": [
      {
        "@type": "type.googleapis.com/google.ads.googleads.v5.errors.GoogleAdsFailure",
        "errors": [
          {
            "errorCode": {
              "authenticationError": "NOT_ADS_USER"
            },
            "message": "User in the cookie is not a valid Ads user."
          }
        ]
      }
    ]
  }
}
]

谷歌文档说这个错误是因为该账户没有与谷歌广告账户 (https://developers.google.com/google-ads/api/docs/best-practices/common-errors#not_ads_user) 关联。该请求正在由 api 处理,我知道这一点是因为该请求在 google ads api 控制台中被计为错误。

在与谷歌广告 API 的此 API 兼容的凭据中,我的服务帐户已列出。我对这个错误有点困惑。据我所知,服务帐户与谷歌广告帐户相关联。

【问题讨论】:

  • 文档中的什么地方说 google Ads 支持服务帐户?
  • @DaImTo 我找不到有关此的任何信息。因此我的第一个问题是:是否可以使用服务帐户访问 Google Ads API?
  • 您正在查看的 Google 广告 API 文档在哪里?
  • 嗨 - 你解决过这个问题吗?我遇到了同样的问题。
  • @emvy03 不幸的是没有。对于分析(顺便说一句,它确实与coldfusion一起工作)我切换到nodeJS与谷歌API进行通信。主要原因是对这类问题的更好的社区支持。我使用 cfexecute 从 Coldfusion 中运行 nodejs 代码。我认为这对于 adwords 也应该是可能的,但我还没有尝试过。

标签: java google-api coldfusion-2016 google-ads-api


【解决方案1】:

根据Google Ads API Service Accounts 的警告:

注意:目前并非我们所有的客户端库都支持服务帐户。如果您自己实现 OAuth2 服务帐号流程,则仍然可以使用服务帐号。


关于2个问题:
  1. 是的,可以使用服务帐户访问 Ads API(仅限 Python 和 .NET)
  2. Google Ads API 建议使用服务帐户流程,但它是 not yet supported in Java

更新:

Java 现在是 supported

【讨论】:

  • 您的两个链接都导致服务不可用您有有效的链接吗? Google api java 客户端支持服务帐户,如果 Google Ads api 支持,那么它将起作用。另一方面,并​​非所有 Google api 都支持服务帐户,所以我不确定您从哪里获得报价。
  • 引用来自 Google Ads API doc > OAuth > Service Accounts,这是我提供的链接。我询问了其他人并尝试使用不同的网络访问该链接,我能够访问该链接。
  • 现在好像支持Java了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-01
  • 2018-10-06
  • 2013-08-30
  • 1970-01-01
  • 1970-01-01
  • 2017-06-26
相关资源
最近更新 更多