google-adwords-api 0.13.2 → 0.14.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (163) hide show
  1. checksums.yaml +8 -8
  2. data/ChangeLog +12 -0
  3. data/examples/v201406/advanced_operations/{add_places_location_extensions.rb → add_google_my_business_location_extensions.rb} +24 -15
  4. data/examples/v201409/advanced_operations/{add_places_location_extensions.rb → add_google_my_business_location_extensions.rb} +41 -16
  5. data/examples/v201409/advanced_operations/use_shared_bidding_strategy.rb +1 -13
  6. data/examples/v201409/basic_operations/add_campaigns.rb +0 -10
  7. data/examples/v201409/remarketing/add_audience.rb +0 -1
  8. data/examples/v201409/remarketing/add_rule_based_user_lists.rb +171 -0
  9. data/examples/v201409/shopping_campaigns/add_shopping_campaign.rb +0 -4
  10. data/lib/adwords_api/api_config.rb +0 -78
  11. data/lib/adwords_api/report_header_handler.rb +0 -4
  12. data/lib/adwords_api/report_utils.rb +0 -9
  13. data/lib/adwords_api/version.rb +1 -1
  14. data/test/adwords_api/test_choices.rb +138 -0
  15. data/test/adwords_api/test_report_utils.rb +0 -27
  16. data/test/templates/v201406/basic_operations_get_campaigns.def +1 -1
  17. data/test/templates/v201406/misc_use_oauth2_jwt.def +1 -1
  18. data/test/templates/v201409/basic_operations_get_campaigns.def +1 -1
  19. data/test/templates/v201409/misc_use_oauth2_jwt.def +1 -1
  20. metadata +8 -149
  21. data/examples/v201402/account_management/create_account.rb +0 -95
  22. data/examples/v201402/account_management/get_account_alerts.rb +0 -122
  23. data/examples/v201402/account_management/get_account_changes.rb +0 -145
  24. data/examples/v201402/account_management/get_account_hierarchy.rb +0 -103
  25. data/examples/v201402/advanced_operations/add_ad_group_bid_modifier.rb +0 -105
  26. data/examples/v201402/advanced_operations/add_click_to_download_ad.rb +0 -137
  27. data/examples/v201402/advanced_operations/add_places_location_extensions.rb +0 -159
  28. data/examples/v201402/advanced_operations/add_site_links.rb +0 -306
  29. data/examples/v201402/advanced_operations/get_ad_group_bid_modifiers.rb +0 -106
  30. data/examples/v201402/advanced_operations/update_site_links.rb +0 -194
  31. data/examples/v201402/advanced_operations/upload_offline_conversions.rb +0 -117
  32. data/examples/v201402/advanced_operations/use_shared_bidding_strategy.rb +0 -163
  33. data/examples/v201402/basic_operations/add_ad_groups.rb +0 -142
  34. data/examples/v201402/basic_operations/add_campaigns.rb +0 -153
  35. data/examples/v201402/basic_operations/add_keywords.rb +0 -116
  36. data/examples/v201402/basic_operations/add_text_ads.rb +0 -113
  37. data/examples/v201402/basic_operations/delete_ad.rb +0 -93
  38. data/examples/v201402/basic_operations/delete_ad_group.rb +0 -89
  39. data/examples/v201402/basic_operations/delete_campaign.rb +0 -90
  40. data/examples/v201402/basic_operations/delete_keyword.rb +0 -98
  41. data/examples/v201402/basic_operations/get_ad_groups.rb +0 -106
  42. data/examples/v201402/basic_operations/get_campaigns.rb +0 -101
  43. data/examples/v201402/basic_operations/get_campaigns_with_awql.rb +0 -93
  44. data/examples/v201402/basic_operations/get_keywords.rb +0 -112
  45. data/examples/v201402/basic_operations/get_text_ads.rb +0 -114
  46. data/examples/v201402/basic_operations/pause_ad.rb +0 -92
  47. data/examples/v201402/basic_operations/update_ad_group.rb +0 -89
  48. data/examples/v201402/basic_operations/update_campaign.rb +0 -90
  49. data/examples/v201402/basic_operations/update_keyword.rb +0 -110
  50. data/examples/v201402/campaign_management/add_experiment.rb +0 -166
  51. data/examples/v201402/campaign_management/add_keywords_in_bulk.rb +0 -158
  52. data/examples/v201402/campaign_management/add_location_extension.rb +0 -125
  53. data/examples/v201402/campaign_management/get_all_disapproved_ads.rb +0 -101
  54. data/examples/v201402/campaign_management/get_all_disapproved_ads_with_awql.rb +0 -93
  55. data/examples/v201402/campaign_management/promote_experiment.rb +0 -85
  56. data/examples/v201402/campaign_management/set_ad_parameters.rb +0 -122
  57. data/examples/v201402/campaign_management/set_criterion_bid_modifier.rb +0 -108
  58. data/examples/v201402/campaign_management/validate_text_ad.rb +0 -114
  59. data/examples/v201402/error_handling/handle_captcha_challenge.rb +0 -93
  60. data/examples/v201402/error_handling/handle_partial_failures.rb +0 -134
  61. data/examples/v201402/error_handling/handle_policy_violation_error.rb +0 -145
  62. data/examples/v201402/error_handling/handle_two_factor_authorization_error.rb +0 -88
  63. data/examples/v201402/misc/create_ad_words_session_without_properties_file.rb +0 -94
  64. data/examples/v201402/misc/get_all_images_and_videos.rb +0 -108
  65. data/examples/v201402/misc/setup_oauth2.rb +0 -88
  66. data/examples/v201402/misc/upload_image.rb +0 -97
  67. data/examples/v201402/misc/use_oauth2_jwt.rb +0 -97
  68. data/examples/v201402/optimization/estimate_keyword_traffic.rb +0 -137
  69. data/examples/v201402/optimization/get_keyword_bid_simulations.rb +0 -100
  70. data/examples/v201402/optimization/get_keyword_ideas.rb +0 -130
  71. data/examples/v201402/optimization/get_placement_ideas.rb +0 -112
  72. data/examples/v201402/remarketing/add_audience.rb +0 -123
  73. data/examples/v201402/remarketing/add_conversion_tracker.rb +0 -105
  74. data/examples/v201402/reporting/download_criteria_report.rb +0 -87
  75. data/examples/v201402/reporting/download_criteria_report_with_awql.rb +0 -86
  76. data/examples/v201402/reporting/get_report_fields.rb +0 -79
  77. data/examples/v201402/reporting/parallel_report_download.rb +0 -171
  78. data/examples/v201402/shopping_campaigns/add_product_partition_tree.rb +0 -269
  79. data/examples/v201402/shopping_campaigns/add_product_scope.rb +0 -133
  80. data/examples/v201402/shopping_campaigns/add_shopping_campaign.rb +0 -135
  81. data/examples/v201402/shopping_campaigns/get_product_category_taxonomy.rb +0 -117
  82. data/examples/v201402/shopping_campaigns/set_product_sales_channel.rb +0 -98
  83. data/examples/v201402/targeting/add_campaign_targeting_criteria.rb +0 -157
  84. data/examples/v201402/targeting/add_demographic_targeting_criteria.rb +0 -116
  85. data/examples/v201402/targeting/get_campaign_targeting_criteria.rb +0 -110
  86. data/examples/v201402/targeting/get_targetable_languages_and_carriers.rb +0 -94
  87. data/examples/v201402/targeting/lookup_location.rb +0 -112
  88. data/lib/adwords_api/v201402/ad_group_ad_service.rb +0 -42
  89. data/lib/adwords_api/v201402/ad_group_ad_service_registry.rb +0 -46
  90. data/lib/adwords_api/v201402/ad_group_bid_modifier_service.rb +0 -42
  91. data/lib/adwords_api/v201402/ad_group_bid_modifier_service_registry.rb +0 -46
  92. data/lib/adwords_api/v201402/ad_group_criterion_service.rb +0 -42
  93. data/lib/adwords_api/v201402/ad_group_criterion_service_registry.rb +0 -46
  94. data/lib/adwords_api/v201402/ad_group_feed_service.rb +0 -42
  95. data/lib/adwords_api/v201402/ad_group_feed_service_registry.rb +0 -46
  96. data/lib/adwords_api/v201402/ad_group_service.rb +0 -42
  97. data/lib/adwords_api/v201402/ad_group_service_registry.rb +0 -46
  98. data/lib/adwords_api/v201402/ad_param_service.rb +0 -38
  99. data/lib/adwords_api/v201402/ad_param_service_registry.rb +0 -46
  100. data/lib/adwords_api/v201402/adwords_user_list_service.rb +0 -38
  101. data/lib/adwords_api/v201402/adwords_user_list_service_registry.rb +0 -46
  102. data/lib/adwords_api/v201402/alert_service.rb +0 -34
  103. data/lib/adwords_api/v201402/alert_service_registry.rb +0 -46
  104. data/lib/adwords_api/v201402/bidding_strategy_service.rb +0 -42
  105. data/lib/adwords_api/v201402/bidding_strategy_service_registry.rb +0 -46
  106. data/lib/adwords_api/v201402/budget_order_service.rb +0 -42
  107. data/lib/adwords_api/v201402/budget_order_service_registry.rb +0 -46
  108. data/lib/adwords_api/v201402/budget_service.rb +0 -42
  109. data/lib/adwords_api/v201402/budget_service_registry.rb +0 -46
  110. data/lib/adwords_api/v201402/campaign_ad_extension_service.rb +0 -38
  111. data/lib/adwords_api/v201402/campaign_ad_extension_service_registry.rb +0 -46
  112. data/lib/adwords_api/v201402/campaign_criterion_service.rb +0 -42
  113. data/lib/adwords_api/v201402/campaign_criterion_service_registry.rb +0 -46
  114. data/lib/adwords_api/v201402/campaign_feed_service.rb +0 -42
  115. data/lib/adwords_api/v201402/campaign_feed_service_registry.rb +0 -46
  116. data/lib/adwords_api/v201402/campaign_service.rb +0 -42
  117. data/lib/adwords_api/v201402/campaign_service_registry.rb +0 -46
  118. data/lib/adwords_api/v201402/campaign_shared_set_service.rb +0 -38
  119. data/lib/adwords_api/v201402/campaign_shared_set_service_registry.rb +0 -47
  120. data/lib/adwords_api/v201402/constant_data_service.rb +0 -66
  121. data/lib/adwords_api/v201402/constant_data_service_registry.rb +0 -46
  122. data/lib/adwords_api/v201402/conversion_tracker_service.rb +0 -38
  123. data/lib/adwords_api/v201402/conversion_tracker_service_registry.rb +0 -46
  124. data/lib/adwords_api/v201402/customer_feed_service.rb +0 -42
  125. data/lib/adwords_api/v201402/customer_feed_service_registry.rb +0 -46
  126. data/lib/adwords_api/v201402/customer_service.rb +0 -38
  127. data/lib/adwords_api/v201402/customer_service_registry.rb +0 -46
  128. data/lib/adwords_api/v201402/customer_sync_service.rb +0 -34
  129. data/lib/adwords_api/v201402/customer_sync_service_registry.rb +0 -47
  130. data/lib/adwords_api/v201402/data_service.rb +0 -46
  131. data/lib/adwords_api/v201402/data_service_registry.rb +0 -46
  132. data/lib/adwords_api/v201402/experiment_service.rb +0 -38
  133. data/lib/adwords_api/v201402/experiment_service_registry.rb +0 -46
  134. data/lib/adwords_api/v201402/feed_item_service.rb +0 -42
  135. data/lib/adwords_api/v201402/feed_item_service_registry.rb +0 -46
  136. data/lib/adwords_api/v201402/feed_mapping_service.rb +0 -42
  137. data/lib/adwords_api/v201402/feed_mapping_service_registry.rb +0 -46
  138. data/lib/adwords_api/v201402/feed_service.rb +0 -42
  139. data/lib/adwords_api/v201402/feed_service_registry.rb +0 -46
  140. data/lib/adwords_api/v201402/geo_location_service.rb +0 -34
  141. data/lib/adwords_api/v201402/geo_location_service_registry.rb +0 -46
  142. data/lib/adwords_api/v201402/location_criterion_service.rb +0 -38
  143. data/lib/adwords_api/v201402/location_criterion_service_registry.rb +0 -46
  144. data/lib/adwords_api/v201402/managed_customer_service.rb +0 -50
  145. data/lib/adwords_api/v201402/managed_customer_service_registry.rb +0 -46
  146. data/lib/adwords_api/v201402/media_service.rb +0 -42
  147. data/lib/adwords_api/v201402/media_service_registry.rb +0 -46
  148. data/lib/adwords_api/v201402/mutate_job_service.rb +0 -42
  149. data/lib/adwords_api/v201402/mutate_job_service_registry.rb +0 -46
  150. data/lib/adwords_api/v201402/offline_conversion_feed_service.rb +0 -34
  151. data/lib/adwords_api/v201402/offline_conversion_feed_service_registry.rb +0 -46
  152. data/lib/adwords_api/v201402/report_definition_service.rb +0 -34
  153. data/lib/adwords_api/v201402/report_definition_service_registry.rb +0 -46
  154. data/lib/adwords_api/v201402/shared_criterion_service.rb +0 -38
  155. data/lib/adwords_api/v201402/shared_criterion_service_registry.rb +0 -47
  156. data/lib/adwords_api/v201402/shared_set_service.rb +0 -38
  157. data/lib/adwords_api/v201402/shared_set_service_registry.rb +0 -47
  158. data/lib/adwords_api/v201402/targeting_idea_service.rb +0 -38
  159. data/lib/adwords_api/v201402/targeting_idea_service_registry.rb +0 -46
  160. data/lib/adwords_api/v201402/traffic_estimator_service.rb +0 -34
  161. data/lib/adwords_api/v201402/traffic_estimator_service_registry.rb +0 -46
  162. data/test/templates/v201402/basic_operations_get_campaigns.def +0 -114
  163. data/test/templates/v201402/misc_use_oauth2_jwt.def +0 -131
@@ -48,10 +48,6 @@ def add_shopping_campaign(budget_id, merchant_id)
48
48
  :bidding_strategy_type => 'MANUAL_CPC'
49
49
  },
50
50
  :settings => [
51
- {
52
- :xsi_type => 'KeywordMatchSetting',
53
- :opt_in => false
54
- },
55
51
  {
56
52
  :xsi_type => 'ShoppingSetting',
57
53
  :sales_country => 'US',
@@ -45,45 +45,6 @@ module AdwordsApi
45
45
 
46
46
  # Configure the services available to each version
47
47
  @@service_config = {
48
- :v201402 => [
49
- :AdGroupAdService,
50
- :AdGroupBidModifierService,
51
- :AdGroupCriterionService,
52
- :AdGroupFeedService,
53
- :AdGroupService,
54
- :AdParamService,
55
- :AdwordsUserListService,
56
- :AlertService,
57
- :BiddingStrategyService,
58
- :BudgetOrderService,
59
- :BudgetService,
60
- :CampaignAdExtensionService,
61
- :CampaignCriterionService,
62
- :CampaignFeedService,
63
- :CampaignService,
64
- :CampaignSharedSetService,
65
- :ConstantDataService,
66
- :ConversionTrackerService,
67
- :CustomerFeedService,
68
- :CustomerService,
69
- :CustomerSyncService,
70
- :DataService,
71
- :ExperimentService,
72
- :FeedItemService,
73
- :FeedMappingService,
74
- :FeedService,
75
- :GeoLocationService,
76
- :LocationCriterionService,
77
- :ManagedCustomerService,
78
- :MediaService,
79
- :MutateJobService,
80
- :OfflineConversionFeedService,
81
- :ReportDefinitionService,
82
- :SharedCriterionService,
83
- :SharedSetService,
84
- :TargetingIdeaService,
85
- :TrafficEstimatorService
86
- ],
87
48
  :v201406 => [
88
49
  :AdGroupAdService,
89
50
  :AdGroupBidModifierService,
@@ -170,7 +131,6 @@ module AdwordsApi
170
131
  :PRODUCTION => {
171
132
  :oauth_scope => 'https://www.googleapis.com/auth/adwords',
172
133
  :header_ns => 'https://adwords.google.com/api/adwords/cm/',
173
- :v201402 => 'https://adwords.google.com/api/adwords/',
174
134
  :v201406 => 'https://adwords.google.com/api/adwords/',
175
135
  :v201409 => 'https://adwords.google.com/api/adwords/'
176
136
  }
@@ -179,44 +139,6 @@ module AdwordsApi
179
139
  # Configure the subdirectories for each version / service pair.
180
140
  # A missing pair means that only the base URL is used.
181
141
  @@subdir_config = {
182
- # v201402
183
- [:v201402, :AdGroupAdService] => 'cm/',
184
- [:v201402, :AdGroupBidModifierService] => 'cm/',
185
- [:v201402, :AdGroupCriterionService] => 'cm/',
186
- [:v201402, :AdGroupFeedService] => 'cm/',
187
- [:v201402, :AdGroupService] => 'cm/',
188
- [:v201402, :AdParamService] => 'cm/',
189
- [:v201402, :AlertService] => 'mcm/',
190
- [:v201402, :BudgetOrderService] => 'billing/',
191
- [:v201402, :CampaignAdExtensionService] => 'cm/',
192
- [:v201402, :CampaignCriterionService] => 'cm/',
193
- [:v201402, :CampaignFeedService] => 'cm/',
194
- [:v201402, :CampaignService] => 'cm/',
195
- [:v201402, :CampaignSharedSetService] => 'cm/',
196
- [:v201402, :ConstantDataService] => 'cm/',
197
- [:v201402, :ConversionTrackerService] => 'cm/',
198
- [:v201402, :CustomerSyncService] => 'ch/',
199
- [:v201402, :DataService] => 'cm/',
200
- [:v201402, :ExperimentService] => 'cm/',
201
- [:v201402, :FeedItemService] => 'cm/',
202
- [:v201402, :FeedMappingService] => 'cm/',
203
- [:v201402, :FeedService] => 'cm/',
204
- [:v201402, :GeoLocationService] => 'cm/',
205
- [:v201402, :LocationCriterionService] => 'cm/',
206
- [:v201402, :MediaService] => 'cm/',
207
- [:v201402, :MutateJobService] => 'cm/',
208
- [:v201402, :OfflineConversionFeedService] => 'cm/',
209
- [:v201402, :ReportDefinitionService] => 'cm/',
210
- [:v201402, :SharedCriterionService] => 'cm/',
211
- [:v201402, :SharedSetService] => 'cm/',
212
- [:v201402, :TargetingIdeaService] => 'o/',
213
- [:v201402, :TrafficEstimatorService] => 'o/',
214
- [:v201402, :ManagedCustomerService] => 'mcm/',
215
- [:v201402, :CustomerService] => 'mcm/',
216
- [:v201402, :CustomerFeedService] => 'cm/',
217
- [:v201402, :BudgetService] => 'cm/',
218
- [:v201402, :BiddingStrategyService] => 'cm/',
219
- [:v201402, :AdwordsUserListService] => 'rm/',
220
142
  # v201406
221
143
  [:v201406, :AdGroupAdService] => 'cm/',
222
144
  [:v201406, :AdGroupBidModifierService] => 'cm/',
@@ -54,10 +54,6 @@ module AdwordsApi
54
54
  'clientCustomerId' => credentials[:client_customer_id].to_s,
55
55
  'developerToken' => credentials[:developer_token]
56
56
  }
57
- money_in_micros = @config.read('library.return_money_in_micros')
58
- unless money_in_micros.nil?
59
- headers['returnMoneyInMicros'] = money_in_micros.to_s
60
- end
61
57
  skip_report_header = @config.read('library.skip_report_header')
62
58
  unless skip_report_header.nil?
63
59
  headers['skipReportHeader'] = skip_report_header.to_s
@@ -249,15 +249,6 @@ module AdwordsApi
249
249
  raise AdwordsApi::Errors::InvalidReportDefinitionError,
250
250
  'At least one field needs to be requested'
251
251
  end
252
- # returnMoneyInMicros option is no longer supported as of v201406
253
- if report_definition.include?(:return_money_in_micros) &&
254
- @version != :v201402
255
- raise AdwordsApi::Errors::InvalidReportDefinitionError,
256
- 'returnMoneyInMicros was sunset as of v201406. ' +
257
- 'See the migration guide for info:' +
258
- 'https://developers.google.com/adwords/api/docs/' +
259
- 'guides/migration/v201406'
260
- end
261
252
  end
262
253
 
263
254
  # Adds fields order hint to generator based on specification.
@@ -21,6 +21,6 @@
21
21
 
22
22
  module AdwordsApi
23
23
  module ApiConfig
24
- CLIENT_LIB_VERSION = '0.13.2'
24
+ CLIENT_LIB_VERSION = '0.14.0'
25
25
  end
26
26
  end
@@ -0,0 +1,138 @@
1
+ #!/usr/bin/env ruby
2
+ # Encoding: utf-8
3
+ #
4
+ # Author:: api.dklimkin@gmail.com (Danial Klimkin)
5
+ #
6
+ # Copyright:: Copyright 2014, 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
+ # Tests choices type in the request.
22
+
23
+ require 'test/unit'
24
+
25
+ require 'ads_common/parameters_validator'
26
+ require 'adwords_api/v201409/adwords_user_list_service_registry'
27
+
28
+ class TestChoices < Test::Unit::TestCase
29
+
30
+ def setup()
31
+ registry_module = AdwordsApi::V201409::AdwordsUserListService
32
+ registry = registry_module::AdwordsUserListServiceRegistry
33
+ @validator = AdsCommon::ParametersValidator.new(registry)
34
+ end
35
+
36
+ def test_choices_one()
37
+ op = get_op_for_items([
38
+ {
39
+ :xsi_type => 'NumberRuleItem',
40
+ :key => {:name => 'foo'}, :op => 'EQUALS', :value => 42
41
+ }
42
+ ])
43
+ expected = get_expected_for_items({
44
+ 'NumberRuleItem' => [
45
+ {:key => {:name => 'foo', :'order!' => [:name]},
46
+ :op => 'EQUALS', :value => 42,
47
+ :'order!' => [:key, :op, :value]}]
48
+ })
49
+ result = @validator.validate_args('mutate', [[op]])[:operations][0]
50
+ assert_equal(expected, result[:operand][:rule])
51
+ end
52
+
53
+ def test_choices_multiple_of_same_type()
54
+ op = get_op_for_items([
55
+ {:xsi_type => 'NumberRuleItem',
56
+ :key => {:name => 'foo'}, :op => 'EQUALS', :value => 42},
57
+ {:xsi_type => 'NumberRuleItem',
58
+ :key => {:name => 'bar'}, :op => 'EQUALS', :value => 84}
59
+ ])
60
+ expected = get_expected_for_items({
61
+ 'NumberRuleItem' => [
62
+ {:key => {:name => 'foo', :'order!' => [:name]},
63
+ :op => 'EQUALS',
64
+ :value => 42,
65
+ :'order!' => [:key, :op, :value]},
66
+ {:key => {:name => 'bar', :'order!' => [:name]},
67
+ :op => 'EQUALS',
68
+ :value => 84,
69
+ :'order!' => [:key, :op, :value]}]
70
+ })
71
+ result = @validator.validate_args('mutate', [[op]])[:operations][0]
72
+ assert_equal(expected, result[:operand][:rule])
73
+ end
74
+
75
+ def test_choices_different_types()
76
+ op = get_op_for_items([
77
+ {:xsi_type => 'NumberRuleItem',
78
+ :key => {:name => 'foo'}, :op => 'EQUALS', :value => 42},
79
+ {:xsi_type => 'StringRuleItem',
80
+ :key => {:name => 'bar'}, :op => 'EQUALS', :value => 'baz'}
81
+ ])
82
+ expected = get_expected_for_items({
83
+ 'NumberRuleItem' => [{:key => {:name => 'foo', :'order!' => [:name]},
84
+ :op => 'EQUALS', :value => 42,
85
+ :'order!' => [:key, :op, :value]}],
86
+ 'StringRuleItem' => [{:key => {:name => 'bar', :'order!' => [:name]},
87
+ :op => 'EQUALS', :value => 'baz',
88
+ :'order!' => [:key, :op, :value]}],
89
+ })
90
+ result = @validator.validate_args('mutate', [[op]])[:operations][0]
91
+ assert_equal(expected, result[:operand][:rule])
92
+ end
93
+
94
+ def test_choices_wrong_xsi_type()
95
+ op = get_op_for_items([
96
+ {:xsi_type => 'FooRuleItem',
97
+ :key => {:name => 'foo'}, :op => 'EQUALS', :value => 42}
98
+ ])
99
+ assert_raise AdsCommon::Errors::TypeMismatchError do
100
+ @validator.validate_args('mutate', [[op]])
101
+ end
102
+ end
103
+
104
+ def test_choices_missing_xsi_type()
105
+ op = get_op_for_items([
106
+ {:key => {:name => 'foo'}, :op => 'EQUALS', :value => 42}
107
+ ])
108
+ assert_raise AdsCommon::Errors::TypeMismatchError do
109
+ @validator.validate_args('mutate', [[op]])
110
+ end
111
+ end
112
+
113
+ private
114
+
115
+ def get_op_for_items(items)
116
+ return {
117
+ :operator => 'ADD',
118
+ :operand => {
119
+ :xsi_type => 'ExpressionRuleUserList',
120
+ :name => 'choices test',
121
+ :description => 'A list of mars cruise customers in the last year',
122
+ :rule => {:groups => [{:items => items}]}
123
+ }
124
+ }
125
+ end
126
+
127
+ def get_expected_for_items(items)
128
+ return {
129
+ :groups => [
130
+ {
131
+ :items => items,
132
+ :'order!' => [:items]
133
+ }
134
+ ],
135
+ :'order!' => [:groups]
136
+ }
137
+ end
138
+ end
@@ -186,31 +186,4 @@ class TestReportUtils < Test::Unit::TestCase
186
186
  assert_not_nil(e.message)
187
187
  end
188
188
  end
189
-
190
- def test_return_money_in_micros_removal()
191
- node = {
192
- :report_name => 'report_name',
193
- :report_type => 'CAMPAIGN_PERFORMANCE_REPORT',
194
- :selector => {
195
- :date_range => {:max=> '20120405', :min => '20120405'},
196
- :predicates => {:operator => 'IN', :field => 'S', :values => ['A']},
197
- :fields => ['CampaignId']
198
- },
199
- :download_format => 'CSV',
200
- :date_range_type => 'LAST_7_DAYS'
201
- }
202
- assert_nothing_raised do
203
- @report_utils.check_report_definition_hash(node)
204
- end
205
-
206
- node[:return_money_in_micros] = true
207
- assert_raise AdwordsApi::Errors::InvalidReportDefinitionError do
208
- @report_utils.check_report_definition_hash(node)
209
- end
210
-
211
- node[:return_money_in_micros] = false
212
- assert_raise AdwordsApi::Errors::InvalidReportDefinitionError do
213
- @report_utils.check_report_definition_hash(node)
214
- end
215
- end
216
189
  end
@@ -22,7 +22,7 @@ def setup_mocks()
22
22
  {"env:Envelope"=>
23
23
  {"env:Header"=>
24
24
  {"wsdl:RequestHeader"=>
25
- {"userAgent"=>"ruby-tests (AwApi-Ruby/0.13.0, Common-Ruby/0.9.6, Savon/1.2.0, ruby/1.9.3, HTTPI/1.1.1, net_http)",
25
+ {"userAgent"=>"ruby-tests (AwApi-Ruby/0.14.0, Common-Ruby/0.9.6, Savon/1.2.0, ruby/1.9.3, HTTPI/1.1.1, net_http)",
26
26
  "developerToken"=>"dev_token123",
27
27
  "clientCustomerId"=>"123-456-7890",
28
28
  "authToken"=>"abcAuthbcd",
@@ -40,7 +40,7 @@ def setup_mocks()
40
40
  {"env:Envelope"=>
41
41
  {"env:Header"=>
42
42
  {"wsdl:RequestHeader"=>
43
- {"userAgent"=>"ruby-tests (AwApi-Ruby/0.13.0, Common-Ruby/0.9.6, Savon/1.2.0, ruby/1.9.3, HTTPI/1.1.1, net_http)",
43
+ {"userAgent"=>"ruby-tests (AwApi-Ruby/0.14.0, Common-Ruby/0.9.6, Savon/1.2.0, ruby/1.9.3, HTTPI/1.1.1, net_http)",
44
44
  "developerToken"=>"dev_token123",
45
45
  "clientCustomerId"=>"123-456-7890",
46
46
  "xmlns"=>"https://adwords.google.com/api/adwords/cm/v201406"}},
@@ -22,7 +22,7 @@ def setup_mocks()
22
22
  {"env:Envelope"=>
23
23
  {"env:Header"=>
24
24
  {"wsdl:RequestHeader"=>
25
- {"userAgent"=>"ruby-tests (AwApi-Ruby/0.13.2, Common-Ruby/0.9.6, Savon/1.2.0, ruby/1.9.3, HTTPI/1.1.1, net_http)",
25
+ {"userAgent"=>"ruby-tests (AwApi-Ruby/0.14.0, Common-Ruby/0.9.6, Savon/1.2.0, ruby/1.9.3, HTTPI/1.1.1, net_http)",
26
26
  "developerToken"=>"dev_token123",
27
27
  "clientCustomerId"=>"123-456-7890",
28
28
  "authToken"=>"abcAuthbcd",
@@ -40,7 +40,7 @@ def setup_mocks()
40
40
  {"env:Envelope"=>
41
41
  {"env:Header"=>
42
42
  {"wsdl:RequestHeader"=>
43
- {"userAgent"=>"ruby-tests (AwApi-Ruby/0.13.2, Common-Ruby/0.9.6, Savon/1.2.0, ruby/1.9.3, HTTPI/1.1.1, net_http)",
43
+ {"userAgent"=>"ruby-tests (AwApi-Ruby/0.14.0, Common-Ruby/0.9.6, Savon/1.2.0, ruby/1.9.3, HTTPI/1.1.1, net_http)",
44
44
  "developerToken"=>"dev_token123",
45
45
  "clientCustomerId"=>"123-456-7890",
46
46
  "xmlns"=>"https://adwords.google.com/api/adwords/cm/v201409"}},
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google-adwords-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.2
4
+ version: 0.14.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Danial Klimkin
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-10-10 00:00:00.000000000 Z
12
+ date: 2014-12-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: google-ads-common
@@ -17,14 +17,14 @@ dependencies:
17
17
  requirements:
18
18
  - - ~>
19
19
  - !ruby/object:Gem::Version
20
- version: 0.9.5
20
+ version: 0.9.6
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - ~>
26
26
  - !ruby/object:Gem::Version
27
- version: 0.9.5
27
+ version: 0.9.6
28
28
  description: google-adwords-api is a AdWords API client library for Ruby
29
29
  email:
30
30
  - api.dklimkin@gmail.com
@@ -37,73 +37,6 @@ files:
37
37
  - ChangeLog
38
38
  - README.md
39
39
  - adwords_api.yml
40
- - examples/v201402/account_management/create_account.rb
41
- - examples/v201402/account_management/get_account_alerts.rb
42
- - examples/v201402/account_management/get_account_changes.rb
43
- - examples/v201402/account_management/get_account_hierarchy.rb
44
- - examples/v201402/advanced_operations/add_ad_group_bid_modifier.rb
45
- - examples/v201402/advanced_operations/add_click_to_download_ad.rb
46
- - examples/v201402/advanced_operations/add_places_location_extensions.rb
47
- - examples/v201402/advanced_operations/add_site_links.rb
48
- - examples/v201402/advanced_operations/get_ad_group_bid_modifiers.rb
49
- - examples/v201402/advanced_operations/update_site_links.rb
50
- - examples/v201402/advanced_operations/upload_offline_conversions.rb
51
- - examples/v201402/advanced_operations/use_shared_bidding_strategy.rb
52
- - examples/v201402/basic_operations/add_ad_groups.rb
53
- - examples/v201402/basic_operations/add_campaigns.rb
54
- - examples/v201402/basic_operations/add_keywords.rb
55
- - examples/v201402/basic_operations/add_text_ads.rb
56
- - examples/v201402/basic_operations/delete_ad.rb
57
- - examples/v201402/basic_operations/delete_ad_group.rb
58
- - examples/v201402/basic_operations/delete_campaign.rb
59
- - examples/v201402/basic_operations/delete_keyword.rb
60
- - examples/v201402/basic_operations/get_ad_groups.rb
61
- - examples/v201402/basic_operations/get_campaigns.rb
62
- - examples/v201402/basic_operations/get_campaigns_with_awql.rb
63
- - examples/v201402/basic_operations/get_keywords.rb
64
- - examples/v201402/basic_operations/get_text_ads.rb
65
- - examples/v201402/basic_operations/pause_ad.rb
66
- - examples/v201402/basic_operations/update_ad_group.rb
67
- - examples/v201402/basic_operations/update_campaign.rb
68
- - examples/v201402/basic_operations/update_keyword.rb
69
- - examples/v201402/campaign_management/add_experiment.rb
70
- - examples/v201402/campaign_management/add_keywords_in_bulk.rb
71
- - examples/v201402/campaign_management/add_location_extension.rb
72
- - examples/v201402/campaign_management/get_all_disapproved_ads.rb
73
- - examples/v201402/campaign_management/get_all_disapproved_ads_with_awql.rb
74
- - examples/v201402/campaign_management/promote_experiment.rb
75
- - examples/v201402/campaign_management/set_ad_parameters.rb
76
- - examples/v201402/campaign_management/set_criterion_bid_modifier.rb
77
- - examples/v201402/campaign_management/validate_text_ad.rb
78
- - examples/v201402/error_handling/handle_captcha_challenge.rb
79
- - examples/v201402/error_handling/handle_partial_failures.rb
80
- - examples/v201402/error_handling/handle_policy_violation_error.rb
81
- - examples/v201402/error_handling/handle_two_factor_authorization_error.rb
82
- - examples/v201402/misc/create_ad_words_session_without_properties_file.rb
83
- - examples/v201402/misc/get_all_images_and_videos.rb
84
- - examples/v201402/misc/setup_oauth2.rb
85
- - examples/v201402/misc/upload_image.rb
86
- - examples/v201402/misc/use_oauth2_jwt.rb
87
- - examples/v201402/optimization/estimate_keyword_traffic.rb
88
- - examples/v201402/optimization/get_keyword_bid_simulations.rb
89
- - examples/v201402/optimization/get_keyword_ideas.rb
90
- - examples/v201402/optimization/get_placement_ideas.rb
91
- - examples/v201402/remarketing/add_audience.rb
92
- - examples/v201402/remarketing/add_conversion_tracker.rb
93
- - examples/v201402/reporting/download_criteria_report.rb
94
- - examples/v201402/reporting/download_criteria_report_with_awql.rb
95
- - examples/v201402/reporting/get_report_fields.rb
96
- - examples/v201402/reporting/parallel_report_download.rb
97
- - examples/v201402/shopping_campaigns/add_product_partition_tree.rb
98
- - examples/v201402/shopping_campaigns/add_product_scope.rb
99
- - examples/v201402/shopping_campaigns/add_shopping_campaign.rb
100
- - examples/v201402/shopping_campaigns/get_product_category_taxonomy.rb
101
- - examples/v201402/shopping_campaigns/set_product_sales_channel.rb
102
- - examples/v201402/targeting/add_campaign_targeting_criteria.rb
103
- - examples/v201402/targeting/add_demographic_targeting_criteria.rb
104
- - examples/v201402/targeting/get_campaign_targeting_criteria.rb
105
- - examples/v201402/targeting/get_targetable_languages_and_carriers.rb
106
- - examples/v201402/targeting/lookup_location.rb
107
40
  - examples/v201406/account_management/create_account.rb
108
41
  - examples/v201406/account_management/get_account_alerts.rb
109
42
  - examples/v201406/account_management/get_account_changes.rb
@@ -111,7 +44,7 @@ files:
111
44
  - examples/v201406/advanced_operations/add_ad_customizer.rb
112
45
  - examples/v201406/advanced_operations/add_ad_group_bid_modifier.rb
113
46
  - examples/v201406/advanced_operations/add_click_to_download_ad.rb
114
- - examples/v201406/advanced_operations/add_places_location_extensions.rb
47
+ - examples/v201406/advanced_operations/add_google_my_business_location_extensions.rb
115
48
  - examples/v201406/advanced_operations/add_site_links.rb
116
49
  - examples/v201406/advanced_operations/add_text_ad_with_upgraded_urls.rb
117
50
  - examples/v201406/advanced_operations/get_ad_group_bid_modifiers.rb
@@ -181,7 +114,7 @@ files:
181
114
  - examples/v201409/advanced_operations/add_ad_customizer.rb
182
115
  - examples/v201409/advanced_operations/add_ad_group_bid_modifier.rb
183
116
  - examples/v201409/advanced_operations/add_click_to_download_ad.rb
184
- - examples/v201409/advanced_operations/add_places_location_extensions.rb
117
+ - examples/v201409/advanced_operations/add_google_my_business_location_extensions.rb
185
118
  - examples/v201409/advanced_operations/add_site_links.rb
186
119
  - examples/v201409/advanced_operations/add_text_ad_with_upgraded_urls.rb
187
120
  - examples/v201409/advanced_operations/get_ad_group_bid_modifiers.rb
@@ -230,6 +163,7 @@ files:
230
163
  - examples/v201409/optimization/get_keyword_ideas.rb
231
164
  - examples/v201409/remarketing/add_audience.rb
232
165
  - examples/v201409/remarketing/add_conversion_tracker.rb
166
+ - examples/v201409/remarketing/add_rule_based_user_lists.rb
233
167
  - examples/v201409/reporting/download_criteria_report.rb
234
168
  - examples/v201409/reporting/download_criteria_report_with_awql.rb
235
169
  - examples/v201409/reporting/get_report_fields.rb
@@ -250,80 +184,6 @@ files:
250
184
  - lib/adwords_api/report_header_handler.rb
251
185
  - lib/adwords_api/report_utils.rb
252
186
  - lib/adwords_api/utils.rb
253
- - lib/adwords_api/v201402/ad_group_ad_service.rb
254
- - lib/adwords_api/v201402/ad_group_ad_service_registry.rb
255
- - lib/adwords_api/v201402/ad_group_bid_modifier_service.rb
256
- - lib/adwords_api/v201402/ad_group_bid_modifier_service_registry.rb
257
- - lib/adwords_api/v201402/ad_group_criterion_service.rb
258
- - lib/adwords_api/v201402/ad_group_criterion_service_registry.rb
259
- - lib/adwords_api/v201402/ad_group_feed_service.rb
260
- - lib/adwords_api/v201402/ad_group_feed_service_registry.rb
261
- - lib/adwords_api/v201402/ad_group_service.rb
262
- - lib/adwords_api/v201402/ad_group_service_registry.rb
263
- - lib/adwords_api/v201402/ad_param_service.rb
264
- - lib/adwords_api/v201402/ad_param_service_registry.rb
265
- - lib/adwords_api/v201402/adwords_user_list_service.rb
266
- - lib/adwords_api/v201402/adwords_user_list_service_registry.rb
267
- - lib/adwords_api/v201402/alert_service.rb
268
- - lib/adwords_api/v201402/alert_service_registry.rb
269
- - lib/adwords_api/v201402/bidding_strategy_service.rb
270
- - lib/adwords_api/v201402/bidding_strategy_service_registry.rb
271
- - lib/adwords_api/v201402/budget_order_service.rb
272
- - lib/adwords_api/v201402/budget_order_service_registry.rb
273
- - lib/adwords_api/v201402/budget_service.rb
274
- - lib/adwords_api/v201402/budget_service_registry.rb
275
- - lib/adwords_api/v201402/campaign_ad_extension_service.rb
276
- - lib/adwords_api/v201402/campaign_ad_extension_service_registry.rb
277
- - lib/adwords_api/v201402/campaign_criterion_service.rb
278
- - lib/adwords_api/v201402/campaign_criterion_service_registry.rb
279
- - lib/adwords_api/v201402/campaign_feed_service.rb
280
- - lib/adwords_api/v201402/campaign_feed_service_registry.rb
281
- - lib/adwords_api/v201402/campaign_service.rb
282
- - lib/adwords_api/v201402/campaign_service_registry.rb
283
- - lib/adwords_api/v201402/campaign_shared_set_service.rb
284
- - lib/adwords_api/v201402/campaign_shared_set_service_registry.rb
285
- - lib/adwords_api/v201402/constant_data_service.rb
286
- - lib/adwords_api/v201402/constant_data_service_registry.rb
287
- - lib/adwords_api/v201402/conversion_tracker_service.rb
288
- - lib/adwords_api/v201402/conversion_tracker_service_registry.rb
289
- - lib/adwords_api/v201402/customer_feed_service.rb
290
- - lib/adwords_api/v201402/customer_feed_service_registry.rb
291
- - lib/adwords_api/v201402/customer_service.rb
292
- - lib/adwords_api/v201402/customer_service_registry.rb
293
- - lib/adwords_api/v201402/customer_sync_service.rb
294
- - lib/adwords_api/v201402/customer_sync_service_registry.rb
295
- - lib/adwords_api/v201402/data_service.rb
296
- - lib/adwords_api/v201402/data_service_registry.rb
297
- - lib/adwords_api/v201402/experiment_service.rb
298
- - lib/adwords_api/v201402/experiment_service_registry.rb
299
- - lib/adwords_api/v201402/feed_item_service.rb
300
- - lib/adwords_api/v201402/feed_item_service_registry.rb
301
- - lib/adwords_api/v201402/feed_mapping_service.rb
302
- - lib/adwords_api/v201402/feed_mapping_service_registry.rb
303
- - lib/adwords_api/v201402/feed_service.rb
304
- - lib/adwords_api/v201402/feed_service_registry.rb
305
- - lib/adwords_api/v201402/geo_location_service.rb
306
- - lib/adwords_api/v201402/geo_location_service_registry.rb
307
- - lib/adwords_api/v201402/location_criterion_service.rb
308
- - lib/adwords_api/v201402/location_criterion_service_registry.rb
309
- - lib/adwords_api/v201402/managed_customer_service.rb
310
- - lib/adwords_api/v201402/managed_customer_service_registry.rb
311
- - lib/adwords_api/v201402/media_service.rb
312
- - lib/adwords_api/v201402/media_service_registry.rb
313
- - lib/adwords_api/v201402/mutate_job_service.rb
314
- - lib/adwords_api/v201402/mutate_job_service_registry.rb
315
- - lib/adwords_api/v201402/offline_conversion_feed_service.rb
316
- - lib/adwords_api/v201402/offline_conversion_feed_service_registry.rb
317
- - lib/adwords_api/v201402/report_definition_service.rb
318
- - lib/adwords_api/v201402/report_definition_service_registry.rb
319
- - lib/adwords_api/v201402/shared_criterion_service.rb
320
- - lib/adwords_api/v201402/shared_criterion_service_registry.rb
321
- - lib/adwords_api/v201402/shared_set_service.rb
322
- - lib/adwords_api/v201402/shared_set_service_registry.rb
323
- - lib/adwords_api/v201402/targeting_idea_service.rb
324
- - lib/adwords_api/v201402/targeting_idea_service_registry.rb
325
- - lib/adwords_api/v201402/traffic_estimator_service.rb
326
- - lib/adwords_api/v201402/traffic_estimator_service_registry.rb
327
187
  - lib/adwords_api/v201406/ad_group_ad_service.rb
328
188
  - lib/adwords_api/v201406/ad_group_ad_service_registry.rb
329
189
  - lib/adwords_api/v201406/ad_group_bid_modifier_service.rb
@@ -477,14 +337,13 @@ files:
477
337
  - lib/adwords_api/version.rb
478
338
  - test/adwords_api/test_adwords_api.rb
479
339
  - test/adwords_api/test_api_config.rb
340
+ - test/adwords_api/test_choices.rb
480
341
  - test/adwords_api/test_credential_handler.rb
481
342
  - test/adwords_api/test_report_utils.rb
482
343
  - test/adwords_api/test_utils.rb
483
344
  - test/coverage.rb
484
345
  - test/suite_integration.rb
485
346
  - test/suite_unittests.rb
486
- - test/templates/v201402/basic_operations_get_campaigns.def
487
- - test/templates/v201402/misc_use_oauth2_jwt.def
488
347
  - test/templates/v201406/basic_operations_get_campaigns.def
489
348
  - test/templates/v201406/misc_use_oauth2_jwt.def
490
349
  - test/templates/v201409/basic_operations_get_campaigns.def