Google Code offered in: English - Español - 日本語 - 한국어 - Português - Pусский - 中文(简体) - 中文(繁體)
Documentation for the requested version is not available.Documentation for the requested diff is not available.
Use ReportService to schedule and retrieve reports about your AdWords account. Generated reports are in XML format.
To generate and download a report:
DefinedReportJob object that specifies the
type of report you want.validateReportJob before
scheduling the report. Validating a report job costs only 1 API unit,
whereas a failed call to scheduleReportJob will cost 500 API
units.scheduleReportJob.
This request returns an ID for the scheduled report job.getReportJobStatus.getReportDownloadUrl to
retrieve the URL where your report is stored. The returned URL is valid for
five minutes. If the URL expires, just call
getReportDownloadUrl again. Keep this URL private, since anyone
can use it to access your report.The Report Center stores up to 15 generated reports per account. When the sixteenth report is generated, the Report Center deletes the oldest stored report.
For more information about reports and report types, see the Report Center section of the AdWords Help Center.
Deletes a report job along with the report it produced, if any. You can delete a pending report job, but not a job in progress.
| Parameter name | Parameter type | Parameter description |
|---|---|---|
| reportJobId | long |
ID of the report job. |
| Response type | Response description |
|---|---|
(none) |
Returns an array consisting of all jobs the user has scheduled.
| Response type | Response description |
|---|---|
ReportJob[] |
an array of report jobs.
ReportJob is one of: |
Returns a URL from which a compressed report with the given job ID can be downloaded (in Gzip format). After invoking this method, the caller can do a regular HTTP GET on the returned URL to retrieve the report.
Warning: Served XML reports are truncated to 263064146 bytes (about 250MB). Be careful not to create a report that includes lots of data.
| Parameter name | Parameter type | Parameter description |
|---|---|---|
| reportJobId | long |
The ID of the report job. |
| Response type | Response description |
|---|---|
string |
A URL from which the compressed report can be downloaded. |
Code sample not available. | ||
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
// Create report job structure.
DefinedReportJob job = new DefinedReportJob();
job.setSelectedReportType("Keyword");
job.setName("Sample Keyword Report");
job.setAggregationTypes(new String[] {"Summary"});
job.setAdWordsType(AdWordsType.SearchOnly);
job.setKeywordType(KeywordType.Broad);
job.setStartDay(new java.util.GregorianCalendar(2009, 0, 1).getTime());
job.setEndDay(new java.util.GregorianCalendar(2009, 0, 31).getTime());
job.setSelectedColumns(new String[] {
"Campaign", "AdGroup", "Keyword", "KeywordStatus", "KeywordMinCPC",
"KeywordDestUrlDisplay", "Impressions", "Clicks", "CTR",
"AveragePosition"});
// Validate report.
try {
service.validateReportJob(job);
// Schedule report.
long jobId = service.scheduleReportJob(job);
// Wait for report to finish.
ReportJobStatus status = service.getReportJobStatus(jobId);
while(status != ReportJobStatus.Completed &&
status != ReportJobStatus.Failed) {
System.out.println(
"Report job status is \"" + status.getValue() + "\".");
try {
Thread.sleep(30000);
} catch(InterruptedException e) {}
status = service.getReportJobStatus(jobId);
}
if(status == ReportJobStatus.Failed) {
System.out.println("Report job generation failed.");
System.exit(0);
}
// Download report.
String url = service.getGzipReportDownloadUrl(jobId);
|
|
Code sample not available. | ||
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
// Create report job structure.
DefinedReportJob job = new DefinedReportJob();
job.selectedReportType = "Keyword";
job.name = "Sample Keyword Report";
job.aggregationTypes = new String[] { "Summary" };
job.adWordsType = AdWordsType.SearchOnly;
job.keywordType = KeywordType.Broad;
job.startDay = new DateTime(2009, 1, 1);
job.endDay = new DateTime(2009, 1, 31);
job.selectedColumns = new String[] { "Campaign", "AdGroup", "Keyword",
"KeywordStatus", "KeywordMinCPC",
"KeywordDestUrlDisplay", "Impressions", "Clicks", "CTR",
"AveragePosition" };
// Validate report.
try {
service.validateReportJob(job);
// Schedule report.
long jobId = service.scheduleReportJob(job);
// Wait for report to finish.
ReportJobStatus status = service.getReportJobStatus(jobId);
while (status != ReportJobStatus.Completed &&
status != ReportJobStatus.Failed) {
Console.WriteLine(
"Report job status is \"" + status + "\".");
Thread.Sleep(30000);
status = service.getReportJobStatus(jobId);
}
if (status == ReportJobStatus.Failed) {
Console.WriteLine("Report job generation failed.");
System.Environment.Exit(0);
}
// Download report.
String url = service.getGzipReportDownloadUrl(jobId);
|
|
Code sample not available. | ||
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
my $report_job = SOAP::Data->name('job' =>
{'selectedReportType' => 'Keyword',
'name' => 'Sample Keyword Report',
'aggregationTypes' => ['Summary'],
'adWordsType' => 'SearchOnly',
'keywordType' => 'Broad',
'startDay' => '2009-01-01',
'endDay' => '2009-01-31',
'selectedColumns' => [qw(Campaign AdGroup Keyword KeywordStatus KeywordMinCPC
KeywordDestUrlDisplay Impressions Clicks CTR
AveragePosition)]
});
$report_job->attr({'xsi:type' => 'DefinedReportJob',
'xmlns' => 'https://adwords.google.com/api/adwords/v13'});
eval {
# Validate report.
$service->call('validateReportJob' => $report_job, @headers);
# Schedule report.
my $job_id = $service->call('scheduleReportJob' => $report_job, @headers)
->result();
$job_id = SOAP::Data->name('reportJobId' => $job_id);
# Wait for report to finish.
my $status = $service->call('getReportJobStatus' => $job_id, @headers)
->result();
while ($status ne 'Completed' and $status ne 'Failed') {
printf("Report job status is '%s'.\n", $status);
sleep(30);
$status = $service->call('getReportJobStatus' => $job_id, @headers)
->result();
}
if ($status eq 'Failed') {
die("Report job generation failed.\n");
}
# Download report.
my $report_url = $service->call('getGzipReportDownloadUrl' => $job_id,
@headers)->result();
|
|
Code sample not available. | ||
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
# Create report job structure.
report_job = """
<selectedReportType>%s</selectedReportType>
<name>%s</name>
<aggregationTypes>%s</aggregationTypes>
<adWordsType>%s</adWordsType>
<keywordType>%s</keywordType>
<startDay>%s</startDay>
<endDay>%s</endDay>
<selectedColumns>%s</selectedColumns>
<selectedColumns>%s</selectedColumns>
<selectedColumns>%s</selectedColumns>
<selectedColumns>%s</selectedColumns>
<selectedColumns>%s</selectedColumns>
<selectedColumns>%s</selectedColumns>
<selectedColumns>%s</selectedColumns>
<selectedColumns>%s</selectedColumns>
<selectedColumns>%s</selectedColumns>
<selectedColumns>%s</selectedColumns>""" % \
('Keyword', 'Sample Keyword Report', 'Summary', 'SearchOnly', 'Broad',
'2009-01-01', '2009-01-31', 'Campaign', 'AdGroup', 'Keyword',
'KeywordStatus', 'KeywordMinCPC', 'KeywordDestUrlDisplay', 'Impressions',
'Clicks', 'CTR', 'AveragePosition')
report_job = SOAPpy.Types.untypedType(report_job)
report_job._setAttr('xmlns:impl', namespace.replace('sandbox', 'adwords'))
report_job._setAttr('xsi:type', 'impl:DefinedReportJob')
try:
# Validate report.
report_service.validateReportJob(report_job)
# Schedule report.
job_id = report_service.scheduleReportJob(report_job)
job_id = SOAPpy.Types.untypedType(job_id)
# Wait for report to finish.
status = report_service.getReportJobStatus(job_id)
while status != 'Completed' and status != 'Failed':
print 'Report job status is "%s".' % status
time.sleep(30)
status = report_service.getReportJobStatus(job_id)
if(status == 'Failed'):
print 'Report job generation failed.'
sys.exit();
# Download report.
report_url = report_service.getGzipReportDownloadUrl(job_id)
|
|
Code sample not available. | ||
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 |
# Create report job structure.
report_job = %{
<job xsi:type='DefinedReportJob'>
<selectedReportType>Keyword</selectedReportType>
<name>Sample Keyword Report</name>
<aggregationTypes>Summary</aggregationTypes>
<adWordsType>SearchOnly</adWordsType>
<keywordType>Broad</keywordType>
<startDay>2009-01-01</startDay>
<endDay>2009-01-31</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>
</job>
}
begin
# Validate report.
report_service.validateReportJob(REXML::Document.new("<validateReportJob " +
"xmlns='https://adwords.google.com/api/adwords/v13'>#{report_job}" +
"</validateReportJob>"))
# Schedule report.
job_id = report_service.scheduleReportJob(REXML::Document.new(
"<scheduleReportJob xmlns='https://adwords.google.com/api/adwords/v13'>" +
"#{report_job}</scheduleReportJob>")).scheduleReportJobReturn
# Wait for report to finish.
status = report_service.getReportJobStatus(:reportJobId => job_id
).getReportJobStatusReturn
while status != 'Completed' and status != 'Failed'
puts "Report job status is '#{status}'."
sleep(30)
status = report_service.getReportJobStatus(:reportJobId => job_id
).getReportJobStatusReturn
end
if status == 'Failed'
puts "Report job generation failed."
exit
end
# Download report.
report_url = report_service.getGzipReportDownloadUrl(
:reportJobId => job_id).getGzipReportDownloadUrlReturn
|
|
Code sample not available. | ||
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 |
# Create report job structure.
$report_job =
'<selectedReportType>Keyword</selectedReportType>' .
'<name>Sample Keyword Report</name>' .
'<aggregationTypes>Summary</aggregationTypes>' .
'<adWordsType>SearchOnly</adWordsType>' .
'<keywordType>Broad</keywordType>' .
'<startDay>2008-01-01</startDay>' .
'<endDay>2008-01-31</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'];
|
|
Code sample not available. | ||
12 13 14 15 |
<!-- Retrieves the download URL for a report given the job id. -->
<getGzipReportDownloadUrl>
<reportJobId>INSERT_REPORT_JOB_ID_HERE</reportJobId>
</getGzipReportDownloadUrl>
|
|
Select a programming language to view its sample
Returns a URL from which the report with the given job ID can be downloaded. After invoking this method, the caller can do a regular HTTP GET on the returned URL to retrieve the report. The reports are in XML format.
Warning: Served XML reports are truncated to 263064146 bytes (about 250MB). Be careful not to create a report that includes lots of data.
| Parameter name | Parameter type | Parameter description |
|---|---|---|
| reportJobId | long |
The ID of the report job. |
| Response type | Response description |
|---|---|
string |
A URL from which the report can be downloaded. |
Returns the status of the report job with the given reportJobId.
| Parameter name | Parameter type | Parameter description |
|---|---|---|
| reportJobId | long |
The ID of the report job. |
| Response type | Response description |
|---|---|
ReportJobStatus |
The report job status.
Values are:
|
Code sample not available. | ||
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
// Create report job structure.
DefinedReportJob job = new DefinedReportJob();
job.setSelectedReportType("Keyword");
job.setName("Sample Keyword Report");
job.setAggregationTypes(new String[] {"Summary"});
job.setAdWordsType(AdWordsType.SearchOnly);
job.setKeywordType(KeywordType.Broad);
job.setStartDay(new java.util.GregorianCalendar(2009, 0, 1).getTime());
job.setEndDay(new java.util.GregorianCalendar(2009, 0, 31).getTime());
job.setSelectedColumns(new String[] {
"Campaign", "AdGroup", "Keyword", "KeywordStatus", "KeywordMinCPC",
"KeywordDestUrlDisplay", "Impressions", "Clicks", "CTR",
"AveragePosition"});
// Validate report.
try {
service.validateReportJob(job);
// Schedule report.
long jobId = service.scheduleReportJob(job);
// Wait for report to finish.
ReportJobStatus status = service.getReportJobStatus(jobId);
while(status != ReportJobStatus.Completed &&
status != ReportJobStatus.Failed) {
System.out.println(
"Report job status is \"" + status.getValue() + "\".");
try {
Thread.sleep(30000);
} catch(InterruptedException e) {}
status = service.getReportJobStatus(jobId);
}
if(status == ReportJobStatus.Failed) {
System.out.println("Report job generation failed.");
System.exit(0);
}
// Download report.
String url = service.getGzipReportDownloadUrl(jobId);
|
|
Code sample not available. | ||
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
// Create report job structure.
DefinedReportJob job = new DefinedReportJob();
job.selectedReportType = "Keyword";
job.name = "Sample Keyword Report";
job.aggregationTypes = new String[] { "Summary" };
job.adWordsType = AdWordsType.SearchOnly;
job.keywordType = KeywordType.Broad;
job.startDay = new DateTime(2009, 1, 1);
job.endDay = new DateTime(2009, 1, 31);
job.selectedColumns = new String[] { "Campaign", "AdGroup", "Keyword",
"KeywordStatus", "KeywordMinCPC",
"KeywordDestUrlDisplay", "Impressions", "Clicks", "CTR",
"AveragePosition" };
// Validate report.
try {
service.validateReportJob(job);
// Schedule report.
long jobId = service.scheduleReportJob(job);
// Wait for report to finish.
ReportJobStatus status = service.getReportJobStatus(jobId);
while (status != ReportJobStatus.Completed &&
status != ReportJobStatus.Failed) {
Console.WriteLine(
"Report job status is \"" + status + "\".");
Thread.Sleep(30000);
status = service.getReportJobStatus(jobId);
}
if (status == ReportJobStatus.Failed) {
Console.WriteLine("Report job generation failed.");
System.Environment.Exit(0);
}
// Download report.
String url = service.getGzipReportDownloadUrl(jobId);
|
|
Code sample not available. | ||
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
my $report_job = SOAP::Data->name('job' =>
{'selectedReportType' => 'Keyword',
'name' => 'Sample Keyword Report',
'aggregationTypes' => ['Summary'],
'adWordsType' => 'SearchOnly',
'keywordType' => 'Broad',
'startDay' => '2009-01-01',
'endDay' => '2009-01-31',
'selectedColumns' => [qw(Campaign AdGroup Keyword KeywordStatus KeywordMinCPC
KeywordDestUrlDisplay Impressions Clicks CTR
AveragePosition)]
});
$report_job->attr({'xsi:type' => 'DefinedReportJob',
'xmlns' => 'https://adwords.google.com/api/adwords/v13'});
eval {
# Validate report.
$service->call('validateReportJob' => $report_job, @headers);
# Schedule report.
my $job_id = $service->call('scheduleReportJob' => $report_job, @headers)
->result();
$job_id = SOAP::Data->name('reportJobId' => $job_id);
# Wait for report to finish.
my $status = $service->call('getReportJobStatus' => $job_id, @headers)
->result();
while ($status ne 'Completed' and $status ne 'Failed') {
printf("Report job status is '%s'.\n", $status);
sleep(30);
$status = $service->call('getReportJobStatus' => $job_id, @headers)
->result();
}
if ($status eq 'Failed') {
die("Report job generation failed.\n");
}
# Download report.
my $report_url = $service->call('getGzipReportDownloadUrl' => $job_id,
@headers)->result();
|
|
Code sample not available. | ||
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
# Create report job structure.
report_job = """
<selectedReportType>%s</selectedReportType>
<name>%s</name>
<aggregationTypes>%s</aggregationTypes>
<adWordsType>%s</adWordsType>
<keywordType>%s</keywordType>
<startDay>%s</startDay>
<endDay>%s</endDay>
<selectedColumns>%s</selectedColumns>
<selectedColumns>%s</selectedColumns>
<selectedColumns>%s</selectedColumns>
<selectedColumns>%s</selectedColumns>
<selectedColumns>%s</selectedColumns>
<selectedColumns>%s</selectedColumns>
<selectedColumns>%s</selectedColumns>
<selectedColumns>%s</selectedColumns>
<selectedColumns>%s</selectedColumns>
<selectedColumns>%s</selectedColumns>""" % \
('Keyword', 'Sample Keyword Report', 'Summary', 'SearchOnly', 'Broad',
'2009-01-01', '2009-01-31', 'Campaign', 'AdGroup', 'Keyword',
'KeywordStatus', 'KeywordMinCPC', 'KeywordDestUrlDisplay', 'Impressions',
'Clicks', 'CTR', 'AveragePosition')
report_job = SOAPpy.Types.untypedType(report_job)
report_job._setAttr('xmlns:impl', namespace.replace('sandbox', 'adwords'))
report_job._setAttr('xsi:type', 'impl:DefinedReportJob')
try:
# Validate report.
report_service.validateReportJob(report_job)
# Schedule report.
job_id = report_service.scheduleReportJob(report_job)
job_id = SOAPpy.Types.untypedType(job_id)
# Wait for report to finish.
status = report_service.getReportJobStatus(job_id)
while status != 'Completed' and status != 'Failed':
print 'Report job status is "%s".' % status
time.sleep(30)
status = report_service.getReportJobStatus(job_id)
if(status == 'Failed'):
print 'Report job generation failed.'
sys.exit();
# Download report.
report_url = report_service.getGzipReportDownloadUrl(job_id)
|
|
Code sample not available. | ||
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 |
# Create report job structure.
report_job = %{
<job xsi:type='DefinedReportJob'>
<selectedReportType>Keyword</selectedReportType>
<name>Sample Keyword Report</name>
<aggregationTypes>Summary</aggregationTypes>
<adWordsType>SearchOnly</adWordsType>
<keywordType>Broad</keywordType>
<startDay>2009-01-01</startDay>
<endDay>2009-01-31</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>
</job>
}
begin
# Validate report.
report_service.validateReportJob(REXML::Document.new("<validateReportJob " +
"xmlns='https://adwords.google.com/api/adwords/v13'>#{report_job}" +
"</validateReportJob>"))
# Schedule report.
job_id = report_service.scheduleReportJob(REXML::Document.new(
"<scheduleReportJob xmlns='https://adwords.google.com/api/adwords/v13'>" +
"#{report_job}</scheduleReportJob>")).scheduleReportJobReturn
# Wait for report to finish.
status = report_service.getReportJobStatus(:reportJobId => job_id
).getReportJobStatusReturn
while status != 'Completed' and status != 'Failed'
puts "Report job status is '#{status}'."
sleep(30)
status = report_service.getReportJobStatus(:reportJobId => job_id
).getReportJobStatusReturn
end
if status == 'Failed'
puts "Report job generation failed."
exit
end
# Download report.
report_url = report_service.getGzipReportDownloadUrl(
:reportJobId => job_id).getGzipReportDownloadUrlReturn
|
|
Code sample not available. | ||
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 |
# Create report job structure.
$report_job =
'<selectedReportType>Keyword</selectedReportType>' .
'<name>Sample Keyword Report</name>' .
'<aggregationTypes>Summary</aggregationTypes>' .
'<adWordsType>SearchOnly</adWordsType>' .
'<keywordType>Broad</keywordType>' .
'<startDay>2008-01-01</startDay>' .
'<endDay>2008-01-31</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'];
|
|
Code sample not available. | ||
12 13 14 15 |
<!-- Retrieves the status of a report job given the job id. -->
<getReportJobStatus>
<reportJobId>INSERT_REPORT_JOB_ID_HERE</reportJobId>
</getReportJobStatus>
|
|
Select a programming language to view its sample
Schedules a report job for execution.
| Parameter name | Parameter type | Parameter description |
|---|---|---|
| job | ReportJob |
Defines the options (such as date range, aggregations, and
columns) for the report.
ReportJob is one of: |
| Response type | Response description |
|---|---|
long |
ID of the scheduled report job. |
Code sample not available. | ||
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
// Create report job structure.
DefinedReportJob job = new DefinedReportJob();
job.setSelectedReportType("Keyword");
job.setName("Sample Keyword Report");
job.setAggregationTypes(new String[] {"Summary"});
job.setAdWordsType(AdWordsType.SearchOnly);
job.setKeywordType(KeywordType.Broad);
job.setStartDay(new java.util.GregorianCalendar(2009, 0, 1).getTime());
job.setEndDay(new java.util.GregorianCalendar(2009, 0, 31).getTime());
job.setSelectedColumns(new String[] {
"Campaign", "AdGroup", "Keyword", "KeywordStatus", "KeywordMinCPC",
"KeywordDestUrlDisplay", "Impressions", "Clicks", "CTR",
"AveragePosition"});
// Validate report.
try {
service.validateReportJob(job);
// Schedule report.
long jobId = service.scheduleReportJob(job);
// Wait for report to finish.
ReportJobStatus status = service.getReportJobStatus(jobId);
while(status != ReportJobStatus.Completed &&
status != ReportJobStatus.Failed) {
System.out.println(
"Report job status is \"" + status.getValue() + "\".");
try {
Thread.sleep(30000);
} catch(InterruptedException e) {}
status = service.getReportJobStatus(jobId);
}
if(status == ReportJobStatus.Failed) {
System.out.println("Report job generation failed.");
System.exit(0);
}
// Download report.
String url = service.getGzipReportDownloadUrl(jobId);
|
|
Code sample not available. | ||
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
// Create report job structure.
DefinedReportJob job = new DefinedReportJob();
job.selectedReportType = "Keyword";
job.name = "Sample Keyword Report";
job.aggregationTypes = new String[] { "Summary" };
job.adWordsType = AdWordsType.SearchOnly;
job.keywordType = KeywordType.Broad;
job.startDay = new DateTime(2009, 1, 1);
job.endDay = new DateTime(2009, 1, 31);
job.selectedColumns = new String[] { "Campaign", "AdGroup", "Keyword",
"KeywordStatus", "KeywordMinCPC",
"KeywordDestUrlDisplay", "Impressions", "Clicks", "CTR",
"AveragePosition" };
// Validate report.
try {
service.validateReportJob(job);
// Schedule report.
long jobId = service.scheduleReportJob(job);
// Wait for report to finish.
ReportJobStatus status = service.getReportJobStatus(jobId);
while (status != ReportJobStatus.Completed &&
status != ReportJobStatus.Failed) {
Console.WriteLine(
"Report job status is \"" + status + "\".");
Thread.Sleep(30000);
status = service.getReportJobStatus(jobId);
}
if (status == ReportJobStatus.Failed) {
Console.WriteLine("Report job generation failed.");
System.Environment.Exit(0);
}
// Download report.
String url = service.getGzipReportDownloadUrl(jobId);
|
|
Code sample not available. | ||
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
my $report_job = SOAP::Data->name('job' =>
{'selectedReportType' => 'Keyword',
'name' => 'Sample Keyword Report',
'aggregationTypes' => ['Summary'],
'adWordsType' => 'SearchOnly',
'keywordType' => 'Broad',
'startDay' => '2009-01-01',
'endDay' => '2009-01-31',
'selectedColumns' => [qw(Campaign AdGroup Keyword KeywordStatus KeywordMinCPC
KeywordDestUrlDisplay Impressions Clicks CTR
AveragePosition)]
});
$report_job->attr({'xsi:type' => 'DefinedReportJob',
'xmlns' => 'https://adwords.google.com/api/adwords/v13'});
eval {
# Validate report.
$service->call('validateReportJob' => $report_job, @headers);
# Schedule report.
my $job_id = $service->call('scheduleReportJob' => $report_job, @headers)
->result();
$job_id = SOAP::Data->name('reportJobId' => $job_id);
# Wait for report to finish.
my $status = $service->call('getReportJobStatus' => $job_id, @headers)
->result();
while ($status ne 'Completed' and $status ne 'Failed') {
printf("Report job status is '%s'.\n", $status);
sleep(30);
$status = $service->call('getReportJobStatus' => $job_id, @headers)
->result();
}
if ($status eq 'Failed') {
die("Report job generation failed.\n");
}
# Download report.
my $report_url = $service->call('getGzipReportDownloadUrl' => $job_id,
@headers)->result();
|
|
Code sample not available. | ||
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
# Create report job structure.
report_job = """
<selectedReportType>%s</selectedReportType>
<name>%s</name>
<aggregationTypes>%s</aggregationTypes>
<adWordsType>%s</adWordsType>
<keywordType>%s</keywordType>
<startDay>%s</startDay>
<endDay>%s</endDay>
<selectedColumns>%s</selectedColumns>
<selectedColumns>%s</selectedColumns>
<selectedColumns>%s</selectedColumns>
<selectedColumns>%s</selectedColumns>
<selectedColumns>%s</selectedColumns>
<selectedColumns>%s</selectedColumns>
<selectedColumns>%s</selectedColumns>
<selectedColumns>%s</selectedColumns>
<selectedColumns>%s</selectedColumns>
<selectedColumns>%s</selectedColumns>""" % \
('Keyword', 'Sample Keyword Report', 'Summary', 'SearchOnly', 'Broad',
'2009-01-01', '2009-01-31', 'Campaign', 'AdGroup', 'Keyword',
'KeywordStatus', 'KeywordMinCPC', 'KeywordDestUrlDisplay', 'Impressions',
'Clicks', 'CTR', 'AveragePosition')
report_job = SOAPpy.Types.untypedType(report_job)
report_job._setAttr('xmlns:impl', namespace.replace('sandbox', 'adwords'))
report_job._setAttr('xsi:type', 'impl:DefinedReportJob')
try:
# Validate report.
report_service.validateReportJob(report_job)
# Schedule report.
job_id = report_service.scheduleReportJob(report_job)
job_id = SOAPpy.Types.untypedType(job_id)
# Wait for report to finish.
status = report_service.getReportJobStatus(job_id)
while status != 'Completed' and status != 'Failed':
print 'Report job status is "%s".' % status
time.sleep(30)
status = report_service.getReportJobStatus(job_id)
if(status == 'Failed'):
print 'Report job generation failed.'
sys.exit();
# Download report.
report_url = report_service.getGzipReportDownloadUrl(job_id)
|
|
Code sample not available. | ||
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 |
# Create report job structure.
report_job = %{
<job xsi:type='DefinedReportJob'>
<selectedReportType>Keyword</selectedReportType>
<name>Sample Keyword Report</name>
<aggregationTypes>Summary</aggregationTypes>
<adWordsType>SearchOnly</adWordsType>
<keywordType>Broad</keywordType>
<startDay>2009-01-01</startDay>
<endDay>2009-01-31</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>
</job>
}
begin
# Validate report.
report_service.validateReportJob(REXML::Document.new("<validateReportJob " +
"xmlns='https://adwords.google.com/api/adwords/v13'>#{report_job}" +
"</validateReportJob>"))
# Schedule report.
job_id = report_service.scheduleReportJob(REXML::Document.new(
"<scheduleReportJob xmlns='https://adwords.google.com/api/adwords/v13'>" +
"#{report_job}</scheduleReportJob>")).scheduleReportJobReturn
# Wait for report to finish.
status = report_service.getReportJobStatus(:reportJobId => job_id
).getReportJobStatusReturn
while status != 'Completed' and status != 'Failed'
puts "Report job status is '#{status}'."
sleep(30)
status = report_service.getReportJobStatus(:reportJobId => job_id
).getReportJobStatusReturn
end
if status == 'Failed'
puts "Report job generation failed."
exit
end
# Download report.
report_url = report_service.getGzipReportDownloadUrl(
:reportJobId => job_id).getGzipReportDownloadUrlReturn
|
|
Code sample not available. | ||
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 |
# Create report job structure.
$report_job =
'<selectedReportType>Keyword</selectedReportType>' .
'<name>Sample Keyword Report</name>' .
'<aggregationTypes>Summary</aggregationTypes>' .
'<adWordsType>SearchOnly</adWordsType>' .
'<keywordType>Broad</keywordType>' .
'<startDay>2008-01-01</startDay>' .
'<endDay>2008-01-31</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'];
|
|
Code sample not available. | ||
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
<!-- Schedules a keyword report with sample columns. -->
<scheduleReportJob xmlns="https://adwords.google.com/api/adwords/v13">
<job xsi:type="DefinedReportJob">
<selectedReportType>Keyword</selectedReportType>
<name>Sample Keyword Report</name>
<aggregationTypes>Summary</aggregationTypes>
<adWordsType>SearchOnly</adWordsType>
<keywordType>Broad</keywordType>
<startDay>2008-01-01</startDay>
<endDay>2008-01-31</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>
</job>
</scheduleReportJob>
|
|
Select a programming language to view its sample
Runs validation against a report job. If there are no problems, the method returns normally, otherwise the appropriate exception is thrown.
| Parameter name | Parameter type | Parameter description |
|---|---|---|
| job | ReportJob |
Report job to validate
ReportJob is one of: |
| Response type | Response description |
|---|---|
(none) |
Code sample not available. | ||
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
// Create report job structure.
DefinedReportJob job = new DefinedReportJob();
job.setSelectedReportType("Keyword");
job.setName("Sample Keyword Report");
job.setAggregationTypes(new String[] {"Summary"});
job.setAdWordsType(AdWordsType.SearchOnly);
job.setKeywordType(KeywordType.Broad);
job.setStartDay(new java.util.GregorianCalendar(2009, 0, 1).getTime());
job.setEndDay(new java.util.GregorianCalendar(2009, 0, 31).getTime());
job.setSelectedColumns(new String[] {
"Campaign", "AdGroup", "Keyword", "KeywordStatus", "KeywordMinCPC",
"KeywordDestUrlDisplay", "Impressions", "Clicks", "CTR",
"AveragePosition"});
// Validate report.
try {
service.validateReportJob(job);
// Schedule report.
long jobId = service.scheduleReportJob(job);
// Wait for report to finish.
ReportJobStatus status = service.getReportJobStatus(jobId);
while(status != ReportJobStatus.Completed &&
status != ReportJobStatus.Failed) {
System.out.println(
"Report job status is \"" + status.getValue() + "\".");
try {
Thread.sleep(30000);
} catch(InterruptedException e) {}
status = service.getReportJobStatus(jobId);
}
if(status == ReportJobStatus.Failed) {
System.out.println("Report job generation failed.");
System.exit(0);
}
// Download report.
String url = service.getGzipReportDownloadUrl(jobId);
|
|
Code sample not available. | ||
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
// Create report job structure.
DefinedReportJob job = new DefinedReportJob();
job.selectedReportType = "Keyword";
job.name = "Sample Keyword Report";
job.aggregationTypes = new String[] { "Summary" };
job.adWordsType = AdWordsType.SearchOnly;
job.keywordType = KeywordType.Broad;
job.startDay = new DateTime(2009, 1, 1);
job.endDay = new DateTime(2009, 1, 31);
job.selectedColumns = new String[] { "Campaign", "AdGroup", "Keyword",
"KeywordStatus", "KeywordMinCPC",
"KeywordDestUrlDisplay", "Impressions", "Clicks", "CTR",
"AveragePosition" };
// Validate report.
try {
service.validateReportJob(job);
// Schedule report.
long jobId = service.scheduleReportJob(job);
// Wait for report to finish.
ReportJobStatus status = service.getReportJobStatus(jobId);
while (status != ReportJobStatus.Completed &&
status != ReportJobStatus.Failed) {
Console.WriteLine(
"Report job status is \"" + status + "\".");
Thread.Sleep(30000);
status = service.getReportJobStatus(jobId);
}
if (status == ReportJobStatus.Failed) {
Console.WriteLine("Report job generation failed.");
System.Environment.Exit(0);
}
// Download report.
String url = service.getGzipReportDownloadUrl(jobId);
|
|
Code sample not available. | ||
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
my $report_job = SOAP::Data->name('job' =>
{'selectedReportType' => 'Keyword',
'name' => 'Sample Keyword Report',
'aggregationTypes' => ['Summary'],
'adWordsType' => 'SearchOnly',
'keywordType' => 'Broad',
'startDay' => '2009-01-01',
'endDay' => '2009-01-31',
'selectedColumns' => [qw(Campaign AdGroup Keyword KeywordStatus KeywordMinCPC
KeywordDestUrlDisplay Impressions Clicks CTR
AveragePosition)]
});
$report_job->attr({'xsi:type' => 'DefinedReportJob',
'xmlns' => 'https://adwords.google.com/api/adwords/v13'});
eval {
# Validate report.
$service->call('validateReportJob' => $report_job, @headers);
# Schedule report.
my $job_id = $service->call('scheduleReportJob' => $report_job, @headers)
->result();
$job_id = SOAP::Data->name('reportJobId' => $job_id);
# Wait for report to finish.
my $status = $service->call('getReportJobStatus' => $job_id, @headers)
->result();
while ($status ne 'Completed' and $status ne 'Failed') {
printf("Report job status is '%s'.\n", $status);
sleep(30);
$status = $service->call('getReportJobStatus' => $job_id, @headers)
->result();
}
if ($status eq 'Failed') {
die("Report job generation failed.\n");
}
# Download report.
my $report_url = $service->call('getGzipReportDownloadUrl' => $job_id,
@headers)->result();
|
|
Code sample not available. | ||
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
# Create report job structure.
report_job = """
<selectedReportType>%s</selectedReportType>
<name>%s</name>
<aggregationTypes>%s</aggregationTypes>
<adWordsType>%s</adWordsType>
<keywordType>%s</keywordType>
<startDay>%s</startDay>
<endDay>%s</endDay>
<selectedColumns>%s</selectedColumns>
<selectedColumns>%s</selectedColumns>
<selectedColumns>%s</selectedColumns>
<selectedColumns>%s</selectedColumns>
<selectedColumns>%s</selectedColumns>
<selectedColumns>%s</selectedColumns>
<selectedColumns>%s</selectedColumns>
<selectedColumns>%s</selectedColumns>
<selectedColumns>%s</selectedColumns>
<selectedColumns>%s</selectedColumns>""" % \
('Keyword', 'Sample Keyword Report', 'Summary', 'SearchOnly', 'Broad',
'2009-01-01', '2009-01-31', 'Campaign', 'AdGroup', 'Keyword',
'KeywordStatus', 'KeywordMinCPC', 'KeywordDestUrlDisplay', 'Impressions',
'Clicks', 'CTR', 'AveragePosition')
report_job = SOAPpy.Types.untypedType(report_job)
report_job._setAttr('xmlns:impl', namespace.replace('sandbox', 'adwords'))
report_job._setAttr('xsi:type', 'impl:DefinedReportJob')
try:
# Validate report.
report_service.validateReportJob(report_job)
# Schedule report.
job_id = report_service.scheduleReportJob(report_job)
job_id = SOAPpy.Types.untypedType(job_id)
# Wait for report to finish.
status = report_service.getReportJobStatus(job_id)
while status != 'Completed' and status != 'Failed':
print 'Report job status is "%s".' % status
time.sleep(30)
status = report_service.getReportJobStatus(job_id)
if(status == 'Failed'):
print 'Report job generation failed.'
sys.exit();
# Download report.
report_url = report_service.getGzipReportDownloadUrl(job_id)
|
|
Code sample not available. | ||
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 |
# Create report job structure.
report_job = %{
<job xsi:type='DefinedReportJob'>
<selectedReportType>Keyword</selectedReportType>
<name>Sample Keyword Report</name>
<aggregationTypes>Summary</aggregationTypes>
<adWordsType>SearchOnly</adWordsType>
<keywordType>Broad</keywordType>
<startDay>2009-01-01</startDay>
<endDay>2009-01-31</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>
</job>
}
begin
# Validate report.
report_service.validateReportJob(REXML::Document.new("<validateReportJob " +
"xmlns='https://adwords.google.com/api/adwords/v13'>#{report_job}" +
"</validateReportJob>"))
# Schedule report.
job_id = report_service.scheduleReportJob(REXML::Document.new(
"<scheduleReportJob xmlns='https://adwords.google.com/api/adwords/v13'>" +
"#{report_job}</scheduleReportJob>")).scheduleReportJobReturn
# Wait for report to finish.
status = report_service.getReportJobStatus(:reportJobId => job_id
).getReportJobStatusReturn
while status != 'Completed' and status != 'Failed'
puts "Report job status is '#{status}'."
sleep(30)
status = report_service.getReportJobStatus(:reportJobId => job_id
).getReportJobStatusReturn
end
if status == 'Failed'
puts "Report job generation failed."
exit
end
# Download report.
report_url = report_service.getGzipReportDownloadUrl(
:reportJobId => job_id).getGzipReportDownloadUrlReturn
|
|
Code sample not available. | ||
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 |
# Create report job structure.
$report_job =
'<selectedReportType>Keyword</selectedReportType>' .
'<name>Sample Keyword Report</name>' .
'<aggregationTypes>Summary</aggregationTypes>' .
'<adWordsType>SearchOnly</adWordsType>' .
'<keywordType>Broad</keywordType>' .
'<startDay>2008-01-01</startDay>' .
'<endDay>2008-01-31</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'];
|
|
Code sample not available. | ||
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
<!-- Validates a keyword report with sample columns. -->
<!-- Used before scheduling a report to make sure it is valid. -->
<validateReportJob xmlns="https://adwords.google.com/api/adwords/v13">
<job xsi:type="DefinedReportJob">
<selectedReportType>Keyword</selectedReportType>
<name>Sample Keyword Report</name>
<aggregationTypes>Summary</aggregationTypes>
<adWordsType>SearchOnly</adWordsType>
<keywordType>Broad</keywordType>
<startDay>2008-01-01</startDay>
<endDay>2008-01-31</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>
</job>
</validateReportJob>
|
|
Select a programming language to view its sample