Unable to access some authorized clients

68 views
Skip to first unread message

d...@adservice.com

unread,
Feb 26, 2015, 8:40:38 AM2/26/15
to adwor...@googlegroups.com
We are unable to access some of our clients who authorize us to manage their account using the API, while others work perfectly well.
We are mostly using the OfflineConversion API, but for testing a specific client we are having troubles with I am executing get_account_hierarchy.pl which returns "No serviced accounts were found.". We do have the required tokens. What does this error mean, and how do we fix it?
The customerId of the example client we are having challenges with getting to work is 5422889389.
Our API clientId is 185707205179

Kind regards,
Daniel

Josh Radcliff (AdWords API Team)

unread,
Feb 26, 2015, 5:45:23 PM2/26/15
to adwor...@googlegroups.com
Hi Daniel,

I do not see any AdWords account with customer ID 542-288-9389. Please confirm through the AdWords UI (or with your customer) that you have the correct customer ID.

Thanks,
Josh, AdWords API Team

d...@adservice.com

unread,
Mar 2, 2015, 6:46:11 AM3/2/15
to adwor...@googlegroups.com
sorry, the correct id is 542-285-9389

Josh Radcliff (AdWords API Team)

unread,
Mar 2, 2015, 9:23:31 AM3/2/15
to adwor...@googlegroups.com
Hi Daniel,

Do you see any errors in your logs before the "No serviced accounts were found" message?

Thanks,
Josh, AdWords API Team

d...@adservice.com

unread,
Mar 4, 2015, 9:07:22 AM3/4/15
to adwor...@googlegroups.com
Hi Josh,

No, when i execute the script i just get the message, i've tried to execute the script with data from a client where it works, and i get this message:
CustomerId, Name

i was sent another customerId which is having problems receiving data to adwords: 891-111-8334
is there anything special with those accounts?

Josh Radcliff (AdWords API Team)

unread,
Mar 4, 2015, 12:17:06 PM3/4/15
to adwor...@googlegroups.com
Hi,

Are you specifying any additional predicates in your request? I ask because both of those accounts are regular (non-MCC) AdWords accounts, so if you have a predicate on CanManageClients = true, then the request will not return any ManagedCustomers.

Could you post your SOAP request (with sensitive information removed)? The Perl library logs requests to the logs directory under your home directory.

Thanks,
Josh, AdWords API Team

d...@adservice.com

unread,
Mar 5, 2015, 4:44:53 AM3/5/15
to adwor...@googlegroups.com
Here are the logs for a request which doesn't return anything, and a request which returns the expected.

aw_api_lib.log
[04 Mar 2015 14:53:07,766 - INFO ] auth=OAuth client_id= service=ManagedCustomerService method=get response_time=287 request_id=00051076c55f2a980adb476ad3005763 operations=1 is_fault=no
[04 Mar 2015 15:04:48,601 - INFO ] auth=OAuth client_id= service=ManagedCustomerService method=get response_time=265 request_id=00051076ef21ac210adb476ad3005763 operations=1 is_fault=no

soap_xml.log
[04 Mar 2015 14:53:07,022 - INFO ] Outgoing Request:
<?xml version="1.0" ?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ><SOAP-ENV:Header><RequestHeader xmlns="https://adwords.google.com/api/adwords/mcm/v201406"><developerToken xmlns="https://adwords.google.com/api/adwords/cm/v201406">REDACTED</developerToken><userAgent xmlns="https://adwords.google.com/api/adwords/cm/v201406">./get_account_hierarchy.pl (AwApi-Perl/3.1.1, Common-Perl/3.1.1, SOAP-WSDL/v3.002, libwww-perl/6.06, perl/5.018002)</userAgent><validateOnly xmlns="https://adwords.google.com/api/adwords/cm/v201406">false</validateOnly><partialFailure xmlns="https://adwords.google.com/api/adwords/cm/v201406">false</partialFailure></RequestHeader></SOAP-ENV:Header><SOAP-ENV:Body><get xmlns="https://adwords.google.com/api/adwords/mcm/v201406"><serviceSelector><fields xmlns="https://adwords.google.com/api/adwords/cm/v201406">Name</fields><fields xmlns="https://adwords.google.com/api/adwords/cm/v201406">CustomerId</fields></serviceSelector></get></SOAP-ENV:Body></SOAP-ENV:Envelope>
[04 Mar 2015 14:53:07,717 - INFO ] Incoming response:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Header><ResponseHeader xmlns:ns2="https://adwords.google.com/api/adwords/cm/v201406" xmlns="https://adwords.google.com/api/adwords/mcm/v201406"><ns2:requestId>00051076c55f2a980adb476ad3005763</ns2:requestId><ns2:serviceName>ManagedCustomerService</ns2:serviceName><ns2:methodName>get</ns2:methodName><ns2:operations>1</ns2:operations><ns2:responseTime>287</ns2:responseTime></ResponseHeader></soap:Header><soap:Body><getResponse xmlns="https://adwords.google.com/api/adwords/mcm/v201406" xmlns:ns2="https://adwords.google.com/api/adwords/cm/v201406"><rval><ns2:totalNumEntries>0</ns2:totalNumEntries><ns2:Page.Type>ManagedCustomerPage</ns2:Page.Type></rval></getResponse></soap:Body></soap:Envelope>
[04 Mar 2015 15:04:46,735 - INFO ] Outgoing Request:
<?xml version="1.0" ?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ><SOAP-ENV:Header><RequestHeader xmlns="https://adwords.google.com/api/adwords/mcm/v201406"><developerToken xmlns="https://adwords.google.com/api/adwords/cm/v201406">REDACTED</developerToken><userAgent xmlns="https://adwords.google.com/api/adwords/cm/v201406">./get_account_hierarchy.pl (AwApi-Perl/3.1.1, Common-Perl/3.1.1, SOAP-WSDL/v3.002, libwww-perl/6.06, perl/5.018002)</userAgent><validateOnly xmlns="https://adwords.google.com/api/adwords/cm/v201406">false</validateOnly><partialFailure xmlns="https://adwords.google.com/api/adwords/cm/v201406">false</partialFailure></RequestHeader></SOAP-ENV:Header><SOAP-ENV:Body><get xmlns="https://adwords.google.com/api/adwords/mcm/v201406"><serviceSelector><fields xmlns="https://adwords.google.com/api/adwords/cm/v201406">Name</fields><fields xmlns="https://adwords.google.com/api/adwords/cm/v201406">CustomerId</fields></serviceSelector></get></SOAP-ENV:Body></SOAP-ENV:Envelope>
[04 Mar 2015 15:04:48,420 - INFO ] Incoming response:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Header><ResponseHeader xmlns:ns2="https://adwords.google.com/api/adwords/cm/v201406" xmlns="https://adwords.google.com/api/adwords/mcm/v201406"><ns2:requestId>00051076ef21ac210adb476ad3005763</ns2:requestId><ns2:serviceName>ManagedCustomerService</ns2:serviceName><ns2:methodName>get</ns2:methodName><ns2:operations>1</ns2:operations><ns2:responseTime>265</ns2:responseTime></ResponseHeader></soap:Header><soap:Body><getResponse xmlns="https://adwords.google.com/api/adwords/mcm/v201406" xmlns:ns2="https://adwords.google.com/api/adwords/cm/v201406"><rval><ns2:totalNumEntries>1</ns2:totalNumEntries><ns2:Page.Type>ManagedCustomerPage</ns2:Page.Type><entries><name>x</name><customerId>6153306165</customerId></entries></rval></getResponse></soap:Body></soap:Envelope>

Thanks,
Daniel

Josh Radcliff (AdWords API Team)

unread,
Mar 5, 2015, 2:29:34 PM3/5/15
to adwor...@googlegroups.com
Hi Danial,

Thanks for sending over the samples. I was finally able to reproduce this behavior by using OAuth credentials for an account without an associated MCC. Could you verify that the credentials you are using in the request that produces an empty response are for an account that is not linked to any MCCs?

Although this isn't totally intuitive, it is expected behavior. ManagedCustomerService is meant for working with accounts in an MCC hierarchy, so it won't return any information for a standalone account that's not under any MCCs.

Thanks,
Josh, AdWords API Team

d...@adservice.com

unread,
Mar 6, 2015, 4:40:40 AM3/6/15
to adwor...@googlegroups.com
Hi Josh,

Thank you for  clarifying that for me, what i am trying to do with it is get the customerId to display for the user, so they can see which adword account has been connected, can you maybe point me in the right direction for which API function to use for that, so it works for all accounts?

I verify that the credentials i am using in the request produce an empty response for accounts that are not linked to MCCs. :)

Thanks,
Daniel

Josh Radcliff (AdWords API Team)

unread,
Mar 6, 2015, 8:28:37 AM3/6/15
to adwor...@googlegroups.com
Hi Daniel,

If you simply want to know which customer ID is associated with the OAuth credentials of the request, then you can issue a CustomerService.get without specifying the clientCustomerId SOAP header. The customerId on the returned Customer object will contain the ID of the OAuth account's AdWords account.

Cheers,
Josh, AdWords API Team
Reply all
Reply to author
Forward
0 new messages