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"; } ?>