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
data/ChangeLog CHANGED
@@ -1,3 +1,6 @@
1
+ 0.6.3:
2
+ - Support and examples for v201206.
3
+
1
4
  0.6.2:
2
5
  - Require google-ads-common 0.7.3 or later from now on.
3
6
  - Support for OAuth2.0 authentication method.
data/README CHANGED
@@ -3,12 +3,9 @@
3
3
  Welcome to the next generation Google-developed Ruby client library for the
4
4
  AdWords and DoubleClick Ad Exchange Buyer API!
5
5
 
6
- Please note that this is an early PREVIEW of the client library, still under
7
- development.
8
-
9
- It contains full support for v201109 and v201109_1, with full stubs, and a
10
- simplified programming interface that lets you handle everything in native Ruby
11
- collections.
6
+ It contains full support for v201109, v201109_1 and v201206, with full stubs,
7
+ and a simplified programming interface that lets you handle everything in
8
+ native Ruby collections.
12
9
 
13
10
 
14
11
  = Docs for Users
@@ -61,7 +58,7 @@ You can also pass API a manually constructed config hash like:
61
58
  })
62
59
 
63
60
  Then, just specify which service you're looking to use, and which version:
64
- campaign_srv = adwords.service(:CampaignService, :v201109_1)
61
+ campaign_srv = adwords.service(:CampaignService, :v201206)
65
62
 
66
63
  and you should now be able to just use the API methods in the object you were
67
64
  returned:
@@ -0,0 +1,84 @@
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 create an account. Note by default this
22
+ # account will only be accessible via parent MCC.
23
+ #
24
+ # Tags: ManagedCustomerService.mutate
25
+
26
+ require 'adwords_api'
27
+ require 'adwords_api/utils'
28
+
29
+ def create_account()
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
+ managed_customer_srv = adwords.service(:ManagedCustomerService, API_VERSION)
39
+
40
+ # Create a local Customer object.
41
+ customer = {
42
+ :name => 'Account created with ManagedCustomerService',
43
+ :currency_code => 'EUR',
44
+ :date_time_zone => 'Europe/London'
45
+ }
46
+
47
+ # Prepare operation to create an account.
48
+ operation = {
49
+ :operator => 'ADD',
50
+ :operand => customer
51
+ }
52
+
53
+ # Create the account. It is possible to create multiple accounts with one
54
+ # request by sending an array of operations.
55
+ response = managed_customer_srv.mutate([operation])
56
+
57
+ response[:value].each do |new_account|
58
+ puts "Account with customer ID '%s' was successfully created." %
59
+ AdwordsApi::Utils.format_id(new_account[:customer_id])
60
+ end
61
+ end
62
+
63
+ if __FILE__ == $0
64
+ API_VERSION = :v201206
65
+
66
+ begin
67
+ create_account()
68
+
69
+ # HTTP errors.
70
+ rescue AdsCommon::Errors::HttpError => e
71
+ puts "HTTP Error: %s" % e
72
+
73
+ # API errors.
74
+ rescue AdwordsApi::Errors::ApiException => e
75
+ puts "Message: %s" % e.message
76
+ puts 'Errors:'
77
+ e.errors.each_with_index do |error, index|
78
+ puts "\tError [%d]:" % (index + 1)
79
+ error.each do |field, value|
80
+ puts "\t\t%s: %s" % [field, value]
81
+ end
82
+ end
83
+ end
84
+ end
@@ -0,0 +1,111 @@
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 all alerts for all clients of an MCC account. The effective
22
+ # user (clientCustomerId, or authToken) must be an MCC user to get results.
23
+ #
24
+ # Tags: AlertService.get
25
+
26
+ require 'adwords_api'
27
+ require 'adwords_api/utils'
28
+
29
+ def get_account_alerts()
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
+ alert_srv = adwords.service(:AlertService, API_VERSION)
39
+
40
+ # Create the selector.
41
+ selector = {
42
+ :query => {
43
+ :filter_spec => 'ALL',
44
+ :client_spec => 'ALL',
45
+ :trigger_time_spec => 'ALL_TIME',
46
+ :severities => ['GREEN', 'YELLOW', 'RED'],
47
+ :types => [
48
+ 'ACCOUNT_BUDGET_BURN_RATE', 'ACCOUNT_BUDGET_ENDING',
49
+ 'ACCOUNT_ON_TARGET', 'CAMPAIGN_ENDED', 'CAMPAIGN_ENDING',
50
+ 'CREDIT_CARD_EXPIRING', 'DECLINED_PAYMENT', 'MANAGER_LINK_PENDING',
51
+ 'MISSING_BANK_REFERENCE_NUMBER', 'PAYMENT_NOT_ENTERED',
52
+ 'TV_ACCOUNT_BUDGET_ENDING', 'TV_ACCOUNT_ON_TARGET',
53
+ 'TV_ZERO_DAILY_SPENDING_LIMIT', 'USER_INVITE_ACCEPTED',
54
+ 'USER_INVITE_PENDING', 'ZERO_DAILY_SPENDING_LIMIT'
55
+ ]
56
+ },
57
+ :paging => {
58
+ :start_index => 0,
59
+ :number_results => PAGE_SIZE
60
+ }
61
+ }
62
+
63
+ # Set initial values.
64
+ offset, page = 0, {}
65
+
66
+ # Get alerts.
67
+ begin
68
+ page = alert_srv.get(selector)
69
+ if page[:entries]
70
+ page[:entries].each_with_index do |alert, index|
71
+ puts "%d) Customer ID is '%s', alert type is '%s', severity is '%s'."
72
+ [AdwordsApi::Utils.format_id(alert[:client_customer_id]),
73
+ alert[:alert_type], alert[:alert_severity]]
74
+ alert[:details].each do |detail|
75
+ puts "\t- triggered at %s" % detail[:trigger_time]
76
+ end
77
+ end
78
+ # Increment values to request the next page.
79
+ offset += PAGE_SIZE
80
+ selector[:paging][:start_index] = offset
81
+ end
82
+ end while page[:total_num_entries] > offset
83
+
84
+ if page.include?(:total_num_entries)
85
+ puts "\tTotal number of alerts: %d." % page[:total_num_entries]
86
+ end
87
+ end
88
+
89
+ if __FILE__ == $0
90
+ API_VERSION = :v201206
91
+ PAGE_SIZE = 500
92
+
93
+ begin
94
+ get_account_alerts()
95
+
96
+ # HTTP errors.
97
+ rescue AdsCommon::Errors::HttpError => e
98
+ puts "HTTP Error: %s" % e
99
+
100
+ # API errors.
101
+ rescue AdwordsApi::Errors::ApiException => e
102
+ puts "Message: %s" % e.message
103
+ puts 'Errors:'
104
+ e.errors.each_with_index do |error, index|
105
+ puts "\tError [%d]:" % (index + 1)
106
+ error.each do |field, value|
107
+ puts "\t\t%s: %s" % [field, value]
108
+ end
109
+ end
110
+ end
111
+ end
@@ -0,0 +1,137 @@
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 all account changes that happened within the last 24 hours,
22
+ # for all your campaigns.
23
+ #
24
+ # Tags: CustomerSyncService.get
25
+
26
+ require 'adwords_api'
27
+ require 'date'
28
+ require 'pp'
29
+
30
+ def get_account_changes()
31
+ # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
32
+ # when called without parameters.
33
+ adwords = AdwordsApi::Api.new
34
+
35
+ # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
36
+ # the configuration file or provide your own logger:
37
+ # adwords.logger = Logger.new('adwords_xml.log')
38
+
39
+ campaign_srv = adwords.service(:CampaignService, API_VERSION)
40
+ customer_sync_srv = adwords.service(:CustomerSyncService, API_VERSION)
41
+
42
+ today_at_midnight = DateTime.parse(Date.today.to_s)
43
+ yesterday_at_midnight = DateTime.parse((Date.today - 1).to_s)
44
+ min_date_time = yesterday_at_midnight.strftime("%Y%m%d %H%M%S")
45
+ max_date_time = today_at_midnight.strftime("%Y%m%d %H%M%S")
46
+
47
+ # Get all the campaigns for this account.
48
+ selector = {
49
+ :fields => ['Id']
50
+ }
51
+ response = campaign_srv.get(selector)
52
+
53
+ campaign_ids = []
54
+
55
+ if response and response[:entries]
56
+ campaign_ids = response[:entries].map { |campaign| campaign[:id] }
57
+ else
58
+ raise StandardError, 'No campaigns were found.'
59
+ end
60
+
61
+ # Create a selector for CustomerSyncService.
62
+ selector = {
63
+ :campaign_ids => campaign_ids,
64
+ :date_time_range => {
65
+ :min => min_date_time,
66
+ :max => max_date_time
67
+ }
68
+ }
69
+
70
+ # Get all account changes for the campaigns.
71
+ campaign_changes = customer_sync_srv.get(selector)
72
+
73
+ # Display changes.
74
+ if campaign_changes
75
+ puts "Most recent change: %s" % campaign_changes[:last_change_timestamp]
76
+ campaign_changes[:changed_campaigns].each do |campaign|
77
+ puts "Campaign with ID %d was changed:" % campaign[:campaign_id]
78
+ puts "\tCampaign change status: '%s'" % campaign[:campaign_change_status]
79
+ unless ['NEW', 'FIELDS_UNCHANGED'].include?(
80
+ campaign[:campaign_change_status])
81
+ puts "\tAdded ad extensions: '%s'" %
82
+ campaign[:added_ad_extensions].pretty_inspect.chomp
83
+ puts "\tAdded campaign criteria: '%s'" %
84
+ campaign[:added_campaign_criteria].pretty_inspect.chomp
85
+ puts "\tAdded campaign targeting: '%s'" %
86
+ campaign[:campaign_targeting_changed].pretty_inspect.chomp
87
+ puts "\tDeleted ad extensions: '%s'" %
88
+ campaign[:deleted_ad_extensions].pretty_inspect.chomp
89
+ puts "\tDeleted campaign criteria: '%s'" %
90
+ campaign[:deleted_campaign_criteria].pretty_inspect.chomp
91
+
92
+ if campaign[:changed_ad_groups]
93
+ campaign[:changed_ad_groups].each do |ad_group|
94
+ puts "\tAd group with ID %d was changed:" % ad_group[:ad_group_id]
95
+ puts "\t\tAd group changed status: '%s'" %
96
+ ad_group[:ad_group_change_status]
97
+ unless ['NEW', 'FIELDS_UNCHANGED'].include?(
98
+ ad_group[:ad_group_change_status])
99
+ puts "\t\tAds changed: '%s'" %
100
+ ad_group[:changed_ads].pretty_inspect.chomp
101
+ puts "\t\tCriteria changed: '%s'" %
102
+ ad_group[:changed_criteria].pretty_inspect.chomp
103
+ puts "\t\tCriteria deleted: '%s'" %
104
+ ad_group[:deleted_criteria].pretty_inspect.chomp
105
+ end
106
+ end
107
+ end
108
+ end
109
+ puts
110
+ end
111
+ else
112
+ puts 'No account changes were found.'
113
+ end
114
+ end
115
+
116
+ if __FILE__ == $0
117
+ API_VERSION = :v201206
118
+
119
+ begin
120
+ get_account_changes()
121
+
122
+ # HTTP errors.
123
+ rescue AdsCommon::Errors::HttpError => e
124
+ puts "HTTP Error: %s" % e
125
+
126
+ # API errors.
127
+ rescue AdwordsApi::Errors::ApiException => e
128
+ puts "Message: %s" % e.message
129
+ puts 'Errors:'
130
+ e.errors.each_with_index do |error, index|
131
+ puts "\tError [%d]:" % (index + 1)
132
+ error.each do |field, value|
133
+ puts "\t\t%s: %s" % [field, value]
134
+ end
135
+ end
136
+ end
137
+ end
@@ -0,0 +1,92 @@
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 the account hierarchy under an
22
+ # account.
23
+ #
24
+ # Tags: ManagedCustomerService.get
25
+
26
+ require 'adwords_api'
27
+ require 'adwords_api/utils'
28
+
29
+ def get_account_hierarchy()
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
+ managed_customer_srv = adwords.service(:ManagedCustomerService, API_VERSION)
39
+
40
+ # Get the account hierarchy for this account.
41
+ selector = {
42
+ :fields => ['Login', 'CustomerId', 'Name']
43
+ }
44
+
45
+ # Run the request at the MCC level.
46
+ graph = adwords.use_mcc() {managed_customer_srv.get(selector)}
47
+
48
+ if graph and graph[:entries]
49
+ puts 'Accounts under this hierarchy: %d' % graph[:total_num_entries]
50
+ graph[:entries].each_with_index do |account, index|
51
+ puts "%d) Customer ID: %s" %
52
+ [index + 1, AdwordsApi::Utils.format_id(account[:customer_id])]
53
+ puts "\tLogin email: %s" % account[:login]
54
+ puts "\tName: %s" % account[:name]
55
+ end
56
+
57
+ # Display the links.
58
+ if graph[:links]
59
+ puts 'Hierarchy links:'
60
+ graph[:links].each do |link|
61
+ puts "\tThere is a link from %s to %s" %
62
+ [AdwordsApi::Utils.format_id(link[:manager_customer_id]),
63
+ AdwordsApi::Utils.format_id(link[:client_customer_id])]
64
+ end
65
+ end
66
+ else
67
+ puts 'No accounts were found.'
68
+ end
69
+ end
70
+
71
+ if __FILE__ == $0
72
+ API_VERSION = :v201206
73
+
74
+ begin
75
+ get_account_hierarchy()
76
+
77
+ # HTTP errors.
78
+ rescue AdsCommon::Errors::HttpError => e
79
+ puts "HTTP Error: %s" % e
80
+
81
+ # API errors.
82
+ rescue AdwordsApi::Errors::ApiException => e
83
+ puts "Message: %s" % e.message
84
+ puts 'Errors:'
85
+ e.errors.each_with_index do |error, index|
86
+ puts "\tError [%d]:" % (index + 1)
87
+ error.each do |field, value|
88
+ puts "\t\t%s: %s" % [field, value]
89
+ end
90
+ end
91
+ end
92
+ end