google-adwords-api 0.5.3 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (192) hide show
  1. data/ChangeLog +7 -0
  2. data/README +4 -4
  3. data/examples/v201109_1/account_management/create_account.rb +80 -0
  4. data/examples/v201109_1/account_management/get_account_alerts.rb +111 -0
  5. data/examples/v201109_1/account_management/get_account_changes.rb +137 -0
  6. data/examples/v201109_1/account_management/get_account_hierarchy.rb +93 -0
  7. data/examples/v201109_1/account_management/get_client_customer_id.rb +85 -0
  8. data/examples/v201109_1/account_management/get_client_unit_usage.rb +87 -0
  9. data/examples/v201109_1/basic_operations/add_ad_groups.rb +111 -0
  10. data/examples/v201109_1/basic_operations/add_campaigns.rb +140 -0
  11. data/examples/v201109_1/basic_operations/add_keywords.rb +108 -0
  12. data/examples/v201109_1/basic_operations/add_text_ads.rb +105 -0
  13. data/examples/v201109_1/basic_operations/delete_ad.rb +85 -0
  14. data/examples/v201109_1/basic_operations/delete_ad_group.rb +102 -0
  15. data/examples/v201109_1/basic_operations/delete_campaign.rb +103 -0
  16. data/examples/v201109_1/basic_operations/delete_keyword.rb +90 -0
  17. data/examples/v201109_1/basic_operations/get_ad_groups.rb +98 -0
  18. data/examples/v201109_1/basic_operations/get_campaigns.rb +93 -0
  19. data/examples/v201109_1/basic_operations/get_keywords.rb +104 -0
  20. data/examples/v201109_1/basic_operations/get_text_ads.rb +106 -0
  21. data/examples/v201109_1/basic_operations/pause_ad.rb +84 -0
  22. data/examples/v201109_1/basic_operations/update_ad_group.rb +81 -0
  23. data/examples/v201109_1/basic_operations/update_campaign.rb +84 -0
  24. data/examples/v201109_1/basic_operations/update_keyword.rb +99 -0
  25. data/examples/v201109_1/campaign_management/add_experiment.rb +158 -0
  26. data/examples/v201109_1/campaign_management/add_keywords_in_bulk.rb +150 -0
  27. data/examples/v201109_1/campaign_management/add_location_extension.rb +117 -0
  28. data/examples/v201109_1/campaign_management/add_location_extension_override.rb +83 -0
  29. data/examples/v201109_1/campaign_management/get_all_disapproved_ads.rb +93 -0
  30. data/examples/v201109_1/campaign_management/promote_experiment.rb +77 -0
  31. data/examples/v201109_1/campaign_management/set_ad_parameters.rb +114 -0
  32. data/examples/v201109_1/campaign_management/validate_text_ad.rb +106 -0
  33. data/examples/v201109_1/error_handling/handle_captcha_challenge.rb +93 -0
  34. data/examples/v201109_1/error_handling/handle_partial_failures.rb +126 -0
  35. data/examples/v201109_1/error_handling/handle_policy_violation_error.rb +137 -0
  36. data/examples/v201109_1/error_handling/handle_two_factor_authorization_error.rb +87 -0
  37. data/examples/v201109_1/misc/get_all_images_and_videos.rb +101 -0
  38. data/examples/v201109_1/misc/upload_image.rb +90 -0
  39. data/examples/v201109_1/misc/use_oauth.rb +97 -0
  40. data/examples/v201109_1/optimization/estimate_keyword_traffic.rb +129 -0
  41. data/examples/v201109_1/optimization/get_keyword_bid_simulations.rb +92 -0
  42. data/examples/v201109_1/optimization/get_keyword_ideas.rb +113 -0
  43. data/examples/v201109_1/optimization/get_placement_ideas.rb +106 -0
  44. data/examples/v201109_1/remarketing/add_audience.rb +115 -0
  45. data/examples/v201109_1/remarketing/add_conversion_tracker.rb +97 -0
  46. data/examples/v201109_1/reporting/download_criteria_report.rb +79 -0
  47. data/examples/v201109_1/reporting/get_campaign_stats.rb +105 -0
  48. data/examples/v201109_1/reporting/get_defined_reports.rb +75 -0
  49. data/examples/{v201109/reporting/download_defined_report.rb → v201109_1/reporting/get_report_fields.rb} +15 -11
  50. data/examples/v201109_1/reporting/parallel_report_download.rb +159 -0
  51. data/examples/v201109_1/targeting/add_campaign_targeting_criteria.rb +118 -0
  52. data/examples/v201109_1/targeting/get_campaign_targeting_criteria.rb +102 -0
  53. data/examples/v201109_1/targeting/get_targetable_languages_and_carriers.rb +86 -0
  54. data/examples/v201109_1/targeting/lookup_location.rb +103 -0
  55. data/lib/adwords_api.rb +15 -88
  56. data/lib/adwords_api/api_config.rb +75 -33
  57. data/lib/adwords_api/client_login_header_handler.rb +17 -26
  58. data/lib/adwords_api/credential_handler.rb +29 -65
  59. data/lib/adwords_api/report_header_handler.rb +65 -0
  60. data/lib/adwords_api/report_utils.rb +12 -36
  61. data/lib/adwords_api/v201109/ad_extension_override_service.rb +3 -3
  62. data/lib/adwords_api/v201109/ad_extension_override_service_registry.rb +2 -2
  63. data/lib/adwords_api/v201109/ad_group_ad_service.rb +3 -3
  64. data/lib/adwords_api/v201109/ad_group_ad_service_registry.rb +1 -1
  65. data/lib/adwords_api/v201109/ad_group_criterion_service.rb +3 -3
  66. data/lib/adwords_api/v201109/ad_group_criterion_service_registry.rb +1 -1
  67. data/lib/adwords_api/v201109/ad_group_service.rb +3 -3
  68. data/lib/adwords_api/v201109/ad_group_service_registry.rb +1 -1
  69. data/lib/adwords_api/v201109/ad_param_service.rb +3 -3
  70. data/lib/adwords_api/v201109/ad_param_service_registry.rb +1 -1
  71. data/lib/adwords_api/v201109/alert_service.rb +3 -3
  72. data/lib/adwords_api/v201109/alert_service_registry.rb +1 -1
  73. data/lib/adwords_api/v201109/budget_order_service.rb +42 -0
  74. data/lib/adwords_api/v201109/budget_order_service_registry.rb +46 -0
  75. data/lib/adwords_api/v201109/bulk_mutate_job_service.rb +3 -3
  76. data/lib/adwords_api/v201109/bulk_mutate_job_service_registry.rb +1 -1
  77. data/lib/adwords_api/v201109/campaign_ad_extension_service.rb +3 -3
  78. data/lib/adwords_api/v201109/campaign_ad_extension_service_registry.rb +2 -2
  79. data/lib/adwords_api/v201109/campaign_criterion_service.rb +3 -3
  80. data/lib/adwords_api/v201109/campaign_criterion_service_registry.rb +1 -1
  81. data/lib/adwords_api/v201109/campaign_service.rb +3 -3
  82. data/lib/adwords_api/v201109/campaign_service_registry.rb +1 -1
  83. data/lib/adwords_api/v201109/campaign_target_service.rb +3 -3
  84. data/lib/adwords_api/v201109/campaign_target_service_registry.rb +1 -1
  85. data/lib/adwords_api/v201109/constant_data_service.rb +3 -3
  86. data/lib/adwords_api/v201109/constant_data_service_registry.rb +1 -1
  87. data/lib/adwords_api/v201109/conversion_tracker_service.rb +3 -3
  88. data/lib/adwords_api/v201109/conversion_tracker_service_registry.rb +1 -1
  89. data/lib/adwords_api/v201109/create_account_service.rb +3 -3
  90. data/lib/adwords_api/v201109/create_account_service_registry.rb +1 -1
  91. data/lib/adwords_api/v201109/customer_sync_service.rb +3 -3
  92. data/lib/adwords_api/v201109/customer_sync_service_registry.rb +1 -1
  93. data/lib/adwords_api/v201109/data_service.rb +3 -3
  94. data/lib/adwords_api/v201109/data_service_registry.rb +1 -1
  95. data/lib/adwords_api/v201109/experiment_service.rb +3 -3
  96. data/lib/adwords_api/v201109/experiment_service_registry.rb +1 -1
  97. data/lib/adwords_api/v201109/geo_location_service.rb +3 -3
  98. data/lib/adwords_api/v201109/geo_location_service_registry.rb +1 -1
  99. data/lib/adwords_api/v201109/info_service.rb +3 -3
  100. data/lib/adwords_api/v201109/info_service_registry.rb +1 -1
  101. data/lib/adwords_api/v201109/location_criterion_service.rb +3 -3
  102. data/lib/adwords_api/v201109/location_criterion_service_registry.rb +1 -1
  103. data/lib/adwords_api/v201109/media_service.rb +3 -3
  104. data/lib/adwords_api/v201109/media_service_registry.rb +1 -1
  105. data/lib/adwords_api/v201109/mutate_job_service.rb +3 -3
  106. data/lib/adwords_api/v201109/mutate_job_service_registry.rb +1 -1
  107. data/lib/adwords_api/v201109/report_definition_service.rb +3 -12
  108. data/lib/adwords_api/v201109/report_definition_service_registry.rb +1 -1
  109. data/lib/adwords_api/v201109/serviced_account_service.rb +3 -3
  110. data/lib/adwords_api/v201109/serviced_account_service_registry.rb +1 -1
  111. data/lib/adwords_api/v201109/targeting_idea_service.rb +3 -3
  112. data/lib/adwords_api/v201109/targeting_idea_service_registry.rb +1 -1
  113. data/lib/adwords_api/v201109/traffic_estimator_service.rb +3 -3
  114. data/lib/adwords_api/v201109/traffic_estimator_service_registry.rb +1 -1
  115. data/lib/adwords_api/v201109/user_list_service.rb +3 -3
  116. data/lib/adwords_api/v201109/user_list_service_registry.rb +1 -1
  117. data/lib/adwords_api/v201109_1/ad_extension_override_service.rb +38 -0
  118. data/lib/adwords_api/v201109_1/ad_extension_override_service_registry.rb +46 -0
  119. data/lib/adwords_api/v201109_1/ad_group_ad_service.rb +38 -0
  120. data/lib/adwords_api/v201109_1/ad_group_ad_service_registry.rb +46 -0
  121. data/lib/adwords_api/v201109_1/ad_group_criterion_service.rb +38 -0
  122. data/lib/adwords_api/v201109_1/ad_group_criterion_service_registry.rb +46 -0
  123. data/lib/adwords_api/v201109_1/ad_group_service.rb +38 -0
  124. data/lib/adwords_api/v201109_1/ad_group_service_registry.rb +46 -0
  125. data/lib/adwords_api/v201109_1/ad_param_service.rb +38 -0
  126. data/lib/adwords_api/v201109_1/ad_param_service_registry.rb +46 -0
  127. data/lib/adwords_api/v201109_1/alert_service.rb +34 -0
  128. data/lib/adwords_api/v201109_1/alert_service_registry.rb +46 -0
  129. data/lib/adwords_api/v201109_1/budget_order_service.rb +42 -0
  130. data/lib/adwords_api/v201109_1/budget_order_service_registry.rb +46 -0
  131. data/lib/adwords_api/v201109_1/bulk_mutate_job_service.rb +38 -0
  132. data/lib/adwords_api/v201109_1/bulk_mutate_job_service_registry.rb +46 -0
  133. data/lib/adwords_api/v201109_1/campaign_ad_extension_service.rb +38 -0
  134. data/lib/adwords_api/v201109_1/campaign_ad_extension_service_registry.rb +46 -0
  135. data/lib/adwords_api/v201109_1/campaign_criterion_service.rb +38 -0
  136. data/lib/adwords_api/v201109_1/campaign_criterion_service_registry.rb +46 -0
  137. data/lib/adwords_api/v201109_1/campaign_service.rb +38 -0
  138. data/lib/adwords_api/v201109_1/campaign_service_registry.rb +46 -0
  139. data/lib/adwords_api/v201109_1/campaign_target_service.rb +38 -0
  140. data/lib/adwords_api/v201109_1/campaign_target_service_registry.rb +46 -0
  141. data/lib/adwords_api/v201109_1/constant_data_service.rb +38 -0
  142. data/lib/adwords_api/v201109_1/constant_data_service_registry.rb +46 -0
  143. data/lib/adwords_api/v201109_1/conversion_tracker_service.rb +38 -0
  144. data/lib/adwords_api/v201109_1/conversion_tracker_service_registry.rb +46 -0
  145. data/lib/adwords_api/v201109_1/create_account_service.rb +34 -0
  146. data/lib/adwords_api/v201109_1/create_account_service_registry.rb +47 -0
  147. data/lib/adwords_api/v201109_1/customer_sync_service.rb +34 -0
  148. data/lib/adwords_api/v201109_1/customer_sync_service_registry.rb +47 -0
  149. data/lib/adwords_api/v201109_1/data_service.rb +38 -0
  150. data/lib/adwords_api/v201109_1/data_service_registry.rb +46 -0
  151. data/lib/adwords_api/v201109_1/experiment_service.rb +38 -0
  152. data/lib/adwords_api/v201109_1/experiment_service_registry.rb +46 -0
  153. data/lib/adwords_api/v201109_1/geo_location_service.rb +34 -0
  154. data/lib/adwords_api/v201109_1/geo_location_service_registry.rb +46 -0
  155. data/lib/adwords_api/v201109_1/info_service.rb +34 -0
  156. data/lib/adwords_api/v201109_1/info_service_registry.rb +46 -0
  157. data/lib/adwords_api/v201109_1/location_criterion_service.rb +34 -0
  158. data/lib/adwords_api/v201109_1/location_criterion_service_registry.rb +46 -0
  159. data/lib/adwords_api/v201109_1/media_service.rb +38 -0
  160. data/lib/adwords_api/v201109_1/media_service_registry.rb +46 -0
  161. data/lib/adwords_api/v201109_1/mutate_job_service.rb +42 -0
  162. data/lib/adwords_api/v201109_1/mutate_job_service_registry.rb +46 -0
  163. data/lib/adwords_api/v201109_1/report_definition_service.rb +38 -0
  164. data/lib/adwords_api/v201109_1/report_definition_service_registry.rb +46 -0
  165. data/lib/adwords_api/v201109_1/serviced_account_service.rb +34 -0
  166. data/lib/adwords_api/v201109_1/serviced_account_service_registry.rb +46 -0
  167. data/lib/adwords_api/v201109_1/targeting_idea_service.rb +38 -0
  168. data/lib/adwords_api/v201109_1/targeting_idea_service_registry.rb +46 -0
  169. data/lib/adwords_api/v201109_1/traffic_estimator_service.rb +34 -0
  170. data/lib/adwords_api/v201109_1/traffic_estimator_service_registry.rb +46 -0
  171. data/lib/adwords_api/v201109_1/user_list_service.rb +38 -0
  172. data/lib/adwords_api/v201109_1/user_list_service_registry.rb +46 -0
  173. data/lib/adwords_api/version.rb +1 -1
  174. data/test/adwords_api/test_api_config.rb +24 -8
  175. data/test/adwords_api/test_credential_handler.rb +32 -52
  176. data/test/coverage.rb +38 -0
  177. data/test/examples/v201109/test_reporting.rb +0 -12
  178. data/test/examples/v201109_1/test_account_management.rb +60 -0
  179. data/test/examples/v201109_1/test_basic_operations.rb +172 -0
  180. data/test/examples/v201109_1/test_campaign_management.rb +116 -0
  181. data/test/examples/v201109_1/test_error_handling.rb +63 -0
  182. data/{lib/adwords_api/v13_login_handler.rb → test/examples/v201109_1/test_misc.rb} +24 -10
  183. data/test/examples/v201109_1/test_optimization.rb +63 -0
  184. data/test/{suite_exampletests.rb → examples/v201109_1/test_remarketing.rb} +16 -8
  185. data/test/examples/v201109_1/test_reporting.rb +77 -0
  186. data/test/examples/v201109_1/test_targeting.rb +60 -0
  187. data/test/examples/v201109_1/utils.rb +239 -0
  188. data/test/suite_exampletests_v201109.rb +37 -0
  189. data/test/suite_exampletests_v201109_1.rb +37 -0
  190. data/test/suite_unittests.rb +7 -5
  191. metadata +136 -11
  192. data/lib/adwords_api/extensions.rb +0 -269
@@ -0,0 +1,239 @@
1
+ # Encoding: utf-8
2
+ #
3
+ # Author:: api.dklimkin@gmail.com (Danial Klimkin)
4
+ #
5
+ # Copyright:: Copyright 2012, 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
+ # Utilities and constants for example tests.
21
+
22
+ API_VERSION = :v201109_1
23
+ PAGE_SIZE = 500
24
+
25
+ class UtilsV201109_1
26
+ def initialize(adwords)
27
+ @adwords = adwords
28
+ end
29
+
30
+ def get_campaign
31
+ @campaign ||= create_campaign()
32
+ return @campaign
33
+ end
34
+
35
+ def get_ad_group
36
+ @ad_group ||= create_ad_group()
37
+ return @ad_group
38
+ end
39
+
40
+ def get_ad
41
+ @ad ||= create_ad(get_ad_group()[:id])
42
+ return @ad
43
+ end
44
+
45
+ def get_keyword
46
+ @keyword ||= create_keyword(get_ad_group()[:id])
47
+ return @keyword
48
+ end
49
+
50
+ def get_location_extension
51
+ @location_extension ||= create_location_extension(get_campaign()[:id])
52
+ return @location_extension
53
+ end
54
+
55
+ def get_experiment
56
+ @experiment ||= create_experiment(
57
+ get_campaign()[:id], get_ad_group()[:id], get_keyword[:criterion][:id])
58
+ return @experiment
59
+ end
60
+
61
+ private
62
+
63
+ def create_campaign
64
+ campaign_srv = @adwords.service(:CampaignService, API_VERSION)
65
+ campaign = {
66
+ :name => "Example tests campaign #%d" % (Time.new.to_f * 1000).to_i,
67
+ :status => 'PAUSED',
68
+ :bidding_strategy => {:xsi_type => 'ManualCPC'},
69
+ :budget => {
70
+ :period => 'DAILY',
71
+ :amount => {:micro_amount => 50000000},
72
+ :delivery_method => 'STANDARD'
73
+ },
74
+ :network_setting => {
75
+ :target_google_search => true,
76
+ :target_search_network => true,
77
+ :target_content_network => false,
78
+ :target_content_contextual => false
79
+ }
80
+ }
81
+ operation = {:operator => 'ADD', :operand => campaign}
82
+ response = campaign_srv.mutate([operation])
83
+ return response[:value].first
84
+ end
85
+
86
+ def create_ad_group
87
+ campaign = get_campaign()
88
+ ad_group_srv = @adwords.service(:AdGroupService, API_VERSION)
89
+ ad_group = {
90
+ :name => "Example tests ad group #%d" % (Time.new.to_f * 1000).to_i,
91
+ :status => 'ENABLED',
92
+ :campaign_id => campaign[:id],
93
+ :bids => {
94
+ :xsi_type => 'ManualCPCAdGroupBids',
95
+ :keyword_max_cpc => {:amount => {:micro_amount => 10000000}},
96
+ }
97
+ }
98
+ operation = {:operator => 'ADD', :operand => ad_group}
99
+ response = ad_group_srv.mutate([operation])
100
+ return response[:value].first
101
+ end
102
+
103
+ def create_ad(ad_group_id)
104
+ ad_group_ad_srv = @adwords.service(:AdGroupAdService, API_VERSION)
105
+ text_ad = {
106
+ :xsi_type => 'TextAd',
107
+ :headline => 'Examples test ad %d' % (Time.new.to_f * 1000).to_i,
108
+ :description1 => 'testing ruby examples',
109
+ :description2 => 'all your base are belong to us',
110
+ :url => 'http://www.example.com',
111
+ :display_url => 'www.example.com'
112
+ }
113
+ operation = {:operator => 'ADD',
114
+ :operand => {:ad_group_id => ad_group_id, :ad => text_ad}}
115
+ response = ad_group_ad_srv.mutate([operation])
116
+ return response[:value].first
117
+ end
118
+
119
+ def create_keyword(ad_group_id)
120
+ ad_group_criterion_srv =
121
+ @adwords.service(:AdGroupCriterionService, API_VERSION)
122
+ keyword = {
123
+ :xsi_type => 'BiddableAdGroupCriterion',
124
+ :ad_group_id => ad_group_id,
125
+ :criterion => {
126
+ :xsi_type => 'Keyword',
127
+ :text => 'mars cruise',
128
+ :match_type => 'BROAD'
129
+ }
130
+ }
131
+ operation = {:operator => 'ADD', :operand => keyword}
132
+ response = ad_group_criterion_srv.mutate([operation])
133
+ return response[:value].first
134
+ end
135
+
136
+ def create_location_extension(campaign_id)
137
+ campaign_ad_ext_srv =
138
+ @adwords.service(:CampaignAdExtensionService, API_VERSION)
139
+ geo_location_srv = @adwords.service(:GeoLocationService, API_VERSION)
140
+
141
+ selector = {
142
+ :addresses => [
143
+ {
144
+ :street_address => '1600 Amphitheatre Parkway',
145
+ :city_name => 'Mountain View',
146
+ :province_code => 'CA',
147
+ :postal_code => '94043',
148
+ :country_code => 'US'
149
+ }
150
+ ]
151
+ }
152
+
153
+ locations = geo_location_srv.get(selector)
154
+ raise StandardError, 'Unable to retrieve geo locations.' if locations.nil?
155
+
156
+ operations = locations.map do |location|
157
+ {
158
+ :operator => 'ADD',
159
+ :operand => {
160
+ :campaign_id => campaign_id,
161
+ :status => 'ACTIVE',
162
+ :ad_extension => {
163
+ :xsi_type => 'LocationExtension',
164
+ :address => location[:address],
165
+ :geo_point => location[:geo_point],
166
+ :encoded_location => location[:encoded_location],
167
+ :source => 'ADWORDS_FRONTEND'
168
+ }
169
+ }
170
+ }
171
+ end
172
+
173
+ response = campaign_ad_ext_srv.mutate(operations)
174
+ extension = response[:value].first
175
+ return extension
176
+ end
177
+
178
+ def create_experiment(campaign_id, ad_group_id, criterion_id)
179
+ experiment_srv = @adwords.service(:ExperimentService, API_VERSION)
180
+ ad_group_srv = @adwords.service(:AdGroupService, API_VERSION)
181
+ ad_group_criterion_srv =
182
+ @adwords.service(:AdGroupCriterionService, API_VERSION)
183
+
184
+ operation = {
185
+ :operator => 'ADD',
186
+ :operand => {
187
+ :campaign_id => campaign_id,
188
+ :name => "Examples test experiment #%d" % (Time.new.to_f * 1000).to_i,
189
+ :query_percentage => 10,
190
+ :start_date_time => Time.now.strftime('%Y%m%d %H%M%S'),
191
+ }
192
+ }
193
+ response = experiment_srv.mutate([operation])
194
+ experiment = response[:value].first
195
+
196
+ raise StandardError, 'Failed to create experiment' if experiment.nil?
197
+
198
+ ad_group = {
199
+ :id => ad_group_id,
200
+ :experiment_data => {
201
+ :experiment_id => experiment[:id],
202
+ :experiment_delta_status => 'MODIFIED',
203
+ :experiment_bid_multipliers => {
204
+ :xsi_type => 'ManualCPCAdGroupExperimentBidMultipliers',
205
+ :max_cpc_multiplier => {:multiplier => 1.5}
206
+ }
207
+ }
208
+ }
209
+
210
+ operation = {:operator => 'SET', :operand => ad_group}
211
+ response = ad_group_srv.mutate([operation])
212
+ ad_group = response[:value].first
213
+
214
+ raise StandardError, 'Failed to assign experiment' if ad_group.nil?
215
+
216
+ ad_group_criterion = {
217
+ :xsi_type => 'BiddableAdGroupCriterion',
218
+ :ad_group_id => ad_group_id,
219
+ :criterion => {:id => criterion_id},
220
+ :experiment_data => {
221
+ :xsi_type => 'BiddableAdGroupCriterionExperimentData',
222
+ :experiment_id => experiment[:id],
223
+ :experiment_delta_status => 'MODIFIED',
224
+ :experiment_bid_multiplier => {
225
+ :xsi_type => 'ManualCPCAdGroupCriterionExperimentBidMultiplier',
226
+ :max_cpc_multiplier => {:multiplier => 1.5}
227
+ }
228
+ }
229
+ }
230
+
231
+ operation = {:operator => 'SET', :operand => ad_group_criterion}
232
+ response = ad_group_criterion_srv.mutate([operation])
233
+ criterion = response[:value].first
234
+
235
+ raise StandardError, 'Failed to assign criterion' if criterion.nil?
236
+
237
+ return experiment
238
+ end
239
+ end
@@ -0,0 +1,37 @@
1
+ #!/usr/bin/env ruby
2
+ # Encoding: utf-8
3
+ #
4
+ # Author:: api.dklimkin@gmail.com (Danial Klimkin)
5
+ #
6
+ # Copyright:: Copyright 2012, Google Inc. All Rights Reserved.
7
+ #
8
+ # License:: Licensed under the Apache License, Version 2.0 (the "License");
9
+ # you may not use this file except in compliance with the License.
10
+ # You may obtain a copy of the License at
11
+ #
12
+ # http://www.apache.org/licenses/LICENSE-2.0
13
+ #
14
+ # Unless required by applicable law or agreed to in writing, software
15
+ # distributed under the License is distributed on an "AS IS" BASIS,
16
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
17
+ # implied.
18
+ # See the License for the specific language governing permissions and
19
+ # limitations under the License.
20
+ #
21
+ # Test suite for v201109 example tests.
22
+
23
+ require 'test/unit'
24
+
25
+ $:.unshift File.expand_path('../../lib/', __FILE__)
26
+ $:.unshift File.expand_path('../../', __FILE__)
27
+
28
+ version = 'v201109'
29
+
30
+ examples_path =
31
+ File.expand_path(File.join('..', '..', 'examples', version), __FILE__)
32
+ $:.unshift(examples_path)
33
+
34
+ tests_path = File.join(File.dirname(__FILE__), 'examples', version)
35
+ require File.join(tests_path, 'utils.rb')
36
+ tests_mask = File.join(tests_path, 'test_*.rb')
37
+ Dir.glob(tests_mask).each {|file| require file}
@@ -0,0 +1,37 @@
1
+ #!/usr/bin/env ruby
2
+ # Encoding: utf-8
3
+ #
4
+ # Author:: api.dklimkin@gmail.com (Danial Klimkin)
5
+ #
6
+ # Copyright:: Copyright 2012, Google Inc. All Rights Reserved.
7
+ #
8
+ # License:: Licensed under the Apache License, Version 2.0 (the "License");
9
+ # you may not use this file except in compliance with the License.
10
+ # You may obtain a copy of the License at
11
+ #
12
+ # http://www.apache.org/licenses/LICENSE-2.0
13
+ #
14
+ # Unless required by applicable law or agreed to in writing, software
15
+ # distributed under the License is distributed on an "AS IS" BASIS,
16
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
17
+ # implied.
18
+ # See the License for the specific language governing permissions and
19
+ # limitations under the License.
20
+ #
21
+ # Test suite for v201109_1 example tests.
22
+
23
+ require 'test/unit'
24
+
25
+ $:.unshift File.expand_path('../../lib/', __FILE__)
26
+ $:.unshift File.expand_path('../../', __FILE__)
27
+
28
+ version = 'v201109_1'
29
+
30
+ examples_path =
31
+ File.expand_path(File.join('..', '..', 'examples', version), __FILE__)
32
+ $:.unshift(examples_path)
33
+
34
+ tests_path = File.join(File.dirname(__FILE__), 'examples', version)
35
+ require File.join(tests_path, 'utils.rb')
36
+ tests_mask = File.join(tests_path, 'test_*.rb')
37
+ Dir.glob(tests_mask).each {|file| require file}
@@ -20,13 +20,15 @@
20
20
  #
21
21
  # Test suite for unit tests.
22
22
 
23
- lib = File.expand_path('../lib/', __FILE__)
24
- $:.unshift lib unless $:.include?(lib)
25
-
26
23
  require 'test/unit'
27
24
 
25
+ $:.unshift File.expand_path('../../lib/', __FILE__)
26
+ $:.unshift File.expand_path('../../', __FILE__)
27
+
28
28
  # AdWords API units tests.
29
- Dir.glob('./test/adwords_api/test*.rb').each {|file| require file}
29
+ adwords_mask = File.join(File.dirname(__FILE__), 'adwords_api', 'test_*.rb')
30
+ Dir.glob(adwords_mask).each {|file| require file}
30
31
 
31
32
  # Reported bugs tests.
32
- Dir.glob('./test/bugs/test*.rb').each {|file| require file}
33
+ bugs_mask = File.join(File.dirname(__FILE__), 'bugs', 'test_*.rb')
34
+ Dir.glob(bugs_mask).each {|file| require file}
metadata CHANGED
@@ -1,12 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google-adwords-api
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 7
4
5
  prerelease: false
5
6
  segments:
6
7
  - 0
7
- - 5
8
- - 3
9
- version: 0.5.3
8
+ - 6
9
+ - 0
10
+ version: 0.6.0
10
11
  platform: ruby
11
12
  authors:
12
13
  - Danial Klimkin
@@ -14,7 +15,7 @@ autorequire:
14
15
  bindir: bin
15
16
  cert_chain: []
16
17
 
17
- date: 2012-04-12 00:00:00 +04:00
18
+ date: 2012-05-15 00:00:00 +04:00
18
19
  default_executable:
19
20
  dependencies:
20
21
  - !ruby/object:Gem::Dependency
@@ -25,6 +26,7 @@ dependencies:
25
26
  requirements:
26
27
  - - ~>
27
28
  - !ruby/object:Gem::Version
29
+ hash: 41
28
30
  segments:
29
31
  - 0
30
32
  - 9
@@ -40,11 +42,12 @@ dependencies:
40
42
  requirements:
41
43
  - - ~>
42
44
  - !ruby/object:Gem::Version
45
+ hash: 3
43
46
  segments:
44
47
  - 0
45
- - 6
46
- - 3
47
- version: 0.6.3
48
+ - 7
49
+ - 0
50
+ version: 0.7.0
48
51
  type: :runtime
49
52
  version_requirements: *id002
50
53
  description: google-adwords-api is a AdWords API client library for Ruby
@@ -57,8 +60,59 @@ extensions: []
57
60
  extra_rdoc_files: []
58
61
 
59
62
  files:
63
+ - examples/v201109_1/reporting/download_criteria_report.rb
64
+ - examples/v201109_1/reporting/get_defined_reports.rb
65
+ - examples/v201109_1/reporting/get_campaign_stats.rb
66
+ - examples/v201109_1/reporting/parallel_report_download.rb
67
+ - examples/v201109_1/reporting/get_report_fields.rb
68
+ - examples/v201109_1/error_handling/handle_policy_violation_error.rb
69
+ - examples/v201109_1/error_handling/handle_two_factor_authorization_error.rb
70
+ - examples/v201109_1/error_handling/handle_captcha_challenge.rb
71
+ - examples/v201109_1/error_handling/handle_partial_failures.rb
72
+ - examples/v201109_1/targeting/lookup_location.rb
73
+ - examples/v201109_1/targeting/get_targetable_languages_and_carriers.rb
74
+ - examples/v201109_1/targeting/add_campaign_targeting_criteria.rb
75
+ - examples/v201109_1/targeting/get_campaign_targeting_criteria.rb
76
+ - examples/v201109_1/campaign_management/validate_text_ad.rb
77
+ - examples/v201109_1/campaign_management/add_experiment.rb
78
+ - examples/v201109_1/campaign_management/set_ad_parameters.rb
79
+ - examples/v201109_1/campaign_management/add_location_extension.rb
80
+ - examples/v201109_1/campaign_management/add_keywords_in_bulk.rb
81
+ - examples/v201109_1/campaign_management/promote_experiment.rb
82
+ - examples/v201109_1/campaign_management/get_all_disapproved_ads.rb
83
+ - examples/v201109_1/campaign_management/add_location_extension_override.rb
84
+ - examples/v201109_1/account_management/get_account_hierarchy.rb
85
+ - examples/v201109_1/account_management/get_account_changes.rb
86
+ - examples/v201109_1/account_management/get_client_unit_usage.rb
87
+ - examples/v201109_1/account_management/get_client_customer_id.rb
88
+ - examples/v201109_1/account_management/get_account_alerts.rb
89
+ - examples/v201109_1/account_management/create_account.rb
90
+ - examples/v201109_1/optimization/estimate_keyword_traffic.rb
91
+ - examples/v201109_1/optimization/get_keyword_bid_simulations.rb
92
+ - examples/v201109_1/optimization/get_keyword_ideas.rb
93
+ - examples/v201109_1/optimization/get_placement_ideas.rb
94
+ - examples/v201109_1/basic_operations/update_campaign.rb
95
+ - examples/v201109_1/basic_operations/get_campaigns.rb
96
+ - examples/v201109_1/basic_operations/get_ad_groups.rb
97
+ - examples/v201109_1/basic_operations/add_campaigns.rb
98
+ - examples/v201109_1/basic_operations/delete_ad_group.rb
99
+ - examples/v201109_1/basic_operations/delete_keyword.rb
100
+ - examples/v201109_1/basic_operations/delete_ad.rb
101
+ - examples/v201109_1/basic_operations/add_ad_groups.rb
102
+ - examples/v201109_1/basic_operations/update_ad_group.rb
103
+ - examples/v201109_1/basic_operations/get_keywords.rb
104
+ - examples/v201109_1/basic_operations/delete_campaign.rb
105
+ - examples/v201109_1/basic_operations/get_text_ads.rb
106
+ - examples/v201109_1/basic_operations/add_keywords.rb
107
+ - examples/v201109_1/basic_operations/add_text_ads.rb
108
+ - examples/v201109_1/basic_operations/pause_ad.rb
109
+ - examples/v201109_1/basic_operations/update_keyword.rb
110
+ - examples/v201109_1/misc/upload_image.rb
111
+ - examples/v201109_1/misc/get_all_images_and_videos.rb
112
+ - examples/v201109_1/misc/use_oauth.rb
113
+ - examples/v201109_1/remarketing/add_conversion_tracker.rb
114
+ - examples/v201109_1/remarketing/add_audience.rb
60
115
  - examples/v201109/reporting/download_criteria_report.rb
61
- - examples/v201109/reporting/download_defined_report.rb
62
116
  - examples/v201109/reporting/get_defined_reports.rb
63
117
  - examples/v201109/reporting/get_campaign_stats.rb
64
118
  - examples/v201109/reporting/parallel_report_download.rb
@@ -114,6 +168,63 @@ files:
114
168
  - lib/adwords_api/version.rb
115
169
  - lib/adwords_api/report_utils.rb
116
170
  - lib/adwords_api/credential_handler.rb
171
+ - lib/adwords_api/v201109_1/mutate_job_service.rb
172
+ - lib/adwords_api/v201109_1/conversion_tracker_service_registry.rb
173
+ - lib/adwords_api/v201109_1/info_service_registry.rb
174
+ - lib/adwords_api/v201109_1/ad_extension_override_service_registry.rb
175
+ - lib/adwords_api/v201109_1/campaign_target_service.rb
176
+ - lib/adwords_api/v201109_1/experiment_service_registry.rb
177
+ - lib/adwords_api/v201109_1/alert_service_registry.rb
178
+ - lib/adwords_api/v201109_1/campaign_criterion_service.rb
179
+ - lib/adwords_api/v201109_1/budget_order_service.rb
180
+ - lib/adwords_api/v201109_1/ad_group_ad_service_registry.rb
181
+ - lib/adwords_api/v201109_1/customer_sync_service_registry.rb
182
+ - lib/adwords_api/v201109_1/budget_order_service_registry.rb
183
+ - lib/adwords_api/v201109_1/experiment_service.rb
184
+ - lib/adwords_api/v201109_1/alert_service.rb
185
+ - lib/adwords_api/v201109_1/customer_sync_service.rb
186
+ - lib/adwords_api/v201109_1/serviced_account_service_registry.rb
187
+ - lib/adwords_api/v201109_1/location_criterion_service_registry.rb
188
+ - lib/adwords_api/v201109_1/targeting_idea_service.rb
189
+ - lib/adwords_api/v201109_1/geo_location_service.rb
190
+ - lib/adwords_api/v201109_1/ad_group_criterion_service.rb
191
+ - lib/adwords_api/v201109_1/campaign_target_service_registry.rb
192
+ - lib/adwords_api/v201109_1/user_list_service_registry.rb
193
+ - lib/adwords_api/v201109_1/constant_data_service_registry.rb
194
+ - lib/adwords_api/v201109_1/ad_group_ad_service.rb
195
+ - lib/adwords_api/v201109_1/traffic_estimator_service_registry.rb
196
+ - lib/adwords_api/v201109_1/campaign_service.rb
197
+ - lib/adwords_api/v201109_1/conversion_tracker_service.rb
198
+ - lib/adwords_api/v201109_1/media_service_registry.rb
199
+ - lib/adwords_api/v201109_1/campaign_ad_extension_service_registry.rb
200
+ - lib/adwords_api/v201109_1/campaign_service_registry.rb
201
+ - lib/adwords_api/v201109_1/bulk_mutate_job_service.rb
202
+ - lib/adwords_api/v201109_1/user_list_service.rb
203
+ - lib/adwords_api/v201109_1/location_criterion_service.rb
204
+ - lib/adwords_api/v201109_1/ad_group_service.rb
205
+ - lib/adwords_api/v201109_1/ad_group_service_registry.rb
206
+ - lib/adwords_api/v201109_1/ad_param_service.rb
207
+ - lib/adwords_api/v201109_1/traffic_estimator_service.rb
208
+ - lib/adwords_api/v201109_1/info_service.rb
209
+ - lib/adwords_api/v201109_1/data_service_registry.rb
210
+ - lib/adwords_api/v201109_1/serviced_account_service.rb
211
+ - lib/adwords_api/v201109_1/create_account_service.rb
212
+ - lib/adwords_api/v201109_1/ad_extension_override_service.rb
213
+ - lib/adwords_api/v201109_1/report_definition_service.rb
214
+ - lib/adwords_api/v201109_1/ad_param_service_registry.rb
215
+ - lib/adwords_api/v201109_1/mutate_job_service_registry.rb
216
+ - lib/adwords_api/v201109_1/constant_data_service.rb
217
+ - lib/adwords_api/v201109_1/ad_group_criterion_service_registry.rb
218
+ - lib/adwords_api/v201109_1/campaign_ad_extension_service.rb
219
+ - lib/adwords_api/v201109_1/campaign_criterion_service_registry.rb
220
+ - lib/adwords_api/v201109_1/report_definition_service_registry.rb
221
+ - lib/adwords_api/v201109_1/media_service.rb
222
+ - lib/adwords_api/v201109_1/geo_location_service_registry.rb
223
+ - lib/adwords_api/v201109_1/targeting_idea_service_registry.rb
224
+ - lib/adwords_api/v201109_1/create_account_service_registry.rb
225
+ - lib/adwords_api/v201109_1/bulk_mutate_job_service_registry.rb
226
+ - lib/adwords_api/v201109_1/data_service.rb
227
+ - lib/adwords_api/report_header_handler.rb
117
228
  - lib/adwords_api/api_config.rb
118
229
  - lib/adwords_api/v201109/mutate_job_service.rb
119
230
  - lib/adwords_api/v201109/conversion_tracker_service_registry.rb
@@ -123,8 +234,10 @@ files:
123
234
  - lib/adwords_api/v201109/experiment_service_registry.rb
124
235
  - lib/adwords_api/v201109/alert_service_registry.rb
125
236
  - lib/adwords_api/v201109/campaign_criterion_service.rb
237
+ - lib/adwords_api/v201109/budget_order_service.rb
126
238
  - lib/adwords_api/v201109/ad_group_ad_service_registry.rb
127
239
  - lib/adwords_api/v201109/customer_sync_service_registry.rb
240
+ - lib/adwords_api/v201109/budget_order_service_registry.rb
128
241
  - lib/adwords_api/v201109/experiment_service.rb
129
242
  - lib/adwords_api/v201109/alert_service.rb
130
243
  - lib/adwords_api/v201109/customer_sync_service.rb
@@ -170,10 +283,19 @@ files:
170
283
  - lib/adwords_api/v201109/bulk_mutate_job_service_registry.rb
171
284
  - lib/adwords_api/v201109/data_service.rb
172
285
  - lib/adwords_api/errors.rb
173
- - lib/adwords_api/extensions.rb
174
286
  - lib/adwords_api/client_login_header_handler.rb
175
- - lib/adwords_api/v13_login_handler.rb
176
287
  - lib/adwords_api.rb
288
+ - test/suite_exampletests_v201109_1.rb
289
+ - test/examples/v201109_1/utils.rb
290
+ - test/examples/v201109_1/test_error_handling.rb
291
+ - test/examples/v201109_1/test_targeting.rb
292
+ - test/examples/v201109_1/test_misc.rb
293
+ - test/examples/v201109_1/test_remarketing.rb
294
+ - test/examples/v201109_1/test_account_management.rb
295
+ - test/examples/v201109_1/test_optimization.rb
296
+ - test/examples/v201109_1/test_reporting.rb
297
+ - test/examples/v201109_1/test_basic_operations.rb
298
+ - test/examples/v201109_1/test_campaign_management.rb
177
299
  - test/examples/v201109/utils.rb
178
300
  - test/examples/v201109/test_error_handling.rb
179
301
  - test/examples/v201109/test_targeting.rb
@@ -184,13 +306,14 @@ files:
184
306
  - test/examples/v201109/test_reporting.rb
185
307
  - test/examples/v201109/test_basic_operations.rb
186
308
  - test/examples/v201109/test_campaign_management.rb
309
+ - test/suite_exampletests_v201109.rb
187
310
  - test/bugs/test_issue_00000031.rb
311
+ - test/coverage.rb
188
312
  - test/suite_unittests.rb
189
313
  - test/adwords_api/test_report_utils.rb
190
314
  - test/adwords_api/test_credential_handler.rb
191
315
  - test/adwords_api/test_api_config.rb
192
316
  - test/adwords_api/test_utils.rb
193
- - test/suite_exampletests.rb
194
317
  - COPYING
195
318
  - README
196
319
  - ChangeLog
@@ -209,6 +332,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
209
332
  requirements:
210
333
  - - ">="
211
334
  - !ruby/object:Gem::Version
335
+ hash: 3
212
336
  segments:
213
337
  - 0
214
338
  version: "0"
@@ -217,6 +341,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
217
341
  requirements:
218
342
  - - ">="
219
343
  - !ruby/object:Gem::Version
344
+ hash: 23
220
345
  segments:
221
346
  - 1
222
347
  - 3