[英]Google Adwords API Server to Server Calls
我已成功請求對我的Adwords客戶中心的API訪問。
現在,我想提供一個免費的小型Webtool,它使用“估算的關鍵字點擊量服務”。 (用戶填寫關鍵字和區域並獲得潛力)
我已經閱讀了很多有關Google API的文章。 但是,老實說,我是OAuth的新手。
是否真的有必要通過OAuth對每個用戶進行身份驗證,或者是否可以進行服務器到服務器的調用(php)? 是否有任何教程或示例?
謝謝你的提示
要獲取關鍵字,請通過對adwords api示例進行一些修改來估算由我編寫的以下功能帶來的點擊量
注意:您必須將credantials(ClientId,RefreshToken,ClientSecret,DeveloperToken)設置到以下文件中:\\ lib \\ Google \\ Api \\ Ads \\ AdWords \\ auth.ini
通過包含init.php文件來加載您的api庫。您可以將此文件添加到Google adwords庫中
require_once dirname(dirname(__FILE__)) . '/init.php';
$location = 2840;//Location unitedStates
$language = 1000;//for english language
$max_cpc = 1;
$keywords = array("Keywords1","Keywords2");
$user = new AdWordsUser();
$estimateData = estimateTraffic($user,$keywords,$location,$language,$max_cpc);
function estimateTraffic(AdWordsUser $user,$kws,$country,$lang,$max_cpc) {
$trafficEstimatorService = $user->GetService('TrafficEstimatorService', ADWORDS_VERSION);
if(!is_numeric($max_cpc) || empty($max_cpc)){
$max_cpc = 1;
}
$keywords = array();
foreach($kws as $v){
$keywords[] = new Keyword($v, 'BROAD');
}
// Create a keyword estimate request for each keyword.
$keywordEstimateRequests = array();
foreach ($keywords as $keyword) {
$keywordEstimateRequest = new KeywordEstimateRequest();
$keywordEstimateRequest->keyword = $keyword;
$keywordEstimateRequests[] = $keywordEstimateRequest;
}
// Create ad group estimate requests.
$adGroupEstimateRequest = new AdGroupEstimateRequest();
$adGroupEstimateRequest->keywordEstimateRequests = $keywordEstimateRequests;
$adGroupEstimateRequest->maxCpc = new Money(1000000*$max_cpc);
// Create campaign estimate requests.
$campaignEstimateRequest = new CampaignEstimateRequest();
$campaignEstimateRequest->adGroupEstimateRequests[] = $adGroupEstimateRequest;
// Set targeting criteria. Only locations and languages are supported.
$unitedStates = new Location();
$unitedStates->id = $country;
$campaignEstimateRequest->criteria[] = $unitedStates;
$english = new Language();
$english->id = $lang;
$campaignEstimateRequest->criteria[] = $english;
// Create selector.
$selector = new TrafficEstimatorSelector();
$selector->campaignEstimateRequests[] = $campaignEstimateRequest;
// Make the get request.
$result = $trafficEstimatorService->get($selector);
// Display results.
$keywordEstimates = $result->campaignEstimates[0]->adGroupEstimates[0]->keywordEstimates;
$keywordStats = array();
$decimals = 3;
for ($i = 0; $i < sizeof($keywordEstimates); $i++) {
$keywordStats[$i]['keyword'] = $kws[$i];
$keywordEstimateRequest = $keywordEstimateRequests[$i];
if (!$keywordEstimateRequest->isNegative) {
$keyword = $keywordEstimateRequest->keyword;
$keywordEstimate = $keywordEstimates[$i];
if (isset($keywordEstimate->min->averageCpc->microAmount) &&
isset($keywordEstimate->max->averageCpc->microAmount)) {
$meanAverageCpc = ($keywordEstimate->min->averageCpc->microAmount + $keywordEstimate->max->averageCpc->microAmount) / 2;
//printf(" Estimated average CPC in micros: %.0f\n", $meanAverageCpc);
$keywordStats[$i]['cpc'] = number_format ($meanAverageCpc/1000000, $decimals);
}
if (isset($keywordEstimate->min->averagePosition) &&
isset($keywordEstimate->max->averagePosition)) {
$meanAveragePosition = ($keywordEstimate->min->averagePosition + $keywordEstimate->max->averagePosition) / 2;
//printf(" Estimated ad position: %.2f \n", $meanAveragePosition);
$keywordStats[$i]['position'] = round($meanAveragePosition);
}
if (isset($keywordEstimate->min->clickThroughRate) &&
isset($keywordEstimate->max->clickThroughRate)) {
$meanClickThroughRate = ($keywordEstimate->min->clickThroughRate + $keywordEstimate->max->clickThroughRate) / 2;
//printf(" Estimated ad position: %.2f \n", $meanAveragePosition);
$keywordStats[$i]['ctr'] = number_format($meanClickThroughRate,$decimals);
}
if (isset($keywordEstimate->min->impressionsPerDay) &&
isset($keywordEstimate->max->impressionsPerDay)) {
$meanImpression = ($keywordEstimate->min->impressionsPerDay + $keywordEstimate->max->impressionsPerDay) / 2;
//printf(" Estimated ad position: %.2f \n", $meanAveragePosition);
$keywordStats[$i]['impression'] = round($meanImpression);
}
if (isset($keywordEstimate->min->clicksPerDay) &&
isset($keywordEstimate->max->clicksPerDay)) {
$meanClicks = ($keywordEstimate->min->clicksPerDay + $keywordEstimate->max->clicksPerDay) / 2;
//printf(" Estimated daily clicks: %d\n", $meanClicks);
$keywordStats[$i]['clicks'] = round($meanClicks);
}
if (isset($keywordEstimate->min->totalCost->microAmount) &&
isset($keywordEstimate->max->totalCost->microAmount)) {
$meanTotalCost = ($keywordEstimate->min->totalCost->microAmount + $keywordEstimate->max->totalCost->microAmount) / 2;
//printf(" Estimated daily cost in micros: %.0f\n\n", $meanTotalCost);
$keywordStats[$i]['cost'] = number_format (round($meanTotalCost)/1000000, $decimals);
}
}
}
return $keywordStats;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.