AdWords API ReportService job runs, but report/record is not available
at the url that was returned/empty

The only changes I made to the example were

<?php
require_once('soapclientfactory.php');

# Provide AdWords login information.
$email = 'i...@aziatischekunst.com';
$password = 'startthis';
$client_email =’abc.com';
$useragent = 'abcd';
$developer_token = abc.com++USD';
$application_token = 'INSERT_APPLICATION_TOKEN_HERE';
# Define SOAP headers.
$headers =
  '<email>' . $email . '</email>'.
  '<password>' . $password . '</password>' .
  '<clientEmail>' . $client_email . '</clientEmail>' .
  '<useragent>' . $useragent . '</useragent>' .
  '<developerToken>' . $developer_token . '</developerToken>' .
  '<applicationToken>' . $application_token . '</applicationToken>';

# Set up service connection. To view XML request/response, change
value of
# $debug to 1. To send requests to production environment, replace
# "sandbox.google.com" with "adwords.google.com".
$namespace = 'https://sandbox.google.com/api/adwords/v13';

$report_service =
  SoapClientFactory::GetClient($namespace . '/ReportService?wsdl',
'wsdl');
$report_service->setHeaders($headers);
$debug = 1;

# Create report job structure.
$report_job =
  '<selectedReportType>Keyword</selectedReportType>' .
  '<name>Sample Keyword Report</name>' .
  '<aggregationTypes>Summary</aggregationTypes>' .
  '<adWordsType>SearchOnly</adWordsType>' .
  '<keywordType>Broad</keywordType>' .
  '<startDay>2009-10-29</startDay>' .
  '<endDay>2009-11-29</endDay>' .
  '<selectedColumns>Campaign</selectedColumns>' .
  '<selectedColumns>AdGroup</selectedColumns>' .
  '<selectedColumns>Keyword</selectedColumns>' .
  '<selectedColumns>KeywordStatus</selectedColumns>' .
  '<selectedColumns>KeywordMinCPC</selectedColumns>' .
  '<selectedColumns>KeywordDestUrlDisplay</selectedColumns>' .
  '<selectedColumns>Impressions</selectedColumns>' .
  '<selectedColumns>Clicks</selectedColumns>' .
  '<selectedColumns>CTR</selectedColumns>' .
  '<selectedColumns>AveragePosition</selectedColumns>';
$request_xml =
  '<validateReportJob>' .
  '<job xmlns:impl="https://adwords.google.com/api/adwords/v13"; ' .
  'xsi:type="impl:DefinedReportJob">' .
  $report_job .
  '</job>' .
  '</validateReportJob>';

# Validate report.
$report_service->call('validateReportJob', $request_xml);
if ($debug) show_xml($report_service);
if ($report_service->fault) show_fault($report_service);

# Schedule report.
$request_xml =
  '<scheduleReportJob>' .
  '<job xmlns:impl="https://adwords.google.com/api/adwords/v13"; ' .
  'xsi:type="impl:DefinedReportJob">' .
  $report_job .
  '</job>' .
  '</scheduleReportJob>';
$job_id = $report_service->call('scheduleReportJob', $request_xml);
$job_id = $job_id['scheduleReportJobReturn'];
if ($debug) show_xml($report_service);
if ($report_service->fault) show_fault($service);

# Wait for report to finish.
$request_xml =
  '<getReportJobStatus>' .
  '<reportJobId>' .
  $job_id .
  '</reportJobId>' .
  '</getReportJobStatus>';
$status = $report_service->call('getReportJobStatus', $request_xml);
$status = $status['getReportJobStatusReturn'];
if ($debug) show_xml($report_service);
if ($report_service->fault) show_fault($service);
while ($status != 'Completed' and $status != 'Failed') {
  echo 'Report job status is "' . $status . '".' . "\n";
  sleep(30);
  $status = $report_service->call('getReportJobStatus', $request_xml);
  $status = $status['getReportJobStatusReturn'];
  if ($debug) show_xml($report_service);
  if ($report_service->fault) show_fault($service);
}

if ($status == 'Failed') {
  echo 'Report job generation failed.' . "\n";
  return;
}

# Download report.
$request_xml =
  '<getGzipReportDownloadUrl>' .
  '<reportJobId>' .
  $job_id .
  '</reportJobId>' .
  '</getGzipReportDownloadUrl>';
$report_url = $report_service->call('getGzipReportDownloadUrl',
$request_xml);
$report_url = $report_url['getGzipReportDownloadUrlReturn'];
if ($debug) show_xml($report_service);
if ($report_service->fault) show_fault($service);
echo 'Report is available at "' . $report_url . '".' . "\n";


function show_xml($service) {
  echo $service->request;
  echo $service->response;
  echo "\n";
}

function show_fault($service) {
  echo "\n";
  echo 'Fault: ' . $service->fault . "\n";
  echo 'Code: ' . $service->faultcode . "\n";
  echo 'String: ' . $service->faultstring . "\n";
  echo 'Detail: ' . $service->faultdetail . "\n";
  exit(0);
}
?>

--

You received this message because you are subscribed to the Google Groups 
"AdWords API Forum" group.
To post to this group, send email to adwords-...@googlegroups.com.
To unsubscribe from this group, send email to 
adwords-api+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/adwords-api?hl=en.


Reply via email to