Hello,
We've updated to adWords API v201306 and switched from simple login to
OAuth2. We are using one MCC account to access multiple underlying customer
accounts. OAuth2 is working fine when accessing only a few
ClientCustomerId’s.
A “User Rate Limit Exceeded” error is occurring when spawning multiple
processes (lets say 20), getting some info from CampaignService. It seems
that this is not an adWords error, but a Google API error (OAUTH 2), when
refreshing the authtoken to often. This is however handled by the PHP
Client Library…
We’ve made sure that “new AdWordsUser()” and “GetAuthToken()” is called
before the fork and “SetClientCustomerId()” and “GetService()” inside the
fork. It is our understanding that the php client library should handle the
refresh token afterwards…
What are we doing wrong? It is not possible to change the rate limits for
AdWords inside Google API…
Thanks,
Jan
How is the script made up (simplified, just to get the idea):
*<?php
$user = new AdWordsUser();
$user->SetOAuth2Info(
array('client_id' => CONFIG_GAPI_CLIENT_ID,
'client_secret' => CONFIG_GAPI_CLIENT_SECRET,
'refresh_token' => CONFIG_GAPI_REFRESH_TOKEN)
);
$user->SetUserAgent(CONFIG_GAPI_USERAGENT);
$user->SetDeveloperToken(CONFIG_GAPI_DEVELOPER_TOKEN);
$user->SetApplicationToken(CONFIG_GAPI_APPLICATION_TOKEN);
$user->GetAuthToken();
$aAccounts = array('account', 'anotheraccount', 'andanother');
$children = array();
$i=0;
while ($i < count($aAccounts)) {
$customerId = $aAccounts[$i];
if (($pid = pcntl_fork()) === 0){
// Child process
try {
$user->SetClientCustomerId($customerId);
$campaignService = $user->GetService('CampaignService',
'v201306');
$selector = new Selector();
$selector->fields = array('Status', 'StartDate', 'EndDate',
'Id');
$selector->paging = new Paging(0, 10);
do {
// Make the get request.
$page = $campaignService->get($selector);
$selector->paging->startIndex += 10;
} while ($page->totalNumEntries >
$selector->paging->startIndex);
} catch (Exception $e) {
echo $e->getTraceAsString();
}
exit();
}else if ($pid){
// Parent process
$children[] = $pid;
}
$i++;
}
?>*
--
--
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog and discussion group:
http://adwordsapi.blogspot.com
http://groups.google.com/group/adwords-api
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
You received this message because you are subscribed to the Google
Groups "AdWords API Forum" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/adwords-api?hl=en
---
You received this message because you are subscribed to the Google Groups
"AdWords API Forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.