简体   繁体   English

Google Adwords API服务器到服务器的调用

[英]Google Adwords API Server to Server Calls

I´ve successfully requested a API access to my Adwords Client Center. 我已成功请求对我的Adwords客户中心的API访问。

Now I want to offer a small and free Webtool, which uses the 'Estimated Keyword Traffic Service'. 现在,我想提供一个免费的小型Webtool,它使用“估算的关键字点击量服务”。 (User fillouts Keyword and Region and get the potential) (用户填写关键字和区域并获得潜力)

I´ve read a lot about Googles API. 我已经阅读了很多有关Google API的文章。 But, to be honest, I´m new in OAuth. 但是,老实说,我是OAuth的新手。

Is it really necessary that each user is authenticated via OAuth or is a server-to-server call (php) possible? 是否真的有必要通过OAuth对每个用户进行身份验证,或者是否可以进行服务器到服务器的调用(php)? Are there any possibly a tutorial or an example? 是否有任何教程或示例?

Thank you for your tips 谢谢你的提示

To Get Keywords estimate traffic use following function written by me by doing some modification into adwords api example 要获取关键字,请通过对adwords api示例进行一些修改来估算由我编写的以下功能带来的点击量

Please refer this link for Google Adwords Example. 请参阅此链接获取Google Adwords示例。

Note : You have to set your credantials(ClientId,RefreshToken,ClientSecret,DeveloperToken) into this file : \\lib\\Google\\Api\\Ads\\AdWords\\auth.ini 注意:您必须将credantials(ClientId,RefreshToken,ClientSecret,DeveloperToken)设置到以下文件中:\\ lib \\ Google \\ Api \\ Ads \\ AdWords \\ auth.ini

Load Your api library by including init.php file.. you can get this file into your Google adwords library 通过包含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