Проблемы с Google Adwords API

Я использую Google Adwords API (v201109), чтобы получить ключевые слова и их объемы поиска. Я создал файл

adwords.php со следующим кодом —

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);

$path = dirname(__FILE__) . '/../../../';
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
require_once 'Google/Api/Ads/AdWords/Lib/AdWordsUser.php';

$adwords_username = "[email protected]";
$adwords_password = "mypassword";
$adwords_developerToken = "mydevelopertoken";
$user = new AdWordsUser(null, $adwords_username, $adwords_password, $adwords_developerToken);
$user->SetDefaultServer("https://adwords.google.com/");

//set Adwords Client Id
$user->SetClientCustomerId('111111111');

$str_group = GetAdGroup($user, "v201509");
echo $str_group;

function GetAdGroup(AdWordsUser $user, $adwords_version) {
// Get the service, which loads the required classes.
$adgroupService = $user->GetService('AdGroupService', $adwords_version);

// Create selector.
$selector = new Selector();
$selector->fields = array('Id', 'Name', 'CampaignId', 'Status');
$selector->ordering[] = new OrderBy('CampaignId', 'ASCENDING');

// Filter out deleted criteria.
$selector->predicates[] = new Predicate('Status', 'NOT_IN', array('DELETED', 'PAUSED'));

// Create paging controls.
$selector->paging = new Paging(0, AdWordsConstants::RECOMMENDED_PAGE_SIZE);

$ret = array();
do {
//echo "<pre>";print_r($selector);die;
// Make the get request.
$page = $adgroupService->get($selector);

// Display results.
if (isset($page->entries)) {
foreach ($page->entries as $adgroup) {
//printf("AdGroup with name '%s' and id '%s' was found for Campaign: '%s' and Status: '%s'\n",
// $adgroup->name, $adgroup->id, $adgroup->campaignId, $adgroup->status);
$ret[] = array(
'name' => $adgroup->name,
'id' => $adgroup->id,
'campaignId' => $adgroup->campaignId,
'active' => (strcmp($adgroup->status,'ENABLED')==0)?1:0
);
}
} else {
//print "No adgroups were found.\n";
}
// Advance the paging index.
$selector->paging->startIndex += AdWordsConstants::RECOMMENDED_PAGE_SIZE;
} while ($page->totalNumEntries > $selector->paging->startIndex);
return $ret;
}

function GetKeywords(AdWordsUser $user, $adGroupId, $days, $adwords_version) {
// Get the service, which loads the required classes.
$adGroupCriterionService = $user->GetService('AdGroupCriterionService', $adwords_version);

// Create selector.
$selector = new Selector();

$selector->fields = array('KeywordText', 'KeywordMatchType', 'Id', 'AverageCpc', 'AveragePosition', 'Clicks', 'Conversions', 'Cost', 'Ctr', 'Impressions', 'QualityScore', 'Status');
$selector->ordering[] = new OrderBy('KeywordText', 'ASCENDING');

// Create predicates.
$selector->predicates[] = new Predicate('AdGroupId', 'IN', array($adGroupId));
$selector->predicates[] = new Predicate('CriteriaType', 'IN', array('KEYWORD'));
$selector->predicates[] = new Predicate('Status', 'IN', array('ACTIVE'));
$selector->predicates[] = new Predicate('Impressions', 'GREATER_THAN', array('1'));

$dateRange = new DateRange();
$str1 = '-1 days';
$str2 = '-1 days';
if ($days > 0) {
$str1 = '-' . $days . ' days';
$str2 = '-' . $days . ' days';
}
$dateRange->min = date('Ymd', strtotime($str1));
$dateRange->max = date('Ymd', strtotime($str2));
$selector->dateRange = $dateRange;

// Create paging controls.
$selector->paging = new Paging(0, AdWordsConstants::RECOMMENDED_PAGE_SIZE);

$ret = array();

do {
// Make the get request.
$page = $adGroupCriterionService->get($selector);

// Display results.
if (isset($page->entries)) {
foreach ($page->entries as $adGroupCriterion) {
$cr = 0;
if ($adGroupCriterion->stats->clicks > 0)
$cr = $adGroupCriterion->stats->conversions / $adGroupCriterion->stats->clicks;

$ret[] = array(
'name' => $adGroupCriterion->criterion->text,
'type' => $adGroupCriterion->criterion->matchType,
'id' => $adGroupCriterion->criterion->id,
'clicks' => $adGroupCriterion->stats->clicks,
'cpc' => $adGroupCriterion->stats->averageCpc->microAmount / 1000000,
'conversions' => $adGroupCriterion->stats->conversions,
'cost' => $adGroupCriterion->stats->cost->microAmount / 1000000,
'ctr' => $adGroupCriterion->stats->ctr,
'impressions' => $adGroupCriterion->stats->impressions,
'qualityfactor' => $adGroupCriterion->qualityInfo->qualityScore,
'cr' => $cr,
'position' => $adGroupCriterion->stats->averagePosition
);
}
} else {
//print "No keywords were found.\n";
}

// Advance the paging index.
$selector->paging->startIndex += AdWordsConstants::RECOMMENDED_PAGE_SIZE;
} while ($page->totalNumEntries > $selector->paging->startIndex);
return $ret;
}

Но я продолжаю получать следующую ошибку, когда я запускаю файл adwords.php.

ошибка

Неустранимая ошибка: исключение Uncaught SoapFault: [soap: Server] [QuotaCheckError.INVALID_TOKEN_HEADER @;
триггер: ‘[email protected]’] в
/var/www/html/Google/Api/Ads/Common/Lib/AdsSoapClient.php:216 Stack
трассировка: # 0
/var/www/html/Google/Api/Ads/Common/Lib/AdsSoapClient.php(216):
SoapClient -> __ soapCall (‘get’, Array, NULL, Array, Array) # 1
/var/www/html/Google/Api/Ads/AdWords/v201509/AdGroupService.php(7408):
AdsSoapClient -> __ soapCall (‘get’, Array) # 2
/var/www/html/adwords.php(46): AdGroupService-> get (Object (Selector))

/var/www/html/Google/Api/Ads/Common/Lib/AdsSoapClient.php в строке 216

Я новичок в этом, поэтому я не знаю, как использовать API для получения данных, пожалуйста, скажите мне, что я делаю неправильно. Или как я могу использовать API AdWords для получения ключевых слов, их объемов и других данных. Все документы, которые я нашел, заставили меня запутаться.

заранее спасибо

3

Решение

__construct($authenticationIniPath = null,
$developerToken = null, $userAgent = null, $clientCustomerId = null,
$settingsIniPath = null, $oauth2Info = null)

$user = new AdWordsUser(null, $adwords_username, $adwords_password, $adwords_developerToken);

Неверные данные переданы; Вместо этого используйте auth.ini. https://developers.google.com/adwords/api/docs/first-request

0

Другие решения

Вы получаете эту ошибку, потому что вы еще не установили свой токен разработчика или токен разработчика в режиме ожидания …

Вы можете установить свой токен разработчика в этот файл: \lib\Google\Api\Ads\AdWords\auth.ini

0

По вопросам рекламы [email protected]