// Copyright 2005, Google Inc. All rights reserved.
require_once('nusoap.php');
/*
* This sample program illustrates how to get traffic estimates for keywords.
* This program uses nusoap.php to handle the SOAP interactions.
*/
// Set up the authentication headers
$email = "youremail@yourcompany.com";
$password = "yourpassword";
$userAgent = "YOURCOMPANY -- PHP Traffic Estimator Demo";
$token = "developer_token_here";
$header = $email . $password . $userAgent . $token;
// Connect to the WSDL for the TrafficEstimatorService
$wsdl = "https://adwords.google.com/api/adwords/v2/TrafficEstimatorService?wsdl";
$client = new soapclient($wsdl, 'wsdl');
// Set the headers; they are needed for authentication
$client->setHeaders($header);
// With nusoap, you need to include XML with the parameters
$keyword0 = "flowers";
$keyword1 = "chocolates";
$otherinfo = "50000Broad";
// Need to keep track of the order that we send in the keywords
// so we can match them to the results
$keywordTextArray[0] = "flowers";
$keywordTextArray[1] = "chocolates";
$otherinfo = "50000Broad";
$keywordxml = " $keyword0 $otherinfo $keyword1 $otherinfo";
// Construct the XML string for the parameters
// It's a nusoap thing that the param string needs to include the operation name too
// Specifying the namespace is optional, AdWords API web services can use the default namespace
// $param = "" . $keywordxml . "";
$param = "" . $keywordxml . "";
// Make the request to estimate the keywords
$response = $client->call("estimateKeywordList", $param);
$response = $response['estimateKeywordListReturn'];
// If the headers hadn't been set already, you'd need to provide them in the call to call()
// $response = $client->call("estimateNewAdGroup", $param, false, false, $header);
// Handle any SOAP faults.
if ($client->fault) {
echo "
FAULT: {$client->fault}
\n";
echo "
Code: {$client->faultcode}
\n";
echo "
String: {$client->faultstring}
\n";
echo "
Detail: {$client->faultdetail}
\n";
return;
}
// If we got this far, $response contains the estimates
$count = count($response);
echo "
There are " . $count . " elements in the response array.
\n";
// A single response is returned as an array of field values.
// Multiple responses are returned as an array of arrays.
if(is_array($response)) {
echo "
We have an array of responses, need to iterate over them.
\n";
$i = 0;
while ($i < $count) {
// Need to get the keyword text out of $keywordTextArray
// because the keywordEstimate doesn't know the keyword text
echo "
" . $keywordTextArray[$i] . "
";
printResults($response[$i]);
$i++;
}
}
else { // only a single response
// echo "ONE RESPONSE
";
// echo "" . $thiskeyword . "
";
printResults($response);
}
function printResults ($estimate) {
echo "";
echo "\n
cpc = " . $estimate['cpc'];
echo "\n
clicks = " . $estimate['ctr'] * $estimate['impressions'];
echo "\n
ctr = " . $estimate['ctr'];
echo "\n
impressions = " . $estimate['impressions'];
echo "\n
notShown = " . $estimate['notShownPerDay'];
echo "\n
position = " . $estimate['avgPosition'];
echo "
\n";
}
?>