2014-11-25 89 views
1

我已成功向我的AdWords客户中心请求API访问权限。Google Adwords API服务器到服务器调用

现在我想提供一个小而免费的Webtool,它使用'Estimated Keyword Traffic Service'。 (用户填写关键字和地区,并获得潜力)

我读了很多关于Google Googles API。但说实话,我在OAuth中是新手。

是否真的有必要通过OAuth对每个用户进行身份验证或者是否可以使用服务器对服务器调用(php)?有没有可能的教程或例子?

谢谢你的提示

回答

0

为了获取关键字估算流量使用下面做一些修改到AdWords API的例子

Please refer this link for Google Adwords Example.

注意我写的功能:你必须将您的信用卡(ClientId,RefreshToken,ClientSecret,DeveloperToken)设置为以下文件:\ lib \ Google \ Api \ Ads \ AdWords \ auth.ini

通过包含的init.php文件加载你的API库..你可以得到这个文件到您的谷歌的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; 
    }