google-adwords-api 0.1.0 → 0.1.1

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 (125) hide show
  1. data/Rakefile +1 -1
  2. data/examples/v201101/add_conversion.rb +97 -0
  3. data/examples/v201101/add_user_list.rb +28 -2
  4. data/examples/v201101/get_all_conversions.rb +88 -0
  5. data/examples/v201101/get_keyword_opportunities.rb +103 -0
  6. data/examples/v201101/update_conversion.rb +96 -0
  7. data/lib/adwords_api/api_config.rb +6 -3
  8. data/lib/adwords_api/errors.rb +4 -1
  9. data/lib/adwords_api/extensions.rb +1 -1
  10. data/lib/adwords_api/v13/AccountServiceDriver.rb +5 -5
  11. data/lib/adwords_api/v13/ReportServiceDriver.rb +7 -7
  12. data/lib/adwords_api/v13/TrafficEstimatorServiceDriver.rb +4 -4
  13. data/lib/adwords_api/v200909/AdExtensionOverrideServiceDriver.rb +2 -2
  14. data/lib/adwords_api/v200909/AdGroupAdServiceDriver.rb +2 -2
  15. data/lib/adwords_api/v200909/AdGroupCriterionService.rb +506 -506
  16. data/lib/adwords_api/v200909/AdGroupCriterionServiceDriver.rb +2 -2
  17. data/lib/adwords_api/v200909/AdGroupCriterionServiceMappingRegistry.rb +428 -428
  18. data/lib/adwords_api/v200909/AdGroupServiceDriver.rb +2 -2
  19. data/lib/adwords_api/v200909/AdParamServiceDriver.rb +2 -2
  20. data/lib/adwords_api/v200909/BulkMutateJobServiceDriver.rb +2 -2
  21. data/lib/adwords_api/v200909/CampaignAdExtensionServiceDriver.rb +2 -2
  22. data/lib/adwords_api/v200909/CampaignCriterionService.rb +133 -133
  23. data/lib/adwords_api/v200909/CampaignCriterionServiceDriver.rb +2 -2
  24. data/lib/adwords_api/v200909/CampaignCriterionServiceMappingRegistry.rb +184 -184
  25. data/lib/adwords_api/v200909/CampaignServiceDriver.rb +2 -2
  26. data/lib/adwords_api/v200909/CampaignTargetServiceDriver.rb +2 -2
  27. data/lib/adwords_api/v200909/GeoLocationServiceDriver.rb +1 -1
  28. data/lib/adwords_api/v200909/InfoServiceDriver.rb +1 -1
  29. data/lib/adwords_api/v200909/TargetingIdeaService.rb +907 -907
  30. data/lib/adwords_api/v200909/TargetingIdeaServiceDriver.rb +2 -2
  31. data/lib/adwords_api/v200909/TargetingIdeaServiceMappingRegistry.rb +384 -384
  32. data/lib/adwords_api/v201003/AdExtensionOverrideServiceDriver.rb +2 -2
  33. data/lib/adwords_api/v201003/AdGroupAdServiceDriver.rb +2 -2
  34. data/lib/adwords_api/v201003/AdGroupCriterionService.rb +527 -527
  35. data/lib/adwords_api/v201003/AdGroupCriterionServiceDriver.rb +2 -2
  36. data/lib/adwords_api/v201003/AdGroupCriterionServiceMappingRegistry.rb +469 -469
  37. data/lib/adwords_api/v201003/AdGroupServiceDriver.rb +2 -2
  38. data/lib/adwords_api/v201003/AdParamServiceDriver.rb +2 -2
  39. data/lib/adwords_api/v201003/BidLandscapeServiceDriver.rb +1 -1
  40. data/lib/adwords_api/v201003/BulkMutateJobServiceDriver.rb +2 -2
  41. data/lib/adwords_api/v201003/CampaignAdExtensionServiceDriver.rb +2 -2
  42. data/lib/adwords_api/v201003/CampaignCriterionService.rb +133 -133
  43. data/lib/adwords_api/v201003/CampaignCriterionServiceDriver.rb +2 -2
  44. data/lib/adwords_api/v201003/CampaignCriterionServiceMappingRegistry.rb +186 -186
  45. data/lib/adwords_api/v201003/CampaignServiceDriver.rb +2 -2
  46. data/lib/adwords_api/v201003/CampaignTargetServiceDriver.rb +2 -2
  47. data/lib/adwords_api/v201003/GeoLocationServiceDriver.rb +1 -1
  48. data/lib/adwords_api/v201003/InfoServiceDriver.rb +1 -1
  49. data/lib/adwords_api/v201003/MediaServiceDriver.rb +2 -2
  50. data/lib/adwords_api/v201003/ReportDefinitionServiceDriver.rb +3 -3
  51. data/lib/adwords_api/v201003/TargetingIdeaService.rb +1304 -1304
  52. data/lib/adwords_api/v201003/TargetingIdeaServiceDriver.rb +2 -2
  53. data/lib/adwords_api/v201003/TargetingIdeaServiceMappingRegistry.rb +401 -401
  54. data/lib/adwords_api/v201008/AdExtensionOverrideServiceDriver.rb +2 -2
  55. data/lib/adwords_api/v201008/AdGroupAdServiceDriver.rb +2 -2
  56. data/lib/adwords_api/v201008/AdGroupCriterionService.rb +598 -598
  57. data/lib/adwords_api/v201008/AdGroupCriterionServiceDriver.rb +2 -2
  58. data/lib/adwords_api/v201008/AdGroupCriterionServiceMappingRegistry.rb +680 -680
  59. data/lib/adwords_api/v201008/AdGroupServiceDriver.rb +2 -2
  60. data/lib/adwords_api/v201008/AdParamServiceDriver.rb +2 -2
  61. data/lib/adwords_api/v201008/AlertServiceDriver.rb +1 -1
  62. data/lib/adwords_api/v201008/BidLandscapeServiceDriver.rb +1 -1
  63. data/lib/adwords_api/v201008/BulkMutateJobServiceDriver.rb +2 -2
  64. data/lib/adwords_api/v201008/CampaignAdExtensionServiceDriver.rb +2 -2
  65. data/lib/adwords_api/v201008/CampaignCriterionService.rb +178 -178
  66. data/lib/adwords_api/v201008/CampaignCriterionServiceDriver.rb +2 -2
  67. data/lib/adwords_api/v201008/CampaignCriterionServiceMappingRegistry.rb +228 -228
  68. data/lib/adwords_api/v201008/CampaignServiceDriver.rb +2 -2
  69. data/lib/adwords_api/v201008/CampaignTargetServiceDriver.rb +2 -2
  70. data/lib/adwords_api/v201008/CustomerSyncServiceDriver.rb +1 -1
  71. data/lib/adwords_api/v201008/ExperimentServiceDriver.rb +2 -2
  72. data/lib/adwords_api/v201008/GeoLocationServiceDriver.rb +1 -1
  73. data/lib/adwords_api/v201008/InfoServiceDriver.rb +1 -1
  74. data/lib/adwords_api/v201008/MediaServiceDriver.rb +2 -2
  75. data/lib/adwords_api/v201008/ReportDefinitionServiceDriver.rb +3 -3
  76. data/lib/adwords_api/v201008/ServicedAccountServiceDriver.rb +1 -1
  77. data/lib/adwords_api/v201008/TargetingIdeaService.rb +1459 -1459
  78. data/lib/adwords_api/v201008/TargetingIdeaServiceDriver.rb +2 -2
  79. data/lib/adwords_api/v201008/TargetingIdeaServiceMappingRegistry.rb +447 -447
  80. data/lib/adwords_api/v201008/TrafficEstimatorService.rb +855 -855
  81. data/lib/adwords_api/v201008/TrafficEstimatorServiceDriver.rb +1 -1
  82. data/lib/adwords_api/v201008/TrafficEstimatorServiceMappingRegistry.rb +126 -126
  83. data/lib/adwords_api/v201008/UserListServiceDriver.rb +2 -2
  84. data/lib/adwords_api/v201101/AdExtensionOverrideServiceDriver.rb +2 -2
  85. data/lib/adwords_api/v201101/AdGroupAdService.rb +2 -0
  86. data/lib/adwords_api/v201101/AdGroupAdServiceDriver.rb +2 -2
  87. data/lib/adwords_api/v201101/AdGroupCriterionService.rb +700 -700
  88. data/lib/adwords_api/v201101/AdGroupCriterionServiceDriver.rb +2 -2
  89. data/lib/adwords_api/v201101/AdGroupCriterionServiceMappingRegistry.rb +670 -670
  90. data/lib/adwords_api/v201101/AdGroupServiceDriver.rb +2 -2
  91. data/lib/adwords_api/v201101/AdParamServiceDriver.rb +2 -2
  92. data/lib/adwords_api/v201101/AlertServiceDriver.rb +1 -1
  93. data/lib/adwords_api/v201101/BulkMutateJobService.rb +2 -0
  94. data/lib/adwords_api/v201101/BulkMutateJobServiceDriver.rb +2 -2
  95. data/lib/adwords_api/v201101/BulkOpportunityService.rb +1367 -0
  96. data/lib/adwords_api/v201101/BulkOpportunityServiceDriver.rb +55 -0
  97. data/lib/adwords_api/v201101/BulkOpportunityServiceMappingRegistry.rb +1668 -0
  98. data/lib/adwords_api/v201101/BulkOpportunityServiceWrapper.rb +303 -0
  99. data/lib/adwords_api/v201101/CampaignAdExtensionServiceDriver.rb +2 -2
  100. data/lib/adwords_api/v201101/CampaignCriterionService.rb +216 -216
  101. data/lib/adwords_api/v201101/CampaignCriterionServiceDriver.rb +2 -2
  102. data/lib/adwords_api/v201101/CampaignCriterionServiceMappingRegistry.rb +234 -234
  103. data/lib/adwords_api/v201101/CampaignServiceDriver.rb +2 -2
  104. data/lib/adwords_api/v201101/CampaignTargetServiceDriver.rb +2 -2
  105. data/lib/adwords_api/v201101/ConversionTrackerService.rb +1105 -0
  106. data/lib/adwords_api/v201101/ConversionTrackerServiceDriver.rb +63 -0
  107. data/lib/adwords_api/v201101/ConversionTrackerServiceMappingRegistry.rb +1161 -0
  108. data/lib/adwords_api/v201101/ConversionTrackerServiceWrapper.rb +332 -0
  109. data/lib/adwords_api/v201101/CustomerSyncServiceDriver.rb +1 -1
  110. data/lib/adwords_api/v201101/DataServiceDriver.rb +2 -2
  111. data/lib/adwords_api/v201101/ExperimentServiceDriver.rb +2 -2
  112. data/lib/adwords_api/v201101/GeoLocationServiceDriver.rb +1 -1
  113. data/lib/adwords_api/v201101/InfoServiceDriver.rb +1 -1
  114. data/lib/adwords_api/v201101/MediaServiceDriver.rb +2 -2
  115. data/lib/adwords_api/v201101/ReportDefinitionServiceDriver.rb +3 -3
  116. data/lib/adwords_api/v201101/ReportDefinitionServiceWrapper.rb +14 -0
  117. data/lib/adwords_api/v201101/ServicedAccountServiceDriver.rb +1 -1
  118. data/lib/adwords_api/v201101/TargetingIdeaService.rb +1490 -1490
  119. data/lib/adwords_api/v201101/TargetingIdeaServiceDriver.rb +2 -2
  120. data/lib/adwords_api/v201101/TargetingIdeaServiceMappingRegistry.rb +507 -507
  121. data/lib/adwords_api/v201101/TrafficEstimatorService.rb +841 -841
  122. data/lib/adwords_api/v201101/TrafficEstimatorServiceDriver.rb +1 -1
  123. data/lib/adwords_api/v201101/TrafficEstimatorServiceMappingRegistry.rb +126 -126
  124. data/lib/adwords_api/v201101/UserListServiceDriver.rb +2 -2
  125. metadata +17 -5
data/Rakefile CHANGED
@@ -56,7 +56,7 @@ end
56
56
  $GEM_DESCRIPTION = description
57
57
  $GEM_AUTHORS = ['Sergio Gomes']
58
58
  $GEM_EMAIL = 'api.sgomes@gmail.com'
59
- $GEM_HOMEPAGE = 'http://code.google.com/p/google-api-adwords-ruby/'
59
+ $GEM_HOMEPAGE = 'http://code.google.com/p/google-api-ads-ruby/'
60
60
 
61
61
 
62
62
  # Configure code generation for the AdWords API client library.
@@ -0,0 +1,97 @@
1
+ #!/usr/bin/ruby
2
+ #
3
+ # Author:: api.sgomes@gmail.com (Sérgio Gomes)
4
+ #
5
+ # Copyright:: Copyright 2011, Google Inc. All Rights Reserved.
6
+ #
7
+ # License:: Licensed under the Apache License, Version 2.0 (the "License");
8
+ # you may not use this file except in compliance with the License.
9
+ # You may obtain a copy of the License at
10
+ #
11
+ # http://www.apache.org/licenses/LICENSE-2.0
12
+ #
13
+ # Unless required by applicable law or agreed to in writing, software
14
+ # distributed under the License is distributed on an "AS IS" BASIS,
15
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
16
+ # implied.
17
+ # See the License for the specific language governing permissions and
18
+ # limitations under the License.
19
+ #
20
+ # This example illustrates how to add an AdWords conversion.
21
+ #
22
+ # Tags: ConversionTrackerService.mutate
23
+
24
+ require 'rubygems'
25
+ gem 'google-adwords-api'
26
+ require 'adwords_api'
27
+
28
+ API_VERSION = :v201101
29
+
30
+ def add_conversion()
31
+ # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
32
+ # when called without parameters.
33
+ adwords = AdwordsApi::Api.new
34
+ conv_tracker_srv = adwords.service(:ConversionTrackerService, API_VERSION)
35
+
36
+ # Prepare for adding conversion.
37
+ operation = {
38
+ :operator => 'ADD',
39
+ :operand => {
40
+ # The 'xsi_type' field allows you to specify the xsi:type of the object
41
+ # being created. It's only necessary when you must provide an explicit
42
+ # type that the client library can't infer.
43
+ :xsi_type => 'AdWordsConversionTracker',
44
+ :name => 'Earth to Mars Cruises Conversion #%s' %
45
+ (Time.new.to_f * 1000).to_i,
46
+ :category => 'DEFAULT',
47
+ :markup_language => 'HTML',
48
+ :http_protocol => 'HTTP',
49
+ :text_format => 'HIDDEN'
50
+ }
51
+ }
52
+
53
+ # Add conversion.
54
+ response = conv_tracker_srv.mutate([operation])
55
+ if response and response[:value]
56
+ conversion = response[:value].first
57
+ puts "Conversion with id #{conversion[:id]}, name " +
58
+ "\"#{conversion[:name]}\", status \"#{conversion[:status]}\" and " +
59
+ " category \"#{conversion[:category]}\" was added."
60
+ else
61
+ puts 'No conversions were added.'
62
+ end
63
+ end
64
+
65
+ if __FILE__ == $0
66
+ # To enable logging of SOAP requests, set the ADWORDSAPI_DEBUG environment
67
+ # variable to 'true'. This can be done either from your operating system
68
+ # environment or via code, as done below.
69
+ ENV['ADWORDSAPI_DEBUG'] = 'false'
70
+
71
+ begin
72
+ add_conversion()
73
+
74
+ # Connection error. Likely transitory.
75
+ rescue Errno::ECONNRESET, SOAP::HTTPStreamError, SocketError => e
76
+ puts 'Connection Error: %s' % e
77
+ puts 'Source: %s' % e.backtrace.first
78
+
79
+ # API Error.
80
+ rescue AdwordsApi::Errors::ApiException => e
81
+ puts 'API Exception caught.'
82
+ puts 'Message: %s' % e.message
83
+ puts 'Code: %d' % e.code if e.code
84
+ puts 'Trigger: %s' % e.trigger if e.trigger
85
+ puts 'Errors:'
86
+ if e.errors
87
+ e.errors.each_with_index do |error, index|
88
+ puts ' %d. Error type is %s. Fields:' % [index + 1, error[:xsi_type]]
89
+ error.each_pair do |field, value|
90
+ if field != :xsi_type
91
+ puts ' %s: %s' % [field, value]
92
+ end
93
+ end
94
+ end
95
+ end
96
+ end
97
+ end
@@ -17,9 +17,10 @@
17
17
  # See the License for the specific language governing permissions and
18
18
  # limitations under the License.
19
19
  #
20
- # This example illustrates how to create a user list.
20
+ # This example illustrates how to create a user list and show its associated
21
+ # conversion tracker code snippet.
21
22
  #
22
- # Tags: UserListService.mutate
23
+ # Tags: UserListService.mutate, ConversionTrackerService.get
23
24
 
24
25
  require 'rubygems'
25
26
  gem 'google-adwords-api'
@@ -32,6 +33,7 @@ def add_user_list()
32
33
  # when called without parameters.
33
34
  adwords = AdwordsApi::Api.new
34
35
  user_list_srv = adwords.service(:UserListService, API_VERSION)
36
+ conv_tracker_srv = adwords.service(:ConversionTrackerService, API_VERSION)
35
37
 
36
38
  # Prepare for adding remarketing user list.
37
39
  name = 'Mars cruise customers #%s' % (Time.new.to_f * 1000).to_i
@@ -54,8 +56,32 @@ def add_user_list()
54
56
  response = user_list_srv.mutate([operation])
55
57
  if response and response[:value]
56
58
  user_list = response[:value].first
59
+
60
+ # Get conversion snippets.
61
+ if user_list and user_list[:conversion_types]
62
+ conversion_ids = user_list[:conversion_types].map {|type| type[:id]}
63
+ selector = {
64
+ # We're actually interested in the 'Snippet' field, which is returned
65
+ # automatically.
66
+ :fields => ['Id'],
67
+ :predicates => [
68
+ {:field => 'Id', :operator => 'IN', :values => conversion_ids}
69
+ ]
70
+ }
71
+ conv_tracker_response = conv_tracker_srv.get(selector)
72
+ if conv_tracker_response and conv_tracker_response[:entries]
73
+ conversions = conv_tracker_response[:entries]
74
+ end
75
+ end
57
76
  puts 'User list with name "%s" and id %d was added.' %
58
77
  [user_list[:name], user_list[:id]]
78
+ # Display user list associated conversion code snippets.
79
+ if conversions
80
+ conversions.each do |conversion|
81
+ puts "Conversion type code snipped associated to the list:\n%s\n" %
82
+ conversion[:snippet]
83
+ end
84
+ end
59
85
  else
60
86
  puts 'No user lists were added.'
61
87
  end
@@ -0,0 +1,88 @@
1
+ #!/usr/bin/ruby
2
+ #
3
+ # Author:: api.sgomes@gmail.com (Sérgio Gomes)
4
+ #
5
+ # Copyright:: Copyright 2011, Google Inc. All Rights Reserved.
6
+ #
7
+ # License:: Licensed under the Apache License, Version 2.0 (the "License");
8
+ # you may not use this file except in compliance with the License.
9
+ # You may obtain a copy of the License at
10
+ #
11
+ # http://www.apache.org/licenses/LICENSE-2.0
12
+ #
13
+ # Unless required by applicable law or agreed to in writing, software
14
+ # distributed under the License is distributed on an "AS IS" BASIS,
15
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
16
+ # implied.
17
+ # See the License for the specific language governing permissions and
18
+ # limitations under the License.
19
+ #
20
+ # This example gets all conversions in the account. To add conversions, run
21
+ # add_conversion.rb.
22
+ #
23
+ # Tags: ConversionTrackerService.get
24
+
25
+ require 'rubygems'
26
+ gem 'google-adwords-api'
27
+ require 'adwords_api'
28
+
29
+ API_VERSION = :v201101
30
+
31
+ def get_all_conversions()
32
+ # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
33
+ # when called without parameters.
34
+ adwords = AdwordsApi::Api.new
35
+ conv_tracker_srv = adwords.service(:ConversionTrackerService, API_VERSION)
36
+
37
+ # Get all conversions.
38
+ selector = {
39
+ :fields => ['Id', 'Name', 'Status', 'Category'],
40
+ :ordering => [{:field => 'Name', :sort_order => 'ASCENDING'}],
41
+ }
42
+ response = conv_tracker_srv.get(selector)
43
+ if response and response[:entries]
44
+ conversions = response[:entries]
45
+ puts "#{conversions.length} conversions(s) found."
46
+ conversions.each do |conversion|
47
+ puts " Conversion with id \"#{conversion[:id]}\", status \"" +
48
+ "#{conversion[:status]}\" and category \"#{conversion[:category]}\"" +
49
+ " was found. Code snippet: \n#{conversion[:snippet]}\n"
50
+ end
51
+ else
52
+ puts "No conversions found."
53
+ end
54
+ end
55
+
56
+ if __FILE__ == $0
57
+ # To enable logging of SOAP requests, set the ADWORDSAPI_DEBUG environment
58
+ # variable to 'true'. This can be done either from your operating system
59
+ # environment or via code, as done below.
60
+ ENV['ADWORDSAPI_DEBUG'] = 'false'
61
+
62
+ begin
63
+ get_all_conversions()
64
+
65
+ # Connection error. Likely transitory.
66
+ rescue Errno::ECONNRESET, SOAP::HTTPStreamError, SocketError => e
67
+ puts 'Connection Error: %s' % e
68
+ puts 'Source: %s' % e.backtrace.first
69
+
70
+ # API Error.
71
+ rescue AdwordsApi::Errors::ApiException => e
72
+ puts 'API Exception caught.'
73
+ puts 'Message: %s' % e.message
74
+ puts 'Code: %d' % e.code if e.code
75
+ puts 'Trigger: %s' % e.trigger if e.trigger
76
+ puts 'Errors:'
77
+ if e.errors
78
+ e.errors.each_with_index do |error, index|
79
+ puts ' %d. Error type is %s. Fields:' % [index + 1, error[:xsi_type]]
80
+ error.each_pair do |field, value|
81
+ if field != :xsi_type
82
+ puts ' %s: %s' % [field, value]
83
+ end
84
+ end
85
+ end
86
+ end
87
+ end
88
+ end
@@ -0,0 +1,103 @@
1
+ #!/usr/bin/ruby
2
+ #
3
+ # Author:: api.sgomes@gmail.com (Sérgio Gomes)
4
+ #
5
+ # Copyright:: Copyright 2011, Google Inc. All Rights Reserved.
6
+ #
7
+ # License:: Licensed under the Apache License, Version 2.0 (the "License");
8
+ # you may not use this file except in compliance with the License.
9
+ # You may obtain a copy of the License at
10
+ #
11
+ # http://www.apache.org/licenses/LICENSE-2.0
12
+ #
13
+ # Unless required by applicable law or agreed to in writing, software
14
+ # distributed under the License is distributed on an "AS IS" BASIS,
15
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
16
+ # implied.
17
+ # See the License for the specific language governing permissions and
18
+ # limitations under the License.
19
+ #
20
+ # This example reads all the keyword opportunities for the customer.
21
+ #
22
+ # Tags: BulkOpportunityService.get
23
+
24
+ require 'rubygems'
25
+ gem 'google-adwords-api'
26
+ require 'adwords_api'
27
+
28
+ API_VERSION = :v201101
29
+ PAGE_SIZE = 20
30
+
31
+ def get_keyword_opportunities()
32
+ # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
33
+ # when called without parameters.
34
+ adwords = AdwordsApi::Api.new
35
+ bulk_opportunity_srv = adwords.service(:BulkOpportunityService, API_VERSION)
36
+
37
+ # Construct selector object.
38
+ selector = {
39
+ :requested_attribute_types => ['KEYWORD', 'IDEA_TYPE'],
40
+ :paging => {
41
+ :start_index => 0,
42
+ :number_results => PAGE_SIZE
43
+ }
44
+ }
45
+
46
+ # Perform request.
47
+ ideas = []
48
+ index = 0
49
+ begin
50
+ page = bulk_opportunity_srv.get(selector)
51
+ if page and page[:entries]
52
+ page[:entries].each do |entry|
53
+ ideas += entry[:opportunity_ideas] if entry[:opportunity_ideas]
54
+ end
55
+ end
56
+ break if page[:total_num_entries] <= index
57
+ index += PAGE_SIZE
58
+ selector[:paging][:start_index] = index
59
+ end while page[:total_num_entries] > index
60
+
61
+ # Display results.
62
+ ideas.each do |idea|
63
+ data = AdwordsApi::Utils.map(idea[:data])
64
+ keyword = data['KEYWORD'][:value][:text]
65
+ idea_type = data['IDEA_TYPE'][:value]
66
+ puts " Found opportunity idea of type \"%s\": \"%s\"" % [idea_type, keyword]
67
+ end
68
+ puts "Total opportunity ideas: %d." % [ideas.length]
69
+ end
70
+
71
+ if __FILE__ == $0
72
+ # To enable logging of SOAP requests, set the ADWORDSAPI_DEBUG environment
73
+ # variable to 'true'. This can be done either from your operating system
74
+ # environment or via code, as done below.
75
+ ENV['ADWORDSAPI_DEBUG'] = 'false'
76
+
77
+ begin
78
+ get_keyword_opportunities()
79
+
80
+ # Connection error. Likely transitory.
81
+ rescue Errno::ECONNRESET, SOAP::HTTPStreamError, SocketError => e
82
+ puts 'Connection Error: %s' % e
83
+ puts 'Source: %s' % e.backtrace.first
84
+
85
+ # API Error.
86
+ rescue AdwordsApi::Errors::ApiException => e
87
+ puts 'API Exception caught.'
88
+ puts 'Message: %s' % e.message
89
+ puts 'Code: %d' % e.code if e.code
90
+ puts 'Trigger: %s' % e.trigger if e.trigger
91
+ puts 'Errors:'
92
+ if e.errors
93
+ e.errors.each_with_index do |error, index|
94
+ puts ' %d. Error type is %s. Fields:' % [index + 1, error[:xsi_type]]
95
+ error.each_pair do |field, value|
96
+ if field != :xsi_type
97
+ puts ' %s: %s' % [field, value]
98
+ end
99
+ end
100
+ end
101
+ end
102
+ end
103
+ end
@@ -0,0 +1,96 @@
1
+ #!/usr/bin/ruby
2
+ #
3
+ # Author:: api.sgomes@gmail.com (Sérgio Gomes)
4
+ #
5
+ # Copyright:: Copyright 2011, Google Inc. All Rights Reserved.
6
+ #
7
+ # License:: Licensed under the Apache License, Version 2.0 (the "License");
8
+ # you may not use this file except in compliance with the License.
9
+ # You may obtain a copy of the License at
10
+ #
11
+ # http://www.apache.org/licenses/LICENSE-2.0
12
+ #
13
+ # Unless required by applicable law or agreed to in writing, software
14
+ # distributed under the License is distributed on an "AS IS" BASIS,
15
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
16
+ # implied.
17
+ # See the License for the specific language governing permissions and
18
+ # limitations under the License.
19
+ #
20
+ # This example illustrates how to update a conversion by setting its status to
21
+ # 'DISABLED'. To get conversions, run get_all_conversions.rb.
22
+ #
23
+ # Tags: ConversionTrackerService.mutate
24
+
25
+ require 'rubygems'
26
+ gem 'google-adwords-api'
27
+ require 'adwords_api'
28
+
29
+ API_VERSION = :v201101
30
+
31
+ def update_conversion()
32
+ # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
33
+ # when called without parameters.
34
+ adwords = AdwordsApi::Api.new
35
+ conv_tracker_srv = adwords.service(:ConversionTrackerService, API_VERSION)
36
+
37
+ conversion_id = 'INSERT_CONVERSION_ID_HERE'.to_i
38
+
39
+ # Prepare for updating conversion.
40
+ operation = {
41
+ :operator => 'SET',
42
+ :operand => {
43
+ # The 'xsi_type' field allows you to specify the xsi:type of the object
44
+ # being created. It's only necessary when you must provide an explicit
45
+ # type that the client library can't infer.
46
+ :xsi_type => 'AdWordsConversionTracker',
47
+ :id => conversion_id,
48
+ :status => 'DISABLED'
49
+ }
50
+ }
51
+
52
+ # Update conversion.
53
+ response = conv_tracker_srv.mutate([operation])
54
+ if response and response[:value]
55
+ conversion = response[:value].first
56
+ puts "Conversion with id #{conversion[:id]}, name " +
57
+ "\"#{conversion[:name]}\", status \"#{conversion[:status]}\" and " +
58
+ " category \"#{conversion[:category]}\" was disabled."
59
+ else
60
+ puts 'No conversions were updated.'
61
+ end
62
+ end
63
+
64
+ if __FILE__ == $0
65
+ # To enable logging of SOAP requests, set the ADWORDSAPI_DEBUG environment
66
+ # variable to 'true'. This can be done either from your operating system
67
+ # environment or via code, as done below.
68
+ ENV['ADWORDSAPI_DEBUG'] = 'false'
69
+
70
+ begin
71
+ update_conversion()
72
+
73
+ # Connection error. Likely transitory.
74
+ rescue Errno::ECONNRESET, SOAP::HTTPStreamError, SocketError => e
75
+ puts 'Connection Error: %s' % e
76
+ puts 'Source: %s' % e.backtrace.first
77
+
78
+ # API Error.
79
+ rescue AdwordsApi::Errors::ApiException => e
80
+ puts 'API Exception caught.'
81
+ puts 'Message: %s' % e.message
82
+ puts 'Code: %d' % e.code if e.code
83
+ puts 'Trigger: %s' % e.trigger if e.trigger
84
+ puts 'Errors:'
85
+ if e.errors
86
+ e.errors.each_with_index do |error, index|
87
+ puts ' %d. Error type is %s. Fields:' % [index + 1, error[:xsi_type]]
88
+ error.each_pair do |field, value|
89
+ if field != :xsi_type
90
+ puts ' %s: %s' % [field, value]
91
+ end
92
+ end
93
+ end
94
+ end
95
+ end
96
+ end