如何使用给定 ClientID 的 MMC 和 python 广告词库获取活动详细信息
Posted
技术标签:
【中文标题】如何使用给定 ClientID 的 MMC 和 python 广告词库获取活动详细信息【英文标题】:How to get campaign details using MMC and python ad-words library given ClientID 【发布时间】:2012-04-14 08:18:10 【问题描述】:下面是我尝试使用 python api 从 adwords 获取所有广告系列和广告系列详细信息的基本代码。我正在使用 MCC。那么,如果给定客户 ID,我如何循环访问帐户中的所有广告系列并检索所有广告系列设置?
import os
import datetime
from adspygoogle.adwords.AdWordsClient import AdWordsClient
from adspygoogle.common import Utils
from pprint import pprint
google_service = 'https://adwords.google.com'
headers =
'email': 'test@gmail.com',
'password': 'test',
'userAgent': 'Test',
'developerToken': 'xxxxxxxxxxx',
google_service = 'https://adwords.google.com'
api_version = 'v201109'
client = AdWordsClient(headers=headers)
client.use_mcc = True
client.SetDebug=True
client.SetClientCustomerId='11111111111'
campaign_service = client.GetCampaignService(google_service, api_version)
【问题讨论】:
【参考方案1】:我对 Python 库不太熟悉,但我快速浏览了示例,发现奇怪的是,您应该开始使用的示例代码已放入报告文件夹中。如果您查看downloading campaign stats 的示例,您应该能够弄清楚如何提取您想要的内容。
您需要浏览CampaignService documentation 以找到您想要的字段,同时记住许多活动设置需要通过其他服务获得:即CampaignCriterionSerivce、CampaignTargetService 和@ 987654325@.
如果您需要更多帮助,最好联系official AdWords API forum;在办公时间,您通常会收到 Google AdWords API 工程师的回复。
【讨论】:
【参考方案2】:以下内容将起作用,并作为来自Adwords Github repo 的示例提供。这将返回您的 MCC 帐户下的所有客户 ID 的列表。从那里你可以编写循环来对每个客户端 ID 执行某些功能。
from googleads import adwords
def DisplayAccountTree(account, accounts, links, depth=0):
prefix = '-' * depth * 2
print '%s%s, %s' % (prefix, account['customerId'], account['name'])
if account['customerId'] in links:
for child_link in links[account['customerId']]:
child_account = accounts[child_link['clientCustomerId']]
DisplayAccountTree(child_account, accounts, links, depth + 1)
def main(client):
# Initialize appropriate service.
managed_customer_service = client.GetService(
'ManagedCustomerService', version='v201506')
# Construct selector to get all accounts.
selector =
'fields': ['CustomerId', 'Name']
# Get serviced account graph.
graph = managed_customer_service.get(selector)
if 'entries' in graph and graph['entries']:
# Create map from customerId to parent and child links.
child_links =
parent_links =
if 'links' in graph:
for link in graph['links']:
if link['managerCustomerId'] not in child_links:
child_links[link['managerCustomerId']] = []
child_links[link['managerCustomerId']].append(link)
if link['clientCustomerId'] not in parent_links:
parent_links[link['clientCustomerId']] = []
parent_links[link['clientCustomerId']].append(link)
# Create map from customerID to account and find root account.
accounts =
root_account = None
for account in graph['entries']:
accounts[account['customerId']] = account
if account['customerId'] not in parent_links:
root_account = account
# Display account tree.
if root_account:
print 'CustomerId, Name'
DisplayAccountTree(root_account, accounts, child_links, 0)
else:
print 'Unable to determine a root account'
else:
print 'No serviced accounts were found'
if __name__ == '__main__':
# Initialize client object.
adwords_client = adwords.AdWordsClient.LoadFromStorage()
main(adwords_client)
【讨论】:
以上是关于如何使用给定 ClientID 的 MMC 和 python 广告词库获取活动详细信息的主要内容,如果未能解决你的问题,请参考以下文章
Ajax update=":#table.clientId" 似乎不适用于 <p:dataTable>
如何在 C# 中使用服务主体(clientId 和 clientSecret)为 Azure Data Lake Store(Gen-2)创建 SAS 令牌?
如何在没有 oauth 但使用 angular 和 dotnet 自定义实现的情况下安全地发送 clientid 和 clientsecret