Я ищу, чтобы получить CPC и другие данные для большого набора данных ключевых слов. Однако, когда я отправляю запрос в API, я получаю данные только по первому ключевому слову в Keywords
массив. Вы заметите из второго изображения ниже, что EstimatedBids
Объект данных для слов доставки, пиццы, страховки и юриста не имеет значения. Если я, скажем, поставлю ключевое слово «юрист» первым в массиве, я получу данные для юриста и ничего для остальных.
Мой код:
$keywords = array('flowers', 'delivery', 'pizza', 'insurance', 'lawyer'); // example array for this question
$proxy = ClientProxy::ConstructWithAccountAndCustomerId($wsdl, null, null, $DeveloperToken, $AccountId, $CustomerId, $AccessToken); //no $UserName & $Password
$matchTypes = array (MatchType::Exact);
$keywordAndMatchTypes = array();
foreach ($keywords as $keyword) {
$keywordAndMatchType = new KeywordAndMatchType();
$keywordAndMatchType->KeywordText = $keyword;
$keywordAndMatchType->MatchTypes = $matchTypes;
array_push($keywordAndMatchTypes, $keywordAndMatchType);
}
$request_cpc = new GetEstimatedBidByKeywordsRequest();
$request_cpc->Keywords = $keywordAndMatchTypes;
$response_cpc = $proxy->GetService()->GetEstimatedBidByKeywords($request_cpc)->KeywordEstimatedBids;
Мой запрос:
Мой ответ:
Что нужно изменить, чтобы я мог получить эти данные для всех ключевых слов? Заранее благодарю за любую помощь.
Для любого будущего Google, я решил свою проблему, создав $matchTypes
массив в foreach
петля. Другими словами, я изменил этот старый код:
$matchTypes = array (MatchType::Exact);
$keywordAndMatchTypes = array();
foreach ($keywords as $keyword) {
$keywordAndMatchType = new KeywordAndMatchType();
$keywordAndMatchType->KeywordText = $keyword;
$keywordAndMatchType->MatchTypes = $matchTypes;
array_push($keywordAndMatchTypes, $keywordAndMatchType);
}
В этот новый код:
$keywordAndMatchTypes = array();
foreach ($keywords as $keyword) {
$keywordAndMatchType = new KeywordAndMatchType();
$matchTypes = array (MatchType::Exact);
$keywordAndMatchType->KeywordText = $keyword;
$keywordAndMatchType->MatchTypes = $matchTypes;
array_push($keywordAndMatchTypes, $keywordAndMatchType);
}
По какой-то причине $matchTypes
массив должен быть создан каждый раз.
Других решений пока нет …