adwords4r 0.2 → 0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. data/ChangeLog.txt +1 -1
  2. data/Rakefile +21 -10
  3. data/examples/campaign.rb +5 -2
  4. data/examples/get_unit_count.rb +16 -0
  5. data/lib/adwords4r.rb +4 -5
  6. data/lib/adwords4r/v2/AccountService.rb +2 -2
  7. data/lib/adwords4r/v2/AccountServiceDriver.rb +1 -3
  8. data/lib/adwords4r/v2/AdGroupService.rb +1 -1
  9. data/lib/adwords4r/v2/AdGroupServiceDriver.rb +1 -3
  10. data/lib/adwords4r/v2/CampaignService.rb +4 -4
  11. data/lib/adwords4r/v2/CampaignServiceDriver.rb +1 -3
  12. data/lib/adwords4r/v2/CreativeService.rb +1 -1
  13. data/lib/adwords4r/v2/CreativeServiceDriver.rb +1 -3
  14. data/lib/adwords4r/v2/CriterionService.rb +4 -4
  15. data/lib/adwords4r/v2/CriterionServiceDriver.rb +1 -3
  16. data/lib/adwords4r/v2/InfoService.rb +23 -23
  17. data/lib/adwords4r/v2/InfoServiceDriver.rb +1 -3
  18. data/lib/adwords4r/v2/KeywordService.rb +3 -3
  19. data/lib/adwords4r/v2/KeywordServiceDriver.rb +1 -3
  20. data/lib/adwords4r/v2/ReportService.rb +60 -60
  21. data/lib/adwords4r/v2/ReportServiceDriver.rb +1 -3
  22. data/lib/adwords4r/v2/TrafficEstimatorService.rb +24 -24
  23. data/lib/adwords4r/v2/TrafficEstimatorServiceDriver.rb +1 -3
  24. data/lib/adwords4r/v3/AccountService.rb +2 -2
  25. data/lib/adwords4r/v3/AccountServiceDriver.rb +1 -3
  26. data/lib/adwords4r/v3/AdGroupService.rb +1 -1
  27. data/lib/adwords4r/v3/AdGroupServiceDriver.rb +1 -3
  28. data/lib/adwords4r/v3/CampaignService.rb +5 -5
  29. data/lib/adwords4r/v3/CampaignServiceDriver.rb +1 -3
  30. data/lib/adwords4r/v3/CreativeService.rb +1 -1
  31. data/lib/adwords4r/v3/CreativeServiceDriver.rb +1 -3
  32. data/lib/adwords4r/v3/CriterionService.rb +4 -4
  33. data/lib/adwords4r/v3/CriterionServiceDriver.rb +1 -3
  34. data/lib/adwords4r/v3/InfoService.rb +23 -23
  35. data/lib/adwords4r/v3/InfoServiceDriver.rb +1 -3
  36. data/lib/adwords4r/v3/KeywordService.rb +3 -3
  37. data/lib/adwords4r/v3/KeywordServiceDriver.rb +1 -3
  38. data/lib/adwords4r/v3/KeywordToolService.rb +1 -1
  39. data/lib/adwords4r/v3/KeywordToolServiceDriver.rb +1 -3
  40. data/lib/adwords4r/v3/ReportService.rb +60 -60
  41. data/lib/adwords4r/v3/ReportServiceDriver.rb +1 -3
  42. data/lib/adwords4r/v3/TrafficEstimatorService.rb +23 -23
  43. data/lib/adwords4r/v3/TrafficEstimatorServiceDriver.rb +1 -3
  44. metadata +74 -67
data/ChangeLog.txt CHANGED
@@ -1,4 +1,4 @@
1
- 0.2 added packaging and made it a gem, for easy installation.
1
+ 0.2 added packaging, made it a gem, and added a setup program, for easy installation in all configurations (gem and non gem).
2
2
  0.1 -first version, not fully tested
3
3
  works for Campaigns
4
4
 
data/Rakefile CHANGED
@@ -20,7 +20,7 @@ end
20
20
 
21
21
  CLOBBER.include('pkg')
22
22
 
23
- CURRENT_VERSION = '0.2'
23
+ CURRENT_VERSION = '0.3'
24
24
  PKG_VERSION = ENV['REL'] ? ENV['REL'] : CURRENT_VERSION
25
25
 
26
26
  SRC_RB = FileList['lib/**/*.rb']
@@ -62,6 +62,7 @@ task :generate do
62
62
  worker.opt.update(getWsdlOpt(name))
63
63
  worker.run
64
64
  fixImport(v, File.join(gendir, "#{name}Driver.rb"))
65
+ #fixImport(v, File.join(gendir, "#{name}.rb"))
65
66
  end
66
67
  end
67
68
  end
@@ -71,22 +72,18 @@ def fixImport(version, file)
71
72
  tempfile = file + '.tmp'
72
73
  outfile = File.new(tempfile,"w")
73
74
  File.open(file, "r") do |infile|
74
- req = 0
75
+ # outfile.puts "module AdWords"
76
+ #outfile.puts "module AdWordsV#{version}"
75
77
  infile.each do |l|
76
- if (l =~/require/) then
78
+ if (l =~/require.*Service.rb/) then
77
79
  # outfile.puts l.gsub(/require \'(.*)Service.rb\'/, 'require #\'adwords4r/' + vname + '/\1Service\'')
78
80
  outfile.puts l.gsub(/require \'(.*)Service.rb\'/, 'require \'adwords4r/' + vname + '/\1Service\'')
79
- req = req + 1
80
81
  else
81
- if (req == 2) then
82
- outfile.puts "module AdWordsV#{version}"
83
- req = req + 1
84
- end
85
82
  outfile.puts l
86
83
  end
87
84
  end
85
+ # outfile.puts "end"
88
86
  end
89
- outfile.puts "end"
90
87
  outfile.close
91
88
  File.rename(tempfile, file)
92
89
  end
@@ -117,11 +114,25 @@ def getfile(host, path)
117
114
  https.start { |w| w.get2(path).body }
118
115
  end
119
116
 
117
+ def fix_attribute(text, name, type)
118
+ text.gsub!(Regexp.new("#{name}=\"#{type}\""),"#{name}=\"xsd:#{type}\"")
119
+ end
120
+
121
+ def fixWsdl(wsdl)
122
+ ['type', 'base'].each {|name| ['long', 'string', 'date', 'int', 'boolean'].each {|type| fix_attribute(wsdl, name, type)}}
123
+ schema_ns = "xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""
124
+ if wsdl !~ Regexp.new(schema_ns)
125
+ wsdl.gsub!(/(<wsdl:definitions[^>]*)>/, '\1 ' + schema_ns + '>')
126
+ end
127
+ return wsdl
128
+ #wsdl.gsub(/type=\"long\"/, 'type="xsd:long"')
129
+ end
130
+
120
131
  # Saves this document to the specified @var path.
121
132
  #doesn't create the file if contains markup for google 404 page
122
133
  def save(content, path)
123
134
  if content !~ /<H2>Error 404<\/H2>/
124
- File::open(path, 'w') {|f| f.write(content)}
135
+ File::open(path, 'w') {|f| f.write(fixWsdl(content))}
125
136
  end
126
137
  end
127
138
 
data/examples/campaign.rb CHANGED
@@ -20,11 +20,14 @@ end
20
20
  begin
21
21
  adwords = AdWords::API.new
22
22
  #pp adwords.thismethodDoesNotExist()
23
- adwords.getAllAdWordsCampaigns(123).each {|c| puts dumpObj(c)}
23
+ res = adwords.getAllAdWordsCampaigns(123)
24
+ pp res
25
+ res.each {|c| puts dumpObj(c)}
26
+ #adwords.getAllAdWordsCampaigns(123).each {|c| puts dumpObj(c)}
24
27
  c = Campaign.new
25
28
  c.dailyBudget = 10000
26
29
  c.status = 'Paused'
27
- c.name = 'Test P@ #{rand(10000}'
30
+ c.name = "Test P@ #{rand(10000)}"
28
31
  pp adwords.addCampaign(c)
29
32
 
30
33
  rescue AdWords::Error::UnknownAPICall => e
@@ -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.getUnitCount(Date.new(2006, 4,1), Date.new(2006,4,13)).getUnitCountReturn}"
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
+
data/lib/adwords4r.rb CHANGED
@@ -5,7 +5,6 @@ require 'soap/soap'
5
5
  module AdWords
6
6
 
7
7
  class API
8
-
9
8
  attr_reader :credentials, :drivers, :version
10
9
  @methodMap = Hash.new
11
10
 
@@ -27,10 +26,9 @@ module AdWords
27
26
  def method_missing(m, *args)
28
27
  methodName = m.id2name
29
28
  requestName = AdWords::fix_case_up(m.id2name) # upper first character
30
- param = args[0]
31
-
32
29
  if valid_call?(methodName)
33
- req = eval("#{requestName}.new(param)")
30
+ constructor = eval("#{requestName}.method(\"new\")")
31
+ req = constructor.call(*args)
34
32
  resp = eval("getDriver(methodName).#{methodName}(req)")
35
33
  return resp
36
34
  else
@@ -55,7 +53,8 @@ module AdWords
55
53
  end
56
54
 
57
55
  def prepareDriver(s)
58
- driver = eval("AdWordsV#{@version}::#{getServiceName(s)}.new")
56
+ #driver = eval("AdWordsV#{@version}::#{getServiceName(s)}.new")
57
+ driver = eval("#{getServiceName(s)}.new")
59
58
  @credentials.handlers.each {|h| driver.headerhandler << h}
60
59
  #driver.wiredump_dev = STDOUT if @debug
61
60
  driver.wiredump_file_base = "log"
@@ -476,7 +476,7 @@ class CreditCard
476
476
  @@schema_type = "CreditCard"
477
477
  @@schema_ns = "https://adwords.google.com/api/adwords/v2"
478
478
  @@schema_element = [
479
- ["cardType", "CreditCardType"],
479
+ ["cardType", "SOAP::SOAPString"],
480
480
  ["cardNumber", "SOAP::SOAPString"],
481
481
  ["expirationMonth", "SOAP::SOAPInt"],
482
482
  ["expirationYear", "SOAP::SOAPInt"],
@@ -484,7 +484,7 @@ class CreditCard
484
484
  ["issueNumber", "SOAP::SOAPString"],
485
485
  ["startMonth", "SOAP::SOAPInt"],
486
486
  ["startYear", "SOAP::SOAPInt"],
487
- ["status", "TaxStatus"],
487
+ ["status", "SOAP::SOAPString"],
488
488
  ["taxNumber", "SOAP::SOAPString"]
489
489
  ]
490
490
 
@@ -1,10 +1,9 @@
1
1
  require 'adwords4r/v2/AccountService'
2
2
 
3
3
  require 'soap/rpc/driver'
4
- module AdWordsV2
5
4
 
6
5
  class AccountService < ::SOAP::RPC::Driver
7
- DefaultEndpointUrl = "https://adwords.google.com:443/api/adwords/v2/AccountService"
6
+ DefaultEndpointUrl = "https://adwords.google.com/api/adwords/v2/AccountService"
8
7
  MappingRegistry = ::SOAP::Mapping::Registry.new
9
8
 
10
9
  Methods = [
@@ -150,4 +149,3 @@ private
150
149
  end
151
150
  end
152
151
 
153
- end
@@ -251,7 +251,7 @@ class AdGroup
251
251
  ["name", "SOAP::SOAPString"],
252
252
  ["id", "SOAP::SOAPInt"],
253
253
  ["campaignId", "SOAP::SOAPInt"],
254
- ["status", "AdGroupStatus"]
254
+ ["status", "SOAP::SOAPString"]
255
255
  ]
256
256
 
257
257
  attr_accessor :maxCpc
@@ -1,10 +1,9 @@
1
1
  require 'adwords4r/v2/AdGroupService'
2
2
 
3
3
  require 'soap/rpc/driver'
4
- module AdWordsV2
5
4
 
6
5
  class AdGroupService < ::SOAP::RPC::Driver
7
- DefaultEndpointUrl = "https://adwords.google.com:443/api/adwords/v2/AdGroupService"
6
+ DefaultEndpointUrl = "https://adwords.google.com/api/adwords/v2/AdGroupService"
8
7
  MappingRegistry = ::SOAP::Mapping::Registry.new
9
8
 
10
9
  Methods = [
@@ -94,4 +93,3 @@ private
94
93
  end
95
94
  end
96
95
 
97
- end
@@ -268,7 +268,7 @@ class Criterion
268
268
  ["exemptionRequest", "SOAP::SOAPString"],
269
269
  ["criterionType", "SOAP::SOAPString"],
270
270
  ["language", "SOAP::SOAPString"],
271
- ["status", "CriterionStatus"],
271
+ ["status", "SOAP::SOAPString"],
272
272
  ["negative", "SOAP::SOAPBoolean"],
273
273
  ["destinationUrl", "SOAP::SOAPString"]
274
274
  ]
@@ -304,10 +304,10 @@ class Keyword
304
304
  ["exemptionRequest", "SOAP::SOAPString"],
305
305
  ["criterionType", "SOAP::SOAPString"],
306
306
  ["language", "SOAP::SOAPString"],
307
- ["status", "CriterionStatus"],
307
+ ["status", "SOAP::SOAPString"],
308
308
  ["negative", "SOAP::SOAPBoolean"],
309
309
  ["destinationUrl", "SOAP::SOAPString"],
310
- ["type", "KeywordType"],
310
+ ["type", "SOAP::SOAPString"],
311
311
  ["minCpc", "SOAP::SOAPLong"],
312
312
  ["maxCpc", "SOAP::SOAPLong"],
313
313
  ["text", "SOAP::SOAPString"]
@@ -380,7 +380,7 @@ class Campaign
380
380
  @@schema_element = [
381
381
  ["id", "SOAP::SOAPInt"],
382
382
  ["name", "SOAP::SOAPString"],
383
- ["status", "CampaignStatus"],
383
+ ["status", "SOAP::SOAPString"],
384
384
  ["startDate", "SOAP::SOAPDateTime"],
385
385
  ["endDate", "SOAP::SOAPDateTime"],
386
386
  ["dailyBudget", "SOAP::SOAPLong"],
@@ -1,10 +1,9 @@
1
1
  require 'adwords4r/v2/CampaignService'
2
2
 
3
3
  require 'soap/rpc/driver'
4
- module AdWordsV2
5
4
 
6
5
  class CampaignService < ::SOAP::RPC::Driver
7
- DefaultEndpointUrl = "https://adwords.google.com:443/api/adwords/v2/CampaignService"
6
+ DefaultEndpointUrl = "https://adwords.google.com/api/adwords/v2/CampaignService"
8
7
  MappingRegistry = ::SOAP::Mapping::Registry.new
9
8
 
10
9
  Methods = [
@@ -108,4 +107,3 @@ private
108
107
  end
109
108
  end
110
109
 
111
- end
@@ -256,7 +256,7 @@ class Image
256
256
  ["data", "SOAP::SOAPBase64"],
257
257
  ["width", "SOAP::SOAPInt"],
258
258
  ["height", "SOAP::SOAPInt"],
259
- ["type", "ImageType"],
259
+ ["type", "SOAP::SOAPString"],
260
260
  ["mimeType", "SOAP::SOAPString"],
261
261
  ["imageUrl", "SOAP::SOAPString"],
262
262
  ["thumbnailUrl", "SOAP::SOAPString"]
@@ -1,10 +1,9 @@
1
1
  require 'adwords4r/v2/CreativeService'
2
2
 
3
3
  require 'soap/rpc/driver'
4
- module AdWordsV2
5
4
 
6
5
  class CreativeService < ::SOAP::RPC::Driver
7
- DefaultEndpointUrl = "https://adwords.google.com:443/api/adwords/v2/CreativeService"
6
+ DefaultEndpointUrl = "https://adwords.google.com/api/adwords/v2/CreativeService"
8
7
  MappingRegistry = ::SOAP::Mapping::Registry.new
9
8
 
10
9
  Methods = [
@@ -101,4 +100,3 @@ private
101
100
  end
102
101
  end
103
102
 
104
- end
@@ -213,7 +213,7 @@ class Criterion
213
213
  ["exemptionRequest", "SOAP::SOAPString"],
214
214
  ["criterionType", "SOAP::SOAPString"],
215
215
  ["language", "SOAP::SOAPString"],
216
- ["status", "CriterionStatus"],
216
+ ["status", "SOAP::SOAPString"],
217
217
  ["negative", "SOAP::SOAPBoolean"],
218
218
  ["destinationUrl", "SOAP::SOAPString"]
219
219
  ]
@@ -249,10 +249,10 @@ class Keyword
249
249
  ["exemptionRequest", "SOAP::SOAPString"],
250
250
  ["criterionType", "SOAP::SOAPString"],
251
251
  ["language", "SOAP::SOAPString"],
252
- ["status", "CriterionStatus"],
252
+ ["status", "SOAP::SOAPString"],
253
253
  ["negative", "SOAP::SOAPBoolean"],
254
254
  ["destinationUrl", "SOAP::SOAPString"],
255
- ["type", "KeywordType"],
255
+ ["type", "SOAP::SOAPString"],
256
256
  ["minCpc", "SOAP::SOAPLong"],
257
257
  ["maxCpc", "SOAP::SOAPLong"],
258
258
  ["text", "SOAP::SOAPString"]
@@ -297,7 +297,7 @@ class Website
297
297
  ["exemptionRequest", "SOAP::SOAPString"],
298
298
  ["criterionType", "SOAP::SOAPString"],
299
299
  ["language", "SOAP::SOAPString"],
300
- ["status", "CriterionStatus"],
300
+ ["status", "SOAP::SOAPString"],
301
301
  ["negative", "SOAP::SOAPBoolean"],
302
302
  ["destinationUrl", "SOAP::SOAPString"],
303
303
  ["maxCpm", "SOAP::SOAPLong"],
@@ -1,10 +1,9 @@
1
1
  require 'adwords4r/v2/CriterionService'
2
2
 
3
3
  require 'soap/rpc/driver'
4
- module AdWordsV2
5
4
 
6
5
  class CriterionService < ::SOAP::RPC::Driver
7
- DefaultEndpointUrl = "https://adwords.google.com:443/api/adwords/v2/CriterionService"
6
+ DefaultEndpointUrl = "https://adwords.google.com/api/adwords/v2/CriterionService"
8
7
  MappingRegistry = ::SOAP::Mapping::Registry.new
9
8
 
10
9
  Methods = [
@@ -94,4 +93,3 @@ private
94
93
  end
95
94
  end
96
95
 
97
- end
@@ -6,8 +6,8 @@ class GetOperationCount
6
6
  @@schema_ns = "https://adwords.google.com/api/adwords/v2"
7
7
  @@schema_qualified = "true"
8
8
  @@schema_element = [
9
- ["startDate", "Date"],
10
- ["endDate", "Date"]
9
+ ["startDate", "SOAP::SOAPDate"],
10
+ ["endDate", "SOAP::SOAPDate"]
11
11
  ]
12
12
 
13
13
  attr_accessor :startDate
@@ -25,7 +25,7 @@ class GetOperationCountResponse
25
25
  @@schema_ns = "https://adwords.google.com/api/adwords/v2"
26
26
  @@schema_qualified = "true"
27
27
  @@schema_element = [
28
- ["getOperationCountReturn", "Long"]
28
+ ["getOperationCountReturn", "SOAP::SOAPLong"]
29
29
  ]
30
30
 
31
31
  attr_accessor :getOperationCountReturn
@@ -52,7 +52,7 @@ class GetOperationsQuotaThisMonthResponse
52
52
  @@schema_ns = "https://adwords.google.com/api/adwords/v2"
53
53
  @@schema_qualified = "true"
54
54
  @@schema_element = [
55
- ["getOperationsQuotaThisMonthReturn", "Long"]
55
+ ["getOperationsQuotaThisMonthReturn", "SOAP::SOAPLong"]
56
56
  ]
57
57
 
58
58
  attr_accessor :getOperationsQuotaThisMonthReturn
@@ -79,7 +79,7 @@ class GetUsageQuotaThisMonthResponse
79
79
  @@schema_ns = "https://adwords.google.com/api/adwords/v2"
80
80
  @@schema_qualified = "true"
81
81
  @@schema_element = [
82
- ["getUsageQuotaThisMonthReturn", "Long"]
82
+ ["getUsageQuotaThisMonthReturn", "SOAP::SOAPLong"]
83
83
  ]
84
84
 
85
85
  attr_accessor :getUsageQuotaThisMonthReturn
@@ -106,7 +106,7 @@ class GetFreeUsageQuotaThisMonthResponse
106
106
  @@schema_ns = "https://adwords.google.com/api/adwords/v2"
107
107
  @@schema_qualified = "true"
108
108
  @@schema_element = [
109
- ["getFreeUsageQuotaThisMonthReturn", "Long"]
109
+ ["getFreeUsageQuotaThisMonthReturn", "SOAP::SOAPLong"]
110
110
  ]
111
111
 
112
112
  attr_accessor :getFreeUsageQuotaThisMonthReturn
@@ -122,9 +122,9 @@ class GetMethodCost
122
122
  @@schema_ns = "https://adwords.google.com/api/adwords/v2"
123
123
  @@schema_qualified = "true"
124
124
  @@schema_element = [
125
- ["service", "String"],
126
- ["method", "String"],
127
- ["date", "Date"]
125
+ ["service", "SOAP::SOAPString"],
126
+ ["method", "SOAP::SOAPString"],
127
+ ["date", "SOAP::SOAPDate"]
128
128
  ]
129
129
 
130
130
  attr_accessor :service
@@ -144,7 +144,7 @@ class GetMethodCostResponse
144
144
  @@schema_ns = "https://adwords.google.com/api/adwords/v2"
145
145
  @@schema_qualified = "true"
146
146
  @@schema_element = [
147
- ["getMethodCostReturn", "Int"]
147
+ ["getMethodCostReturn", "SOAP::SOAPInt"]
148
148
  ]
149
149
 
150
150
  attr_accessor :getMethodCostReturn
@@ -160,8 +160,8 @@ class GetUnitCount
160
160
  @@schema_ns = "https://adwords.google.com/api/adwords/v2"
161
161
  @@schema_qualified = "true"
162
162
  @@schema_element = [
163
- ["startDate", "Date"],
164
- ["endDate", "Date"]
163
+ ["startDate", "SOAP::SOAPDate"],
164
+ ["endDate", "SOAP::SOAPDate"]
165
165
  ]
166
166
 
167
167
  attr_accessor :startDate
@@ -179,7 +179,7 @@ class GetUnitCountResponse
179
179
  @@schema_ns = "https://adwords.google.com/api/adwords/v2"
180
180
  @@schema_qualified = "true"
181
181
  @@schema_element = [
182
- ["getUnitCountReturn", "Long"]
182
+ ["getUnitCountReturn", "SOAP::SOAPLong"]
183
183
  ]
184
184
 
185
185
  attr_accessor :getUnitCountReturn
@@ -195,10 +195,10 @@ class GetUnitCountForMethod
195
195
  @@schema_ns = "https://adwords.google.com/api/adwords/v2"
196
196
  @@schema_qualified = "true"
197
197
  @@schema_element = [
198
- ["service", "String"],
199
- ["method", "String"],
200
- ["startDate", "Date"],
201
- ["endDate", "Date"]
198
+ ["service", "SOAP::SOAPString"],
199
+ ["method", "SOAP::SOAPString"],
200
+ ["startDate", "SOAP::SOAPDate"],
201
+ ["endDate", "SOAP::SOAPDate"]
202
202
  ]
203
203
 
204
204
  attr_accessor :service
@@ -220,7 +220,7 @@ class GetUnitCountForMethodResponse
220
220
  @@schema_ns = "https://adwords.google.com/api/adwords/v2"
221
221
  @@schema_qualified = "true"
222
222
  @@schema_element = [
223
- ["getUnitCountForMethodReturn", "Long"]
223
+ ["getUnitCountForMethodReturn", "SOAP::SOAPLong"]
224
224
  ]
225
225
 
226
226
  attr_accessor :getUnitCountForMethodReturn
@@ -235,11 +235,11 @@ class ApiException
235
235
  @@schema_type = "ApiException"
236
236
  @@schema_ns = "https://adwords.google.com/api/adwords/v2"
237
237
  @@schema_element = [
238
- ["code", "Int"],
239
- ["internal", "Boolean"],
240
- ["message", "String"],
241
- ["trigger", "String"],
242
- ["violations", "String"]
238
+ ["code", "SOAP::SOAPInt"],
239
+ ["internal", "SOAP::SOAPBoolean"],
240
+ ["message", "SOAP::SOAPString"],
241
+ ["trigger", "SOAP::SOAPString"],
242
+ ["violations", "SOAP::SOAPString"]
243
243
  ]
244
244
 
245
245
  attr_accessor :code