google-adwords-api 0.6.2 → 0.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (247) hide show
  1. data/ChangeLog +3 -0
  2. data/README +4 -7
  3. data/examples/v201206/account_management/create_account.rb +84 -0
  4. data/examples/v201206/account_management/get_account_alerts.rb +111 -0
  5. data/examples/v201206/account_management/get_account_changes.rb +137 -0
  6. data/examples/v201206/account_management/get_account_hierarchy.rb +92 -0
  7. data/examples/v201206/account_management/get_client_customer_id.rb +85 -0
  8. data/examples/v201206/account_management/get_client_unit_usage.rb +87 -0
  9. data/examples/v201206/basic_operations/add_ad_groups.rb +136 -0
  10. data/examples/v201206/basic_operations/add_campaigns.rb +146 -0
  11. data/examples/v201206/basic_operations/add_keywords.rb +108 -0
  12. data/examples/v201206/basic_operations/add_text_ads.rb +105 -0
  13. data/examples/v201206/basic_operations/delete_ad.rb +85 -0
  14. data/examples/v201206/basic_operations/delete_ad_group.rb +102 -0
  15. data/examples/v201206/basic_operations/delete_campaign.rb +103 -0
  16. data/examples/v201206/basic_operations/delete_keyword.rb +90 -0
  17. data/examples/v201206/basic_operations/get_ad_groups.rb +98 -0
  18. data/examples/v201206/basic_operations/get_campaigns.rb +93 -0
  19. data/examples/v201206/basic_operations/get_campaigns_with_awql.rb +85 -0
  20. data/examples/v201206/basic_operations/get_keywords.rb +104 -0
  21. data/examples/v201206/basic_operations/get_text_ads.rb +106 -0
  22. data/examples/v201206/basic_operations/pause_ad.rb +84 -0
  23. data/examples/v201206/basic_operations/update_ad_group.rb +81 -0
  24. data/examples/v201206/basic_operations/update_campaign.rb +84 -0
  25. data/examples/v201206/basic_operations/update_keyword.rb +99 -0
  26. data/examples/v201206/campaign_management/add_experiment.rb +158 -0
  27. data/examples/v201206/campaign_management/add_keywords_in_bulk.rb +150 -0
  28. data/examples/v201206/campaign_management/add_location_extension.rb +117 -0
  29. data/examples/v201206/campaign_management/add_location_extension_override.rb +83 -0
  30. data/examples/v201206/campaign_management/get_all_disapproved_ads.rb +93 -0
  31. data/examples/v201206/campaign_management/get_all_disapproved_ads_with_awql.rb +84 -0
  32. data/examples/v201206/campaign_management/promote_experiment.rb +77 -0
  33. data/examples/v201206/campaign_management/set_ad_parameters.rb +114 -0
  34. data/examples/v201206/campaign_management/validate_text_ad.rb +106 -0
  35. data/examples/v201206/error_handling/handle_captcha_challenge.rb +93 -0
  36. data/examples/v201206/error_handling/handle_partial_failures.rb +126 -0
  37. data/examples/v201206/error_handling/handle_policy_violation_error.rb +137 -0
  38. data/examples/v201206/error_handling/handle_two_factor_authorization_error.rb +87 -0
  39. data/examples/v201206/misc/get_all_images_and_videos.rb +101 -0
  40. data/examples/v201206/misc/upload_image.rb +90 -0
  41. data/examples/v201206/misc/use_oauth.rb +100 -0
  42. data/examples/v201206/misc/use_oauth2.rb +97 -0
  43. data/examples/v201206/optimization/estimate_keyword_traffic.rb +129 -0
  44. data/examples/v201206/optimization/get_keyword_bid_simulations.rb +92 -0
  45. data/examples/v201206/optimization/get_keyword_ideas.rb +115 -0
  46. data/examples/v201206/optimization/get_placement_ideas.rb +106 -0
  47. data/examples/v201206/remarketing/add_audience.rb +115 -0
  48. data/examples/v201206/remarketing/add_conversion_tracker.rb +97 -0
  49. data/examples/v201206/reporting/download_criteria_report.rb +79 -0
  50. data/examples/v201206/reporting/download_criteria_report_with_awql.rb +78 -0
  51. data/examples/v201206/reporting/get_campaign_stats.rb +105 -0
  52. data/examples/v201206/reporting/get_defined_reports.rb +75 -0
  53. data/examples/v201206/reporting/get_report_fields.rb +71 -0
  54. data/examples/v201206/reporting/parallel_report_download.rb +159 -0
  55. data/examples/v201206/targeting/add_campaign_targeting_criteria.rb +118 -0
  56. data/examples/v201206/targeting/get_campaign_targeting_criteria.rb +102 -0
  57. data/examples/v201206/targeting/get_targetable_languages_and_carriers.rb +86 -0
  58. data/examples/v201206/targeting/lookup_location.rb +104 -0
  59. data/lib/adwords_api/api_config.rb +69 -5
  60. data/lib/adwords_api/report_utils.rb +50 -1
  61. data/lib/adwords_api/v201109/ad_extension_override_service.rb +1 -1
  62. data/lib/adwords_api/v201109/ad_extension_override_service_registry.rb +1 -1
  63. data/lib/adwords_api/v201109/ad_group_ad_service.rb +1 -1
  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 +1 -1
  66. data/lib/adwords_api/v201109/ad_group_criterion_service_registry.rb +1 -1
  67. data/lib/adwords_api/v201109/ad_group_service.rb +1 -1
  68. data/lib/adwords_api/v201109/ad_group_service_registry.rb +1 -1
  69. data/lib/adwords_api/v201109/ad_param_service.rb +1 -1
  70. data/lib/adwords_api/v201109/ad_param_service_registry.rb +1 -1
  71. data/lib/adwords_api/v201109/alert_service.rb +1 -1
  72. data/lib/adwords_api/v201109/alert_service_registry.rb +1 -1
  73. data/lib/adwords_api/v201109/budget_order_service.rb +1 -1
  74. data/lib/adwords_api/v201109/budget_order_service_registry.rb +1 -1
  75. data/lib/adwords_api/v201109/bulk_mutate_job_service.rb +1 -1
  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 +1 -1
  78. data/lib/adwords_api/v201109/campaign_ad_extension_service_registry.rb +1 -1
  79. data/lib/adwords_api/v201109/campaign_criterion_service.rb +1 -1
  80. data/lib/adwords_api/v201109/campaign_criterion_service_registry.rb +1 -1
  81. data/lib/adwords_api/v201109/campaign_service.rb +1 -1
  82. data/lib/adwords_api/v201109/campaign_service_registry.rb +1 -1
  83. data/lib/adwords_api/v201109/campaign_target_service.rb +1 -1
  84. data/lib/adwords_api/v201109/campaign_target_service_registry.rb +1 -1
  85. data/lib/adwords_api/v201109/constant_data_service.rb +1 -1
  86. data/lib/adwords_api/v201109/constant_data_service_registry.rb +1 -1
  87. data/lib/adwords_api/v201109/conversion_tracker_service.rb +1 -1
  88. data/lib/adwords_api/v201109/conversion_tracker_service_registry.rb +1 -1
  89. data/lib/adwords_api/v201109/create_account_service.rb +1 -1
  90. data/lib/adwords_api/v201109/create_account_service_registry.rb +1 -1
  91. data/lib/adwords_api/v201109/customer_sync_service.rb +1 -1
  92. data/lib/adwords_api/v201109/customer_sync_service_registry.rb +1 -1
  93. data/lib/adwords_api/v201109/data_service.rb +1 -1
  94. data/lib/adwords_api/v201109/data_service_registry.rb +1 -1
  95. data/lib/adwords_api/v201109/experiment_service.rb +1 -1
  96. data/lib/adwords_api/v201109/experiment_service_registry.rb +1 -1
  97. data/lib/adwords_api/v201109/geo_location_service.rb +1 -1
  98. data/lib/adwords_api/v201109/geo_location_service_registry.rb +1 -1
  99. data/lib/adwords_api/v201109/info_service.rb +1 -1
  100. data/lib/adwords_api/v201109/info_service_registry.rb +1 -1
  101. data/lib/adwords_api/v201109/location_criterion_service.rb +1 -1
  102. data/lib/adwords_api/v201109/location_criterion_service_registry.rb +1 -1
  103. data/lib/adwords_api/v201109/media_service.rb +1 -1
  104. data/lib/adwords_api/v201109/media_service_registry.rb +1 -1
  105. data/lib/adwords_api/v201109/mutate_job_service.rb +1 -1
  106. data/lib/adwords_api/v201109/mutate_job_service_registry.rb +1 -1
  107. data/lib/adwords_api/v201109/report_definition_service.rb +1 -1
  108. data/lib/adwords_api/v201109/report_definition_service_registry.rb +1 -1
  109. data/lib/adwords_api/v201109/serviced_account_service.rb +1 -1
  110. data/lib/adwords_api/v201109/serviced_account_service_registry.rb +1 -1
  111. data/lib/adwords_api/v201109/targeting_idea_service.rb +1 -1
  112. data/lib/adwords_api/v201109/targeting_idea_service_registry.rb +2 -2
  113. data/lib/adwords_api/v201109/traffic_estimator_service.rb +1 -1
  114. data/lib/adwords_api/v201109/traffic_estimator_service_registry.rb +1 -1
  115. data/lib/adwords_api/v201109/user_list_service.rb +1 -1
  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 +1 -1
  118. data/lib/adwords_api/v201109_1/ad_extension_override_service_registry.rb +1 -1
  119. data/lib/adwords_api/v201109_1/ad_group_ad_service.rb +1 -1
  120. data/lib/adwords_api/v201109_1/ad_group_ad_service_registry.rb +1 -1
  121. data/lib/adwords_api/v201109_1/ad_group_criterion_service.rb +1 -1
  122. data/lib/adwords_api/v201109_1/ad_group_criterion_service_registry.rb +1 -1
  123. data/lib/adwords_api/v201109_1/ad_group_service.rb +1 -1
  124. data/lib/adwords_api/v201109_1/ad_group_service_registry.rb +1 -1
  125. data/lib/adwords_api/v201109_1/ad_param_service.rb +1 -1
  126. data/lib/adwords_api/v201109_1/ad_param_service_registry.rb +1 -1
  127. data/lib/adwords_api/v201109_1/alert_service.rb +1 -1
  128. data/lib/adwords_api/v201109_1/alert_service_registry.rb +1 -1
  129. data/lib/adwords_api/v201109_1/budget_order_service.rb +1 -1
  130. data/lib/adwords_api/v201109_1/budget_order_service_registry.rb +1 -1
  131. data/lib/adwords_api/v201109_1/bulk_mutate_job_service.rb +1 -1
  132. data/lib/adwords_api/v201109_1/bulk_mutate_job_service_registry.rb +1 -1
  133. data/lib/adwords_api/v201109_1/campaign_ad_extension_service.rb +1 -1
  134. data/lib/adwords_api/v201109_1/campaign_ad_extension_service_registry.rb +1 -1
  135. data/lib/adwords_api/v201109_1/campaign_criterion_service.rb +1 -1
  136. data/lib/adwords_api/v201109_1/campaign_criterion_service_registry.rb +1 -1
  137. data/lib/adwords_api/v201109_1/campaign_service.rb +1 -1
  138. data/lib/adwords_api/v201109_1/campaign_service_registry.rb +1 -1
  139. data/lib/adwords_api/v201109_1/campaign_target_service.rb +1 -1
  140. data/lib/adwords_api/v201109_1/campaign_target_service_registry.rb +1 -1
  141. data/lib/adwords_api/v201109_1/constant_data_service.rb +1 -1
  142. data/lib/adwords_api/v201109_1/constant_data_service_registry.rb +1 -1
  143. data/lib/adwords_api/v201109_1/conversion_tracker_service.rb +1 -1
  144. data/lib/adwords_api/v201109_1/conversion_tracker_service_registry.rb +1 -1
  145. data/lib/adwords_api/v201109_1/create_account_service.rb +1 -1
  146. data/lib/adwords_api/v201109_1/create_account_service_registry.rb +1 -1
  147. data/lib/adwords_api/v201109_1/customer_service.rb +34 -0
  148. data/lib/adwords_api/v201109_1/customer_service_registry.rb +46 -0
  149. data/lib/adwords_api/v201109_1/customer_sync_service.rb +1 -1
  150. data/lib/adwords_api/v201109_1/customer_sync_service_registry.rb +1 -1
  151. data/lib/adwords_api/v201109_1/data_service.rb +1 -1
  152. data/lib/adwords_api/v201109_1/data_service_registry.rb +1 -1
  153. data/lib/adwords_api/v201109_1/experiment_service.rb +1 -1
  154. data/lib/adwords_api/v201109_1/experiment_service_registry.rb +1 -1
  155. data/lib/adwords_api/v201109_1/geo_location_service.rb +1 -1
  156. data/lib/adwords_api/v201109_1/geo_location_service_registry.rb +1 -1
  157. data/lib/adwords_api/v201109_1/info_service.rb +1 -1
  158. data/lib/adwords_api/v201109_1/info_service_registry.rb +1 -1
  159. data/lib/adwords_api/v201109_1/location_criterion_service.rb +1 -1
  160. data/lib/adwords_api/v201109_1/location_criterion_service_registry.rb +1 -1
  161. data/lib/adwords_api/v201109_1/managed_customer_service.rb +38 -0
  162. data/lib/adwords_api/v201109_1/managed_customer_service_registry.rb +46 -0
  163. data/lib/adwords_api/v201109_1/media_service.rb +1 -1
  164. data/lib/adwords_api/v201109_1/media_service_registry.rb +1 -1
  165. data/lib/adwords_api/v201109_1/mutate_job_service.rb +1 -1
  166. data/lib/adwords_api/v201109_1/mutate_job_service_registry.rb +1 -1
  167. data/lib/adwords_api/v201109_1/report_definition_service.rb +1 -1
  168. data/lib/adwords_api/v201109_1/report_definition_service_registry.rb +1 -1
  169. data/lib/adwords_api/v201109_1/serviced_account_service.rb +1 -1
  170. data/lib/adwords_api/v201109_1/serviced_account_service_registry.rb +1 -1
  171. data/lib/adwords_api/v201109_1/targeting_idea_service.rb +1 -1
  172. data/lib/adwords_api/v201109_1/targeting_idea_service_registry.rb +2 -2
  173. data/lib/adwords_api/v201109_1/traffic_estimator_service.rb +1 -1
  174. data/lib/adwords_api/v201109_1/traffic_estimator_service_registry.rb +1 -1
  175. data/lib/adwords_api/v201109_1/user_list_service.rb +1 -1
  176. data/lib/adwords_api/v201109_1/user_list_service_registry.rb +1 -1
  177. data/lib/adwords_api/v201206/ad_extension_override_service.rb +38 -0
  178. data/lib/adwords_api/v201206/ad_extension_override_service_registry.rb +46 -0
  179. data/lib/adwords_api/v201206/ad_group_ad_service.rb +42 -0
  180. data/lib/adwords_api/v201206/ad_group_ad_service_registry.rb +46 -0
  181. data/lib/adwords_api/v201206/ad_group_criterion_service.rb +42 -0
  182. data/lib/adwords_api/v201206/ad_group_criterion_service_registry.rb +46 -0
  183. data/lib/adwords_api/v201206/ad_group_service.rb +42 -0
  184. data/lib/adwords_api/v201206/ad_group_service_registry.rb +46 -0
  185. data/lib/adwords_api/v201206/ad_param_service.rb +38 -0
  186. data/lib/adwords_api/v201206/ad_param_service_registry.rb +46 -0
  187. data/lib/adwords_api/v201206/alert_service.rb +34 -0
  188. data/lib/adwords_api/v201206/alert_service_registry.rb +46 -0
  189. data/lib/adwords_api/v201206/budget_order_service.rb +42 -0
  190. data/lib/adwords_api/v201206/budget_order_service_registry.rb +46 -0
  191. data/lib/adwords_api/v201206/bulk_mutate_job_service.rb +38 -0
  192. data/lib/adwords_api/v201206/bulk_mutate_job_service_registry.rb +46 -0
  193. data/lib/adwords_api/v201206/campaign_ad_extension_service.rb +38 -0
  194. data/lib/adwords_api/v201206/campaign_ad_extension_service_registry.rb +46 -0
  195. data/lib/adwords_api/v201206/campaign_criterion_service.rb +42 -0
  196. data/lib/adwords_api/v201206/campaign_criterion_service_registry.rb +46 -0
  197. data/lib/adwords_api/v201206/campaign_service.rb +42 -0
  198. data/lib/adwords_api/v201206/campaign_service_registry.rb +46 -0
  199. data/lib/adwords_api/v201206/constant_data_service.rb +62 -0
  200. data/lib/adwords_api/v201206/constant_data_service_registry.rb +46 -0
  201. data/lib/adwords_api/v201206/conversion_tracker_service.rb +38 -0
  202. data/lib/adwords_api/v201206/conversion_tracker_service_registry.rb +46 -0
  203. data/lib/adwords_api/v201206/customer_service.rb +34 -0
  204. data/lib/adwords_api/v201206/customer_service_registry.rb +46 -0
  205. data/lib/adwords_api/v201206/customer_sync_service.rb +34 -0
  206. data/lib/adwords_api/v201206/customer_sync_service_registry.rb +47 -0
  207. data/lib/adwords_api/v201206/data_service.rb +38 -0
  208. data/lib/adwords_api/v201206/data_service_registry.rb +46 -0
  209. data/lib/adwords_api/v201206/experiment_service.rb +38 -0
  210. data/lib/adwords_api/v201206/experiment_service_registry.rb +46 -0
  211. data/lib/adwords_api/v201206/geo_location_service.rb +34 -0
  212. data/lib/adwords_api/v201206/geo_location_service_registry.rb +46 -0
  213. data/lib/adwords_api/v201206/info_service.rb +34 -0
  214. data/lib/adwords_api/v201206/info_service_registry.rb +46 -0
  215. data/lib/adwords_api/v201206/location_criterion_service.rb +34 -0
  216. data/lib/adwords_api/v201206/location_criterion_service_registry.rb +46 -0
  217. data/lib/adwords_api/v201206/managed_customer_service.rb +38 -0
  218. data/lib/adwords_api/v201206/managed_customer_service_registry.rb +46 -0
  219. data/lib/adwords_api/v201206/media_service.rb +38 -0
  220. data/lib/adwords_api/v201206/media_service_registry.rb +46 -0
  221. data/lib/adwords_api/v201206/mutate_job_service.rb +42 -0
  222. data/lib/adwords_api/v201206/mutate_job_service_registry.rb +46 -0
  223. data/lib/adwords_api/v201206/report_definition_service.rb +34 -0
  224. data/lib/adwords_api/v201206/report_definition_service_registry.rb +46 -0
  225. data/lib/adwords_api/v201206/targeting_idea_service.rb +38 -0
  226. data/lib/adwords_api/v201206/targeting_idea_service_registry.rb +46 -0
  227. data/lib/adwords_api/v201206/traffic_estimator_service.rb +34 -0
  228. data/lib/adwords_api/v201206/traffic_estimator_service_registry.rb +46 -0
  229. data/lib/adwords_api/v201206/user_list_service.rb +38 -0
  230. data/lib/adwords_api/v201206/user_list_service_registry.rb +46 -0
  231. data/lib/adwords_api/version.rb +1 -1
  232. data/test/adwords_api/test_api_config.rb +10 -10
  233. data/test/adwords_api/test_report_utils.rb +1 -1
  234. data/test/bugs/test_issue_00000031.rb +14 -14
  235. data/test/bugs/test_issue_00000063.rb +6 -6
  236. data/test/examples/v201206/test_account_management.rb +60 -0
  237. data/test/examples/v201206/test_basic_operations.rb +177 -0
  238. data/test/examples/v201206/test_campaign_management.rb +124 -0
  239. data/test/examples/v201206/test_error_handling.rb +63 -0
  240. data/test/examples/v201206/test_misc.rb +45 -0
  241. data/test/examples/v201206/test_optimization.rb +63 -0
  242. data/test/examples/v201206/test_remarketing.rb +39 -0
  243. data/test/examples/v201206/test_reporting.rb +89 -0
  244. data/test/examples/v201206/test_targeting.rb +60 -0
  245. data/test/examples/v201206/utils.rb +239 -0
  246. data/test/suite_exampletests_v201206.rb +37 -0
  247. metadata +155 -50
@@ -0,0 +1,118 @@
1
+ #!/usr/bin/env ruby
2
+ # Encoding: utf-8
3
+ #
4
+ # Author:: api.dklimkin@gmail.com (Danial Klimkin)
5
+ #
6
+ # Copyright:: Copyright 2011, 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
+ # This example adds various types of targeting criteria to a campaign. To get
22
+ # campaigns list, run get_campaigns.rb.
23
+ #
24
+ # Tags: CampaignCriterionService.mutate
25
+
26
+ require 'adwords_api'
27
+
28
+ def add_campaign_targeting_criteria(campaign_id)
29
+ # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
30
+ # when called without parameters.
31
+ adwords = AdwordsApi::Api.new
32
+
33
+ # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
34
+ # the configuration file or provide your own logger:
35
+ # adwords.logger = Logger.new('adwords_xml.log')
36
+
37
+ campaign_criterion_srv =
38
+ adwords.service(:CampaignCriterionService, API_VERSION)
39
+
40
+ # Create campaign criteria.
41
+ campaign_criteria = [
42
+ # Location criteria. The IDs can be found in the documentation or retrieved
43
+ # with the LocationCriterionService.
44
+ {:xsi_type => 'Location', :id => 21137}, # California, USA
45
+ {:xsi_type => 'Location', :id => 2484}, # Mexico
46
+ # Language criteria. The IDs can be found in the documentation or retrieved
47
+ # with the ConstantDataService.
48
+ {:xsi_type => 'Language', :id => 1000}, # English
49
+ {:xsi_type => 'Language', :id => 1003}, # Spanish
50
+ # Platform criteria. The IDs can be found in the documentation.
51
+ {:xsi_type => 'Platform', :id => 30001}, # Mobile
52
+ {:xsi_type => 'Platform', :id => 30002} # Tablets
53
+ ]
54
+
55
+ # Create operations.
56
+ operations = campaign_criteria.map do |criterion|
57
+ {:operator => 'ADD',
58
+ :operand => {
59
+ :campaign_id => campaign_id,
60
+ :criterion => criterion}
61
+ }
62
+ end
63
+
64
+ # Add negative campaign criterion.
65
+ operations << {
66
+ :operator => 'ADD',
67
+ :operand => {
68
+ # The 'xsi_type' field allows you to specify the xsi:type of the object
69
+ # being created. It's only necessary when you must provide an explicit
70
+ # type that the client library can't infer.
71
+ :xsi_type => 'NegativeCampaignCriterion',
72
+ :campaign_id => campaign_id,
73
+ :criterion => {
74
+ :xsi_type => 'Keyword',
75
+ :text => 'jupiter cruise',
76
+ :match_type => 'BROAD'
77
+ }
78
+ }
79
+ }
80
+
81
+ response = campaign_criterion_srv.mutate(operations)
82
+
83
+ if response and response[:value]
84
+ criteria = response[:value]
85
+ criteria.each do |campaign_criterion|
86
+ criterion = campaign_criterion[:criterion]
87
+ puts ("Campaign criterion with campaign ID %d, criterion ID %d and " +
88
+ "type '%s' was added.") % [campaign_criterion[:campaign_id],
89
+ criterion[:id], criterion[:criterion_type]]
90
+ end
91
+ else
92
+ puts 'No criteria were returned.'
93
+ end
94
+ end
95
+
96
+ if __FILE__ == $0
97
+ API_VERSION = :v201206
98
+
99
+ begin
100
+ campaign_id = 'INSERT_CAMPAIGN_ID_HERE'
101
+ add_campaign_targeting_criteria(campaign_id)
102
+
103
+ # HTTP errors.
104
+ rescue AdsCommon::Errors::HttpError => e
105
+ puts "HTTP Error: %s" % e
106
+
107
+ # API errors.
108
+ rescue AdwordsApi::Errors::ApiException => e
109
+ puts "Message: %s" % e.message
110
+ puts 'Errors:'
111
+ e.errors.each_with_index do |error, index|
112
+ puts "\tError [%d]:" % (index + 1)
113
+ error.each do |field, value|
114
+ puts "\t\t%s: %s" % [field, value]
115
+ end
116
+ end
117
+ end
118
+ end
@@ -0,0 +1,102 @@
1
+ #!/usr/bin/env ruby
2
+ # Encoding: utf-8
3
+ #
4
+ # Author:: api.dklimkin@gmail.com (Danial Klimkin)
5
+ #
6
+ # Copyright:: Copyright 2011, 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
+ # This example illustrates how to retrieve all the campaign targets. To set
22
+ # campaign targets, run add_campaign_targeting_criteria.rb.
23
+ #
24
+ # Tags: CampaignCriterionService.get
25
+
26
+ require 'adwords_api'
27
+
28
+ def get_campaign_targeting_criteria(campaign_id)
29
+ # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
30
+ # when called without parameters.
31
+ adwords = AdwordsApi::Api.new
32
+
33
+ # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
34
+ # the configuration file or provide your own logger:
35
+ # adwords.logger = Logger.new('adwords_xml.log')
36
+
37
+ campaign_criterion_srv =
38
+ adwords.service(:CampaignCriterionService, API_VERSION)
39
+
40
+ # Selector to get all the targeting for this campaign.
41
+ selector = {
42
+ :fields => ['Id', 'CriteriaType', 'KeywordText'],
43
+ :predicates => [
44
+ {:field => 'CampaignId', :operator => 'EQUALS', :values => [campaign_id]}
45
+ ],
46
+ :paging => {
47
+ :start_index => 0,
48
+ :number_results => PAGE_SIZE
49
+ }
50
+ }
51
+
52
+ # Set initial values.
53
+ offset, page = 0, {}
54
+
55
+ begin
56
+ page = campaign_criterion_srv.get(selector)
57
+ if page[:entries]
58
+ page[:entries].each do |typed_criterion|
59
+ negative = typed_criterion[:xsi_type] == 'NegativeCampaignCriterion' ?
60
+ ' (negative)' : ''
61
+ criterion = typed_criterion[:criterion]
62
+ puts ("Campaign criterion%s with ID %d, type '%s' and text '%s'" +
63
+ " was found.") %
64
+ [negative, criterion[:id], criterion[:type], criterion[:text]]
65
+ end
66
+ # Increment values to request the next page.
67
+ offset += PAGE_SIZE
68
+ selector[:paging][:start_index] = offset
69
+ end
70
+ end while page[:total_num_entries] > offset
71
+
72
+ if page.include?(:total_num_entries)
73
+ puts "\tCampaign ID %d has %d criteria." %
74
+ [campaign_id, page[:total_num_entries]]
75
+ end
76
+ end
77
+
78
+ if __FILE__ == $0
79
+ API_VERSION = :v201206
80
+ PAGE_SIZE = 500
81
+
82
+ begin
83
+ # Specify campaign ID to get targeting for.
84
+ campaign_id = 'INSERT_CAMPAIGN_ID_HERE'.to_i
85
+ get_campaign_targeting_criteria(campaign_id)
86
+
87
+ # HTTP errors.
88
+ rescue AdsCommon::Errors::HttpError => e
89
+ puts "HTTP Error: %s" % e
90
+
91
+ # API errors.
92
+ rescue AdwordsApi::Errors::ApiException => e
93
+ puts "Message: %s" % e.message
94
+ puts 'Errors:'
95
+ e.errors.each_with_index do |error, index|
96
+ puts "\tError [%d]:" % (index + 1)
97
+ error.each do |field, value|
98
+ puts "\t\t%s: %s" % [field, value]
99
+ end
100
+ end
101
+ end
102
+ end
@@ -0,0 +1,86 @@
1
+ #!/usr/bin/env ruby
2
+ # Encoding: utf-8
3
+ #
4
+ # Author:: api.dklimkin@gmail.com (Danial Klimkin)
5
+ #
6
+ # Copyright:: Copyright 2011, 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
+ # This example illustrates how to retrieve all languages and carriers available
22
+ # for targeting.
23
+ #
24
+ # Tags: ConstantDataService.getLanguageCriterion
25
+ # Tags: ConstantDataService.getCarrierCriterion
26
+
27
+ require 'adwords_api'
28
+
29
+ def get_targetable_languages_and_carriers()
30
+ # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
31
+ # when called without parameters.
32
+ adwords = AdwordsApi::Api.new
33
+
34
+ # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
35
+ # the configuration file or provide your own logger:
36
+ # adwords.logger = Logger.new('adwords_xml.log')
37
+
38
+ constant_data_srv = adwords.service(:ConstantDataService, API_VERSION)
39
+
40
+ # Get all languages from ConstantDataService.
41
+ languages = constant_data_srv.get_language_criterion()
42
+
43
+ if languages
44
+ languages.each do |language|
45
+ puts "Language name is '%s', ID is %d and code is '%s'." %
46
+ [language[:name], language[:id], language[:code]]
47
+ end
48
+ else
49
+ puts 'No languages were found.'
50
+ end
51
+
52
+ # Get all carriers from ConstantDataService.
53
+ carriers = constant_data_srv.get_carrier_criterion()
54
+
55
+ if carriers
56
+ carriers.each do |carrier|
57
+ puts "Carrier name is '%s', ID is %d and country code is '%s'." %
58
+ [carrier[:name], carrier[:id], carrier[:country_code]]
59
+ end
60
+ else
61
+ puts 'No carriers were retrieved.'
62
+ end
63
+ end
64
+
65
+ if __FILE__ == $0
66
+ API_VERSION = :v201206
67
+
68
+ begin
69
+ get_targetable_languages_and_carriers()
70
+
71
+ # HTTP errors.
72
+ rescue AdsCommon::Errors::HttpError => e
73
+ puts "HTTP Error: %s" % e
74
+
75
+ # API errors.
76
+ rescue AdwordsApi::Errors::ApiException => e
77
+ puts "Message: %s" % e.message
78
+ puts 'Errors:'
79
+ e.errors.each_with_index do |error, index|
80
+ puts "\tError [%d]:" % (index + 1)
81
+ error.each do |field, value|
82
+ puts "\t\t%s: %s" % [field, value]
83
+ end
84
+ end
85
+ end
86
+ end
@@ -0,0 +1,104 @@
1
+ #!/usr/bin/env ruby
2
+ # Encoding: utf-8
3
+ #
4
+ # Author:: api.dklimkin@gmail.com (Danial Klimkin)
5
+ #
6
+ # Copyright:: Copyright 2011, 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
+ # This example gets location criteria by name.
22
+ #
23
+ # Tags: LocationCriterionService.get
24
+
25
+ require 'adwords_api'
26
+
27
+ def lookup_location()
28
+ # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
29
+ # when called without parameters.
30
+ adwords = AdwordsApi::Api.new
31
+
32
+ # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
33
+ # the configuration file or provide your own logger:
34
+ # adwords.logger = Logger.new('adwords_xml.log')
35
+
36
+ location_criterion_srv =
37
+ adwords.service(:LocationCriterionService, API_VERSION)
38
+
39
+ # List of locations to look up.
40
+ location_names = ['Paris', 'Quebec', 'Spain', 'Deutschland']
41
+ # Locale to retrieve names in.
42
+ locale = 'en'
43
+
44
+ # Get the criteria by names.
45
+ selector = {
46
+ :fields => ['Id', 'LocationName', 'CanonicalName', 'DisplayType',
47
+ 'ParentLocations', 'Reach', 'TargetingStatus'],
48
+ :predicates => [
49
+ # Location names must match exactly, only EQUALS and IN are supported.
50
+ {:field => 'LocationName',
51
+ :operator => 'IN',
52
+ :values => location_names},
53
+ # Set the locale of the returned location names.
54
+ {:field => 'Locale', :operator => 'EQUALS', :values => [locale]}
55
+ ]
56
+ }
57
+ criteria = location_criterion_srv.get(selector)
58
+
59
+ if criteria
60
+ criteria.each do |criterion|
61
+ # Extract all parent location names as one comma-separated string.
62
+ parent_location = if criterion[:location][:parent_locations] and
63
+ !criterion[:location][:parent_locations].empty?
64
+ locations_array = criterion[:location][:parent_locations].map do |loc|
65
+ loc[:location_name]
66
+ end
67
+ locations_array.join(', ')
68
+ else
69
+ 'N/A'
70
+ end
71
+ puts ("The search term '%s' returned the location '%s' of type '%s' " +
72
+ "with ID %d, parent locations '%s' and reach %d (%s)") %
73
+ [criterion[:search_term], criterion[:location][:location_name],
74
+ criterion[:location][:criterion_type], criterion[:location][:id],
75
+ parent_location, criterion[:reach],
76
+ criterion[:location][:targeting_status]]
77
+ end
78
+ else
79
+ puts 'No criteria were returned.'
80
+ end
81
+ end
82
+
83
+ if __FILE__ == $0
84
+ API_VERSION = :v201206
85
+
86
+ begin
87
+ lookup_location()
88
+
89
+ # HTTP errors.
90
+ rescue AdsCommon::Errors::HttpError => e
91
+ puts "HTTP Error: %s" % e
92
+
93
+ # API errors.
94
+ rescue AdwordsApi::Errors::ApiException => e
95
+ puts "Message: %s" % e.message
96
+ puts 'Errors:'
97
+ e.errors.each_with_index do |error, index|
98
+ puts "\tError [%d]:" % (index + 1)
99
+ error.each do |field, value|
100
+ puts "\t\t%s: %s" % [field, value]
101
+ end
102
+ end
103
+ end
104
+ end
@@ -35,9 +35,9 @@ module AdwordsApi
35
35
  end
36
36
 
37
37
  # Set defaults
38
- DEFAULT_VERSION = :v201109
38
+ DEFAULT_VERSION = :v201206
39
39
  DEFAULT_ENVIRONMENT = :PRODUCTION
40
- LATEST_VERSION = :v201109
40
+ LATEST_VERSION = :v201206
41
41
 
42
42
  # Set other constants
43
43
  API_NAME = 'AdwordsApi'
@@ -91,12 +91,14 @@ module AdwordsApi
91
91
  :ConstantDataService,
92
92
  :ConversionTrackerService,
93
93
  :CreateAccountService,
94
+ :CustomerService,
94
95
  :CustomerSyncService,
95
96
  :DataService,
96
97
  :ExperimentService,
97
98
  :GeoLocationService,
98
99
  :InfoService,
99
100
  :LocationCriterionService,
101
+ :ManagedCustomerService,
100
102
  :MediaService,
101
103
  :MutateJobService,
102
104
  :ReportDefinitionService,
@@ -104,6 +106,35 @@ module AdwordsApi
104
106
  :TargetingIdeaService,
105
107
  :TrafficEstimatorService,
106
108
  :UserListService
109
+ ],
110
+ :v201206 => [
111
+ :AdExtensionOverrideService,
112
+ :AdGroupAdService,
113
+ :AdGroupCriterionService,
114
+ :AdGroupService,
115
+ :AdParamService,
116
+ :AlertService,
117
+ :BudgetOrderService,
118
+ :BulkMutateJobService,
119
+ :CampaignAdExtensionService,
120
+ :CampaignCriterionService,
121
+ :CampaignService,
122
+ :ConstantDataService,
123
+ :ConversionTrackerService,
124
+ :CustomerService,
125
+ :CustomerSyncService,
126
+ :DataService,
127
+ :ExperimentService,
128
+ :GeoLocationService,
129
+ :InfoService,
130
+ :LocationCriterionService,
131
+ :ManagedCustomerService,
132
+ :MediaService,
133
+ :MutateJobService,
134
+ :ReportDefinitionService,
135
+ :TargetingIdeaService,
136
+ :TrafficEstimatorService,
137
+ :UserListService
107
138
  ]
108
139
  }
109
140
 
@@ -112,12 +143,14 @@ module AdwordsApi
112
143
  :PRODUCTION => {
113
144
  :oauth_scope => 'https://adwords.google.com/api/adwords/',
114
145
  :v201109 => 'https://adwords.google.com/api/adwords/',
115
- :v201109_1 => 'https://adwords.google.com/api/adwords/'
146
+ :v201109_1 => 'https://adwords.google.com/api/adwords/',
147
+ :v201206 => 'https://adwords.google.com/api/adwords/'
116
148
  },
117
149
  :SANDBOX => {
118
150
  :oauth_scope => 'https://adwords-sandbox.google.com/api/adwords/',
119
151
  :v201109 => 'https://adwords-sandbox.google.com/api/adwords/',
120
- :v201109_1 => 'https://adwords-sandbox.google.com/api/adwords/'
152
+ :v201109_1 => 'https://adwords-sandbox.google.com/api/adwords/',
153
+ :v201206 => 'https://adwords-sandbox.google.com/api/adwords/'
121
154
  }
122
155
  }
123
156
 
@@ -181,7 +214,38 @@ module AdwordsApi
181
214
  [:v201109_1, :ServicedAccountService] => 'mcm/',
182
215
  [:v201109_1, :TargetingIdeaService] => 'o/',
183
216
  [:v201109_1, :TrafficEstimatorService] => 'o/',
184
- [:v201109_1, :UserListService] => 'cm/'
217
+ [:v201109_1, :UserListService] => 'cm/',
218
+ [:v201109_1, :ManagedCustomerService] => 'mcm/',
219
+ [:v201109_1, :CustomerService] => 'mcm/',
220
+ # v201206
221
+ [:v201206, :AdExtensionOverrideService] => 'cm/',
222
+ [:v201206, :AdGroupAdService] => 'cm/',
223
+ [:v201206, :AdGroupCriterionService] => 'cm/',
224
+ [:v201206, :AdGroupService] => 'cm/',
225
+ [:v201206, :AdParamService] => 'cm/',
226
+ [:v201206, :AlertService] => 'mcm/',
227
+ [:v201206, :BudgetOrderService] => 'billing/',
228
+ [:v201206, :BulkMutateJobService] => 'job/',
229
+ [:v201206, :CampaignAdExtensionService] => 'cm/',
230
+ [:v201206, :CampaignCriterionService] => 'cm/',
231
+ [:v201206, :CampaignService] => 'cm/',
232
+ [:v201206, :ConstantDataService] => 'cm/',
233
+ [:v201206, :ConversionTrackerService] => 'cm/',
234
+ [:v201206, :CustomerSyncService] => 'ch/',
235
+ [:v201206, :DataService] => 'cm/',
236
+ [:v201206, :ExperimentService] => 'cm/',
237
+ [:v201206, :GeoLocationService] => 'cm/',
238
+ [:v201206, :InfoService] => 'info/',
239
+ [:v201206, :LocationCriterionService] => 'cm/',
240
+ [:v201206, :MediaService] => 'cm/',
241
+ [:v201206, :MutateJobService] => 'cm/',
242
+ [:v201206, :ReportDefinitionService] => 'cm/',
243
+ [:v201206, :ServicedAccountService] => 'mcm/',
244
+ [:v201206, :TargetingIdeaService] => 'o/',
245
+ [:v201206, :TrafficEstimatorService] => 'o/',
246
+ [:v201206, :UserListService] => 'cm/',
247
+ [:v201206, :ManagedCustomerService] => 'mcm/',
248
+ [:v201206, :CustomerService] => 'mcm/'
185
249
  }
186
250
 
187
251
  # Auth constants for ClientLogin method.