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 = '[email protected]';
$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 [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/adwords-api?hl=en.