通过 adwords API 从 MCC adwords 帐户获取所有客户 ID

Posted

技术标签:

【中文标题】通过 adwords API 从 MCC adwords 帐户获取所有客户 ID【英文标题】:Get all clientID from MCC adwords account by adwordsAPI 【发布时间】:2012-06-20 17:12:20 【问题描述】:

我想从我的 MCC 帐户中检索所有 clientID。我正在使用此代码

              AdWordsUser user = new AdWordsUser(adwordsPropertyService.getEmail(), adwordsPropertyService.getPassword(),
                      null, adwordsPropertyService.getUseragent(), adwordsPropertyService.getDeveloperToken(),
                      adwordsPropertyService.getUseSandbox());

              InfoServiceInterface infoService = user.getService(AdWordsService.V201109.INFO_SERVICE);


              InfoSelector selector = new InfoSelector();
              selector.setApiUsageType(ApiUsageType.UNIT_COUNT_FOR_CLIENTS);
              String today = new SimpleDateFormat("yyyyMMdd").format(new Date());
              selector.setDateRange(new DateRange(today, today));
              selector.setIncludeSubAccounts(true);

              ApiUsageInfo apiUsageInfo = infoService.get(selector);
              for (ApiUsageRecord record : apiUsageInfo.getApiUsageRecords()) 
                      ......

但是 apiUsageInfo.getApiUsageRecords 只返回我的一些 clientId。 你有什么建议吗?

【问题讨论】:

【参考方案1】:

我的回答将对 PHP 开发者有所帮助

我正在使用 v201502(php),您将从ManagedCustomerService api 获取所有帐户详细信息。请参考以下网址https://developers.google.com/adwords/api/docs/reference/v201502/ManagedCustomerService

这是我使用的示例代码,

    function DisplayAccountTree($account, $link, $accounts, $links, $depth) 
      print str_repeat('-', $depth * 2);
      printf("%s, %s\n", $account->customerId, $account->name);
      if (array_key_exists($account->customerId, $links)) 
        foreach ($links[$account->customerId] as $childLink) 
          $childAccount = $accounts[$childLink->clientCustomerId];
          DisplayAccountTree($childAccount, $childLink, $accounts, $links,
              $depth +1);
        
      
    
    function GetAccountHierarchyExample(AdWordsUser $user) 
      // Get the service, which loads the required classes.

      $user->SetClientCustomerId('xxx-xxx-xxxx');
      $managedCustomerService =
          $user->GetService('ManagedCustomerService');

      // Create selector.
      $selector = new Selector();
      // Specify the fields to retrieve.
      $selector->fields = array('CustomerId',  'Name');

      // Make the get request.
      $graph = $managedCustomerService->get($selector);

      // Display serviced account graph.
      if (isset($graph->entries)) 
        // Create map from customerId to parent and child links.
        $childLinks = array();
        $parentLinks = array();
        if (isset($graph->links)) 
          foreach ($graph->links as $link) 
            $childLinks[$link->managerCustomerId][] = $link;
            $parentLinks[$link->clientCustomerId][] = $link;
          
        
        // Create map from customerID to account, and find root account.
        $accounts = array();
        $rootAccount = NULL;
        foreach ($graph->entries as $account) 
          $accounts[$account->customerId] = $account;
          if (!array_key_exists($account->customerId, $parentLinks)) 
            $rootAccount = $account;
          
        
        // The root account may not be returned in the sandbox.
        if (!isset($rootAccount)) 
          $rootAccount = new Account();
          $rootAccount->customerId = 0;
        
        // Display account tree.
        print "(Customer Id, Account Name)\n";
        DisplayAccountTree($rootAccount, NULL, $accounts, $childLinks, 0);
       else 
        print "No serviced accounts were found.\n";
      
    

    GetAccountHierarchyExample($user);

SetClientCustomerId 将是您所有帐户的父 ID,它将显示在您的 google AdWords 帐户的退出按钮附近,请参阅附图

我希望这个答案会有所帮助,如果您需要任何进一步的帮助,请在下面添加您的 cmets

【讨论】:

【参考方案2】:

如果您只需要 clientCustomerIds 列表,请尝试 ServicedAccountService。Here 是一个代码示例,说明了如何完成此操作。

下次,您可能还想考虑在 AdWords API 官方论坛上提问:https://groups.google.com/forum/?fromgroups#!forum/adwords-api

【讨论】:

code.google.com 链接不再有效。 @Anash:你能发布更新的链接吗?

以上是关于通过 adwords API 从 MCC adwords 帐户获取所有客户 ID的主要内容,如果未能解决你的问题,请参考以下文章

您可以通过 Adwords API 创建新帐户吗?

使用 google adwords api

Google AdWords API AuthorizationError.SERVICE_ACCESS_DENIED

如何获取 adwords 帐户客户客户 ID 以将其链接到 MCC 帐户?

Adwords API 并行报错(多处理断管)

一个 Adwords API 开发人员令牌可用于多个帐户?