What's new? | Help | Directory | Sign in
Google
             
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
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
// Copyright 2008, Google Inc. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

/**
* This code sample retrieves a keyword report for the AdWords account that
* belongs to the customer issuing the request.
*/

using SampleCode.com.google.sandbox.v12.ReportService;

using System;
using System.Threading;
using System.Web.Services.Protocols;

public class ScheduleReport {
// Provide AdWords login information.
private static String email = "INSERT_LOGIN_EMAIL_HERE";
private static String password = "INSERT_PASSWORD_HERE";
private static String clientEmail = "INSERT_CLIENT_LOGIN_EMAIL_HERE";
private static String useragent =
"INSERT_COMPANY_NAME: AdWords API DotNet Sample Code";
private static String developerToken = "INSERT_DEVELOPER_TOKEN_HERE";
private static String applicationToken =
"INSERT_APPLICATION_TOKEN_HERE";

public static void Main() {
try {
// Set up service connection.
ReportService service = new ReportService();

// Define SOAP headers.
service.emailValue = new email();
service.emailValue.Text = new String[] {email};
service.passwordValue = new password();
service.passwordValue.Text = new String[] {password};
service.clientEmailValue = new clientEmail();
service.clientEmailValue.Text = new String[] {clientEmail};
service.useragentValue = new useragent();
service.useragentValue.Text = new String[] {useragent};
service.developerTokenValue = new developerToken();
service.developerTokenValue.Text = new String[] {developerToken};
service.applicationTokenValue = new applicationToken();
service.applicationTokenValue.Text = new String[] {applicationToken};

// 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(2008, 1, 1);
job.endDay = new DateTime(2008, 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);
Console.WriteLine("Report is available at \"" + url + "\".");
} catch (SoapException e) {
Console.WriteLine(
"Report job failed validation due to the following error: \""
+ e.Message + "\".");
}
} catch (Exception e) {
Console.WriteLine(e);
}
}
}
Show details Hide details

Change log

r3 by api.arogal on Aug 12, 2008   Diff
Migrated all v11 files to v12 and removed
v11 refrences
Updated ChangeLog and README accordingly
Go to: 
Project members, sign in to write a code review

Older revisions

r2 by api.sgrinberg on Mar 11, 2008   Diff
Initial release of the AdWords API
DotNet Sample Code.
All revisions of this file

File info

Size: 3998 bytes, 104 lines