adwords4r 0.4 → 0.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,4 @@
1
+ 0.5 Now supports AdWords API v4. Got rid of yaml dependency. Changed properties file name for default credentials to adwords.properties. Enhanced the readme.txt a bit. Added a few samples.
1
2
  0.4 Now all generated classes are within the Adwords module. Will make it easier to use that in Rails. Support for gen classes in a module is not implemented in soap4r for doc/literal style (it works for rpc/encoded). I logged a bug for soap4r. In the meantime I had to fix adwords4r from my module using module_eval to patch the Mapping class.
2
3
  0.3 fixed the bug in InfoService and many others. I fix the wsdl before generation.
3
4
  0.2 added packaging, made it a gem, and added a setup program, for easy installation in all configurations (gem and non gem).
data/Rakefile CHANGED
@@ -20,7 +20,7 @@ end
20
20
 
21
21
  CLOBBER.include('pkg')
22
22
 
23
- CURRENT_VERSION = '0.4'
23
+ CURRENT_VERSION = '0.5'
24
24
  PKG_VERSION = ENV['REL'] ? ENV['REL'] : CURRENT_VERSION
25
25
 
26
26
  SRC_RB = FileList['lib/**/*.rb']
@@ -32,9 +32,15 @@ SRC_RB = FileList['lib/**/*.rb']
32
32
 
33
33
  WSDLDIR = 'wsdl'
34
34
  LIBDIR = 'lib'
35
+ GENDIR = LIBDIR + '/adwords4r'
36
+
35
37
  logger = Logger.new(STDERR)
36
38
 
37
- #CLEAN.include(WSDLDIR)
39
+ CLEAN.include(WSDLDIR)
40
+ AdWords::Service.getVersions.each do |v|
41
+ vname = "v#{v}"
42
+ CLEAN.include(File.join(GENDIR, vname))
43
+ end
38
44
 
39
45
  desc "gets the wsdl and generates the classes"
40
46
  task :default => [:getwsdl, :generate]
@@ -189,6 +195,7 @@ Currently the following AdWords API versions are supported:
189
195
  s.email = "patrick@chanezon.com"
190
196
  s.homepage = "http://rubyforge.org/projects/adwords4r/"
191
197
  s.requirements << 'soap4r v 1.5.4 or greater'
198
+ s.requirements << 'http-access2 v 2.0.5 or greater'
192
199
  s.rubyforge_project = 'adwords4r'
193
200
  end
194
201
 
data/Readme.txt CHANGED
@@ -25,8 +25,17 @@ Then
25
25
  require 'adwords4r'
26
26
 
27
27
  adwords = AdWords::API.new
28
- creates a driver for the latest version of AdWords API using credentials provided in ~/.adwords.yaml
29
- If you want something more specific, use the optional paramters of the constructor
28
+ creates a driver for the latest version of AdWords API using credentials provided in ~/adwords.properties
29
+ There is an example in the root adwords4r directory.
30
+ You can also pass API a manually constructed AdWordsCredentials object like:
31
+ adwords = AdWords::API.new(AdWords::AdWordsCredentials.new(
32
+ { 'token' => 'mytoken',
33
+ 'useragent' => 'P@ playing with the API from ruby',
34
+ 'password' => 'mypasswd',
35
+ 'email' => 'em...@example.com'}
36
+ ))
37
+
38
+ If you want something more specific, use the optional parameters of the constructor
30
39
  adwords = AdWords::API.new(credentials, version)
31
40
 
32
41
  Then just use methods of the API against your driver.
@@ -34,6 +43,11 @@ adwords.getAllAdWordsCampaigns(123).each {|c| puts c.name}
34
43
 
35
44
  See sample code in examples.
36
45
 
46
+ The client code will generate warnings in the console:
47
+ Many: warning: already initialized constant XXX
48
+ A few: at depth 0 - 20: unable to get local issuer certificate
49
+ These are not serious: I need to make them go but they do not affect the correctness of the program.
50
+
37
51
  docs for developers
38
52
  -------------------
39
53
  rake getwsdl
data/Todo.txt CHANGED
@@ -1,12 +1,16 @@
1
1
  adwords4r todo list
2
2
  ---
3
3
  - use XSD::CodeGen::GenSupport.capitalize and unCapitalize instead of my own methods
4
+ - fix the bug in reports
4
5
  - handling quota management in the driver
5
6
  - pass in a hash for complex objects
6
7
  - comments everywhere, rdoc
7
8
  - documentation
8
- - more samples
9
+ - more samples: traffic_estimator, report,
9
10
 
11
+ OK- generate v4
12
+ OK- get rid of yaml dependency
13
+ OK- change the property file name to adwords.properties
10
14
  OK- make it work with all generated classes in their own module
11
15
  OK- fix bug in InfoService
12
16
  OK- gem file
@@ -0,0 +1,5 @@
1
+ token=my_token
2
+ useragent=P@ playing with the API from ruby
3
+ password=my_very_secret_password
4
+ email=toto@example.com
5
+ #clientEmail=titi@example.com
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'adwords4r'
4
+ require 'pp'
5
+
6
+ begin
7
+ adwords = AdWords::API.new
8
+ puts "result = #{adwords.getFreeUsageQuotaThisMonth().getFreeUsageQuotaThisMonthReturn}"
9
+
10
+ rescue AdWords::Error::UnknownAPICall => e
11
+ puts e
12
+ rescue AdWords::Error::ApiError => e
13
+ puts e.code
14
+ puts e.message
15
+ end
16
+
@@ -0,0 +1,42 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'adwords4r'
4
+ require 'open-uri'
5
+
6
+ service = AdWords::API.new
7
+
8
+ job = AdWords::KeywordReportJob.new
9
+ job.aggregationType = AdWords::AggregationType::Summary
10
+ job.startDay = Date.new(2006,1,1)
11
+ job.endDay = Date.today
12
+ job.name = "Report1"
13
+
14
+ begin
15
+ myJobId = service.scheduleReportJob(job)
16
+
17
+ status = service.getReportJobStatus(myJobId);
18
+
19
+ while (status != "Completed" && status != "Failed")
20
+ sleep 15
21
+ status = service.getReportJobStatus(myJobId)
22
+ puts "Report job status is " + status
23
+ end
24
+
25
+ if(status == "Failed")
26
+ puts("Job failed!")
27
+ else
28
+ # report is ready; download it
29
+ puts "The report is ready!"
30
+ url = service.getReportDownloadUrl(myJobId)
31
+ puts "Report Url: " + url
32
+ for line in open(url)
33
+ puts line
34
+ end
35
+ end
36
+ rescue AdWords::Error::UnknownAPICall => e
37
+ puts e
38
+ rescue AdWords::Error::ApiError => e
39
+ puts e.code
40
+ puts e.message
41
+ end
42
+
@@ -0,0 +1,31 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'adwords4r'
4
+ require 'pp'
5
+
6
+ SEP = "---"
7
+
8
+ def dumpObj(o)
9
+ str = ""
10
+ o.instance_variables.each { |v| str << dumpAttr(o, v)}
11
+ return str << SEP
12
+ end
13
+
14
+ def dumpAttr(o, v)
15
+ name = v.sub(/@/,'')
16
+ value = eval("o.#{name}.to_s")
17
+ return "#{name}: #{value}\n"
18
+ end
19
+
20
+ begin
21
+ adwords = AdWords::API.new
22
+
23
+ res = adwords.estimateKeywordList([AdWords::KeywordRequest.new(nil, 50000, false, 'flowers', 'Broad')])
24
+ res.each {|c| puts dumpObj(c)}
25
+
26
+ rescue AdWords::Error::UnknownAPICall => e
27
+ puts e
28
+ rescue AdWords::Error::ApiError => e
29
+ puts e.code
30
+ puts e.message
31
+ end
@@ -1,4 +1,3 @@
1
- require 'yaml'
2
1
  require 'soap/header/simplehandler'
3
2
 
4
3
  module AdWords
@@ -20,8 +19,13 @@ module AdWords
20
19
  attr_reader :handlers
21
20
 
22
21
  def getDefaults()
23
- prefs = YAML::load( File.open("#{ENV['HOME']}/.adwords-api.yaml", 'r'))
24
- credentials = prefs['credentials']
22
+ cred = Hash.new
23
+ IO.foreach("#{ENV['HOME']}/adwords.properties") {|line| addCredential(cred, line.split('=')) if !(line =~ /^#/)}
24
+ return cred
25
+ end
26
+
27
+ def addCredential(cred, arr)
28
+ cred[arr[0]] = arr[1]
25
29
  end
26
30
 
27
31
  def initialize(*parm)
@@ -1,15 +1,11 @@
1
- require 'yaml'
2
-
3
1
  module AdWords
4
2
 
5
3
  class Service
6
-
7
- SERVICE_YAML = <<PAT
8
- 2: [Creative, Keyword, Criterion, AdGroup, Campaign, TrafficEstimator, Report, Info, Account]
9
- 3: [Creative, Keyword, Criterion, AdGroup, Campaign, TrafficEstimator, Report, Info, Account, KeywordTool]
10
- PAT
11
4
 
12
- @@services = YAML::load(SERVICE_YAML)
5
+ @@services = {
6
+ 3 => ['Creative', 'Keyword', 'Criterion', 'AdGroup', 'Campaign', 'TrafficEstimator', 'Report', 'Info', 'Account', 'KeywordTool'],
7
+ 4 => ['Creative', 'Keyword', 'Criterion', 'AdGroup', 'Campaign', 'TrafficEstimator', 'Report', 'Info', 'Account', 'KeywordTool']
8
+ }
13
9
 
14
10
  def Service.getVersions
15
11
  @@services.keys
@@ -0,0 +1,709 @@
1
+ module AdWords
2
+ require 'xsd/qname'
3
+
4
+ # {https://adwords.google.com/api/adwords/v4}createAdWordsAccount
5
+ class CreateAdWordsAccount
6
+ @@schema_type = "createAdWordsAccount"
7
+ @@schema_ns = "https://adwords.google.com/api/adwords/v4"
8
+ @@schema_qualified = "true"
9
+ @@schema_element = [
10
+ ["loginEmail", "SOAP::SOAPString"],
11
+ ["password", "SOAP::SOAPString"],
12
+ ["languagePreference", "SOAP::SOAPString"],
13
+ ["emailPrefs", "EmailPromotionsPreferences"],
14
+ ["currencyCode", "SOAP::SOAPString"],
15
+ ["cardInfo", "CreditCard"],
16
+ ["contactInfo", "Address"],
17
+ ["defaultAdsCoverage", "CoverageType"]
18
+ ]
19
+
20
+ attr_accessor :loginEmail
21
+ attr_accessor :password
22
+ attr_accessor :languagePreference
23
+ attr_accessor :emailPrefs
24
+ attr_accessor :currencyCode
25
+ attr_accessor :cardInfo
26
+ attr_accessor :contactInfo
27
+ attr_accessor :defaultAdsCoverage
28
+
29
+ def initialize(loginEmail = nil, password = nil, languagePreference = nil, emailPrefs = nil, currencyCode = nil, cardInfo = nil, contactInfo = nil, defaultAdsCoverage = nil)
30
+ @loginEmail = loginEmail
31
+ @password = password
32
+ @languagePreference = languagePreference
33
+ @emailPrefs = emailPrefs
34
+ @currencyCode = currencyCode
35
+ @cardInfo = cardInfo
36
+ @contactInfo = contactInfo
37
+ @defaultAdsCoverage = defaultAdsCoverage
38
+ end
39
+ end
40
+
41
+ # {https://adwords.google.com/api/adwords/v4}createAdWordsAccountResponse
42
+ class CreateAdWordsAccountResponse
43
+ @@schema_type = "createAdWordsAccountResponse"
44
+ @@schema_ns = "https://adwords.google.com/api/adwords/v4"
45
+ @@schema_qualified = "true"
46
+ @@schema_element = []
47
+
48
+ def initialize
49
+ end
50
+ end
51
+
52
+ # {https://adwords.google.com/api/adwords/v4}setLoginInfo
53
+ class SetLoginInfo
54
+ @@schema_type = "setLoginInfo"
55
+ @@schema_ns = "https://adwords.google.com/api/adwords/v4"
56
+ @@schema_qualified = "true"
57
+ @@schema_element = [
58
+ ["login", "SOAP::SOAPString"],
59
+ ["newPassword", "SOAP::SOAPString"]
60
+ ]
61
+
62
+ attr_accessor :login
63
+ attr_accessor :newPassword
64
+
65
+ def initialize(login = nil, newPassword = nil)
66
+ @login = login
67
+ @newPassword = newPassword
68
+ end
69
+ end
70
+
71
+ # {https://adwords.google.com/api/adwords/v4}setLoginInfoResponse
72
+ class SetLoginInfoResponse
73
+ @@schema_type = "setLoginInfoResponse"
74
+ @@schema_ns = "https://adwords.google.com/api/adwords/v4"
75
+ @@schema_qualified = "true"
76
+ @@schema_element = []
77
+
78
+ def initialize
79
+ end
80
+ end
81
+
82
+ # {https://adwords.google.com/api/adwords/v4}getAccountCurrency
83
+ class GetAccountCurrency
84
+ @@schema_type = "getAccountCurrency"
85
+ @@schema_ns = "https://adwords.google.com/api/adwords/v4"
86
+ @@schema_qualified = "true"
87
+ @@schema_element = []
88
+
89
+ def initialize
90
+ end
91
+ end
92
+
93
+ # {https://adwords.google.com/api/adwords/v4}getAccountCurrencyResponse
94
+ class GetAccountCurrencyResponse
95
+ @@schema_type = "getAccountCurrencyResponse"
96
+ @@schema_ns = "https://adwords.google.com/api/adwords/v4"
97
+ @@schema_qualified = "true"
98
+ @@schema_element = [
99
+ ["getAccountCurrencyReturn", "SOAP::SOAPString"]
100
+ ]
101
+
102
+ attr_accessor :getAccountCurrencyReturn
103
+
104
+ def initialize(getAccountCurrencyReturn = nil)
105
+ @getAccountCurrencyReturn = getAccountCurrencyReturn
106
+ end
107
+ end
108
+
109
+ # {https://adwords.google.com/api/adwords/v4}getCreditCard
110
+ class GetCreditCard
111
+ @@schema_type = "getCreditCard"
112
+ @@schema_ns = "https://adwords.google.com/api/adwords/v4"
113
+ @@schema_qualified = "true"
114
+ @@schema_element = []
115
+
116
+ def initialize
117
+ end
118
+ end
119
+
120
+ # {https://adwords.google.com/api/adwords/v4}getCreditCardResponse
121
+ class GetCreditCardResponse
122
+ @@schema_type = "getCreditCardResponse"
123
+ @@schema_ns = "https://adwords.google.com/api/adwords/v4"
124
+ @@schema_qualified = "true"
125
+ @@schema_element = [
126
+ ["getCreditCardReturn", "CreditCard"]
127
+ ]
128
+
129
+ attr_accessor :getCreditCardReturn
130
+
131
+ def initialize(getCreditCardReturn = nil)
132
+ @getCreditCardReturn = getCreditCardReturn
133
+ end
134
+ end
135
+
136
+ # {https://adwords.google.com/api/adwords/v4}getBillingAddress
137
+ class GetBillingAddress
138
+ @@schema_type = "getBillingAddress"
139
+ @@schema_ns = "https://adwords.google.com/api/adwords/v4"
140
+ @@schema_qualified = "true"
141
+ @@schema_element = []
142
+
143
+ def initialize
144
+ end
145
+ end
146
+
147
+ # {https://adwords.google.com/api/adwords/v4}getBillingAddressResponse
148
+ class GetBillingAddressResponse
149
+ @@schema_type = "getBillingAddressResponse"
150
+ @@schema_ns = "https://adwords.google.com/api/adwords/v4"
151
+ @@schema_qualified = "true"
152
+ @@schema_element = [
153
+ ["getBillingAddressReturn", "Address"]
154
+ ]
155
+
156
+ attr_accessor :getBillingAddressReturn
157
+
158
+ def initialize(getBillingAddressReturn = nil)
159
+ @getBillingAddressReturn = getBillingAddressReturn
160
+ end
161
+ end
162
+
163
+ # {https://adwords.google.com/api/adwords/v4}setCreditCard
164
+ class SetCreditCard
165
+ @@schema_type = "setCreditCard"
166
+ @@schema_ns = "https://adwords.google.com/api/adwords/v4"
167
+ @@schema_qualified = "true"
168
+ @@schema_element = [
169
+ ["cardInfo", "CreditCard"],
170
+ ["contactInfo", "Address"]
171
+ ]
172
+
173
+ attr_accessor :cardInfo
174
+ attr_accessor :contactInfo
175
+
176
+ def initialize(cardInfo = nil, contactInfo = nil)
177
+ @cardInfo = cardInfo
178
+ @contactInfo = contactInfo
179
+ end
180
+ end
181
+
182
+ # {https://adwords.google.com/api/adwords/v4}setCreditCardResponse
183
+ class SetCreditCardResponse
184
+ @@schema_type = "setCreditCardResponse"
185
+ @@schema_ns = "https://adwords.google.com/api/adwords/v4"
186
+ @@schema_qualified = "true"
187
+ @@schema_element = []
188
+
189
+ def initialize
190
+ end
191
+ end
192
+
193
+ # {https://adwords.google.com/api/adwords/v4}getDefaultAdsCoverage
194
+ class GetDefaultAdsCoverage
195
+ @@schema_type = "getDefaultAdsCoverage"
196
+ @@schema_ns = "https://adwords.google.com/api/adwords/v4"
197
+ @@schema_qualified = "true"
198
+ @@schema_element = []
199
+
200
+ def initialize
201
+ end
202
+ end
203
+
204
+ # {https://adwords.google.com/api/adwords/v4}getDefaultAdsCoverageResponse
205
+ class GetDefaultAdsCoverageResponse
206
+ @@schema_type = "getDefaultAdsCoverageResponse"
207
+ @@schema_ns = "https://adwords.google.com/api/adwords/v4"
208
+ @@schema_qualified = "true"
209
+ @@schema_element = [
210
+ ["getDefaultAdsCoverageReturn", "CoverageType"]
211
+ ]
212
+
213
+ attr_accessor :getDefaultAdsCoverageReturn
214
+
215
+ def initialize(getDefaultAdsCoverageReturn = nil)
216
+ @getDefaultAdsCoverageReturn = getDefaultAdsCoverageReturn
217
+ end
218
+ end
219
+
220
+ # {https://adwords.google.com/api/adwords/v4}setDefaultAdsCoverage
221
+ class SetDefaultAdsCoverage
222
+ @@schema_type = "setDefaultAdsCoverage"
223
+ @@schema_ns = "https://adwords.google.com/api/adwords/v4"
224
+ @@schema_qualified = "true"
225
+ @@schema_element = [
226
+ ["coverage", "CoverageType"]
227
+ ]
228
+
229
+ attr_accessor :coverage
230
+
231
+ def initialize(coverage = nil)
232
+ @coverage = coverage
233
+ end
234
+ end
235
+
236
+ # {https://adwords.google.com/api/adwords/v4}setDefaultAdsCoverageResponse
237
+ class SetDefaultAdsCoverageResponse
238
+ @@schema_type = "setDefaultAdsCoverageResponse"
239
+ @@schema_ns = "https://adwords.google.com/api/adwords/v4"
240
+ @@schema_qualified = "true"
241
+ @@schema_element = []
242
+
243
+ def initialize
244
+ end
245
+ end
246
+
247
+ # {https://adwords.google.com/api/adwords/v4}getLanguagePreference
248
+ class GetLanguagePreference
249
+ @@schema_type = "getLanguagePreference"
250
+ @@schema_ns = "https://adwords.google.com/api/adwords/v4"
251
+ @@schema_qualified = "true"
252
+ @@schema_element = []
253
+
254
+ def initialize
255
+ end
256
+ end
257
+
258
+ # {https://adwords.google.com/api/adwords/v4}getLanguagePreferenceResponse
259
+ class GetLanguagePreferenceResponse
260
+ @@schema_type = "getLanguagePreferenceResponse"
261
+ @@schema_ns = "https://adwords.google.com/api/adwords/v4"
262
+ @@schema_qualified = "true"
263
+ @@schema_element = [
264
+ ["getLanguagePreferenceReturn", "SOAP::SOAPString"]
265
+ ]
266
+
267
+ attr_accessor :getLanguagePreferenceReturn
268
+
269
+ def initialize(getLanguagePreferenceReturn = nil)
270
+ @getLanguagePreferenceReturn = getLanguagePreferenceReturn
271
+ end
272
+ end
273
+
274
+ # {https://adwords.google.com/api/adwords/v4}setLanguagePreference
275
+ class SetLanguagePreference
276
+ @@schema_type = "setLanguagePreference"
277
+ @@schema_ns = "https://adwords.google.com/api/adwords/v4"
278
+ @@schema_qualified = "true"
279
+ @@schema_element = [
280
+ ["languagePref", "SOAP::SOAPString"]
281
+ ]
282
+
283
+ attr_accessor :languagePref
284
+
285
+ def initialize(languagePref = nil)
286
+ @languagePref = languagePref
287
+ end
288
+ end
289
+
290
+ # {https://adwords.google.com/api/adwords/v4}setLanguagePreferenceResponse
291
+ class SetLanguagePreferenceResponse
292
+ @@schema_type = "setLanguagePreferenceResponse"
293
+ @@schema_ns = "https://adwords.google.com/api/adwords/v4"
294
+ @@schema_qualified = "true"
295
+ @@schema_element = []
296
+
297
+ def initialize
298
+ end
299
+ end
300
+
301
+ # {https://adwords.google.com/api/adwords/v4}getEmailPromotionsPreferences
302
+ class GetEmailPromotionsPreferences
303
+ @@schema_type = "getEmailPromotionsPreferences"
304
+ @@schema_ns = "https://adwords.google.com/api/adwords/v4"
305
+ @@schema_qualified = "true"
306
+ @@schema_element = []
307
+
308
+ def initialize
309
+ end
310
+ end
311
+
312
+ # {https://adwords.google.com/api/adwords/v4}getEmailPromotionsPreferencesResponse
313
+ class GetEmailPromotionsPreferencesResponse
314
+ @@schema_type = "getEmailPromotionsPreferencesResponse"
315
+ @@schema_ns = "https://adwords.google.com/api/adwords/v4"
316
+ @@schema_qualified = "true"
317
+ @@schema_element = [
318
+ ["getEmailPromotionsPreferencesReturn", "EmailPromotionsPreferences"]
319
+ ]
320
+
321
+ attr_accessor :getEmailPromotionsPreferencesReturn
322
+
323
+ def initialize(getEmailPromotionsPreferencesReturn = nil)
324
+ @getEmailPromotionsPreferencesReturn = getEmailPromotionsPreferencesReturn
325
+ end
326
+ end
327
+
328
+ # {https://adwords.google.com/api/adwords/v4}setEmailPromotionsPreferences
329
+ class SetEmailPromotionsPreferences
330
+ @@schema_type = "setEmailPromotionsPreferences"
331
+ @@schema_ns = "https://adwords.google.com/api/adwords/v4"
332
+ @@schema_qualified = "true"
333
+ @@schema_element = [
334
+ ["prefs", "EmailPromotionsPreferences"]
335
+ ]
336
+
337
+ attr_accessor :prefs
338
+
339
+ def initialize(prefs = nil)
340
+ @prefs = prefs
341
+ end
342
+ end
343
+
344
+ # {https://adwords.google.com/api/adwords/v4}setEmailPromotionsPreferencesResponse
345
+ class SetEmailPromotionsPreferencesResponse
346
+ @@schema_type = "setEmailPromotionsPreferencesResponse"
347
+ @@schema_ns = "https://adwords.google.com/api/adwords/v4"
348
+ @@schema_qualified = "true"
349
+ @@schema_element = []
350
+
351
+ def initialize
352
+ end
353
+ end
354
+
355
+ # {https://adwords.google.com/api/adwords/v4}getPrimaryBusinessCategory
356
+ class GetPrimaryBusinessCategory
357
+ @@schema_type = "getPrimaryBusinessCategory"
358
+ @@schema_ns = "https://adwords.google.com/api/adwords/v4"
359
+ @@schema_qualified = "true"
360
+ @@schema_element = []
361
+
362
+ def initialize
363
+ end
364
+ end
365
+
366
+ # {https://adwords.google.com/api/adwords/v4}getPrimaryBusinessCategoryResponse
367
+ class GetPrimaryBusinessCategoryResponse
368
+ @@schema_type = "getPrimaryBusinessCategoryResponse"
369
+ @@schema_ns = "https://adwords.google.com/api/adwords/v4"
370
+ @@schema_qualified = "true"
371
+ @@schema_element = [
372
+ ["getPrimaryBusinessCategoryReturn", "SOAP::SOAPString"]
373
+ ]
374
+
375
+ attr_accessor :getPrimaryBusinessCategoryReturn
376
+
377
+ def initialize(getPrimaryBusinessCategoryReturn = nil)
378
+ @getPrimaryBusinessCategoryReturn = getPrimaryBusinessCategoryReturn
379
+ end
380
+ end
381
+
382
+ # {https://adwords.google.com/api/adwords/v4}setPrimaryBusinessCategory
383
+ class SetPrimaryBusinessCategory
384
+ @@schema_type = "setPrimaryBusinessCategory"
385
+ @@schema_ns = "https://adwords.google.com/api/adwords/v4"
386
+ @@schema_qualified = "true"
387
+ @@schema_element = [
388
+ ["bizType", "SOAP::SOAPString"]
389
+ ]
390
+
391
+ attr_accessor :bizType
392
+
393
+ def initialize(bizType = nil)
394
+ @bizType = bizType
395
+ end
396
+ end
397
+
398
+ # {https://adwords.google.com/api/adwords/v4}setPrimaryBusinessCategoryResponse
399
+ class SetPrimaryBusinessCategoryResponse
400
+ @@schema_type = "setPrimaryBusinessCategoryResponse"
401
+ @@schema_ns = "https://adwords.google.com/api/adwords/v4"
402
+ @@schema_qualified = "true"
403
+ @@schema_element = []
404
+
405
+ def initialize
406
+ end
407
+ end
408
+
409
+ # {https://adwords.google.com/api/adwords/v4}getTermsAndConditions
410
+ class GetTermsAndConditions
411
+ @@schema_type = "getTermsAndConditions"
412
+ @@schema_ns = "https://adwords.google.com/api/adwords/v4"
413
+ @@schema_qualified = "true"
414
+ @@schema_element = []
415
+
416
+ def initialize
417
+ end
418
+ end
419
+
420
+ # {https://adwords.google.com/api/adwords/v4}getTermsAndConditionsResponse
421
+ class GetTermsAndConditionsResponse
422
+ @@schema_type = "getTermsAndConditionsResponse"
423
+ @@schema_ns = "https://adwords.google.com/api/adwords/v4"
424
+ @@schema_qualified = "true"
425
+ @@schema_element = [
426
+ ["getTermsAndConditionsReturn", "SOAP::SOAPString"]
427
+ ]
428
+
429
+ attr_accessor :getTermsAndConditionsReturn
430
+
431
+ def initialize(getTermsAndConditionsReturn = nil)
432
+ @getTermsAndConditionsReturn = getTermsAndConditionsReturn
433
+ end
434
+ end
435
+
436
+ # {https://adwords.google.com/api/adwords/v4}getClientAccounts
437
+ class GetClientAccounts
438
+ @@schema_type = "getClientAccounts"
439
+ @@schema_ns = "https://adwords.google.com/api/adwords/v4"
440
+ @@schema_qualified = "true"
441
+ @@schema_element = []
442
+
443
+ def initialize
444
+ end
445
+ end
446
+
447
+ # {https://adwords.google.com/api/adwords/v4}getClientAccountsResponse
448
+ class GetClientAccountsResponse < ::Array
449
+ @@schema_element = [
450
+ ["getClientAccountsReturn", ["SOAP::SOAPString[]", XSD::QName.new("https://adwords.google.com/api/adwords/v4", "getClientAccountsReturn")]]
451
+ ]
452
+ end
453
+
454
+ # {https://adwords.google.com/api/adwords/v4}getLocalTimezone
455
+ class GetLocalTimezone
456
+ @@schema_type = "getLocalTimezone"
457
+ @@schema_ns = "https://adwords.google.com/api/adwords/v4"
458
+ @@schema_qualified = "true"
459
+ @@schema_element = []
460
+
461
+ def initialize
462
+ end
463
+ end
464
+
465
+ # {https://adwords.google.com/api/adwords/v4}getLocalTimezoneResponse
466
+ class GetLocalTimezoneResponse
467
+ @@schema_type = "getLocalTimezoneResponse"
468
+ @@schema_ns = "https://adwords.google.com/api/adwords/v4"
469
+ @@schema_qualified = "true"
470
+ @@schema_element = [
471
+ ["getLocalTimezoneReturn", "SOAP::SOAPString"]
472
+ ]
473
+
474
+ attr_accessor :getLocalTimezoneReturn
475
+
476
+ def initialize(getLocalTimezoneReturn = nil)
477
+ @getLocalTimezoneReturn = getLocalTimezoneReturn
478
+ end
479
+ end
480
+
481
+ # {https://adwords.google.com/api/adwords/v4}setLocalTimezone
482
+ class SetLocalTimezone
483
+ @@schema_type = "setLocalTimezone"
484
+ @@schema_ns = "https://adwords.google.com/api/adwords/v4"
485
+ @@schema_qualified = "true"
486
+ @@schema_element = [
487
+ ["timezoneID", "SOAP::SOAPString"]
488
+ ]
489
+
490
+ attr_accessor :timezoneID
491
+
492
+ def initialize(timezoneID = nil)
493
+ @timezoneID = timezoneID
494
+ end
495
+ end
496
+
497
+ # {https://adwords.google.com/api/adwords/v4}setLocalTimezoneResponse
498
+ class SetLocalTimezoneResponse
499
+ @@schema_type = "setLocalTimezoneResponse"
500
+ @@schema_ns = "https://adwords.google.com/api/adwords/v4"
501
+ @@schema_qualified = "true"
502
+ @@schema_element = []
503
+
504
+ def initialize
505
+ end
506
+ end
507
+
508
+ # {https://adwords.google.com/api/adwords/v4}getTimezoneEffectiveDate
509
+ class GetTimezoneEffectiveDate
510
+ @@schema_type = "getTimezoneEffectiveDate"
511
+ @@schema_ns = "https://adwords.google.com/api/adwords/v4"
512
+ @@schema_qualified = "true"
513
+ @@schema_element = []
514
+
515
+ def initialize
516
+ end
517
+ end
518
+
519
+ # {https://adwords.google.com/api/adwords/v4}getTimezoneEffectiveDateResponse
520
+ class GetTimezoneEffectiveDateResponse
521
+ @@schema_type = "getTimezoneEffectiveDateResponse"
522
+ @@schema_ns = "https://adwords.google.com/api/adwords/v4"
523
+ @@schema_qualified = "true"
524
+ @@schema_element = [
525
+ ["getTimezoneEffectiveDateReturn", "SOAP::SOAPLong"]
526
+ ]
527
+
528
+ attr_accessor :getTimezoneEffectiveDateReturn
529
+
530
+ def initialize(getTimezoneEffectiveDateReturn = nil)
531
+ @getTimezoneEffectiveDateReturn = getTimezoneEffectiveDateReturn
532
+ end
533
+ end
534
+
535
+ # {https://adwords.google.com/api/adwords/v4}EmailPromotionsPreferences
536
+ class EmailPromotionsPreferences
537
+ @@schema_type = "EmailPromotionsPreferences"
538
+ @@schema_ns = "https://adwords.google.com/api/adwords/v4"
539
+ @@schema_element = [
540
+ ["marketResearchEnabled", "SOAP::SOAPBoolean"],
541
+ ["newsletterEnabled", "SOAP::SOAPBoolean"],
542
+ ["promotionsEnabled", "SOAP::SOAPBoolean"]
543
+ ]
544
+
545
+ attr_accessor :marketResearchEnabled
546
+ attr_accessor :newsletterEnabled
547
+ attr_accessor :promotionsEnabled
548
+
549
+ def initialize(marketResearchEnabled = nil, newsletterEnabled = nil, promotionsEnabled = nil)
550
+ @marketResearchEnabled = marketResearchEnabled
551
+ @newsletterEnabled = newsletterEnabled
552
+ @promotionsEnabled = promotionsEnabled
553
+ end
554
+ end
555
+
556
+ # {https://adwords.google.com/api/adwords/v4}CreditCard
557
+ class CreditCard
558
+ @@schema_type = "CreditCard"
559
+ @@schema_ns = "https://adwords.google.com/api/adwords/v4"
560
+ @@schema_element = [
561
+ ["cardNumber", "SOAP::SOAPString"],
562
+ ["cardType", "SOAP::SOAPString"],
563
+ ["cardVerificationNumber", "SOAP::SOAPString"],
564
+ ["expirationMonth", "SOAP::SOAPInt"],
565
+ ["expirationYear", "SOAP::SOAPInt"],
566
+ ["issueNumber", "SOAP::SOAPString"],
567
+ ["startMonth", "SOAP::SOAPInt"],
568
+ ["startYear", "SOAP::SOAPInt"],
569
+ ["status", "SOAP::SOAPString"],
570
+ ["taxNumber", "SOAP::SOAPString"]
571
+ ]
572
+
573
+ attr_accessor :cardNumber
574
+ attr_accessor :cardType
575
+ attr_accessor :cardVerificationNumber
576
+ attr_accessor :expirationMonth
577
+ attr_accessor :expirationYear
578
+ attr_accessor :issueNumber
579
+ attr_accessor :startMonth
580
+ attr_accessor :startYear
581
+ attr_accessor :status
582
+ attr_accessor :taxNumber
583
+
584
+ def initialize(cardNumber = nil, cardType = nil, cardVerificationNumber = nil, expirationMonth = nil, expirationYear = nil, issueNumber = nil, startMonth = nil, startYear = nil, status = nil, taxNumber = nil)
585
+ @cardNumber = cardNumber
586
+ @cardType = cardType
587
+ @cardVerificationNumber = cardVerificationNumber
588
+ @expirationMonth = expirationMonth
589
+ @expirationYear = expirationYear
590
+ @issueNumber = issueNumber
591
+ @startMonth = startMonth
592
+ @startYear = startYear
593
+ @status = status
594
+ @taxNumber = taxNumber
595
+ end
596
+ end
597
+
598
+ # {https://adwords.google.com/api/adwords/v4}Address
599
+ class Address
600
+ @@schema_type = "Address"
601
+ @@schema_ns = "https://adwords.google.com/api/adwords/v4"
602
+ @@schema_element = [
603
+ ["addressLine1", "SOAP::SOAPString"],
604
+ ["addressLine2", "SOAP::SOAPString"],
605
+ ["city", "SOAP::SOAPString"],
606
+ ["companyName", "SOAP::SOAPString"],
607
+ ["countryCode", "SOAP::SOAPString"],
608
+ ["faxNumber", "SOAP::SOAPString"],
609
+ ["name", "SOAP::SOAPString"],
610
+ ["phoneNumber", "SOAP::SOAPString"],
611
+ ["postalCode", "SOAP::SOAPString"],
612
+ ["state", "SOAP::SOAPString"]
613
+ ]
614
+
615
+ attr_accessor :addressLine1
616
+ attr_accessor :addressLine2
617
+ attr_accessor :city
618
+ attr_accessor :companyName
619
+ attr_accessor :countryCode
620
+ attr_accessor :faxNumber
621
+ attr_accessor :name
622
+ attr_accessor :phoneNumber
623
+ attr_accessor :postalCode
624
+ attr_accessor :state
625
+
626
+ def initialize(addressLine1 = nil, addressLine2 = nil, city = nil, companyName = nil, countryCode = nil, faxNumber = nil, name = nil, phoneNumber = nil, postalCode = nil, state = nil)
627
+ @addressLine1 = addressLine1
628
+ @addressLine2 = addressLine2
629
+ @city = city
630
+ @companyName = companyName
631
+ @countryCode = countryCode
632
+ @faxNumber = faxNumber
633
+ @name = name
634
+ @phoneNumber = phoneNumber
635
+ @postalCode = postalCode
636
+ @state = state
637
+ end
638
+ end
639
+
640
+ # {https://adwords.google.com/api/adwords/v4}CoverageType
641
+ class CoverageType
642
+ @@schema_type = "CoverageType"
643
+ @@schema_ns = "https://adwords.google.com/api/adwords/v4"
644
+ @@schema_element = [
645
+ ["optInContentNetwork", "SOAP::SOAPBoolean"],
646
+ ["optInSearchNetwork", "SOAP::SOAPBoolean"]
647
+ ]
648
+
649
+ attr_accessor :optInContentNetwork
650
+ attr_accessor :optInSearchNetwork
651
+
652
+ def initialize(optInContentNetwork = nil, optInSearchNetwork = nil)
653
+ @optInContentNetwork = optInContentNetwork
654
+ @optInSearchNetwork = optInSearchNetwork
655
+ end
656
+ end
657
+
658
+ # {https://adwords.google.com/api/adwords/v4}ApiException
659
+ class ApiException
660
+ @@schema_type = "ApiException"
661
+ @@schema_ns = "https://adwords.google.com/api/adwords/v4"
662
+ @@schema_element = [
663
+ ["code", "SOAP::SOAPInt"],
664
+ ["internal", "SOAP::SOAPBoolean"],
665
+ ["message", "SOAP::SOAPString"],
666
+ ["trigger", "SOAP::SOAPString"],
667
+ ["violations", "SOAP::SOAPString"]
668
+ ]
669
+
670
+ attr_accessor :code
671
+ attr_accessor :internal
672
+ attr_accessor :message
673
+ attr_accessor :trigger
674
+ attr_accessor :violations
675
+
676
+ def initialize(code = nil, internal = nil, message = nil, trigger = nil, violations = nil)
677
+ @code = code
678
+ @internal = internal
679
+ @message = message
680
+ @trigger = trigger
681
+ @violations = violations
682
+ end
683
+ end
684
+
685
+ # {https://adwords.google.com/api/adwords/v4}CreditCardType
686
+ class CreditCardType < ::String
687
+ @@schema_type = "CreditCardType"
688
+ @@schema_ns = "https://adwords.google.com/api/adwords/v4"
689
+
690
+ AmericanExpress = CreditCardType.new("AmericanExpress")
691
+ JCB = CreditCardType.new("JCB")
692
+ MasterCard = CreditCardType.new("MasterCard")
693
+ SOLO = CreditCardType.new("SOLO")
694
+ Switch = CreditCardType.new("Switch")
695
+ VISA = CreditCardType.new("VISA")
696
+ end
697
+
698
+ # {https://adwords.google.com/api/adwords/v4}TaxStatus
699
+ class TaxStatus < ::String
700
+ @@schema_type = "TaxStatus"
701
+ @@schema_ns = "https://adwords.google.com/api/adwords/v4"
702
+
703
+ Charity = TaxStatus.new("Charity")
704
+ ExtraTerritorial = TaxStatus.new("ExtraTerritorial")
705
+ Other = TaxStatus.new("Other")
706
+ SubjectToTax = TaxStatus.new("SubjectToTax")
707
+ ZeroRated = TaxStatus.new("ZeroRated")
708
+ end
709
+ end