adwords4r 0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. data/Authors.txt +2 -0
  2. data/ChangeLog.txt +4 -0
  3. data/Copying.txt +28 -0
  4. data/Licence.txt +10 -0
  5. data/Rakefile +190 -0
  6. data/Readme.txt +61 -0
  7. data/Todo.txt +9 -0
  8. data/examples/campaign.rb +36 -0
  9. data/examples/framework.rb +6 -0
  10. data/lib/adwords4r.rb +136 -0
  11. data/lib/adwords4r/credentials.rb +37 -0
  12. data/lib/adwords4r/services.rb +41 -0
  13. data/lib/adwords4r/v2/AccountService.rb +626 -0
  14. data/lib/adwords4r/v2/AccountServiceDriver.rb +153 -0
  15. data/lib/adwords4r/v2/AdGroupService.rb +315 -0
  16. data/lib/adwords4r/v2/AdGroupServiceDriver.rb +97 -0
  17. data/lib/adwords4r/v2/CampaignService.rb +515 -0
  18. data/lib/adwords4r/v2/CampaignServiceDriver.rb +111 -0
  19. data/lib/adwords4r/v2/CreativeService.rb +399 -0
  20. data/lib/adwords4r/v2/CreativeServiceDriver.rb +104 -0
  21. data/lib/adwords4r/v2/CriterionService.rb +413 -0
  22. data/lib/adwords4r/v2/CriterionServiceDriver.rb +97 -0
  23. data/lib/adwords4r/v2/InfoService.rb +258 -0
  24. data/lib/adwords4r/v2/InfoServiceDriver.rb +90 -0
  25. data/lib/adwords4r/v2/KeywordService.rb +541 -0
  26. data/lib/adwords4r/v2/KeywordServiceDriver.rb +125 -0
  27. data/lib/adwords4r/v2/ReportService.rb +567 -0
  28. data/lib/adwords4r/v2/ReportServiceDriver.rb +83 -0
  29. data/lib/adwords4r/v2/TrafficEstimatorService.rb +249 -0
  30. data/lib/adwords4r/v2/TrafficEstimatorServiceDriver.rb +62 -0
  31. data/lib/adwords4r/v2/default.rb +364 -0
  32. data/lib/adwords4r/v2/defaultDriver.rb +102 -0
  33. data/lib/adwords4r/v3/AccountService.rb +626 -0
  34. data/lib/adwords4r/v3/AccountServiceDriver.rb +153 -0
  35. data/lib/adwords4r/v3/AdGroupService.rb +318 -0
  36. data/lib/adwords4r/v3/AdGroupServiceDriver.rb +97 -0
  37. data/lib/adwords4r/v3/CampaignService.rb +529 -0
  38. data/lib/adwords4r/v3/CampaignServiceDriver.rb +111 -0
  39. data/lib/adwords4r/v3/CreativeService.rb +399 -0
  40. data/lib/adwords4r/v3/CreativeServiceDriver.rb +104 -0
  41. data/lib/adwords4r/v3/CriterionService.rb +413 -0
  42. data/lib/adwords4r/v3/CriterionServiceDriver.rb +97 -0
  43. data/lib/adwords4r/v3/InfoService.rb +258 -0
  44. data/lib/adwords4r/v3/InfoServiceDriver.rb +90 -0
  45. data/lib/adwords4r/v3/KeywordService.rb +541 -0
  46. data/lib/adwords4r/v3/KeywordServiceDriver.rb +125 -0
  47. data/lib/adwords4r/v3/KeywordToolService.rb +225 -0
  48. data/lib/adwords4r/v3/KeywordToolServiceDriver.rb +55 -0
  49. data/lib/adwords4r/v3/ReportService.rb +567 -0
  50. data/lib/adwords4r/v3/ReportServiceDriver.rb +83 -0
  51. data/lib/adwords4r/v3/TrafficEstimatorService.rb +263 -0
  52. data/lib/adwords4r/v3/TrafficEstimatorServiceDriver.rb +62 -0
  53. data/scripts/publish.rb +16 -0
  54. data/setup.rb +1585 -0
  55. metadata +92 -0
@@ -0,0 +1,125 @@
1
+ require 'adwords4r/v2/KeywordService'
2
+
3
+ require 'soap/rpc/driver'
4
+ module AdWordsV2
5
+
6
+ class KeywordService < ::SOAP::RPC::Driver
7
+ DefaultEndpointUrl = "https://adwords.google.com:443/api/adwords/v2/KeywordService"
8
+ MappingRegistry = ::SOAP::Mapping::Registry.new
9
+
10
+ Methods = [
11
+ [ "",
12
+ "getAllKeywords",
13
+ [ ["in", "parameters", ["::SOAP::SOAPElement", "https://adwords.google.com/api/adwords/v2", "getAllKeywords"], true],
14
+ ["out", "parameters", ["::SOAP::SOAPElement", "https://adwords.google.com/api/adwords/v2", "getAllKeywordsResponse"], true] ],
15
+ { :request_style => :document, :request_use => :literal,
16
+ :response_style => :document, :response_use => :literal }
17
+ ],
18
+ [ "",
19
+ "getKeywordList",
20
+ [ ["in", "parameters", ["::SOAP::SOAPElement", "https://adwords.google.com/api/adwords/v2", "getKeywordList"], true],
21
+ ["out", "parameters", ["::SOAP::SOAPElement", "https://adwords.google.com/api/adwords/v2", "getKeywordListResponse"], true] ],
22
+ { :request_style => :document, :request_use => :literal,
23
+ :response_style => :document, :response_use => :literal }
24
+ ],
25
+ [ "",
26
+ "getActiveKeywords",
27
+ [ ["in", "parameters", ["::SOAP::SOAPElement", "https://adwords.google.com/api/adwords/v2", "getActiveKeywords"], true],
28
+ ["out", "parameters", ["::SOAP::SOAPElement", "https://adwords.google.com/api/adwords/v2", "getActiveKeywordsResponse"], true] ],
29
+ { :request_style => :document, :request_use => :literal,
30
+ :response_style => :document, :response_use => :literal }
31
+ ],
32
+ [ "",
33
+ "setKeywordListMaxCpc",
34
+ [ ["in", "parameters", ["::SOAP::SOAPElement", "https://adwords.google.com/api/adwords/v2", "setKeywordListMaxCpc"], true],
35
+ ["out", "parameters", ["::SOAP::SOAPElement", "https://adwords.google.com/api/adwords/v2", "setKeywordListMaxCpcResponse"], true] ],
36
+ { :request_style => :document, :request_use => :literal,
37
+ :response_style => :document, :response_use => :literal }
38
+ ],
39
+ [ "",
40
+ "setKeywordListSingleMaxCpc",
41
+ [ ["in", "parameters", ["::SOAP::SOAPElement", "https://adwords.google.com/api/adwords/v2", "setKeywordListSingleMaxCpc"], true],
42
+ ["out", "parameters", ["::SOAP::SOAPElement", "https://adwords.google.com/api/adwords/v2", "setKeywordListSingleMaxCpcResponse"], true] ],
43
+ { :request_style => :document, :request_use => :literal,
44
+ :response_style => :document, :response_use => :literal }
45
+ ],
46
+ [ "",
47
+ "updateKeyword",
48
+ [ ["in", "parameters", ["::SOAP::SOAPElement", "https://adwords.google.com/api/adwords/v2", "updateKeyword"], true],
49
+ ["out", "parameters", ["::SOAP::SOAPElement", "https://adwords.google.com/api/adwords/v2", "updateKeywordResponse"], true] ],
50
+ { :request_style => :document, :request_use => :literal,
51
+ :response_style => :document, :response_use => :literal }
52
+ ],
53
+ [ "",
54
+ "updateKeywordList",
55
+ [ ["in", "parameters", ["::SOAP::SOAPElement", "https://adwords.google.com/api/adwords/v2", "updateKeywordList"], true],
56
+ ["out", "parameters", ["::SOAP::SOAPElement", "https://adwords.google.com/api/adwords/v2", "updateKeywordListResponse"], true] ],
57
+ { :request_style => :document, :request_use => :literal,
58
+ :response_style => :document, :response_use => :literal }
59
+ ],
60
+ [ "",
61
+ "addKeyword",
62
+ [ ["in", "parameters", ["::SOAP::SOAPElement", "https://adwords.google.com/api/adwords/v2", "addKeyword"], true],
63
+ ["out", "parameters", ["::SOAP::SOAPElement", "https://adwords.google.com/api/adwords/v2", "addKeywordResponse"], true] ],
64
+ { :request_style => :document, :request_use => :literal,
65
+ :response_style => :document, :response_use => :literal }
66
+ ],
67
+ [ "",
68
+ "addKeywordList",
69
+ [ ["in", "parameters", ["::SOAP::SOAPElement", "https://adwords.google.com/api/adwords/v2", "addKeywordList"], true],
70
+ ["out", "parameters", ["::SOAP::SOAPElement", "https://adwords.google.com/api/adwords/v2", "addKeywordListResponse"], true] ],
71
+ { :request_style => :document, :request_use => :literal,
72
+ :response_style => :document, :response_use => :literal }
73
+ ],
74
+ [ "",
75
+ "removeKeywordList",
76
+ [ ["in", "parameters", ["::SOAP::SOAPElement", "https://adwords.google.com/api/adwords/v2", "removeKeywordList"], true],
77
+ ["out", "parameters", ["::SOAP::SOAPElement", "https://adwords.google.com/api/adwords/v2", "removeKeywordListResponse"], true] ],
78
+ { :request_style => :document, :request_use => :literal,
79
+ :response_style => :document, :response_use => :literal }
80
+ ],
81
+ [ "",
82
+ "removeKeyword",
83
+ [ ["in", "parameters", ["::SOAP::SOAPElement", "https://adwords.google.com/api/adwords/v2", "removeKeyword"], true],
84
+ ["out", "parameters", ["::SOAP::SOAPElement", "https://adwords.google.com/api/adwords/v2", "removeKeywordResponse"], true] ],
85
+ { :request_style => :document, :request_use => :literal,
86
+ :response_style => :document, :response_use => :literal }
87
+ ],
88
+ [ "",
89
+ "getKeywordStats",
90
+ [ ["in", "parameters", ["::SOAP::SOAPElement", "https://adwords.google.com/api/adwords/v2", "getKeywordStats"], true],
91
+ ["out", "parameters", ["::SOAP::SOAPElement", "https://adwords.google.com/api/adwords/v2", "getKeywordStatsResponse"], true] ],
92
+ { :request_style => :document, :request_use => :literal,
93
+ :response_style => :document, :response_use => :literal }
94
+ ]
95
+ ]
96
+
97
+ def initialize(endpoint_url = nil)
98
+ endpoint_url ||= DefaultEndpointUrl
99
+ super(endpoint_url, nil)
100
+ self.mapping_registry = MappingRegistry
101
+ init_methods
102
+ end
103
+
104
+ private
105
+
106
+ def init_methods
107
+ Methods.each do |definitions|
108
+ opt = definitions.last
109
+ if opt[:request_style] == :document
110
+ add_document_operation(*definitions)
111
+ else
112
+ add_rpc_operation(*definitions)
113
+ qname = definitions[0]
114
+ name = definitions[2]
115
+ if qname.name != name and qname.name.capitalize == name.capitalize
116
+ ::SOAP::Mapping.define_singleton_method(self, qname.name) do |*arg|
117
+ __send__(name, *arg)
118
+ end
119
+ end
120
+ end
121
+ end
122
+ end
123
+ end
124
+
125
+ end
@@ -0,0 +1,567 @@
1
+ require 'xsd/qname'
2
+
3
+ # {https://adwords.google.com/api/adwords/v2}scheduleReportJob
4
+ class ScheduleReportJob
5
+ @@schema_type = "scheduleReportJob"
6
+ @@schema_ns = "https://adwords.google.com/api/adwords/v2"
7
+ @@schema_qualified = "true"
8
+ @@schema_element = [
9
+ ["job", "ReportJob"]
10
+ ]
11
+
12
+ attr_accessor :job
13
+
14
+ def initialize(job = nil)
15
+ @job = job
16
+ end
17
+ end
18
+
19
+ # {https://adwords.google.com/api/adwords/v2}scheduleReportJobResponse
20
+ class ScheduleReportJobResponse
21
+ @@schema_type = "scheduleReportJobResponse"
22
+ @@schema_ns = "https://adwords.google.com/api/adwords/v2"
23
+ @@schema_qualified = "true"
24
+ @@schema_element = [
25
+ ["scheduleReportJobReturn", "Long"]
26
+ ]
27
+
28
+ attr_accessor :scheduleReportJobReturn
29
+
30
+ def initialize(scheduleReportJobReturn = nil)
31
+ @scheduleReportJobReturn = scheduleReportJobReturn
32
+ end
33
+ end
34
+
35
+ # {https://adwords.google.com/api/adwords/v2}getReportJobStatus
36
+ class GetReportJobStatus
37
+ @@schema_type = "getReportJobStatus"
38
+ @@schema_ns = "https://adwords.google.com/api/adwords/v2"
39
+ @@schema_qualified = "true"
40
+ @@schema_element = [
41
+ ["reportJobId", "Long"]
42
+ ]
43
+
44
+ attr_accessor :reportJobId
45
+
46
+ def initialize(reportJobId = nil)
47
+ @reportJobId = reportJobId
48
+ end
49
+ end
50
+
51
+ # {https://adwords.google.com/api/adwords/v2}getReportJobStatusResponse
52
+ class GetReportJobStatusResponse
53
+ @@schema_type = "getReportJobStatusResponse"
54
+ @@schema_ns = "https://adwords.google.com/api/adwords/v2"
55
+ @@schema_qualified = "true"
56
+ @@schema_element = [
57
+ ["getReportJobStatusReturn", "ReportJobStatus"]
58
+ ]
59
+
60
+ attr_accessor :getReportJobStatusReturn
61
+
62
+ def initialize(getReportJobStatusReturn = nil)
63
+ @getReportJobStatusReturn = getReportJobStatusReturn
64
+ end
65
+ end
66
+
67
+ # {https://adwords.google.com/api/adwords/v2}getReportDownloadUrl
68
+ class GetReportDownloadUrl
69
+ @@schema_type = "getReportDownloadUrl"
70
+ @@schema_ns = "https://adwords.google.com/api/adwords/v2"
71
+ @@schema_qualified = "true"
72
+ @@schema_element = [
73
+ ["reportJobId", "Long"]
74
+ ]
75
+
76
+ attr_accessor :reportJobId
77
+
78
+ def initialize(reportJobId = nil)
79
+ @reportJobId = reportJobId
80
+ end
81
+ end
82
+
83
+ # {https://adwords.google.com/api/adwords/v2}getReportDownloadUrlResponse
84
+ class GetReportDownloadUrlResponse
85
+ @@schema_type = "getReportDownloadUrlResponse"
86
+ @@schema_ns = "https://adwords.google.com/api/adwords/v2"
87
+ @@schema_qualified = "true"
88
+ @@schema_element = [
89
+ ["getReportDownloadUrlReturn", "String"]
90
+ ]
91
+
92
+ attr_accessor :getReportDownloadUrlReturn
93
+
94
+ def initialize(getReportDownloadUrlReturn = nil)
95
+ @getReportDownloadUrlReturn = getReportDownloadUrlReturn
96
+ end
97
+ end
98
+
99
+ # {https://adwords.google.com/api/adwords/v2}getGzipReportDownloadUrl
100
+ class GetGzipReportDownloadUrl
101
+ @@schema_type = "getGzipReportDownloadUrl"
102
+ @@schema_ns = "https://adwords.google.com/api/adwords/v2"
103
+ @@schema_qualified = "true"
104
+ @@schema_element = [
105
+ ["reportJobId", "Long"]
106
+ ]
107
+
108
+ attr_accessor :reportJobId
109
+
110
+ def initialize(reportJobId = nil)
111
+ @reportJobId = reportJobId
112
+ end
113
+ end
114
+
115
+ # {https://adwords.google.com/api/adwords/v2}getGzipReportDownloadUrlResponse
116
+ class GetGzipReportDownloadUrlResponse
117
+ @@schema_type = "getGzipReportDownloadUrlResponse"
118
+ @@schema_ns = "https://adwords.google.com/api/adwords/v2"
119
+ @@schema_qualified = "true"
120
+ @@schema_element = [
121
+ ["getGzipReportDownloadUrlReturn", "String"]
122
+ ]
123
+
124
+ attr_accessor :getGzipReportDownloadUrlReturn
125
+
126
+ def initialize(getGzipReportDownloadUrlReturn = nil)
127
+ @getGzipReportDownloadUrlReturn = getGzipReportDownloadUrlReturn
128
+ end
129
+ end
130
+
131
+ # {https://adwords.google.com/api/adwords/v2}getAllJobs
132
+ class GetAllJobs
133
+ @@schema_type = "getAllJobs"
134
+ @@schema_ns = "https://adwords.google.com/api/adwords/v2"
135
+ @@schema_qualified = "true"
136
+ @@schema_element = []
137
+
138
+ def initialize
139
+ end
140
+ end
141
+
142
+ # {https://adwords.google.com/api/adwords/v2}getAllJobsResponse
143
+ class GetAllJobsResponse < ::Array
144
+ @@schema_element = [
145
+ ["getAllJobsReturn", ["ReportJob[]", XSD::QName.new("https://adwords.google.com/api/adwords/v2", "getAllJobsReturn")]]
146
+ ]
147
+ end
148
+
149
+ # {https://adwords.google.com/api/adwords/v2}deleteReport
150
+ class DeleteReport
151
+ @@schema_type = "deleteReport"
152
+ @@schema_ns = "https://adwords.google.com/api/adwords/v2"
153
+ @@schema_qualified = "true"
154
+ @@schema_element = [
155
+ ["reportJobId", "Long"]
156
+ ]
157
+
158
+ attr_accessor :reportJobId
159
+
160
+ def initialize(reportJobId = nil)
161
+ @reportJobId = reportJobId
162
+ end
163
+ end
164
+
165
+ # {https://adwords.google.com/api/adwords/v2}deleteReportResponse
166
+ class DeleteReportResponse
167
+ @@schema_type = "deleteReportResponse"
168
+ @@schema_ns = "https://adwords.google.com/api/adwords/v2"
169
+ @@schema_qualified = "true"
170
+ @@schema_element = []
171
+
172
+ def initialize
173
+ end
174
+ end
175
+
176
+ # {https://adwords.google.com/api/adwords/v2}ApiException
177
+ class ApiException
178
+ @@schema_type = "ApiException"
179
+ @@schema_ns = "https://adwords.google.com/api/adwords/v2"
180
+ @@schema_element = [
181
+ ["code", "Int"],
182
+ ["internal", "Boolean"],
183
+ ["message", "String"],
184
+ ["trigger", "String"],
185
+ ["violations", "String"]
186
+ ]
187
+
188
+ attr_accessor :code
189
+ attr_accessor :internal
190
+ attr_accessor :message
191
+ attr_accessor :trigger
192
+ attr_accessor :violations
193
+
194
+ def initialize(code = nil, internal = nil, message = nil, trigger = nil, violations = nil)
195
+ @code = code
196
+ @internal = internal
197
+ @message = message
198
+ @trigger = trigger
199
+ @violations = violations
200
+ end
201
+ end
202
+
203
+ # {https://adwords.google.com/api/adwords/v2}ReportJob
204
+ class ReportJob
205
+ @@schema_type = "ReportJob"
206
+ @@schema_ns = "https://adwords.google.com/api/adwords/v2"
207
+ @@schema_element = [
208
+ ["id", "Long"],
209
+ ["name", "String"],
210
+ ["aggregationType", "AggregationType"],
211
+ ["startDate", "DateTime"],
212
+ ["endDate", "DateTime"],
213
+ ["status", "ReportJobStatus"],
214
+ ["crossClient", "Boolean"],
215
+ ["clientAccounts", "Int[]"]
216
+ ]
217
+
218
+ attr_accessor :id
219
+ attr_accessor :name
220
+ attr_accessor :aggregationType
221
+ attr_accessor :startDate
222
+ attr_accessor :endDate
223
+ attr_accessor :status
224
+ attr_accessor :crossClient
225
+ attr_accessor :clientAccounts
226
+
227
+ def initialize(id = nil, name = nil, aggregationType = nil, startDate = nil, endDate = nil, status = nil, crossClient = nil, clientAccounts = [])
228
+ @id = id
229
+ @name = name
230
+ @aggregationType = aggregationType
231
+ @startDate = startDate
232
+ @endDate = endDate
233
+ @status = status
234
+ @crossClient = crossClient
235
+ @clientAccounts = clientAccounts
236
+ end
237
+ end
238
+
239
+ # {https://adwords.google.com/api/adwords/v2}KeywordReportJob
240
+ class KeywordReportJob
241
+ @@schema_type = "KeywordReportJob"
242
+ @@schema_ns = "https://adwords.google.com/api/adwords/v2"
243
+ @@schema_element = [
244
+ ["id", "Long"],
245
+ ["name", "String"],
246
+ ["aggregationType", "AggregationType"],
247
+ ["startDate", "DateTime"],
248
+ ["endDate", "DateTime"],
249
+ ["status", "ReportJobStatus"],
250
+ ["crossClient", "Boolean"],
251
+ ["clientAccounts", "Int[]"],
252
+ ["adWordsType", "AdWordsType"],
253
+ ["keywordStatuses", "KeywordStatus[]"],
254
+ ["keywordType", "KeywordType"],
255
+ ["campaigns", "Int[]"]
256
+ ]
257
+
258
+ attr_accessor :id
259
+ attr_accessor :name
260
+ attr_accessor :aggregationType
261
+ attr_accessor :startDate
262
+ attr_accessor :endDate
263
+ attr_accessor :status
264
+ attr_accessor :crossClient
265
+ attr_accessor :clientAccounts
266
+ attr_accessor :adWordsType
267
+ attr_accessor :keywordStatuses
268
+ attr_accessor :keywordType
269
+ attr_accessor :campaigns
270
+
271
+ def initialize(id = nil, name = nil, aggregationType = nil, startDate = nil, endDate = nil, status = nil, crossClient = nil, clientAccounts = [], adWordsType = nil, keywordStatuses = [], keywordType = nil, campaigns = [])
272
+ @id = id
273
+ @name = name
274
+ @aggregationType = aggregationType
275
+ @startDate = startDate
276
+ @endDate = endDate
277
+ @status = status
278
+ @crossClient = crossClient
279
+ @clientAccounts = clientAccounts
280
+ @adWordsType = adWordsType
281
+ @keywordStatuses = keywordStatuses
282
+ @keywordType = keywordType
283
+ @campaigns = campaigns
284
+ end
285
+ end
286
+
287
+ # {https://adwords.google.com/api/adwords/v2}AdTextReportJob
288
+ class AdTextReportJob
289
+ @@schema_type = "AdTextReportJob"
290
+ @@schema_ns = "https://adwords.google.com/api/adwords/v2"
291
+ @@schema_element = [
292
+ ["id", "Long"],
293
+ ["name", "String"],
294
+ ["aggregationType", "AggregationType"],
295
+ ["startDate", "DateTime"],
296
+ ["endDate", "DateTime"],
297
+ ["status", "ReportJobStatus"],
298
+ ["crossClient", "Boolean"],
299
+ ["clientAccounts", "Int[]"],
300
+ ["adWordsType", "AdWordsType"],
301
+ ["campaigns", "Int[]"]
302
+ ]
303
+
304
+ attr_accessor :id
305
+ attr_accessor :name
306
+ attr_accessor :aggregationType
307
+ attr_accessor :startDate
308
+ attr_accessor :endDate
309
+ attr_accessor :status
310
+ attr_accessor :crossClient
311
+ attr_accessor :clientAccounts
312
+ attr_accessor :adWordsType
313
+ attr_accessor :campaigns
314
+
315
+ def initialize(id = nil, name = nil, aggregationType = nil, startDate = nil, endDate = nil, status = nil, crossClient = nil, clientAccounts = [], adWordsType = nil, campaigns = [])
316
+ @id = id
317
+ @name = name
318
+ @aggregationType = aggregationType
319
+ @startDate = startDate
320
+ @endDate = endDate
321
+ @status = status
322
+ @crossClient = crossClient
323
+ @clientAccounts = clientAccounts
324
+ @adWordsType = adWordsType
325
+ @campaigns = campaigns
326
+ end
327
+ end
328
+
329
+ # {https://adwords.google.com/api/adwords/v2}UrlReportJob
330
+ class UrlReportJob
331
+ @@schema_type = "UrlReportJob"
332
+ @@schema_ns = "https://adwords.google.com/api/adwords/v2"
333
+ @@schema_element = [
334
+ ["id", "Long"],
335
+ ["name", "String"],
336
+ ["aggregationType", "AggregationType"],
337
+ ["startDate", "DateTime"],
338
+ ["endDate", "DateTime"],
339
+ ["status", "ReportJobStatus"],
340
+ ["crossClient", "Boolean"],
341
+ ["clientAccounts", "Int[]"],
342
+ ["adWordsType", "AdWordsType"],
343
+ ["campaigns", "Int[]"]
344
+ ]
345
+
346
+ attr_accessor :id
347
+ attr_accessor :name
348
+ attr_accessor :aggregationType
349
+ attr_accessor :startDate
350
+ attr_accessor :endDate
351
+ attr_accessor :status
352
+ attr_accessor :crossClient
353
+ attr_accessor :clientAccounts
354
+ attr_accessor :adWordsType
355
+ attr_accessor :campaigns
356
+
357
+ def initialize(id = nil, name = nil, aggregationType = nil, startDate = nil, endDate = nil, status = nil, crossClient = nil, clientAccounts = [], adWordsType = nil, campaigns = [])
358
+ @id = id
359
+ @name = name
360
+ @aggregationType = aggregationType
361
+ @startDate = startDate
362
+ @endDate = endDate
363
+ @status = status
364
+ @crossClient = crossClient
365
+ @clientAccounts = clientAccounts
366
+ @adWordsType = adWordsType
367
+ @campaigns = campaigns
368
+ end
369
+ end
370
+
371
+ # {https://adwords.google.com/api/adwords/v2}CustomReportJob
372
+ class CustomReportJob
373
+ @@schema_type = "CustomReportJob"
374
+ @@schema_ns = "https://adwords.google.com/api/adwords/v2"
375
+ @@schema_element = [
376
+ ["id", "Long"],
377
+ ["name", "String"],
378
+ ["aggregationType", "AggregationType"],
379
+ ["startDate", "DateTime"],
380
+ ["endDate", "DateTime"],
381
+ ["status", "ReportJobStatus"],
382
+ ["crossClient", "Boolean"],
383
+ ["clientAccounts", "Int[]"],
384
+ ["keywords", "String[]"],
385
+ ["keywordStatuses", "KeywordStatus[]"],
386
+ ["keywordType", "KeywordType"],
387
+ ["campaignStatuses", "CampaignStatus[]"],
388
+ ["campaigns", "Int[]"],
389
+ ["adGroupStatuses", "AdGroupStatus[]"],
390
+ ["adGroups", "Int[]"],
391
+ ["adWordsType", "AdWordsType"],
392
+ ["customOptions", "CustomReportOption[]"]
393
+ ]
394
+
395
+ attr_accessor :id
396
+ attr_accessor :name
397
+ attr_accessor :aggregationType
398
+ attr_accessor :startDate
399
+ attr_accessor :endDate
400
+ attr_accessor :status
401
+ attr_accessor :crossClient
402
+ attr_accessor :clientAccounts
403
+ attr_accessor :keywords
404
+ attr_accessor :keywordStatuses
405
+ attr_accessor :keywordType
406
+ attr_accessor :campaignStatuses
407
+ attr_accessor :campaigns
408
+ attr_accessor :adGroupStatuses
409
+ attr_accessor :adGroups
410
+ attr_accessor :adWordsType
411
+ attr_accessor :customOptions
412
+
413
+ def initialize(id = nil, name = nil, aggregationType = nil, startDate = nil, endDate = nil, status = nil, crossClient = nil, clientAccounts = [], keywords = [], keywordStatuses = [], keywordType = nil, campaignStatuses = [], campaigns = [], adGroupStatuses = [], adGroups = [], adWordsType = nil, customOptions = [])
414
+ @id = id
415
+ @name = name
416
+ @aggregationType = aggregationType
417
+ @startDate = startDate
418
+ @endDate = endDate
419
+ @status = status
420
+ @crossClient = crossClient
421
+ @clientAccounts = clientAccounts
422
+ @keywords = keywords
423
+ @keywordStatuses = keywordStatuses
424
+ @keywordType = keywordType
425
+ @campaignStatuses = campaignStatuses
426
+ @campaigns = campaigns
427
+ @adGroupStatuses = adGroupStatuses
428
+ @adGroups = adGroups
429
+ @adWordsType = adWordsType
430
+ @customOptions = customOptions
431
+ end
432
+ end
433
+
434
+ # {https://adwords.google.com/api/adwords/v2}ReportJobStatus
435
+ class ReportJobStatus < ::String
436
+ @@schema_type = "ReportJobStatus"
437
+ @@schema_ns = "https://adwords.google.com/api/adwords/v2"
438
+
439
+ Completed = ReportJobStatus.new("Completed")
440
+ Failed = ReportJobStatus.new("Failed")
441
+ InProgress = ReportJobStatus.new("InProgress")
442
+ Pending = ReportJobStatus.new("Pending")
443
+ end
444
+
445
+ # {https://adwords.google.com/api/adwords/v2}AggregationType
446
+ class AggregationType < ::String
447
+ @@schema_type = "AggregationType"
448
+ @@schema_ns = "https://adwords.google.com/api/adwords/v2"
449
+
450
+ Daily = AggregationType.new("Daily")
451
+ Monthly = AggregationType.new("Monthly")
452
+ Quarterly = AggregationType.new("Quarterly")
453
+ Summary = AggregationType.new("Summary")
454
+ Yearly = AggregationType.new("Yearly")
455
+ end
456
+
457
+ # {https://adwords.google.com/api/adwords/v2}AdWordsType
458
+ class AdWordsType < ::String
459
+ @@schema_type = "AdWordsType"
460
+ @@schema_ns = "https://adwords.google.com/api/adwords/v2"
461
+
462
+ ContentOnly = AdWordsType.new("ContentOnly")
463
+ SearchOnly = AdWordsType.new("SearchOnly")
464
+ end
465
+
466
+ # {https://adwords.google.com/api/adwords/v2}KeywordStatus
467
+ class KeywordStatus < ::String
468
+ @@schema_type = "KeywordStatus"
469
+ @@schema_ns = "https://adwords.google.com/api/adwords/v2"
470
+
471
+ Deleted = KeywordStatus.new("Deleted")
472
+ Disabled = KeywordStatus.new("Disabled")
473
+ Disapproved = KeywordStatus.new("Disapproved")
474
+ InTrial = KeywordStatus.new("InTrial")
475
+ Normal = KeywordStatus.new("Normal")
476
+ OnHold = KeywordStatus.new("OnHold")
477
+ end
478
+
479
+ # {https://adwords.google.com/api/adwords/v2}KeywordType
480
+ class KeywordType < ::String
481
+ @@schema_type = "KeywordType"
482
+ @@schema_ns = "https://adwords.google.com/api/adwords/v2"
483
+
484
+ Broad = KeywordType.new("Broad")
485
+ Exact = KeywordType.new("Exact")
486
+ Phrase = KeywordType.new("Phrase")
487
+ end
488
+
489
+ # {https://adwords.google.com/api/adwords/v2}CampaignStatus
490
+ class CampaignStatus < ::String
491
+ @@schema_type = "CampaignStatus"
492
+ @@schema_ns = "https://adwords.google.com/api/adwords/v2"
493
+
494
+ Active = CampaignStatus.new("Active")
495
+ Deleted = CampaignStatus.new("Deleted")
496
+ Ended = CampaignStatus.new("Ended")
497
+ Paused = CampaignStatus.new("Paused")
498
+ Pending = CampaignStatus.new("Pending")
499
+ Suspended = CampaignStatus.new("Suspended")
500
+ end
501
+
502
+ # {https://adwords.google.com/api/adwords/v2}CustomReportOption
503
+ class CustomReportOption < ::String
504
+ @@schema_type = "CustomReportOption"
505
+ @@schema_ns = "https://adwords.google.com/api/adwords/v2"
506
+
507
+ AccountName = CustomReportOption.new("AccountName")
508
+ AdGroup = CustomReportOption.new("AdGroup")
509
+ AdGroupId = CustomReportOption.new("AdGroupId")
510
+ AdGroupStatus = CustomReportOption.new("AdGroupStatus")
511
+ AdWordsType = CustomReportOption.new("AdWordsType")
512
+ AverageConversionValue = CustomReportOption.new("AverageConversionValue")
513
+ AveragePosition = CustomReportOption.new("AveragePosition")
514
+ Campaign = CustomReportOption.new("Campaign")
515
+ CampaignEndDate = CustomReportOption.new("CampaignEndDate")
516
+ CampaignId = CustomReportOption.new("CampaignId")
517
+ CampaignStatus = CustomReportOption.new("CampaignStatus")
518
+ Clicks = CustomReportOption.new("Clicks")
519
+ ConversionRate = CustomReportOption.new("ConversionRate")
520
+ ConversionValuePerClick = CustomReportOption.new("ConversionValuePerClick")
521
+ ConversionValuePerCost = CustomReportOption.new("ConversionValuePerCost")
522
+ Conversions = CustomReportOption.new("Conversions")
523
+ Cost = CustomReportOption.new("Cost")
524
+ CostPerConversion = CustomReportOption.new("CostPerConversion")
525
+ CostPerTransaction = CustomReportOption.new("CostPerTransaction")
526
+ Cpc = CustomReportOption.new("Cpc")
527
+ CreativeDestinationUrl = CustomReportOption.new("CreativeDestinationUrl")
528
+ CreativeId = CustomReportOption.new("CreativeId")
529
+ CreativeStatus = CustomReportOption.new("CreativeStatus")
530
+ Ctr = CustomReportOption.new("Ctr")
531
+ DailyBudget = CustomReportOption.new("DailyBudget")
532
+ DefaultConversionCount = CustomReportOption.new("DefaultConversionCount")
533
+ DefaultConversionValue = CustomReportOption.new("DefaultConversionValue")
534
+ DescriptionLine1 = CustomReportOption.new("DescriptionLine1")
535
+ DescriptionLine2 = CustomReportOption.new("DescriptionLine2")
536
+ DescriptionLine3 = CustomReportOption.new("DescriptionLine3")
537
+ DestinationUrl = CustomReportOption.new("DestinationUrl")
538
+ Impressions = CustomReportOption.new("Impressions")
539
+ Keyword = CustomReportOption.new("Keyword")
540
+ KeywordDestinationUrl = CustomReportOption.new("KeywordDestinationUrl")
541
+ KeywordId = CustomReportOption.new("KeywordId")
542
+ KeywordStatus = CustomReportOption.new("KeywordStatus")
543
+ KeywordType = CustomReportOption.new("KeywordType")
544
+ LeadCount = CustomReportOption.new("LeadCount")
545
+ LeadValue = CustomReportOption.new("LeadValue")
546
+ MaximumCpc = CustomReportOption.new("MaximumCpc")
547
+ MinimumCpc = CustomReportOption.new("MinimumCpc")
548
+ PageViewCount = CustomReportOption.new("PageViewCount")
549
+ PageViewValue = CustomReportOption.new("PageViewValue")
550
+ SaleCount = CustomReportOption.new("SaleCount")
551
+ SaleValue = CustomReportOption.new("SaleValue")
552
+ SignupCount = CustomReportOption.new("SignupCount")
553
+ SignupValue = CustomReportOption.new("SignupValue")
554
+ TotalConversionValue = CustomReportOption.new("TotalConversionValue")
555
+ Transactions = CustomReportOption.new("Transactions")
556
+ VisibleUrl = CustomReportOption.new("VisibleUrl")
557
+ end
558
+
559
+ # {https://adwords.google.com/api/adwords/v2}AdGroupStatus
560
+ class AdGroupStatus < ::String
561
+ @@schema_type = "AdGroupStatus"
562
+ @@schema_ns = "https://adwords.google.com/api/adwords/v2"
563
+
564
+ Deleted = AdGroupStatus.new("Deleted")
565
+ Enabled = AdGroupStatus.new("Enabled")
566
+ Paused = AdGroupStatus.new("Paused")
567
+ end