如何从 Google Ads API 获取所有帐户树?

Posted

技术标签:

【中文标题】如何从 Google Ads API 获取所有帐户树?【英文标题】:How to get the Tree of all Accounts from Google Ads API? 【发布时间】:2019-08-14 08:40:15 【问题描述】:

Google Ads 帐户有 2 种类型。直接帐户和经理帐户。

我需要列出所有广告帐户。必须排除经理帐户,但必须填充其下链接的帐户。

这是我迄今为止尝试过的:

首先我向以下 URL 发出 GET 请求:

 URL: 'https://googleads.googleapis.com/v1/customers:listAccessibleCustomers?key=XXXXXX',

我正在获取与 Gmail 帐户关联的广告帐户。我有 4 个广告帐户。

1,2,3 是普通的广告帐户。 4 是经理帐户,其中有 2 个广告帐户与之关联。

我可以使用以下查询访问以下 URL 来获取它们:

https://googleads.googleapis.com/v2/customers/'+selectedCustomerID+'/googleAds:search


SELECT customer.id,  customer.resource_name, customer.descriptive_name, customer.manager, customer.test_account FROM  customer_client where customer.id ="+ selectedCustomerID

这会返回类似这样的数据:

对于帐户 1 和 3,我收到以下错误:

The caller does not have permission

我正在获取帐户 2 的数据。

对于帐户 4,我收到了 manager:true 与它下关联的所有帐户以及经理帐户,我收到了它下的 5 个帐户。

理想情况下,我应该收到 3 个 manager:false 帐户和 1 个 manager:true 帐户和 2 个子帐户。

在这种情况下我应该怎么做?

【问题讨论】:

ListAccessibleCustomers 返回某些 Google 帐户可直接访问的客户的资源名称。您可以从响应中过滤经理帐户并列出经理帐户的所有客户帐户。客户帐户可通过developers.google.com/google-ads/api/reference/rpc/… 访问。由于客户客户也可能是经理,因此您可能需要某种递归来构建帐户树 那里的关键是什么? 【参考方案1】:

我使用 customer_client_link 服务完成了这项工作。请记住,下面的代码切掉了资源名称,只返回 CID 的层次结构

def get_hierarchy(client, customer_id):
ga_service = client.get_service('GoogleAdsService', version='v3')

query = "SELECT customer_client_link.client_customer FROM customer_client_link"

# Issues a search request using streaming.
response = ga_service.search_stream(customer_id, query)

try:
    for batch in response:
        for row in batch.results:
            # row.customer_client_link.client_customer contains additional trailing and leading text, but is
            # non-subscriptable so we need to cast it directly then slice the result.
            customer = str(row.customer_client_link.client_customer)
            # Remove the sliding to get the full resource name.
            print(customer[18:-2])

【讨论】:

以上是关于如何从 Google Ads API 获取所有帐户树?的主要内容,如果未能解决你的问题,请参考以下文章

使用服务帐户时如何修复 google ads api 未经授权的错误

从MCC获取所有Google Ads标签。也是客户帐户中其他用户创建的一次

如何在 google ads api 中设置请求标头

无法获取经理帐户的 Google Ads 指标,无法获得客户帐户的权限

如何从 google ads api 报告中检索数据(geo_performance_report)

如何通过 Google Ads API 检索给定广告系列的受众