簡體   English   中英

Google Adwords API服務器到服務器的調用

[英]Google Adwords API Server to Server Calls

我已成功請求對我的Adwords客戶中心的API訪問。

現在,我想提供一個免費的小型Webtool,它使用“估算的關鍵字點擊量服務”。 (用戶填寫關鍵字和區域並獲得潛力)

我已經閱讀了很多有關Google API的文章。 但是,老實說,我是OAuth的新手。

是否真的有必要通過OAuth對每個用戶進行身份驗證,或者是否可以進行服務器到服務器的調用(php)? 是否有任何教程或示例?

謝謝你的提示

要獲取關鍵字,請通過對adwords api示例進行一些修改來估算由我編寫的以下功能帶來的點擊量

請參閱此鏈接獲取Google Adwords示例。

注意:您必須將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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM