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

Posted

技术标签:

【中文标题】如何获取 adwords 帐户客户客户 ID 以将其链接到 MCC 帐户?【英文标题】:How to get an adwords account client customer id to link it to a MCC account? 【发布时间】:2014-05-05 02:29:15 【问题描述】:

我想通过我的网络应用程序上的 Google Adwords API 将 Adwords 帐户添加到 MCC 帐户。 我想我只需要添加一个ManagedCustomerLink

问题是我不知道如何获取 clientCustomerId。 我想通过在我的应用程序上使用匹配范围通过 OAuth2 对用户进行身份验证,我可以以某种方式获取他们的 clientCustomerId 但我找不到它。

提前感谢您的帮助!

【问题讨论】:

对不起,我有点困惑。你在哪里尝试这样做?您是在 MCC 中添加帐户,还是在编码? 我在一个应用程序上编码,所以想要链接到应用程序 MCC 帐户的用户只需要使用 Google 登录。 【参考方案1】:

您可以通过运行以下代码来获取客户端客户 ID:

CustomerServiceInterface customerService = adWordsServices.get(session, CustomerServiceInterface.class);
Customer[] customers;
try 
    customers = customerService.getCustomers();
    for (Customer customer : customers) 
        Long customerId = customer.getCustomerId();
        System.out.println(customerId);
    
 catch (RemoteException e) 
    e.printStackTrace();

为了获得用户会话,您必须使用 Oauth 2.0 并询问他的凭据。

【讨论】:

【参考方案2】:

根据上面阅读您与 George Astonishing 的交流,我想知道您是否真的想将 AdWords 帐户添加到您的 MCC。

AdWords 帐户所有者之间存在差异

    授权您的应用访问他们的数据,而不是 成为贵公司的客户,全面管理 AdWords。

如果此 AdWords 帐户属于您公司的客户,并且您正在接管他们的帐户管理,那么您可以使用 ManagedCustomerService 将该帐户添加到您的 MCC。您可以使用 CustomerService 获取帐户的 10 位 AdWords 客户 ID。

另一方面,如果这是针对 Web 应用程序,并且您只是希望用户能够使用 OAuth2 进行授权,那么您应该改为关注 this guide。

【讨论】:

感谢您帮助我。如果我使用 CustomerService,我只会获得 MCC 帐户。基本上,我只想让我的网络应用程序上的用户有一种方便的方式将他们的 AdWords 帐户链接到我的 MCC 帐户(这是您的要点 2。)。如何获取某人的 10 位 AdWords 客户 ID?我想我可以通过然后登录到应用程序来获得它。 (你的要点 1.)。抱歉,如果这听起来令人困惑。 您要关联的帐户目前是否由其他 MCC 管理? 没有。可能是,但我们假设不是。【参考方案3】:

在这里,访问此链接到 Google Adwords 库,

https://github.com/googleads/googleads-php-lib/blob/master/examples/AdWords/v201509/AccountManagement/GetAccountHierarchy.php

创建新用户后

   $user = new AdWordsUser(); // with your API creds using OAUTH       
   GetAccountHierarchyExample(AdWordsUser $user)  //found in link

只需运行该函数。它将列出您所有托管的子帐户。

【讨论】:

所以尝试这样做,但它要求我提供客户客户 ID 来执行此操作......【参考方案4】:

这是您可以获得客户客户的代码

public Customer[] GetAllManagerClientsList(string authorizationCode)
        
            string baseURL = _configuration.GetValue<string>("URL:SiteURL");
            AdsOAuthProviderForApplications oAuth2Provider = (user.OAuthProvider as AdsOAuthProviderForApplications);
            oAuth2Provider.Config.OAuth2RedirectUri = baseURL + "/google-auth-callback";

            oAuth2Provider.FetchAccessAndRefreshTokens(authorizationCode);

            //Get customerID
            user.Config.OAuth2AccessToken = oAuth2Provider.Config.OAuth2AccessToken;
            user.Config.OAuth2RefreshToken = oAuth2Provider.Config.OAuth2RefreshToken;
            //store in cache
            var chechedEntryOptions = new MemoryCacheEntryOptions().SetAbsoluteExpiration(TimeSpan.FromMinutes(5));


            CustomerService customerService = (CustomerService)user.GetService(AdWordsService.v201809.CustomerService);
            var customersList = customerService.getCustomers();

            var ClientCustomers = customersList != null && customersList.Length > 0 ? customersList.Where(c => c.canManageClients == false).ToList() : null;
            if (ClientCustomers.Count() > 0)
            
                return ClientCustomers.ToArray();
            
            else
            
                return null;
            
        

【讨论】:

以上是关于如何获取 adwords 帐户客户客户 ID 以将其链接到 MCC 帐户?的主要内容,如果未能解决你的问题,请参考以下文章

如何仅使用客户 ID 在 Google Adwords API 中关联帐户?

为 Google Adwords API 设置客户 ID

AdWords API:非 MCC 帐户的客户列表

如何在 php 中的 Google Adwords API 中设置多个 ClientCustomerId?

将我的客户分析帐户与我自己的 Adwords 帐户相关联

从 Adwords 测试帐户中获取数据