google-adwords-api 0.7.2 → 0.8.0

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 (274) hide show
  1. data/ChangeLog +6 -0
  2. data/README +12 -9
  3. data/adwords_api.yml +3 -17
  4. data/examples/v201206/account_management/create_account.rb +3 -0
  5. data/examples/v201206/account_management/get_account_alerts.rb +3 -0
  6. data/examples/v201206/account_management/get_account_hierarchy.rb +3 -0
  7. data/examples/v201206/account_management/get_client_customer_id.rb +3 -0
  8. data/examples/v201206/account_management/get_client_unit_usage.rb +3 -0
  9. data/examples/v201206/reporting/parallel_report_download.rb +3 -0
  10. data/examples/v201209/account_management/create_account.rb +3 -0
  11. data/examples/v201209/account_management/get_account_alerts.rb +3 -0
  12. data/examples/v201209/account_management/get_account_hierarchy.rb +3 -0
  13. data/examples/v201209/account_management/get_client_customer_id.rb +3 -0
  14. data/examples/v201209/account_management/get_client_unit_usage.rb +3 -0
  15. data/examples/{v201109/misc/use_oauth2.rb → v201209/misc/use_oauth2_jwt.rb} +19 -23
  16. data/examples/v201209/reporting/parallel_report_download.rb +3 -0
  17. data/lib/adwords_api.rb +8 -3
  18. data/lib/adwords_api/api_config.rb +0 -132
  19. data/lib/adwords_api/credential_handler.rb +3 -17
  20. data/lib/adwords_api/report_header_handler.rb +1 -2
  21. data/lib/adwords_api/report_utils.rb +1 -8
  22. data/lib/adwords_api/version.rb +1 -1
  23. data/test/adwords_api/test_adwords_api.rb +23 -9
  24. data/test/adwords_api/test_api_config.rb +0 -8
  25. data/test/adwords_api/test_credential_handler.rb +45 -9
  26. data/test/adwords_api/test_report_utils.rb +3 -2
  27. data/test/{suite_exampletests_v201109.rb → suite_integration.rb} +14 -11
  28. data/test/templates/v201209/basic_operations_get_campaigns.def +114 -0
  29. data/test/test_utils.rb +105 -0
  30. metadata +8 -250
  31. data/examples/v201109/account_management/create_account.rb +0 -80
  32. data/examples/v201109/account_management/get_account_alerts.rb +0 -111
  33. data/examples/v201109/account_management/get_account_changes.rb +0 -137
  34. data/examples/v201109/account_management/get_account_hierarchy.rb +0 -93
  35. data/examples/v201109/account_management/get_client_customer_id.rb +0 -85
  36. data/examples/v201109/account_management/get_client_unit_usage.rb +0 -87
  37. data/examples/v201109/basic_operations/add_ad_groups.rb +0 -111
  38. data/examples/v201109/basic_operations/add_campaigns.rb +0 -125
  39. data/examples/v201109/basic_operations/add_keywords.rb +0 -108
  40. data/examples/v201109/basic_operations/add_text_ads.rb +0 -105
  41. data/examples/v201109/basic_operations/delete_ad.rb +0 -85
  42. data/examples/v201109/basic_operations/delete_ad_group.rb +0 -102
  43. data/examples/v201109/basic_operations/delete_campaign.rb +0 -103
  44. data/examples/v201109/basic_operations/delete_keyword.rb +0 -90
  45. data/examples/v201109/basic_operations/get_ad_groups.rb +0 -98
  46. data/examples/v201109/basic_operations/get_campaigns.rb +0 -93
  47. data/examples/v201109/basic_operations/get_keywords.rb +0 -104
  48. data/examples/v201109/basic_operations/get_text_ads.rb +0 -106
  49. data/examples/v201109/basic_operations/pause_ad.rb +0 -84
  50. data/examples/v201109/basic_operations/update_ad_group.rb +0 -81
  51. data/examples/v201109/basic_operations/update_campaign.rb +0 -84
  52. data/examples/v201109/basic_operations/update_keyword.rb +0 -99
  53. data/examples/v201109/campaign_management/add_experiment.rb +0 -158
  54. data/examples/v201109/campaign_management/add_keywords_in_bulk.rb +0 -150
  55. data/examples/v201109/campaign_management/add_location_extension.rb +0 -117
  56. data/examples/v201109/campaign_management/add_location_extension_override.rb +0 -83
  57. data/examples/v201109/campaign_management/get_all_disapproved_ads.rb +0 -93
  58. data/examples/v201109/campaign_management/promote_experiment.rb +0 -77
  59. data/examples/v201109/campaign_management/set_ad_parameters.rb +0 -114
  60. data/examples/v201109/campaign_management/validate_text_ad.rb +0 -106
  61. data/examples/v201109/error_handling/handle_captcha_challenge.rb +0 -93
  62. data/examples/v201109/error_handling/handle_partial_failures.rb +0 -126
  63. data/examples/v201109/error_handling/handle_policy_violation_error.rb +0 -137
  64. data/examples/v201109/error_handling/handle_two_factor_authorization_error.rb +0 -87
  65. data/examples/v201109/misc/get_all_images_and_videos.rb +0 -100
  66. data/examples/v201109/misc/upload_image.rb +0 -89
  67. data/examples/v201109/misc/use_oauth.rb +0 -100
  68. data/examples/v201109/optimization/estimate_keyword_traffic.rb +0 -129
  69. data/examples/v201109/optimization/get_keyword_bid_simulations.rb +0 -92
  70. data/examples/v201109/optimization/get_keyword_ideas.rb +0 -106
  71. data/examples/v201109/optimization/get_placement_ideas.rb +0 -104
  72. data/examples/v201109/remarketing/add_audience.rb +0 -115
  73. data/examples/v201109/remarketing/add_conversion_tracker.rb +0 -97
  74. data/examples/v201109/reporting/download_criteria_report.rb +0 -79
  75. data/examples/v201109/reporting/get_campaign_stats.rb +0 -105
  76. data/examples/v201109/reporting/get_defined_reports.rb +0 -75
  77. data/examples/v201109/reporting/get_report_fields.rb +0 -71
  78. data/examples/v201109/reporting/parallel_report_download.rb +0 -159
  79. data/examples/v201109/targeting/add_campaign_targeting_criteria.rb +0 -118
  80. data/examples/v201109/targeting/get_campaign_targeting_criteria.rb +0 -102
  81. data/examples/v201109/targeting/get_targetable_languages_and_carriers.rb +0 -86
  82. data/examples/v201109/targeting/lookup_location.rb +0 -103
  83. data/examples/v201109_1/account_management/create_account.rb +0 -80
  84. data/examples/v201109_1/account_management/get_account_alerts.rb +0 -111
  85. data/examples/v201109_1/account_management/get_account_changes.rb +0 -137
  86. data/examples/v201109_1/account_management/get_account_hierarchy.rb +0 -93
  87. data/examples/v201109_1/account_management/get_client_customer_id.rb +0 -85
  88. data/examples/v201109_1/account_management/get_client_unit_usage.rb +0 -87
  89. data/examples/v201109_1/basic_operations/add_ad_groups.rb +0 -111
  90. data/examples/v201109_1/basic_operations/add_campaigns.rb +0 -140
  91. data/examples/v201109_1/basic_operations/add_keywords.rb +0 -108
  92. data/examples/v201109_1/basic_operations/add_text_ads.rb +0 -105
  93. data/examples/v201109_1/basic_operations/delete_ad.rb +0 -85
  94. data/examples/v201109_1/basic_operations/delete_ad_group.rb +0 -102
  95. data/examples/v201109_1/basic_operations/delete_campaign.rb +0 -103
  96. data/examples/v201109_1/basic_operations/delete_keyword.rb +0 -90
  97. data/examples/v201109_1/basic_operations/get_ad_groups.rb +0 -98
  98. data/examples/v201109_1/basic_operations/get_campaigns.rb +0 -93
  99. data/examples/v201109_1/basic_operations/get_keywords.rb +0 -104
  100. data/examples/v201109_1/basic_operations/get_text_ads.rb +0 -106
  101. data/examples/v201109_1/basic_operations/pause_ad.rb +0 -84
  102. data/examples/v201109_1/basic_operations/update_ad_group.rb +0 -81
  103. data/examples/v201109_1/basic_operations/update_campaign.rb +0 -84
  104. data/examples/v201109_1/basic_operations/update_keyword.rb +0 -99
  105. data/examples/v201109_1/campaign_management/add_experiment.rb +0 -158
  106. data/examples/v201109_1/campaign_management/add_keywords_in_bulk.rb +0 -150
  107. data/examples/v201109_1/campaign_management/add_location_extension.rb +0 -117
  108. data/examples/v201109_1/campaign_management/add_location_extension_override.rb +0 -83
  109. data/examples/v201109_1/campaign_management/get_all_disapproved_ads.rb +0 -93
  110. data/examples/v201109_1/campaign_management/promote_experiment.rb +0 -77
  111. data/examples/v201109_1/campaign_management/set_ad_parameters.rb +0 -114
  112. data/examples/v201109_1/campaign_management/validate_text_ad.rb +0 -106
  113. data/examples/v201109_1/error_handling/handle_captcha_challenge.rb +0 -93
  114. data/examples/v201109_1/error_handling/handle_partial_failures.rb +0 -126
  115. data/examples/v201109_1/error_handling/handle_policy_violation_error.rb +0 -137
  116. data/examples/v201109_1/error_handling/handle_two_factor_authorization_error.rb +0 -87
  117. data/examples/v201109_1/misc/get_all_images_and_videos.rb +0 -100
  118. data/examples/v201109_1/misc/upload_image.rb +0 -89
  119. data/examples/v201109_1/misc/use_oauth.rb +0 -100
  120. data/examples/v201109_1/misc/use_oauth2.rb +0 -97
  121. data/examples/v201109_1/optimization/estimate_keyword_traffic.rb +0 -129
  122. data/examples/v201109_1/optimization/get_keyword_bid_simulations.rb +0 -92
  123. data/examples/v201109_1/optimization/get_keyword_ideas.rb +0 -112
  124. data/examples/v201109_1/optimization/get_placement_ideas.rb +0 -104
  125. data/examples/v201109_1/remarketing/add_audience.rb +0 -115
  126. data/examples/v201109_1/remarketing/add_conversion_tracker.rb +0 -97
  127. data/examples/v201109_1/reporting/download_criteria_report.rb +0 -79
  128. data/examples/v201109_1/reporting/get_campaign_stats.rb +0 -105
  129. data/examples/v201109_1/reporting/get_defined_reports.rb +0 -75
  130. data/examples/v201109_1/reporting/get_report_fields.rb +0 -71
  131. data/examples/v201109_1/reporting/parallel_report_download.rb +0 -159
  132. data/examples/v201109_1/targeting/add_campaign_targeting_criteria.rb +0 -118
  133. data/examples/v201109_1/targeting/get_campaign_targeting_criteria.rb +0 -102
  134. data/examples/v201109_1/targeting/get_targetable_languages_and_carriers.rb +0 -86
  135. data/examples/v201109_1/targeting/lookup_location.rb +0 -103
  136. data/examples/v201206/misc/use_oauth.rb +0 -100
  137. data/examples/v201209/misc/use_oauth.rb +0 -100
  138. data/lib/adwords_api/v201109/ad_extension_override_service.rb +0 -38
  139. data/lib/adwords_api/v201109/ad_extension_override_service_registry.rb +0 -46
  140. data/lib/adwords_api/v201109/ad_group_ad_service.rb +0 -38
  141. data/lib/adwords_api/v201109/ad_group_ad_service_registry.rb +0 -46
  142. data/lib/adwords_api/v201109/ad_group_criterion_service.rb +0 -38
  143. data/lib/adwords_api/v201109/ad_group_criterion_service_registry.rb +0 -46
  144. data/lib/adwords_api/v201109/ad_group_service.rb +0 -38
  145. data/lib/adwords_api/v201109/ad_group_service_registry.rb +0 -46
  146. data/lib/adwords_api/v201109/ad_param_service.rb +0 -38
  147. data/lib/adwords_api/v201109/ad_param_service_registry.rb +0 -46
  148. data/lib/adwords_api/v201109/alert_service.rb +0 -34
  149. data/lib/adwords_api/v201109/alert_service_registry.rb +0 -46
  150. data/lib/adwords_api/v201109/budget_order_service.rb +0 -42
  151. data/lib/adwords_api/v201109/budget_order_service_registry.rb +0 -46
  152. data/lib/adwords_api/v201109/bulk_mutate_job_service.rb +0 -38
  153. data/lib/adwords_api/v201109/bulk_mutate_job_service_registry.rb +0 -46
  154. data/lib/adwords_api/v201109/campaign_ad_extension_service.rb +0 -38
  155. data/lib/adwords_api/v201109/campaign_ad_extension_service_registry.rb +0 -46
  156. data/lib/adwords_api/v201109/campaign_criterion_service.rb +0 -38
  157. data/lib/adwords_api/v201109/campaign_criterion_service_registry.rb +0 -46
  158. data/lib/adwords_api/v201109/campaign_service.rb +0 -38
  159. data/lib/adwords_api/v201109/campaign_service_registry.rb +0 -46
  160. data/lib/adwords_api/v201109/campaign_target_service.rb +0 -38
  161. data/lib/adwords_api/v201109/campaign_target_service_registry.rb +0 -46
  162. data/lib/adwords_api/v201109/constant_data_service.rb +0 -38
  163. data/lib/adwords_api/v201109/constant_data_service_registry.rb +0 -46
  164. data/lib/adwords_api/v201109/conversion_tracker_service.rb +0 -38
  165. data/lib/adwords_api/v201109/conversion_tracker_service_registry.rb +0 -46
  166. data/lib/adwords_api/v201109/create_account_service.rb +0 -34
  167. data/lib/adwords_api/v201109/create_account_service_registry.rb +0 -47
  168. data/lib/adwords_api/v201109/customer_sync_service.rb +0 -34
  169. data/lib/adwords_api/v201109/customer_sync_service_registry.rb +0 -47
  170. data/lib/adwords_api/v201109/data_service.rb +0 -38
  171. data/lib/adwords_api/v201109/data_service_registry.rb +0 -46
  172. data/lib/adwords_api/v201109/experiment_service.rb +0 -38
  173. data/lib/adwords_api/v201109/experiment_service_registry.rb +0 -46
  174. data/lib/adwords_api/v201109/geo_location_service.rb +0 -34
  175. data/lib/adwords_api/v201109/geo_location_service_registry.rb +0 -46
  176. data/lib/adwords_api/v201109/info_service.rb +0 -34
  177. data/lib/adwords_api/v201109/info_service_registry.rb +0 -46
  178. data/lib/adwords_api/v201109/location_criterion_service.rb +0 -34
  179. data/lib/adwords_api/v201109/location_criterion_service_registry.rb +0 -46
  180. data/lib/adwords_api/v201109/media_service.rb +0 -38
  181. data/lib/adwords_api/v201109/media_service_registry.rb +0 -46
  182. data/lib/adwords_api/v201109/mutate_job_service.rb +0 -42
  183. data/lib/adwords_api/v201109/mutate_job_service_registry.rb +0 -46
  184. data/lib/adwords_api/v201109/report_definition_service.rb +0 -38
  185. data/lib/adwords_api/v201109/report_definition_service_registry.rb +0 -46
  186. data/lib/adwords_api/v201109/serviced_account_service.rb +0 -34
  187. data/lib/adwords_api/v201109/serviced_account_service_registry.rb +0 -46
  188. data/lib/adwords_api/v201109/targeting_idea_service.rb +0 -38
  189. data/lib/adwords_api/v201109/targeting_idea_service_registry.rb +0 -46
  190. data/lib/adwords_api/v201109/traffic_estimator_service.rb +0 -34
  191. data/lib/adwords_api/v201109/traffic_estimator_service_registry.rb +0 -46
  192. data/lib/adwords_api/v201109/user_list_service.rb +0 -38
  193. data/lib/adwords_api/v201109/user_list_service_registry.rb +0 -46
  194. data/lib/adwords_api/v201109_1/ad_extension_override_service.rb +0 -38
  195. data/lib/adwords_api/v201109_1/ad_extension_override_service_registry.rb +0 -46
  196. data/lib/adwords_api/v201109_1/ad_group_ad_service.rb +0 -38
  197. data/lib/adwords_api/v201109_1/ad_group_ad_service_registry.rb +0 -46
  198. data/lib/adwords_api/v201109_1/ad_group_criterion_service.rb +0 -38
  199. data/lib/adwords_api/v201109_1/ad_group_criterion_service_registry.rb +0 -46
  200. data/lib/adwords_api/v201109_1/ad_group_service.rb +0 -38
  201. data/lib/adwords_api/v201109_1/ad_group_service_registry.rb +0 -46
  202. data/lib/adwords_api/v201109_1/ad_param_service.rb +0 -38
  203. data/lib/adwords_api/v201109_1/ad_param_service_registry.rb +0 -46
  204. data/lib/adwords_api/v201109_1/alert_service.rb +0 -34
  205. data/lib/adwords_api/v201109_1/alert_service_registry.rb +0 -46
  206. data/lib/adwords_api/v201109_1/budget_order_service.rb +0 -42
  207. data/lib/adwords_api/v201109_1/budget_order_service_registry.rb +0 -46
  208. data/lib/adwords_api/v201109_1/bulk_mutate_job_service.rb +0 -38
  209. data/lib/adwords_api/v201109_1/bulk_mutate_job_service_registry.rb +0 -46
  210. data/lib/adwords_api/v201109_1/campaign_ad_extension_service.rb +0 -38
  211. data/lib/adwords_api/v201109_1/campaign_ad_extension_service_registry.rb +0 -46
  212. data/lib/adwords_api/v201109_1/campaign_criterion_service.rb +0 -38
  213. data/lib/adwords_api/v201109_1/campaign_criterion_service_registry.rb +0 -46
  214. data/lib/adwords_api/v201109_1/campaign_service.rb +0 -38
  215. data/lib/adwords_api/v201109_1/campaign_service_registry.rb +0 -46
  216. data/lib/adwords_api/v201109_1/campaign_target_service.rb +0 -38
  217. data/lib/adwords_api/v201109_1/campaign_target_service_registry.rb +0 -46
  218. data/lib/adwords_api/v201109_1/constant_data_service.rb +0 -38
  219. data/lib/adwords_api/v201109_1/constant_data_service_registry.rb +0 -46
  220. data/lib/adwords_api/v201109_1/conversion_tracker_service.rb +0 -38
  221. data/lib/adwords_api/v201109_1/conversion_tracker_service_registry.rb +0 -46
  222. data/lib/adwords_api/v201109_1/create_account_service.rb +0 -34
  223. data/lib/adwords_api/v201109_1/create_account_service_registry.rb +0 -47
  224. data/lib/adwords_api/v201109_1/customer_service.rb +0 -34
  225. data/lib/adwords_api/v201109_1/customer_service_registry.rb +0 -46
  226. data/lib/adwords_api/v201109_1/customer_sync_service.rb +0 -34
  227. data/lib/adwords_api/v201109_1/customer_sync_service_registry.rb +0 -47
  228. data/lib/adwords_api/v201109_1/data_service.rb +0 -38
  229. data/lib/adwords_api/v201109_1/data_service_registry.rb +0 -46
  230. data/lib/adwords_api/v201109_1/experiment_service.rb +0 -38
  231. data/lib/adwords_api/v201109_1/experiment_service_registry.rb +0 -46
  232. data/lib/adwords_api/v201109_1/geo_location_service.rb +0 -34
  233. data/lib/adwords_api/v201109_1/geo_location_service_registry.rb +0 -46
  234. data/lib/adwords_api/v201109_1/info_service.rb +0 -34
  235. data/lib/adwords_api/v201109_1/info_service_registry.rb +0 -46
  236. data/lib/adwords_api/v201109_1/location_criterion_service.rb +0 -34
  237. data/lib/adwords_api/v201109_1/location_criterion_service_registry.rb +0 -46
  238. data/lib/adwords_api/v201109_1/managed_customer_service.rb +0 -38
  239. data/lib/adwords_api/v201109_1/managed_customer_service_registry.rb +0 -46
  240. data/lib/adwords_api/v201109_1/media_service.rb +0 -38
  241. data/lib/adwords_api/v201109_1/media_service_registry.rb +0 -46
  242. data/lib/adwords_api/v201109_1/mutate_job_service.rb +0 -42
  243. data/lib/adwords_api/v201109_1/mutate_job_service_registry.rb +0 -46
  244. data/lib/adwords_api/v201109_1/report_definition_service.rb +0 -38
  245. data/lib/adwords_api/v201109_1/report_definition_service_registry.rb +0 -46
  246. data/lib/adwords_api/v201109_1/serviced_account_service.rb +0 -34
  247. data/lib/adwords_api/v201109_1/serviced_account_service_registry.rb +0 -46
  248. data/lib/adwords_api/v201109_1/targeting_idea_service.rb +0 -38
  249. data/lib/adwords_api/v201109_1/targeting_idea_service_registry.rb +0 -46
  250. data/lib/adwords_api/v201109_1/traffic_estimator_service.rb +0 -34
  251. data/lib/adwords_api/v201109_1/traffic_estimator_service_registry.rb +0 -46
  252. data/lib/adwords_api/v201109_1/user_list_service.rb +0 -38
  253. data/lib/adwords_api/v201109_1/user_list_service_registry.rb +0 -46
  254. data/test/examples/v201109/test_account_management.rb +0 -60
  255. data/test/examples/v201109/test_basic_operations.rb +0 -172
  256. data/test/examples/v201109/test_campaign_management.rb +0 -116
  257. data/test/examples/v201109/test_error_handling.rb +0 -63
  258. data/test/examples/v201109/test_misc.rb +0 -45
  259. data/test/examples/v201109/test_optimization.rb +0 -63
  260. data/test/examples/v201109/test_remarketing.rb +0 -39
  261. data/test/examples/v201109/test_reporting.rb +0 -72
  262. data/test/examples/v201109/test_targeting.rb +0 -60
  263. data/test/examples/v201109/utils.rb +0 -238
  264. data/test/examples/v201109_1/test_account_management.rb +0 -60
  265. data/test/examples/v201109_1/test_basic_operations.rb +0 -172
  266. data/test/examples/v201109_1/test_campaign_management.rb +0 -116
  267. data/test/examples/v201109_1/test_error_handling.rb +0 -63
  268. data/test/examples/v201109_1/test_misc.rb +0 -45
  269. data/test/examples/v201109_1/test_optimization.rb +0 -63
  270. data/test/examples/v201109_1/test_remarketing.rb +0 -39
  271. data/test/examples/v201109_1/test_reporting.rb +0 -72
  272. data/test/examples/v201109_1/test_targeting.rb +0 -60
  273. data/test/examples/v201109_1/utils.rb +0 -238
  274. data/test/suite_exampletests_v201109_1.rb +0 -37
@@ -1,158 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # Encoding: utf-8
3
- #
4
- # Author:: api.sgomes@gmail.com (Sérgio Gomes)
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 creates an experiment using a query percentage of 10, which
22
- # defines what fraction of auctions should go to the control split (90%) vs.
23
- # the experiment split (10%), then adds experimental bid changes for criteria
24
- # and ad groups. To get campaigns, run get_campaigns.rb. To get ad groups,
25
- # run get_ad_groups.rb. To get keywords, run get_keywords.rb.
26
- #
27
- # Tags: ExperimentService.mutate
28
-
29
- require 'adwords_api'
30
- require 'date'
31
-
32
- def add_experiment(campaign_id, ad_group_id, criterion_id)
33
- # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
34
- # when called without parameters.
35
- adwords = AdwordsApi::Api.new
36
-
37
- # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
38
- # the configuration file or provide your own logger:
39
- # adwords.logger = Logger.new('adwords_xml.log')
40
-
41
- experiment_srv = adwords.service(:ExperimentService, API_VERSION)
42
- ad_group_srv = adwords.service(:AdGroupService, API_VERSION)
43
- ad_group_criterion_srv =
44
- adwords.service(:AdGroupCriterionService, API_VERSION)
45
-
46
- # Prepare for adding experiment.
47
- operation = {
48
- :operator => 'ADD',
49
- :operand => {
50
- :campaign_id => campaign_id,
51
- :name => "Interplanetary Experiment #%d" % (Time.new.to_f * 1000).to_i,
52
- :query_percentage => 10,
53
- :start_date_time => Time.now.strftime('%Y%m%d %H%M%S'),
54
- # Optional fields:
55
- :status => 'ACTIVE',
56
- :end_date_time =>
57
- DateTime.parse((Date.today + 30).to_s).strftime('%Y%m%d %H%M%S')
58
- }
59
- }
60
-
61
- # Add experiment.
62
- response = experiment_srv.mutate([operation])
63
- experiment = response[:value].first
64
- puts "Experiment with name '%s' and ID %d was added." %
65
- [experiment[:name], experiment[:id]]
66
-
67
- experiment_id = experiment[:id]
68
-
69
- # Setup ad group for the experiment.
70
- ad_group = {
71
- :id => ad_group_id,
72
- # Set experiment data for the ad group.
73
- :experiment_data => {
74
- :experiment_id => experiment_id,
75
- :experiment_delta_status => 'MODIFIED',
76
- # Bid multiplier rule that will modify ad group bid for the experiment.
77
- :experiment_bid_multipliers => {
78
- :xsi_type => 'ManualCPCAdGroupExperimentBidMultipliers',
79
- :max_cpc_multiplier => {
80
- :multiplier => 1.5
81
- }
82
- }
83
- }
84
- }
85
-
86
- # Prepare for updating ad group.
87
- operation = {
88
- :operator => 'SET',
89
- :operand => ad_group
90
- }
91
-
92
- # Update ad group.
93
- response = ad_group_srv.mutate([operation])
94
- ad_group = response[:value].first
95
- puts "Ad group ID %d was updated for the experiment." % ad_group[:id]
96
-
97
- # Setup ad group criterion for the experiment.
98
- ad_group_criterion = {
99
- :xsi_type => 'BiddableAdGroupCriterion',
100
- :ad_group_id => ad_group_id,
101
- :criterion => {
102
- :id => criterion_id
103
- },
104
- # Set experiment data for the criterion.
105
- :experiment_data => {
106
- :xsi_type => 'BiddableAdGroupCriterionExperimentData',
107
- :experiment_id => experiment_id,
108
- :experiment_delta_status => 'MODIFIED',
109
- # Bid multiplier rule that will modify criterion bid for the experiment.
110
- :experiment_bid_multiplier => {
111
- :xsi_type => 'ManualCPCAdGroupCriterionExperimentBidMultiplier',
112
- :max_cpc_multiplier => {
113
- :multiplier => 1.5
114
- }
115
- }
116
- }
117
- }
118
-
119
- # Prepare for updating ad group criterion.
120
- operation = {
121
- :operator => 'SET',
122
- :operand => ad_group_criterion
123
- }
124
-
125
- # Update criterion.
126
- response = ad_group_criterion_srv.mutate([operation])
127
- criterion = response[:value].first
128
- puts "Criterion ID %d was successfully updated for the experiment." %
129
- [criterion[:criterion][:id]]
130
-
131
- end
132
-
133
- if __FILE__ == $0
134
- API_VERSION = :v201109
135
-
136
- begin
137
- # IDs of the required objects.
138
- campaign_id = 'INSERT_CAMPAIGN_ID_HERE'.to_i
139
- ad_group_id = 'INSERT_AD_GROUP_ID_HERE'.to_i
140
- criterion_id = 'INSERT_CRITERION_ID_HERE'.to_i
141
- add_experiment(campaign_id, ad_group_id, criterion_id)
142
-
143
- # HTTP errors.
144
- rescue AdsCommon::Errors::HttpError => e
145
- puts "HTTP Error: %s" % e
146
-
147
- # API errors.
148
- rescue AdwordsApi::Errors::ApiException => e
149
- puts "Message: %s" % e.message
150
- puts 'Errors:'
151
- e.errors.each_with_index do |error, index|
152
- puts "\tError [%d]:" % (index + 1)
153
- error.each do |field, value|
154
- puts "\t\t%s: %s" % [field, value]
155
- end
156
- end
157
- end
158
- end
@@ -1,150 +0,0 @@
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 code sample illustrates how to add many keywords using asynchronous
22
- # requests and MutateJobService.
23
- #
24
- # Tags: MutateJobService.mutate, MutateJobService.get,
25
- # MutateJobService.getResult
26
-
27
- require 'adwords_api'
28
-
29
- def add_keywords_in_bulk()
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
- mutate_job_srv = adwords.service(:MutateJobService, API_VERSION)
39
-
40
- ad_group_id = 'INSERT_AD_GROUP_ID_HERE'.to_i
41
-
42
- # Create AdGroupCriterionOperations to add keywords.
43
- operations = (1..KEYWORD_NUMBER).map do |index|
44
- {:xsi_type => 'AdGroupCriterionOperation',
45
- :operator => 'ADD',
46
- :operand => {
47
- :xsi_type => 'BiddableAdGroupCriterion',
48
- :ad_group_id => ad_group_id,
49
- :criterion => {
50
- :xsi_type => 'Keyword',
51
- :match_type => 'BROAD',
52
- :text => "mars%d" % index}}}
53
- end
54
-
55
- # You can specify up to 3 job IDs that must successfully complete before
56
- # this job can be processed.
57
- policy = {:prerequisite_job_ids => []}
58
-
59
- # Call mutate to create a new job.
60
- response = mutate_job_srv.mutate(operations, policy)
61
-
62
- raise StandardError, 'Failed to submit a job; aborting.' unless response
63
-
64
- job_id = response[:id]
65
- puts "Job ID %d was successfully created." % job_id
66
-
67
- # Creating selector to retrive hob status and wait for it to complete.
68
- selector = {
69
- :xsi_type => 'BulkMutateJobSelector',
70
- :job_ids => [job_id]
71
- }
72
-
73
- status = nil
74
-
75
- # Poll for job status until it's finished.
76
- puts 'Retrieving job status...'
77
- RETRIES_COUNT.times do |retry_attempt|
78
- job_status_response = mutate_job_srv.get(selector)
79
- if job_status_response
80
- status = job_status_response.first[:status]
81
- case status
82
- when 'FAILED'
83
- raise StandardError, "Job failed with reason: '%s'" %
84
- job_status_response.first[:failure_reason]
85
- when 'COMPLETED'
86
- puts "[%d] Job finished with status '%s'" % [retry_attempt, status]
87
- break
88
- else
89
- puts "[%d] Current status is '%s', waiting %d seconds to retry..." %
90
- [retry_attempt, status, RETRY_INTERVAL]
91
- sleep(RETRY_INTERVAL)
92
- end
93
- else
94
- raise StandardError, 'Error retrieving job status; aborting.'
95
- end
96
- end
97
-
98
- if status == 'COMPLETED'
99
- # Get the job result. Here we re-use the same selector.
100
- result_response = mutate_job_srv.get_result(selector)
101
-
102
- if result_response and result_response[:simple_mutate_result]
103
- results = result_response[:simple_mutate_result][:results]
104
- if results
105
- results.each_with_index do |result, index|
106
- result_message = result.include?(:place_holder) ?
107
- 'FAILED' : 'SUCCEEDED'
108
- puts "Operation [%d] - %s" % [index, result_message]
109
- end
110
- end
111
- errors = result_response[:simple_mutate_result][:errors]
112
- if errors
113
- errors.each do |error|
114
- puts "Error, reason: '%s', trigger: '%s', field path: '%s'" %
115
- [error[:reason], error[:trigger], error[:field_path]]
116
- end
117
- end
118
- else
119
- raise StandardError, 'Error retrieving job results; aborting.'
120
- end
121
- else
122
- puts "Job failed to complete after %d retries." % RETRY_COUNT
123
- end
124
- end
125
-
126
- if __FILE__ == $0
127
- API_VERSION = :v201109
128
- RETRY_INTERVAL = 30
129
- RETRIES_COUNT = 30
130
- KEYWORD_NUMBER = 100
131
-
132
- begin
133
- add_keywords_in_bulk()
134
-
135
- # HTTP errors.
136
- rescue AdsCommon::Errors::HttpError => e
137
- puts "HTTP Error: %s" % e
138
-
139
- # API errors.
140
- rescue AdwordsApi::Errors::ApiException => e
141
- puts "Message: %s" % e.message
142
- puts 'Errors:'
143
- e.errors.each_with_index do |error, index|
144
- puts "\tError [%d]:" % (index + 1)
145
- error.each do |field, value|
146
- puts "\t\t%s: %s" % [field, value]
147
- end
148
- end
149
- end
150
- end
@@ -1,117 +0,0 @@
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 a location ad extension for an existing
22
- # campaign. To create a campaign, run add_campaign.rb.
23
- #
24
- # Tags: GeoLocationService.get, CampaignAdExtensionService.mutate
25
-
26
- require 'adwords_api'
27
-
28
- def add_location_extension(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_ad_ext_srv =
38
- adwords.service(:CampaignAdExtensionService, API_VERSION)
39
- geo_location_srv = adwords.service(:GeoLocationService, API_VERSION)
40
-
41
- selector = {
42
- :addresses => [
43
- {
44
- :street_address => '1600 Amphitheatre Parkway',
45
- :city_name => 'Mountain View',
46
- :province_code => 'CA',
47
- :postal_code => '94043',
48
- :country_code => 'US'
49
- },
50
- {
51
- :street_address => "38 Avenue de l'Opéra",
52
- :city_name => 'Paris',
53
- :postal_code => '75002',
54
- :country_code => 'FR'
55
- }
56
- ]
57
- }
58
-
59
- # Get the geo location info for the various addresses and build a list of
60
- # operations with that information.
61
- locations = geo_location_srv.get(selector)
62
- raise StandardError, 'Unable to retrieve geo locations.' if locations.nil?
63
-
64
- operations = locations.map do |location|
65
- {:operator => 'ADD',
66
- :operand => {
67
- :campaign_id => campaign_id,
68
- :status => 'ACTIVE',
69
- :ad_extension => {
70
- # The 'xsi_type' field allows you to specify the xsi:type of the
71
- # object being created. It's only necessary when you must provide an
72
- # explicit type that the client library can't infer.
73
- :xsi_type => 'LocationExtension',
74
- :address => location[:address],
75
- :geo_point => location[:geo_point],
76
- :encoded_location => location[:encoded_location],
77
- :source => 'ADWORDS_FRONTEND',
78
- # Optional fields:
79
- #:company_name => 'ACME Inc.',
80
- #:phone_number => '+1-650-253-0000'
81
- }
82
- }
83
- }
84
- end
85
-
86
- # Add location ad extensions.
87
- response = campaign_ad_ext_srv.mutate(operations)
88
- response[:value].each do |extension|
89
- puts "Location extension ID %d and status '%s' successfully added." %
90
- [extension[:ad_extension][:id], extension[:status]]
91
- end
92
- end
93
-
94
- if __FILE__ == $0
95
- API_VERSION = :v201109
96
-
97
- begin
98
- # ID of campaign to add location extension to.
99
- campaign_id = 'INSERT_CAMPAIGN_ID_HERE'.to_i
100
- add_location_extension(campaign_id)
101
-
102
- # HTTP errors.
103
- rescue AdsCommon::Errors::HttpError => e
104
- puts "HTTP Error: %s" % e
105
-
106
- # API errors.
107
- rescue AdwordsApi::Errors::ApiException => e
108
- puts "Message: %s" % e.message
109
- puts 'Errors:'
110
- e.errors.each_with_index do |error, index|
111
- puts "\tError [%d]:" % (index + 1)
112
- error.each do |field, value|
113
- puts "\t\t%s: %s" % [field, value]
114
- end
115
- end
116
- end
117
- end
@@ -1,83 +0,0 @@
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 override an ad extension for a specific ad, by
22
- # creating a location extension override. To create a campaign, run
23
- # add_campaign.rb, to create an ad, run add_text_ads.rb.
24
- #
25
- # Tags: AdExtensionOverrideService.mutate
26
-
27
- require 'adwords_api'
28
-
29
- def add_location_extension_override(ad_id, location_extension_id)
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
- ad_ext_override_srv =
39
- adwords.service(:AdExtensionOverrideService, API_VERSION)
40
-
41
- # Create operation.
42
- operation = {
43
- :operator => 'ADD',
44
- :operand => {
45
- :ad_id => ad_id,
46
- :ad_extension => {
47
- :id => location_extension_id
48
- }
49
- }
50
- }
51
-
52
- # Add override.
53
- response = ad_ext_override_srv.mutate([operation])
54
- location_extension_override = response[:value].first
55
- puts "Location extension override with ID %d was successfully added." %
56
- location_extension_override[:ad_extension][:id]
57
- end
58
-
59
- if __FILE__ == $0
60
- API_VERSION = :v201109
61
-
62
- begin
63
- # IDs of ad and location extension override to add.
64
- ad_id = 'INSERT_AD_ID_HERE'.to_i
65
- location_extension_id = 'INSERT_LOCATION_EXTENSION_ID_HERE'.to_i
66
- add_location_extension_override(ad_id, location_extension_id)
67
-
68
- # HTTP errors.
69
- rescue AdsCommon::Errors::HttpError => e
70
- puts "HTTP Error: %s" % e
71
-
72
- # API errors.
73
- rescue AdwordsApi::Errors::ApiException => e
74
- puts "Message: %s" % e.message
75
- puts 'Errors:'
76
- e.errors.each_with_index do |error, index|
77
- puts "\tError [%d]:" % (index + 1)
78
- error.each do |field, value|
79
- puts "\t\t%s: %s" % [field, value]
80
- end
81
- end
82
- end
83
- end