以下は機能し、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)